Perlがくしゅう帳(Rubyも)

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

YAPC::Kyoto2023 コアスタッフとして参加しました

回想

 今、思い出すために色々調べてみると、YAPC::Kyotoのコアスタッフにinviteされたのは2019年5月16日でした。 この時のプライベートの状況は子供が0才、ハイハイは出来るけどまだ歩く事は出来ない状況でした。  仕事に育児にコミットしながらも、まあ、カンファレンスのコアスタッフは大阪でも経験していたし、何とかなると思っていた頃でした。 実際に、キックオフやミーティング後の飲み会も気軽に参加できていたと記憶しています。

 そしてコロナ禍に突入。  これからの将来、どうなるか誰にも想像つかない状況で、個人的には相当悲観的に考えていた時期でした。  YAPCを中止するのか、延期するのか、再開の見通しは、ワクチンや特効薬は開発されるのか、いつ頃なのか、、、、10年単位で元の生活には戻れないと感じていました。

 しかし、状況は時間の経過とともに少しずつ変わり、3年の時を経てコロナワクチン接収も行き渡り、新しい生活様式を模索して5月のGWも旅行者が増えた2022年5月末頃、再びコアスタッフの招集がかかりました。

 ただ、自分の生活環境は3年前とは既に変わっていて子供は3歳と2歳の2人になり、平日は仕事が終わって帰宅してからお風呂と寝かしつけ、土日は家事と子供の相手とプライベートの時間がほぼゼロの状況でした。正直、コミットできる時間はかなり限られてしまうし、何も出来なくて他のコアスタッフの皆さんに迷惑をかけてしまうのでは、、、と悩みましたが、せっかく知り合った皆さんとの縁を無下にしてしまうのも違うと思い、出来る範囲の事をやろうと割り切って再度コミットしました。

 他のメンバーに迷惑をかけない事を心掛け、開催準備期間はプライベート時間をフルに使ってPerl神社の旗、ボードやパネルの発注などを担当しました。しかしながら、あまり何も出来ずに個人的には消化不良な前準備となってしまいました。

 また、3月に入ってからは開催前日まであっという間に過ぎてしまい、資材発注関係の担当としては、デザインの入稿、確認、代金決済、納期のリミットがあっという間に迫ってきました。あらかじめ動けない日もある事を考慮して余裕をもったスケジュールを立てたつもりでしたが、結果的にはすべての発注が完了したのがギリギリのリミットでした。*1  また、何度もデータ修正をお願いする事となってしまい、デザインを担当してくださった id:mazco さんには色々ご迷惑をおかけしすみませんでした。そして、出来上がったデータを見る度に、こちらの想像をはるかに超える超良いデザインの制作物をありがとうございました。

前日・当日スタッフ業

 久しぶりのオフライン開催、前日は朝イチで会場入りする予定が、まさかの電車が人身事故で遅延という事態に。会場へ着いた時は id:azumakuniyuki さんが既に対応してくださっていて、久しぶりにお会いする挨拶する暇も無く資材を運んだり検品したり。集合時間が近づいてくるとコアスタッフ、ボランティアスタッフが徐々に集まりだし、懐かしい方々、今までオンラインでしかコミュニケーションをとった事がなかった方々が集まるについて気持ちが高まってきました。何か一つの目的の為に善意で人が集まって業務を進めるって何か良いよなーと。前準備で余り貢献出来なかった分、せめて現地の業務は全力を尽くそうと積極的に動きました。*2

 受付開始前は、受付へのノベルティの運搬や自分の発注担当したパネルや旗の設置の為、4階の資材置き場と1階アトリウムを何往復もしました。何往復もしましたが、特に疲れる事もなく、あとから土日の歩数をスマホで見てみると1日あたり13,000歩くらい、普段の通勤の時とさほど変わらない結果でした。

 日中は ”土俵部屋” で id:anatofuz さん、id:nhayato さん、 id:kaoru1615 さんと一緒に部屋番業務を。主に司会を担当しましたが、皆さん、的確に業務をこなされていて何の問題も無く、進行できたと思います。やはり、皆、積極的・自立的にやっていく気持ちで動く中で働くのはとても良い気持ちだと感じました。

やり残した事

 今回、開催準備期間中にキッズルームのアイデアが出てきたのですが、その時期が既に開催1ヶ月半くらい前で、予算面や準備時間の成約がかなり限られる中でどうすべきかを考える状況でした。自分の育児経験から、出来ない事を明確にしておかないと来場者の悪い体験につながるなと思ったので、かなり限定的な施策としました。このあたり次回は、入念に企画して、もっと良い環境が準備出来たら良いなと思いました。

