Perlがくしゅう帳(Rubyも)

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_で活動しています。 最近は主にPerl関連の勉強会やコミュニティに参加しています。移転前のブログはこちら->http://ruby.doorblog.jp/

吉祥寺.pm #14に参加してきました

人生初の地元以外開催のpmにお邪魔してきました。

kichijojipm.connpass.com

総参加者人数が約40名、.pmのイベントでこれだけ沢山の人数が集まるのは(しかも数ヶ月に1回のペース)本当に凄い。しかも平日の仕事が終わってからの時間帯!
初めて参加するコミュニティへ飛び込むのは勇気がいりますが、 YAPCPerl入学式つながりで知り合った関東の方々、大阪から上京した方と久しぶりに会う事もでき、何らかの形で活動を続けていく大切だし、知り合いが増えていくのはとても楽しい事だなとあらためて思いました。主催のmagnolia_k_さん、スタッフのみなさん、ありがとうございました。

ちなみに吉祥寺は東京23区より東にあり、新宿あたりからJRで20〜30分の場所です。吉祥寺に行ったのも初めてでした。想像していたのは郊外にある住宅地のイメージでしたが、思っていたよりも全然都会でした。

さて、pmの内容は20分トークとLTで、かなりのボリュームです。色んな話が聞けました。

懇親会も本編40人中、30人の出席率!これまためちゃくちゃ盛り上がって楽しかったです。席が近かった方としかなかなか話せなかったのが少し残念でした。著名なPerlMongerの方や、Twitterで一方的に知っていた方と直で話ができたり、とても面白い考え方の若い方のお話が聞けたり、学びがたくさんありました。今回お話ができなかった方とも、またYAPCとかでお話したいですね。

今回、ホーム以外のpmに参加して感じたのは、とにかく活気がすごい、そして渋谷.pmに五反田.pmもあるなんて、Perlのコミュニティ全然活発じゃん!!って事でした。

コミュニティは継続が力なりなのだなと思いました。またモチベーションが上がりました。関西でもPerlの勉強会を続けて行きたいですね。

で、

ということで、6月9日(土)、大阪梅田でもくもく会を開催します。まだ参加枠があります。初心者向けのコミュニティですので、Perl入学式の予習復習に是非どうぞ!

naniwaperl.connpass.com

今回は本当に本編も懇親会も楽しかったです。また参加します!

プログラミング、初めてみませんか?

2018年度がスタートしました。
せっかくの新年度の機会です。何か新しいことを初めてみませんか?

自己紹介が遅くなりましたが、私はPerl入学式in大阪でサポーターをしている @tomcha_ と申します。 この記事は「春のPerl入学式リレーブログ」初日の記事です。
早いものでこの勉強会「Perl入学式」が始まって今年度で7年目となります。大阪、東京、札幌、沖縄と全国でたくさんの人が学んだ初心者向けプログラミング勉強会です。

この勉強会の特徴は、

  1. 全て無料です。勉強会の参加はもちろん、資料の閲覧、チャットサポートを受けるのも無料です。全てボランティアスタッフの活動で成り立っています。

  2. 第1回は環境構築回と言って、各自の持参したパソコンでプログラミング言語Perlを使える様にソフトをインストールする会です。第2回以降はそれを使って実際にプログラミングを学んでいきます。

  3. 全部で第5回まであり、最初は基本的な事から回を追うごとにより深い知識を身に付けていきます。もしスケジュールの都合で出られない会があったとしても、資料は全て公式サイトで公開されているので自習をする事で問題なく追いつくことができます。自習で分かりにくい事は公式サポートチャットで質問できるので安心です。

インターネットやコンピューターがより身近なモノとなり、小学生のプログラミング教育が必修化etc...色々言われておりますが... そんな事は置いといて、単純に学ぶモチベーションは

「プログラミングは楽しい!」

これに尽きると思います。

私がボランティアスタッフを続けているモチベーションも全く同じです。
何を隠そう、私を含め各地域も含めボランティアスタッフのほとんどが過去のPerl入学式の受講生なのです。

