Perlがくしゅう帳(Rubyも)

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

もくもく会 なにわPerl#14を開催しました

もくもく会 なにわPerl#14を開催しました。

なにわPerlとは

基本は初心者・初学者向けの自習スタイルの勉強会(もくもく会)です。お題を決めて何かをする企画の会もあります。

naniwaperl.connpass.com

f:id:tomcha0079:20180612203616j:plain:w280

続きを読む

吉祥寺.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

最近Macで急にRailsコマンドが使えなくなった時にした解決方法

本町で開催されているDDD.rb主催のもくもく会に参加してきました。

dddrb.doorkeeper.jp

その中で、今まで使えていたRailsが急に使えなくなり、エラーメッセージが「ffi の vative extensions がどうしたこうした...」という現象を相談している方がおられ、

「ん?ffi ?それ、昨日自分も同じ現象でハマってたやつでは?」

同じハマり方をしているケースも多々ありそうだったのでブログ記事を書いてみました。
具体的には、「MacOS High Sierra」を利用中で、OSのバージョンアップをしているケースと想定されます。
そして、以前にインストールしていた時は問題なくRailsコマンドが使えていたのに、久しぶりにRails new するとエラーでコケてしまうという現象です。

Rails new や Rails server 等、Railsのコマンドを実行しようとすると....

Fetching ffi 1.9.21
Installing ffi 1.9.21 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

ffi のGemのエラーが出るやつでした。

自分がとった解決方法は、RubygemsffiのGemを見てみると、

https://rubygems.org/gems/ffi/versions

どうらら2018/2/6にアップデートされており、1月に使えていた時とバージョンが違ったので、 Gemfileを編集してffiを一つ前のバージョン固定でインストールしてみました。

<Gemfile>

 gem 'ffi', '1.9.18'
bundle install

Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Using rake 12.3.0
.
.
.
Bundle complete! 9 Gemfile dependencies, 48 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

無事にGem がインストール出来てRailsコマンドが使えるようになりました。
自分の環境はrbenvを使ってsystemのRubyを使ってなかったので、bundle installコマンドはユーザー権限でインストールできましたが、rbenvを使わずに直接railsをインストールしている場合、sudo bundle install する必要があるかもしれません。(自己の環境では未実施)

もくもく会

  • 書籍「プロを目指す人のためのRuby入門」の練習問題の復習
  • Railsを使ったAPIの作り方
  • Reactを使ってviewを描画するウェブアプリの事

で、Reactは名前を聞いた程度で、概念、方法など全く知識が無かった事だったのでとても勉強になりました。

Perl入学式卒業後の進路 YAPCでトークを採択された時こころがけた8つのポイント

Perl入学式アドベントカレンダー18日目の記事です。

Perl入学式を受講していた初心者がYAPCトークを応募し、採択された時の事についての記事です。

f:id:tomcha0079:20170707221531j:plain:w300

 まずは前提となる簡単な自己紹介です。

  • 2012年Perl入学式に受講生として参加。
  • Perl入学式卒業後、2013年からはサポーターとして参加。
  • YAPC::Kansai2017Osakaコアスタッフをしました。
  • 社会人ですが、エンジニアではありません。

 そして、YAPC::Fukuoka2017HakataでPerl入学式卒業生として始めてトークをしてきました。(その時の様子ブログ)

イデア出し

 YAPCトークに応募したい!と考えて最初にする事は、何を話すかを決めることですね。話すネタは沢山ある!という方は大丈夫だと思いますが、私はとにかくアイデアを色々出してみました。とにかく思いつく事をノートにたくさん書き出しました。

  • イデア出しのポイント
    • 自分が話せること、自分では話せない(無理なこと)を明確にする
    • 自分が話せることのうち、自分にしか話せない事があるのか
    • YAPCのテーマと自分が話せる事をリンクさせる
    • トークの起承転結(ストーリー)、伝えたいこと(まとめ)を考える

 大事な事ですが、やはりYAPCのテーマに沿ったトーク内容は採択される率が高いのかもしれません。そして、自分にしか話せないオリジナルな部分があれば、他の応募者とテーマがかぶったとしても有利になるのではないでしょうか。
 今回意識していた事は、私はエンジニアではないので難しい技術的なトークは無理(弱点)ですが、逆に非エンジニアの視点での話は自分にしか出来ない(強み)と考えてテーマを決めました。