コアスタッフ業

 YAPCのコアスタッフをすると、運営だったり、企画だったり、デザインだったり、配信だったり、発注事務だったり、色々なプロの匠の技を間近で見る事ができます。このすごい集合体の中に居るだけで、素晴らしい経験ができました。また、"YAPC"というイベントは帰る場所、ホームグラウンド、エネルギーをチャージできるお祭り、参加される皆さんが色々な想いを持たれている場所だと思います。その大切な場所は当たり前にある訳ではなく、誰かが熱い想いで守って持続しているからこそ継続できるものなのです。

 もし、少しでも"YAPC"って良いなー、少しでも一般参加者より、少しでも近付きたいなーと思ったなら、まだYAPC::Kyotoの熱が冷めやらぬ今こそ、次回YAPC::Hiroshimaではスタッフやってみるぞ!と心に決め、その情熱を少しでも長く持ち続けて欲しいなと思います。別にPerlを書いた事がなくても、エンジニアではなくても大丈夫、同じ方向を向いた熱い仲間達が歓迎してくれます!*3

*4

 最後になりましたが、コアスタッフの皆さん、ボランティアスタッフの皆さん、スポンサーの皆さん、JPAの皆さん、そしてとても大変な役割をしてくださった実行委員長 id:azumakuniyuki さん、実行副委員長 id:papix さん、ありがとうございました。

*1:発注先の製造業者もテレワークだった為、業務時間を少し過ぎたら連絡がとれなかったり、基本担当者以外に対応が出来ず、色んなタスクの督促メールを送っても返ってこなかった時は何も出来ない・進まないという場面に陥りがちでした。

*2:恐らくスタッフ陣の中で最年長のはず

*3:自分もエンジニアではありません!

*4:コアスタッフ業、仕事・家事・育児との両立が難しいところで、今回はかえって迷惑かけちゃったかなーと思っていたところ、懇親会でpapixさんに「Hiroshimaもよろしく」って言われてしまった。papixさんにそんなん言われたらやるしか無いやん!妻と子供に許可もらわなくては!

2023年、Perlをはじめてみよう!

この記事はPerl Advent Calendar 2022の8日目になります。 昨日の記事は @papix さんでした

初学者向けプログラミング勉強会、Perl入学式で運営サポーターをしている id:tomcha と申します。 このアドベントカレンダーを見ているのはベテランPerl Mongersの方々だと思いますが、これからプログラミングを初めてみたい!Perlを始めてみたい!といった職場の同僚や部下、学生さんなら学校の後輩など、周りの方にこの勉強会をオススメしてもられば幸いです。

Perl入学式は、プログラミング経験ゼロの人も参加できる、プログラミング初学者でも気軽に参加できる勉強会です。 手厚いサポートが売りの勉強会で、2022年12月現在、東京と大阪でオフラインで参加できる様、秋口より開催しています。 講師が講義をしながら、受講者さんは実際に手を動かして練習問題を解きながら習得していくスタイルです。全5回開催の構成となっています。

参加資格はパソコンの基本操作ができればどなたでも参加可能です。情報系の学校在籍、ITエンジニア以外でも問題なく参加できます。私自身も社会人ですが職業はエンジニアではありません。

特徴としては、

  • 今年度より、東京と大阪の会場で実際に集まるオフライン開催を再開しました。
    • みんなで集まってワイワイ楽しみながら学んでいます!
  • 少人数に絞って開催しているので、サポーターにほぼマンツーマンでアドバイスを受ける事ができます。
    • 未経験者にはとても嬉しい学習環境です!
  • 講義開催日だけではなく、Discord上で365日オンラインサポートをしています。お家に帰ってから湧いた疑問も問題なくサポートしております。
  • 無料です!

このように、初めて勉強会に参加しようと考えている方、ITエンジニア以外の職種や非情報系の学生さんなど、趣味として学びたい方でも参加可能な非常に敷居の低い勉強会です。

また、途中の回からの参加も可能で、過去の資料はすべて公式サイトで公開しておりますので、Discordチャットでのオンラインサポートや会場でのサポートを受けながらでも大丈夫です。

2023年、これからPerlをはじめてみたい方に是非おすすめしてください。そしてPerl Mongersをもっともっと増やしていきましょう!

www.perl-entrance.org

Perlのリファレンス記述で初学者がつまずくポイント