何が楽しいのかって?

何かを自分で考えて、自分で作ってみて、それが動く!他人にも見せれる!とってもワクワクしますね!!

Perl入学式はプログラミングを全く未経験な方も、少しかじった程度の方でも、どなたでも参加できる勉強会です。
2018年度の各地第1回の日程と場所が徐々に決まってきました。

さあ、あなたもPerl入学式に参加して、プログラミングという楽しい世界に飛び込んでみませんか?

コードレビューをする勉強会を開催しました。

なにわPerl#13で、コードレビューをテーマにした勉強会を主催しました。

naniwaperl.connpass.com

結果から言うと、進め方はまだ手探り状態ではあるものの、想定していた以上の良い勉強会になりました。
今回やりたかった事は、プログラミングを0から初めてある程度文法をマスターした段階のプログラマーにとって、「基本文法は理解した」から到達目標である「実用性のあるコードを書く」の間にとても大きな差があると感じていて、その間を埋める勉強会を開催したかったという思いです。

基本文法をマスターすれば、即実践で使えるかというと覚えなくてはいけない知識(DBの事、webの仕組みの事、サーバーに関する知識、アルゴリズム etc)は多岐に渡って更に深く身につける必要があり、Perl入学式の次の一歩の勉強会、脱初学者な勉強会が欲しい!と思い、無ければやるしかの精神で開催しました。

今回はレビューしてもらうコードの題材として、競技プログラミングのサイト AtCoder さんの問題を使わせて頂きました。快く使用許可を頂いた twitter.com さん、本当にありがとうございます。

また、レビュアーはPerl入学式の創設者であり、第一線で活躍するエンジニア id:papix さんにコードレビュー役をお願いしました。快く引き受けて頂き、また東京より駆けつけて頂きありがとうございました。

お硬い文章はこれくらいにして、何が良かったかというと、

  • 普段我流でコードを書いている自分にとって、プロの目線から指摘をもらって目から鱗の知見がたくさんあった
  • 仕事でプログラムを書いている人にとっても、自社の文化を超えた目線でのアドバイスは視野が広がった

点でした。

講義形式や発表形式の勉強会とはまた違った雰囲気で、何より

"それぞれが発表の場を持つ全員が主役である"

こと、同じ題材でコードを書いているからこその

"他人のコードを読む機会(とその違いが明確に分かる)"

部分がとても勉強になりました。
色々と改善の余地はありますが、とても有意義な勉強会だったのでこれからも続けていこうと思います。

Perl入学式は今年も色々な都市で開催されます。初心者向け勉強会”Perl入学式”、次のステップの"Perl中学校"、今年も頑張っていきたい(とはいっても自分にとっては趣味の一環)と思います。

perl-entrance-tokyo.connpass.com

perl-entrance-okinawa.connpass.com

perl-entrance-sapporo.connpass.com

perl-entrance-osaka.connpass.com

naniwaperl.connpass.com

Perl入学式卒業生としてYAPCで初トークしました ~YAPC::Fukuoka2017感想ブログ~

6月30日、7月1日とYAPC::Fukuoka2017 HAKATAに前夜祭から乗り込参加してきました。

今回いつものYAPCと違うのは、なんと、応募したトークがまさかの採択となり、人生初YAPC登壇となりました。
あこがれの赤Tシャツ&白ネックストラップです!名誉と伝統がある場なので、とても感慨深い。

f:id:tomcha0079:20170707221531j:plain:w400

前夜祭当日

6月30日は早めに博多に乗り込み、お昼ごはんに九州グルメを堪能。その後は前夜祭開催までカラオケボックスに篭ってトークの練習とスライドの調整を。
前週に予定外の風邪を引いてしまい、スライド作成->トーク練習->スライド調整->トーク練習…のルーチンが1週間ずれ込んでしまい、まさかの現地入りでの練習となってしまいました。全然野菜とか美味しいものめぐりしたかった…

