Okinawa Perl Mongers

沖縄県本島を中心とした、Perlユーザのグループです。

Okinawa.pm #4 を開催しました!

Okinawa.pmメンバーのcodehexです。こんばんは。

今回も場所はシナジールームという場所で琉球大学東口近くのララプリモの2階にあります。 どういう会場かは、前回の Okinawa.pm の記事を読むと分かるはずです!

今回のテーマは エイプリル Perl でした!
今回 Okinawa.pm のツイートを togetter にてまとめましたので、そちらの方も合わせて読んでいただけると幸いです。


始めの1時間はもくもく会

参加者は全員で 10 名と多かったです。
始めに参加者の皆さんで自己紹介をした後、黙々と各自作業したり、会話を楽しんだりしていました。


LT + Talk の時間

ここから参加者のうち 9 人で知見共有を行いました。

cat2koban さんの「ちょこっとLT

難読化プログラミングの話でした。この発表の中で出てきた Acme::EyeDrops はどんな Perl のコードもアスキート化したコードへ変形させる Acme モジュールです。それと, 自分で挑戦してみた 16 進数同士を排他的論理和を用いて行った難読化と正規表現 use re 'eval' を使ったコードを紹介してくれました! 最初から面白い LT だったと思います。


touba_rumba さんの「AppleScript でカレンダー共有アプリを作った話

友人とカレンダーのイベント情報を簡単に共有するために AppleScript と Automator を使った方法を紹介してくれました。残念ながら今回、会場の無線LANの回線が悪かったためにデモを拝見することができませんでしたが、Mac 上である程度自動化したい場合に AppleScript + Automator がとても便利だということを知りました。


tompng さんの「Quine の話」

今回最も盛り上がったのではないでしょうか!?
以前 tompng さんはハッカーズチャンプルー2016の後夜祭にてマインクラフトでコンピュータを作った話をされた方で、今回も Quine で面白い話をしてくれました!!
初めは Perl で Quine を作成する方法を紹介してくれたんですが、この後に今回のテーマである「エイプリルPerl」に沿うように Ruby で Perl というロゴが入った Quine プログラムを作ってくれました!なぜか湧き上がる拍手。それくらい面白かったということです!!!!!

ちゃんとコードも共有してくれました!!(圧倒的感謝!!)


mayutsuna さんの「閲覧者による Webpage 評価・検索システムの構築(概説)

2018年度の卒研で Webpage を評価するための新しいプラットフォームを考察しているという話をしてくれました!
今はまだサービスをどのような構成で作成していこうか悩んでいる途中だということで、どういうものがいいですか?と質問していくスタイルでした。
こういうコミュニティに参加するメリットは、「現役のエンジニア達へ分からないことを質問することができる」というのが一つあると思っているので非常に良いスタイルだったと思いました。
僕は Web フレームワークは Perl が良いよ!とアドバイスしておきました👍


yasuXS さんの「MinillaでXSモジュールを作る」

Minilla を使った XS モジュールの作り方を紹介してくれました。まずは cpanm Minilla で Minilla をインストールから始まり、XS の基礎の方まで教えてもらいました!

  • void sum(...) など引数の数を取得するには items という変数を用いる
  • ST(0) = value の後に XSRETURN(1) で値を一つ return する
  • 配列を return する場合、配列の i 番目を ST(i) へ代入し、その数分 XSRETURN(len) とする

など、かなり内容も面白く XS って思っていたよりも敷居が低いんだなぁと思える内容になっていました!


codehex さんの「XS を始めよう!

yasuXS さんのトークが XS モジュールを作成する為の基礎的な内容だということを知ったので、それに合わせて XS のモジュールを作る上で、覚えたほうがいい「型」、「参照カウント」、「揮発性をするときに注意すべきこと」を紹介しました。
これから XS 始めるぞ!という方はこのスライドがきっと役に立つはずです!


AnaTofuZ さんの「PerlMonger の生態について

内容が非常に狂ってたと個人的には思いました。

Perl Monger はプログラム書くのが好きだろう -> プログラム書くのが好きな人は 🍣 が好きだろう。
つまり、Perl Monger は 🍣 が好きだろう。とこじ付けた上になんと最新作の Acme モジュールを紹介してくれました。
Acme::HowToMakeSushi です。
このネタ元は以下のツイートらしいです。

ツイートの内容があんまり良くわからなかったのですが、Acme モジュールの方では、Perl プログラムが正常終了した場合ちゃんとした 🍣 を作ることができ、失敗した場合は 🍣 を作ることも失敗するようです。また Acme::HowToMakeSushi::Photo という画像のバイナリを吐き出してくれるモジュールも同時に作ったそうなので、以下のコードで試してみましょう!
perl -MAcme::HowToMakeSushi -e ''
perl -MAcme::HowToMakeSushi -e 'exit 1'

勢いのある LT でとても面白かったです!


perlackline さんの「サブルーチンと引数と@_とエイリアス」

案外知らないサブルーチンの @_ の正体についてのトークでした。
僕自身も Perl を始めて、サブルーチン部分を学んでいる時に引数のあり方についてはとても悩みました。一番衝撃的だったのが、引数をなぜ配列で受け取らなければならないんだ!?ということでした。
この辺の完全な理解はつい最近知ったことだったので、復習としての意味でもいいトークでした。


adokoy0001 さんの「Quineチャレンジ

元々、Quine のネタをやろうとしていたところ、tompng さんと被ってしまったということでしたが、すごく面白かったです。
このトークでは、Quine を実現するための注意として僕が解釈した範囲では

  • eval が必要であること
  • 繰り返すたびに少しずつコードが変更していくこと
  • コードを追記しても全体に悪影響が出ないこと

が重要なんだと理解しました。(間違えていたら codehex まで連絡を!!)


最後の 30 分

今回も余った最後の 30 分は雑談を主にしていました。
特に Quine とサブルーチンの @_ の話題で盛り上がったため、これらの話をしていたと思います。
今回とても感じたこととして、Okinawa.pm は Perl Monger によるイベントではありますが、コミュニティの言語だけで話題を仕切るのは非常にもったいないということです。 tompng さんは普段 Okinawa.rb で活動されている方ですが、今回参加してもらったことで Okinawa.pm 内でも知見が広くなったように感じました。そこで思い出したのが「敢えてアウェーで戦う事に意味があるって話」で、このブログ内にも書いてあるように、僕も Okinawa.pm 以外の場でも知見を共有して自分の成長に大きく関わるようにしていけるといいなと思えました。

今回もすごく楽しかったです。
開催に協力してくださった Okinawa.pm のメンバー、参加してくださった皆さんありがとうございました!