リファレンスの書き方を混同してしまうケース

 まずは変数である配列やハッシュの宣言やデータの格納方法を思い出してみましょう。配列やハッシュへ格納されるデータはリスト形式のデータが使用され、リスト形式のデータの書き方は列挙された値を()で括ります。

# 配列を宣言し値を格納する
my @month = ("April", "May", "June");

# ハッシュを宣言し値を格納する
my %price = ("apple" => 120, "strawberry" => 540,
             "orange" => 298, );

 配列やハッシュから各個別の値を取り出す方法は、変数名のシジル@や%を$に変更し、[]や{}を使用して各個別の値を直接指定します。

# 配列の先頭から2つ目のデータを取り出す
print "$month[1]\n";

# ハッシュからキーが’orange’の値を取り出す
print "$price{'orange'}\n";

 一方、配列やハッシュのリファレンスを作成する時は以下のコードの様に書きます。リファレンスを表す変数のシジルは$を使用します。格納されるデータは列挙された値を[]や{}で括ります。

# 配列リファレンスを宣言し参照先に値を格納する
my $eto_arrayref = ["子", "丑", "寅"];

# ハッシュリファレンスを宣言し参照先に値を格納する
my $price_hashref = {"tuna" => 220, "mackerel" => 100,
                     "salmon" => 150};

 配列やハッシュとリファレンスを見比べてみると、同じ記号が用いられよく似ていますが完全に記述が異なっている事が分かります。また、リファレンスの参照先の実データを取り出すことをデリファレンスと呼びますが、リファレンスから個別の値をデリファレンスして値を取り出す時は、[]や{}に加えて->を用いて以下の様にコードを書きます。

# 配列リファレンスから0番目の値を取り出す
print "$eto_arrayref->[0]\n";

# ハッシュリファレンスからキーが'mackerel'の値を取り出す
print "$price_hashref->{'mackerel'}\n";

 以上のようにデータを格納する時に()を使うのか又は[]や{}を使うのか、個別の値を取り出す時に->を使うのか使わないのか、文法を完全に覚えきってしまえば混同する事は無いのですが、初学者がなんとなく文法を思い出しながらコードを書くと混同して間違った記述をしてしまうケースがあり、間違った記述のままコードを実行してしまうと想定していた結果が得られず余計に分からなくなってしまうといった事があります。

WEB+DB Press 連載 Hackers Hubに寄稿しました

 今回ご縁あって、Perl Hackers Hub第72回の記事を、Perl入学式運営スタッフの id:xtetsuji id:sironekotoro さんのお二人と共著で記事を書かせて頂きました。
記事は「初学者に伝えたいPerl学習の勘所」というタイトルで、これからプログラミングやPerlを始める人達に向けた内容となっています。

 私が書いた部分は、初学者向けプログラミング勉強会でのサポーター経験から得た初学者が悩む場面に対してのヒント、初学者が今後成長していく為のはじめの一歩についてアドバイス、といった内容になっています。書店に並ぶ発売日が4月23日ということもあり、この春新たに就職や転職した方、新入学された方も多い時期なので、これからプログラミングやPerlを始める方にお勧めな記事となっています。

 また、本号の特集記事はDBの基礎やコミュニケーションの為の英語など、個人的にも大変興味深い初心者向け?記事が掲載されているので、とても楽しみです。

 今回執筆にあたって、狭いようで広いターゲットに向けて分かりやすい文章を簡潔かつ正確に書くという貴重な経験をする事ができました。普段業務でも文章を書くことは少なくは無いのですが、相当程度に完成度を上げる為、一つの文章を何度も何度も推敲を重ねてブラッシュアップする作業まではしていないので、これが世に出す為の文章の推敲なのか!と、とても勉強になりました。

 記事内でも触れましたが、コミュニティ活動を続ける事で、想像もしなかったチャンスが巡ってくるのだなぁと感慨深いです。

 誌面スペース等、諸々の理由で伝えきれなかった文章は沢山あって、今後何処かの場所でカタチに出来ればよいなと思います。

 最後に、今回、多大なるアドバイスやサポートを頂いた編集の稲尾さん、レビューとアドバイスを頂いた牧さん、全体指揮をとっていただいた id:xtetsuji さん、レビュー等アドバイスを頂いた id:sironekotoro さん、何かと作業で諸々の負担を引き受けてもらった妻と色々我慢をしてくれた2人の娘に感謝します。

YAPC::Japan::Online2022スタッフとして参加しました

2022年3月4日、5日に開催されたオンラインテックカンファレンス、YAPC::Japan::Online2022の感想ブログ記事です。

ボランティアスタッフに参加したきっかけ