博多の街の印象は、物価が安くて食べ物が美味しい街でした。
胃袋の限界もあり、食べたかった物全部食べきる事はできませんでしたが、また旅行で行くぞ!って思いました。

前夜祭は早めに会場入りし、同窓会のようにYAPCで会う色んな地域のPerlMongerと挨拶したり、いつもはTwitterやSlackのアイコンでしか会話した事のなかった人とお話できたりワイワイと楽しい前夜祭でした。

前夜祭では、ネタ感溢れるsago35さんのLTが、技術の話にネタも仕込んであって、これぞLTって感じで盛り上がって面白かったです。 sago35.hatenablog.com

また、若さの勢いあふれるAnaTofuZさんのLTも印象に残りました。若いのにガンガンAcmeモジュールを作っててすごいなーと。

前夜祭のあとは、今回のYAPC::Fukuokaのスタッフでもある、日下部さんと信者会の方々と会場近くの居酒屋で二次会へ。
「はじめまして」「あー、あのアイコンの◯◯さん!、どうもどうも!」の流れは毎回面白いですね。
TwitterやSlackでコミュニケーションを取っていてもはじめましての方々と、今回の福岡でもたくさん顔が繋がり、ワイワイ盛り上がったり。

YAPC::Fukuoka 当日

f:id:tomcha0079:20170701094328j:plain:w500

そして7月1日本番当日。
普段会社に行くよりも遅いので楽々起床成功。
現地入りしてYAPC::Kansaiで一緒にスタッフをしたコアメンバーの方々とも挨拶をしたり、声をかけて頂いたり。5年前の初めてYAPCに行った時から比べて、とても知り合いも増えました。
この日は現地に到着してからもスライドを少し微修正したり。発表が午後一番だったのですが、こんなにオープニングやら午前中のトークやら頭に入らないYAPCは初めてでした。

そして昼食をパスして午後一番、いよいよトークの時が。予想以上に会場が広く、そして時間が迫るにつれお客さんの席も埋まりだして緊張はピークに。
トークは練習をしていたとはいえ、始まってしまえばあっという間に予定時間。ギリギリ少し時間足らずでしたが、これは伝えようと思っていた重点ポイントは伝えることができました。
正直、自分のトークが採択された時からYAPCの場での発表に相応しいのか不安しかなく、それでも選ばれたからには精一杯失礼の無いようにと頑張りましたが、トーク中もトークが終わっても良かったのか悪かったのか、不安はありました。
懇親会の時に、 @xtetsuji さん、 @karupanerura さんに、トーク良かったよと感想を頂いたとき、あー発表して良かったなとホッとしました。
エンジニアの方達は、決してお世辞を言う方ではなく、良いもの良い悪いもの悪いと正直に述べられる事は分かっていたのでとても嬉しかったです。

当日のスライドはこちらです。

t.co

さて、自分のトークが終わってからやっとトークも耳に入るようになりました。

その後の懇親会も、懇親会後の二次会も色んな人とお話ができました。

懇親会

f:id:tomcha0079:20170701221221j:plain:w400

懇親会ではPerl入学式の @papix 校長と、今回の自分のトークは若い人たちにバトンが繋がるトークを心がけた事と、自分は @papix さんから5年前にPerl入学式に参加してバトンを受け取ったからこそ、今この場に居るといった事を話しました。 @papix さん自身も、ファームノートさんからYAPC参加の旅費支援というバトンを受けたから今があると言ってられたので、Perlのコミュニティは次から次へとバトンを繋げていく素晴らしいコミュニティだなぁと、参加する機会があって良かったと改めて感じました。

次は若手がとても勢いのある沖縄、YAPC::Okinawaですね。
家庭内稟議は通ったので絶対に参加するぞ!という意気込みでとても楽しみです。

トークを応募した時の話は、何か機会があればまたどこかで、感想ブログはこのあたりで締めたいと思います。
行ってよかった、楽しかった!スタッフの皆様、ありがとうございました && お疲れ様でした!

YAPC::Fukuoka で「未来のプログラマー達へ ~Perl入学式卒業生から~」というタイトルでトークします