トークに応募しよう

 テーマが決まれば公式サイトのトーク応募フォームから応募しましょう。
 この時に大事だと考えていた事は2つです。

  • 応募のポイント
    • 応募の時期は早めに
    • プロポーザルの内容(と文量)

 まず応募の時期ですが、締め切りギリギリよりも余裕をもって、できれば早めにと心がけました。
 その理由は2つあり、1つ目はトークへの応募を自分のゴールとしていた事です。まさにトークを応募する練習みたいな感じで考えていたので、アイデアもじっくり練り必然的に早めの応募となりました。2つ目は早い時期の応募だと運営側の人にも余裕をもってプロポーザルをじっくり読んでもらえると思ったからです。
 そしてプロポーザルの内容ですが、応募の動機や伝えたいこと、テーマとの関連性を丁寧に書くことを心がけました。特にテーマとの関連性を丁寧に説明するは重要かと思います。自分が思っている事を他人に伝えるのは本当にむずかしく、プロポーザルはほんの数行の文章で説明する訳ですから、文章も何度も書き直しました。
 YAPC打ち上げの時、自分のトークが採択された理由をとある運営スタッフさんに聞いてみると、きちんとプロポーザルの文章を読んでくれた上で必要だと判断してくれたと聞き、頑張って良かったなと思いました。

スライドを作ろう

まずはテーマに沿って話す順番を箇条書きにして整理しました。
一番伝えたいことをメインに考え、トークのあらすじ、起承転結をノートに色々書き出して考えました。
f:id:tomcha0079:20171216213519j:plain:w200f:id:tomcha0079:20171216213544j:plain:w200f:id:tomcha0079:20171216213557j:plain:w300f:id:tomcha0079:20171217163602j:plain:w300

スライドの作り方ですが、印象的なお題をポンポンポンと書かれる方、ソースコードを書かれる方、色んなスタイルがあると思います。
色々なスタイルがあると思うので、私は過去の発表者の方のスライドを色々見て考えました。スライドを作る時に心がけた事は、1枚に情報量が多くなりすぎて見づらくなるのを避ける事を心がけました。

トークの練習をしよう

 トーク採択のメールを受け取ってからは、相当のプレッシャーでした。というのも、ツイッターで著名な方やトーク常連の方が「トーク採択されなかった」というツイートを見て、本当に自分のトークで良いのだろうか?必要とされているのだろうか?と思ってしまう葛藤もありました。ですが、運営スタッフの方もプロポーザルを読んで真剣に悩んでトークを選ばれている姿はKansaiのコアスタッフをしていた時に知っていたので、とにかくトークを採択されなかった方々に失礼にならないよう、全力で頑張ろうと思いました。
 そして、会社帰りや休みの日にカラオケボックスに1人で行き、作ったスライドをノートパソコンで再生しながら実際に喋ってトークの練習をしました。これ、かなり重要です。

 自分の場合は、時間を測って実際に喋ってみると、スライド作成時に気負いすぎたのか、作ったスライドが持ち時間の約5倍分あったことが発覚しました。

 スケジュール的には、本番の3週間前からスライド作成し、1週間前には完成させてトーク練習を開始するスケジュールでしたが、実際に練習を開始できたのは本番3日前くらいでした。ここからトークの主旨を崩さないでスライドを間引いてトークを短くする、そしてまた練習して時間を測って収まる様にするのがかなり大変でした。
 普段は行かないカラオケボックスに4〜5回は行ったでしょうか。自分の喉の限界もあり、1時間かりても20分のトークなので練習は2〜3回しかできません。
 実は福岡上陸後、前夜祭が始まるまでに現地のカラオケボックスでも最後の調整と練習をしていました。

 実際に本番で喋ってみて、20分のトークでしたが体感では5分くらいでした。それぐらいあっという間に時間は過ぎてしまいました。