2022年3月4日、5日に開催されたオンラインテックカンファレンス、YAPC::Japan::Online2022でボランティアスタッフをやりました。

きっかけはこのツイートをTLで見つけて、何かお手伝いできることがあれば出来る範囲なら...という気持ちでお声をかけさせていただきました。

普段は Perl入学式 という初学者向けプログラミング勉強会の運営スタッフとして、アマチュアながらも活動しています。

YAPCのスタッフは2017年に開催されたYAPC::Kansai以来で2度目。前回はオフラインの物理イベント、今回はオンライン配信でのイベントでした。

手を挙げてみたのはよいものの、オンラインイベントで何が実際お手伝いできるのか全く想像もつかず、また、前回と異なって現在は未就学児2名の子育て中なので、家庭や育児など時間的制約が独身時代とはまるっきり違う事もあり不安一杯でした。

スタッフをしての経験

今回は、Day1の懇親会で行われたライブコーディング大会の企画と進行、Day2のトラックAでの司会を主に担当しました。

定例ミーティングではGoogle Meet、日常の業務連絡は Slack, タスク管理は Googleスプレッドシート, アイデア出しなどは Google Jamboardと、普段ほとんど使わないオンラインツールで運営業務は進められました。最初は使い方も分からず、他のスタッフが何処を見て話をしているかを必死に追いかけるのが精一杯でしたが、オンラインミーティングの回を重ねるにつれ徐々に使い方も分かってきました。

オンラインでのイベント運営業務を経験できたのは非常に勉強になりました。普段業務で使っている方にとってこれらのツールは使いこなせて当前ですが、IT業界の方でもオンラインでの仕事の進め方を経験したい!習得したい!等のモチベーションがある方は、運営スタッフに手を挙げてみると良いのではないでしょうか。(次回YAPCも必ず有るはずです!)

スタッフをして良かったこと

配信担当の手法や準備、当日の手際などもプロ級のスゴ技で、こういう放送・配信の裏側を見る機会はとても貴重でした。オンライン越しの横から見ていても感心するばかりの匠の技でした。

その他、ノベルティや懇親会食事の手配・配送やピザスポンサー等の物流関係も、オフラインカンファレンスでは無かった仕事でしたが、ゼロから組み立てて最終的には完璧に達成されていたのも凄かったです。

自分がした事よりも、色々な事を目の当たりにできた経験がとても有意義でした。今回は冒頭に書いた様な制約もあり、自分ができる範囲の事はかなり限定的であまり役に立ったとは言えないのですが、微力ながら裏方業はとてもやりがいが有る仕事でした。終わった後の達成感がやはり違います。

フォローなど

スタッフミーティングは必然的に平日の仕事終了後で、子供の世話を妻にワンオペ育児をお願いする必要があり、遅く帰宅する時はお土産を用意する、懇親会食事の試食は妻も一緒に食べる等、また、子供も触れ合う時間が少なくなり色々我慢している部分もあるので、本番終わってから家庭内プチ打ち上げをしたり、コミュニティ活動を続けていく為のフォローは欠かせません。

まとめ

大規模カンファレンスの運営スタッフ、普段仕事では経験できない事がたくさん学べるので、趣味としても実益としてもとても良い経験になりました。

スタッフをしてみたいけれど、仕事が忙しく...家庭があるし...等々、躊躇してしまう部分はありますが、色々実情に合わせてやってみれば、何とかなるでしょう。

YAPCはまだ続くとの事ですので、次回スタッフ募集のお知らせがあれば、あなたもチャレンジしてみませんか?

令和弐年振り返りと令和参年抱負など

気付いたら令和2年は終わっていた。残る休みも3日も切ってしまった。 去年は2人目の子供の出生〜育児で1月2月はほとんど記憶が無い。 下の子はミルクをあまり飲まなかった事、子供部屋が上の子と同じだったので、夜中に下の子が泣くと慌てて別の部屋へ連れて行って毛布にくるまっていたくらいしか覚えてない。 3月くらいになって少し夜泣きも落ち着いて外出出来るかな〜と思った矢先にコロナ禍。育休の後半はコロナ禍で外出も何も出来ないまま職場復帰を迎えた。 職場に戻れば仕事がとんでもない事になっていて、仕事と育児でなんやかんやバタバタとしていたらあっという間に12月で、結局何も出来なかった感じで終わってしまった。 まぁ、上の子は会話でコミュニケーションがとれるくらい喋る様になり、下の子はヨチヨチ歩きに離乳食も食べられる様になり、振り返るときちんと成長していて感心したり嬉しく思ったり。