Perl入学式in大阪でサポーターをしているTomchaです。

実は私、仕事はITとは全く無関係な一社会人です。
2012年2月、Perl入学式の生徒としてプログラミングを学び、趣味でプログラミングをしています。
use strict;の書き方を一から教わる初心者からのスタートしましたが、

なんと、今回YAPC::Fukuokaでトークをする機会を頂きました。

これからプログラミングを初めてみたい方や、プログラミングに興味がありつつ、どう学んで行けばよいか分からない方など、初心者の方にPerl入学式OBとしての経験を、そして非エンジニアの視点でお話ができれば、そして何かヒントを掴んで頂ければと思っています。

おそらく、YAPCの中で最も初心者をターゲットとしたトークだと思いますので、初心者の方やPerl入学式受講中の方、もちろんそれ以外の方にも聴いていただければ幸いです。

yapcjapan.org

Acme大全への道

こんにちは、Perl入学式in大阪でサポーターをしている @tomcha_ です。

www.perl-entrance.org

趣味でPerlのプログラミングを始めて早6年。
なんとなく、ちょっとしたコードを書いている毎日ですが、PerlMongerになったからには大きな憧れってありますよね。

そう、これです

f:id:tomcha0079:20170602223101j:plain:w500

Acme大全!

いつの日か、自分の書いたモジュールがAcme大全に載ってたらカッコイイな〜と、

今までは見る側でしたが、入学式の講師予習をしている時に、ふとモジュールを思いついたので、勢いに乗っかって作ってみようと思いました。

まずはモジュールの紹介よりも先に作った手順などを紹介します。

やったこと 手順

1. Minillaのインストー

Acme大全に載るには、CPANAcme::で始まる名前空間に自作モジュールをアップする必要があります。
CPANにアップするモジュールには、色々とお作法がありますが、その雛形を簡単に作ってくれるモジュールが、Minilla です。

metacpan.org

まずはMinillaをcpanからダウンロードしましょう。

cpanm minnilla

2. minil new

Minillaのインストール 自作モジュールを作成するために、ローカルのパソコンの任意のディレクトリで、以下の新規作成コマンドを叩きます。

minil new Acme::モジュール名

ここでミソなのは、今回作るのは憧れのAcmeモジュールなので、モジュール名の前にAcme::をつけます。
その他、色々な名前空間でモジュールを作るときは、適宜応じた名前と :: で区切って指定します。
すると、 :: で区切った通りにディレクトリ、子ディレクトリも自動的に作ってくれます。超便利。
Hoge.pmというモジュールを作るなら、

minil new Acme::Hoge

とします。

3. コードを書く

さあ、オリジナルモジュールを作りましょう!
あ、その前に編集前の状態で git commt しておきましょう。
そして、ディレクトリの中に lib というディレクトリがあり、その中の モジュール名.pm を編集していきます。
通常はサブルーチンを書いていく感じになりますね。そうすると、作ったモジュールを読み込めば自作サブルーチンが呼び出せるようになります。
また、__END__以降の行の部分のコメントを編集して、READMEの内容を作っていきます。ここに書いておくと、この後のコマンド操作でREADMEファイルをよしなに作ってくれます。コピペで使い方がわかる、SYNOPSYSも丁寧に書いてみましょう。

4. Minil test

モジュールの中身が実装できたら、モジュール名のディレクトリ直下で、テストを実行して確認します。コマンドは、

minil test

です。デフォルトでは、自分の書いたモジュールが読み込めるかどうかのテストがデフォルトで書かれています。
まずはこのテストが通る事を確認して、その他テストも書いてみましょう。

5. Minil releaseの前に、pauseの登録

実装できた!テストも通った!さあ、リリースだ….のちょっと前にしておく事があります。
CPANにモジュールを上げる事になるので、先にCPANに自分のアカウントを作っておく必要があります。

https://pause.perl.org/pause/query

PAUSEというサイトで登録するのですが、こちらのブログ記事で詳しく書かれています。