トーク後の感想

 懇親会で色々な方からトークの感想が聞けて、とても感慨深いものがありました。中でも、ベストトークに票を入れたよと言って下さった方もおられ、心底本当に良かったなと思いました。自分の中ではベストトークで1位を取る喜びに匹敵する、いやそれ以上に嬉しかったですね。なかなか普段の仕事の中では出来ない貴重な体験が出来たことに感謝です。

 さて、2018年3月3日にYAPC::Okinawa2018 ONNASONが開催されます。そしてトークの応募はもう始まっています。

docs.google.com

 Perl入学式の卒業生のみなさんも、少しでも発表に興味があったり、伝えたい事があるなら、トークに応募してみませんか?

 自分のトークYAPCに相応しくないかも?自分のトークYAPCのレベルに達していないかも?

 そんな不安はきっとあると思います。ですが、本当にそうであれば、きちんと運営スタッフの方が判断をしてくれます。
 自分の中で出来ることのベストを尽くす事にのみ専念すれば良いと思います。大丈夫です!

 臆することなくチャレンジしてみましょう!

 そんな感じでYAPC::Okinawaへ架け橋をかけたところで、2017年Perl入学式アドベントカレンダーの記事を締めくくりたいと思います。

京都の旅館で1泊2日のもくもく開発合宿に行ってきました

9月16日〜17日にPerl入学式となわにわPerlからの派生イベント、京都の菊香荘という旅館で1泊2日の開発合宿”キッカソン”を開催しました。前回のキッカソン第1回は2016年3月開催で、約1年半ぶりの京都太秦。今回も別名Perl修学旅行の名の通り、今回もわいわい楽しいイベントでした。菊香荘+ハッカソン=キッカソンです。

f:id:tomcha0079:20170916123109j:plain:w200 f:id:tomcha0079:20170916125218j:plain:w200

今回はPerl入学式サポーターメンバーに参加を募り、総勢9名の参加でした。

初日の13時に菊香荘に現地集合。開発する場所は旅館の大広間スペースを借り、夕食タイムの19時30分まで全員がっつりと集中し、それぞれ持ってきた課題にチャレンジしました。

今回の開発タイムには、お酒のデプロイは無くかなり集中したので、かなりの進捗と成果が得られました。開発合宿にアルコールは割りとキケンですね。

開発の様子です。

f:id:tomcha0079:20170917184526p:plain

夕食は菊香荘の夕食を。写真のお料理の他、舞茸の炊き込みご飯、牛肉の豆乳鍋、そして松茸と鱧の土瓶蒸しまであり、豪華なお食事でした。

f:id:tomcha0079:20170916192225j:plain:w500

そしてなんと偶然にも、キッカソンを一緒に主催している @xtetsuji さんの誕生日で @hiramatsu さんがバースデーケーキをサプライズで準備され、みんなで食後に美味しくいただきました。 @xtetsuji さん、おめでとうございます!

f:id:tomcha0079:20170917184114p:plain:w200

夕食の後は深夜0時頃まで技術のことやら色々語り合い、その後就寝。

そして朝ごはんはこちらです。菊香荘では朝食の後にコーヒーとビスケットが出ます。

f:id:tomcha0079:20170917082538j:plain:w300

朝食後も大広間で午前の部の開発やディスカッションを11時30分まで実施し、解散となりました。
心配していたお天気、台風も大丈夫でした。

キッカソンの成果は

普段はなかなか長時間プログラミングをする機会もなく、長時間集中して開発できてとても良かったです。
今回自分で設けたお題は、オブジェクト指向の練習の為にどうぶつしょうぎプログラムを簡易クラス図、簡易シーケンス図を先に作って整理しながら設計してコードを書く事でした。普段の細切れの時間ではなく、長い時間試行錯誤できたので時間あたり普段の何倍もの進捗が出ました。

一人で作業をすると、難しくて詰まる事や、なかなか集中できなかったりしますが、集まってもくもくすると集中出来て効果的です。
また、お互い色々教えあったり、情報交換出来たりと良いことがいっぱい。しかも、普段は遠方に住んでいるの仲間たちとも楽しく出来るのが最高です。

とても有意義な2日間でした。また行きたいですね。