令和2年はほとんど何も出来なかったので、令和3年は色々と自分の事もやっていきたい。

読書

  • 結局本は1年で数冊くらいしか読めてなかったのでは?
  • 小説、技術書の積読は消化したい。

プログラミング

  • GoとDocker,VueのUdemyを最後までやる。
  • Goをもうちょっとマスターしたい。去年は簡単なアプリをちょっとしか書けてないので、もうちょっと規模の大きいプログラムを書きたい。
  • もうちょっと色々出来たと実感できるくらい色々やっていきたい。
  • Perl入学式オンライン、もっとコミットしていきたい。

音楽

  • ヴァン・ヘイレンが亡くなったり、時代の移り変わりが顕著に感じた。
  • ノイキャンヘッドホン買ったおかげで、通勤でポッドキャスト聞いたり、音楽聞いたりはそこそこ出来た。
  • ドラム、ギターの楽器演奏は全く出来なかった。職場近くに音楽スタジオを見つけたので、少しずつ再開したい。
  • Jazzライブは結局1回しか行けなかった。家庭と家計と相談しながら、もう少し行けるかな?

映画

  • 遂にヱヴァンゲリヲン完結。これは劇場で見たい。
  • AWAKEも見たい。上映期間中に映画館に行けるのだろうか。

子供

  • 色々と出来る様に成長してきた。
  • 3歳くらいになると、印象深い出来事は一生の記憶として残ると思うので(自分経験談)、色々楽しい体験をさせてあげたい。
  • 遊園地、歌、ダンス、お絵かき、絵本が好きなので色々体験させたい。が、頑張りすぎると自分の時間ががががが、、、

年明けにお酒を飲みながら思いつくままに色々書いてみた。 まぁ、仕事はそこそこに子供、家族、自分に色々時間を使っていきたい。

vimrcの旅 ~その4~

DAY7

dein vimプラグイン追加

call dein#add('itchyny/lightline.vim')            "ステータスバー
call dein#add('scrooloose/nerdtree')              "ディレクトリツリー表示
call dein#add('fatih/vim-go')                     "Goフォーマッタ
call dein#add('sheerun/vim-polyglot')             "多言語シンタックス・インデント調整
call dein#add('nathanaelkane/vim-indent-guides')  "インデント可視化

"Vim起動時にNERDTreeを起動

autocmd vimenter * NERDTree

" vim立ち上げたときに、自動的にvim-indent-guidesをオンにする

let g:indent_guides_enable_on_vim_startup=1

" ガイドをスタートするインデントの量

let g:indent_guides_start_level=2

" 自動カラーを無効にする

let g:indent_guides_auto_colors=0

" 奇数インデントのカラー

autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd  guibg=#262626 ctermbg=gray

" 偶数インデントのカラー

autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=#3c3c3c ctermbg=darkgray

" ハイライト色の変化の幅

let g:indent_guides_color_change_percent=30

" ガイドの幅

let g:indent_guides_guide_size=1

DAY8

"ステータスラインの常時表示&表示内容

set laststatus=2

"### インデント設定

set autoindent          "改行時に前の行のインデントを計測
set smartindent         "改行時に入力された行の末尾に合わせて次の行のインデントを増減する 
set smarttab            "新しい行を作った時に高度な自動インデントを行う
set expandtab           "タブ入力を複数の空白に置き換える
set tabstop=4           "タブを含むファイルを開いた際, タブを何文字の空白に変換するか
if has("autocmd")
  "ファイルタイプの検索を有効にする
  filetype plugin on
  "ファイルタイプに合わせたインデントを利用
  filetype indent on
  "sw=softtabstop, sts=shiftwidth, ts=tabstop, et=expandtabの略
  autocmd FileType c           setlocal sw=4 sts=4 ts=4 et
  autocmd FileType html        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType ruby        setlocal sw=2 sts=2 ts=2 et
  autocmd FileType perl        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType js          setlocal sw=4 sts=4 ts=4 et
  autocmd FileType zsh         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType python      setlocal sw=4 sts=4 ts=4 et
  autocmd FileType scala       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType json        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType html        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType css         setlocal sw=4 sts=4 ts=4 et
  autocmd FileType scss        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType sass        setlocal sw=4 sts=4 ts=4 et
  autocmd FileType javascript  setlocal sw=4 sts=4 ts=4 et
  autocmd FileType swift       setlocal sw=4 sts=4 ts=4 et
  autocmd FileType go          setlocal sw=4 sts=4 ts=4 et
endif