blog.livedoor.jp

今回、大変参考にさせていただきました。感謝。

6. cpanアカウントの設定

PAUSEでアカウントを作ったら、アイコン画像などもう少し詳しいプロフィールを設定します。
プロフィールはmetacpanというサイトで設定します。

Search the CPAN - metacpan.org

まずはTwitterGithubのアカウントなどでサインインし、Accountメニューからidentitiesを選び、先程作ったPAUSEのアカウントと紐付けます。 f:id:tomcha0079:20170602224550p:plain:w500

そして、profileページでアイコンや自分のブログなど、プロフィールを書きましょう。

7. リリース準備ファイル

ホームディレクトリに.pauseファイルを作り、そこへPAUSEアカウントの情報を書き込みます。

touch ~/.pause chmod 600 ~/.pause

.pauseの中身は、

user username
password userpassword

(もちろん、自分の)を書きます。

8. Acme名前空間の再確認

CPAN名前空間での整理やテスト文化など、素晴らしいエコシステムが整った公共の場です。
まずはCPANの流儀にしたがい、自分の作ったモジュールがのディレクトリ名がAcme-Hogeとなっているか、llibディレクトリの中のAcmeディレクトリの中にファイルが置かれているか再確認しましょう。

さあ、ここまで来ればあと少しです!

9. リリース

モジュールをCPANにリリースです!

minil release

最初は何度かファイルをアップするためのCPANモジュールが足りない!と怒られました。
その都度、cpanm でインストールして、すべてのアップロード用モジュールが揃えば自動的にCPANにモジュールがアップされます!

作ったAcmeモジュールと今回はまったこと

さて、今回私が作ったモジュールはこちらです。

metacpan.org

どういうモジュールかというと、Perl入学式では一番最初に"Hello, world\n"と画面に出力するプログラムを作ります。
なので、Perlという言語のスローガン、TMTOWTDI “There’s More Than One Way To Do It.” “「やり方はひとつじゃない」”
に習って、教科書とは違うやり方の"Hello, world"のモジュールを作ってみました。

こんな単純なモジュールですが、実はテストでちょっとはまりました。
モジュール内のprint文、最初はシングルクォートで囲っており、改行しない文字列を出力させてました。
すると何故か、デフォルトのモジュール読み込みテストがコケる!
丁度Perl鍋という勉強会で作っていたので、周りの参加者に見てもらい、テスト単体とかでも試した結果、どうやらテスト時に"ok"で始まるテキストが帰らないとテストがコケる用で、テストの返り値文字'ok'の前に'Hello,world'の文字が改行せずにひっついていた為、'ok'を認識してくれずテストがコケていました。
Perl鍋と参加されていたPerlMongersにも感謝。
Perl鍋は不定期で平日木曜日のよる、大阪は梅田で絶賛開催しています。

perlnabe.connpass.com

出力文字列をダブルクォートで囲い、きちんと改行して、なんとかテストが通りました。

めでたい!念願のAcme大全に載れるはず?!
今年も出版されるのを願ってます!

ちなみに、こういうもくもく会を主催してます。(宣伝)

naniwaperl.connpass.com

YAPC::Kansaisaka 2017でコアスタッフをしました

2017.3.4 YAPC::Kansai 2017 Osaka で、コアスタッフとしてお手伝いをしてきました。

大規模カンファレンスにがっつり中からお手伝いするのは今回が始めての経験でした。 そこに至った経緯であるとか、YAPCはへの想いなどの諸々の話はまた別の機会にするとして、開催前、開催当日、後日の感想を書きたいと思います。

開催前

企画段階の準備や打ち合わせは、遠方だったり仕事や学業で場所も時間帯もバラバラでなので、SlackでのチャットコミュニケーションとGithubのissueでのタスク管理、GoogleDriveによるデータ共有などのツールを駆使して進めていきました。
私自身が本業はITとは全く関連の無い仕事をしているので、いずれも「とりあえずアカウントを作っただけで実際に使った事がない」ツールがほとんどで、最初は恐る恐る使い方を学ぶところから始まりました。ツールの便利なところが知れた事はとても良い経験になりました。また、逆に、チャットだけでは意思疎通の難しい部分もわかり、普段何気なく顔を合わせて話したり会議している場の有り難さも分かり、とても良い経験になりました。
また、YAPCは何度か参加していましたが、思っていた以上に決めることが多くびっくりしました。歴代スタッフの方々への尊敬と感謝を再認識しました。

前日準備

個人的には発注関係をメインに担当していたのですが、前夜祭に無事発注した商品が到着してほっとしました。
ノベルティの詰め込み作業はあっという間に終わった印象です。スタッフ全員、モチベーションがMAXだったからでしょうか。
また、たこ焼きを◯万円分買うという、人生初の貴重な経験も。
準備終了後は晩餐会&&締めの鴨南蛮を堪能しました。美味しかった!

当日

当日はメインホールA会場のタイムキーパー担当だったので、遅刻しない様に早めに現地に到着してコメダでモーニング。前日なかなか寝付けなかったので睡眠時間は2時間くらい。

朝会場に到着して、がらんとしたホールに入った時はそうでもなかったですが、ぱらぱらとお客さんが集まりだし、@941さんが来られたのを見かけて「おー、遂にYAPC開幕だー!」とYAPC感が一気に高まりました。何気にブログの写真にも写っていて感動。

A会場ではトークを聞きつつ、メインゲストのお二方、スペシャルコンテンツに温故知新トークなど興味深い話がたくさん聞けました。
スタッフにはお昼ごはんに豪華なお弁当が出ました。

f:id:tomcha0079:20170304130900j:plain:w500

大きなトラブルも無く、いや、プロジェクターが止まりかけたっけ?あの時は焦った焦った。
全般的には進行もスムーズに進みましたが、司会のかるぱさんの補助が出来てなかったなーというのが自分の反省点。
一日があっという間に終わり、その後の撤収もダダダダーッと皆で片付け。大人の文化祭なノリで全てが楽しかったですね。
今回は懇親会会場の広さや時間の都合もあり、スタッフは懇親会には出られず、色んな方々とお話が出来なかったのが残念でした。
ゴミの片づけやらなんやら終わって、スタッフ打ち上げは21時頃からになったかな?達成感もあり、とにかく、ご飯とお酒が最高に美味しく感じました。

f:id:tomcha0079:20170304210805j:plain:w500

f:id:tomcha0079:20170304214348j:plain:w500

このビールの味は一生忘れられないですね!

終わってみて

今回始めて大規模カンファレンスのコアスタッフをやってみて、YAPCが楽しかったのはもちろんですが、本業の仕事をしているだけでは経験できない事や、色々な方とお話できたり繋がりが出来て

コアスタッフやってめっちゃ良かった!

それにつきますね。

JPAの方々、コアスタッフの仲間や当日ボランティアの方々、ありがとうございました。

自分も含め、皆さん本業が忙しい中、楽しいイベントにする為にそれぞれが出来ることをする、まさにOSSの精神だなと感じました。
OSSに直接的に貢献する事は難しくても、何かの形で恩返し出来たかな?と思っています。
スタッフ業は遊びとはまた違うので、大変な部分ももちろんありますが、得られるものも沢山あるので少しでも興味を持ったなら、皆さん是非やってみてはどうでしょうか。

そしてスポンサー企業様、ゲストの方々、スピーカーの方々、ご来場の方々にも感謝です。ありがとうございました。

さて、ブログを書き終えて今回のYAPCは終わり。
これから2017年度の活動ですが、Perl入学式in大阪も春からSeason6が始まる予定です。 そして、自分が主催している(なにわPerl)https://naniwaperl.connpass.com/も、YAPCも一段落着いたし、ぼちぼちやらなあかんなーと思っているところであります。

そして、夏には福岡です。チケット買いました!
今回じっくりお話ができなかった皆さん、7月のYAPC::Fukuoka 2017 Hakata でお会いしましょう!