Hamamatsu.rb #86

Hamamatsu.rb #86、
今回は「プロを目指す人のためのRuby入門(通称チェリー本)」の読書会。
 
読書会形式でやるのは数年ぶりということでどういう形で進めていこうか全くノープランだったのだけど、
いろいろアドバイスをもらった結果、数項分(2.1.1 ~ 2.1.2とか)を黙読、その後意見交換という形式で進めていった。
著者の伊藤さんがFacebookでシェアしてくれたおかげで参加者も多かったし、意見交換のフェーズでは初心者から経験者まで発言が沢山あってかなり盛り上がったので良かった良かった。
 
 
チェリー本は"こういう書き方もできるけど一般的にはそうしない” と明言してくれるのが良い。
郷に入ってはというわけではないけど、例えば変数のネーミングルールとか、
Rubyistミームを押さえておくとおおよそ初心者から脱却した雰囲気のコードになるんじゃないかと思う。
 
と、偉そうなことを言いつつ。僕も雰囲気でRubyを書いているので
「あー、そーゆーことね、完全に理解した(←わかってない)」的な話題があったのは内緒だ。
 
 
マニアックな話題で盛り上がるのも面白いし、それで会場全体がガヤガヤしてるだけで全員の満足度がアガっているような錯覚に陥るのだけど、
実際のところはどうだったんだろう。
今回は初心者の方も多かったのでしっかり感想を聞いておくべきだった。これは次回への課題かな。
ほか、電子版だとページ番号がわかりづらいという意見があったので、発言するときに該当の箇所を明示する等、ある程度の運用ルールを定めつつやっていこう。
 
あと、例題を解いたコードを共有したいという意見もあって、これはどうしようかな。とりあえずgistに上げてURLを共有すればいいかな。
GoogleDocs上でコードを貼り付ければそれで事足りる気もするけど。
 
 
そういえば、聞いてみたけど結局これといった解決策がなかった話題を思い出した。
例えば以下のようなメソッドがあったとき、
 
def country_name id
  if id == "JPN"
    "Japan"
  end
end
 
このコードでは、”JPN"以外のidを渡した場合にはnilが返ってくるわけだけど、
以下のようにelseでブランクを返したりしない?って話。
 
def country_name id
  if id == "JPN"
    “Japan
  else
    ""
  end
end
 
最初のコードだとメソッドチェインしたときにnilでエラーになる。
 
pry(main)> country_name("JPN").length                                               
=> 5
 
pry(main)> country_name("JOR").length                                               
NoMethodError: undefined method `length' for nil:NilClass
 
この場合、country_nameといういかにもな名称なのできちんと文字列を返すほうが親切だよねとも言えるし、
(省略しているけど)どの条件にも合致しない=渡したidが不正、ということでエラーになるというのも正しい気がしてくる。
悩ましい・・・。

スマートスピーカー Hack Day in 浜松

先日、「スマートスピーカー hack day in 浜松」という仰々しいタイトルの勉強会を開催した。
内容はGoogle HomeAmazon Echoのそれぞれのスキル開発のハンズオンで、僕はAmazon Echoのハンズオンを担当。
 
持ち時間90分ということで、かなり駆け足で話していったので全員がゴールまで辿り着けたのかどうか怪しい。
そこは完全にこちら責任なので申し訳ないです。
ハンズオン資料はちゃんと作ったので、後はそれ見ながら進めていただければ・・・
 
Alexa開発辛いなと思ったのは、やはりAWSの知識が多少なりともないと混乱する、ということ。
まぁそりゃそうだわな、という話だけどLambda・Cloud9・IAM等の色々なサービスを行ったり来たりするのでそれぞれがなんのためのサービスか
理解していないと作業の内容がわからないし、知らない間に課金されている、ということになりがち。
そういう意味では初心者向けの内容では無かったなぁ。せめてアカウント登録は事前にやっておいてもらうべきだった。
 
 
こういう勉強会を開催するとだいたいほとんどが見知った顔ばかりになるのだけど、今回は半分くらい初めて見る方が来ていた感じ。
スマートスピーカーがテーマだったのが良かったんだと思う。
募集期間を眺めにしていたのも効いていたかも。
 
あと、Echo Spotをもっている方が居て羨ましかったw もっと色々見せてもらえば良かったな。
(てかEcho Showの日本発売はよ)

Hamamatsu.rb#85

Hamamatsu.rb #85を開催した。
今回は今後数回に渡って開催する読書会で使う参考書選び。

何人かが本を持参してくれたけど、「プロを目指す人のRuby」と「オブジェクト指向設計実践ガイド」が数冊ダブったのには笑った。
最終的には「プロを目指す人のRuby」に決定。

良い悪いという話ではなく、本の冒頭でもそういう人向けと書かれているので当然なのだけど、
たまに使い捨てのスクリプトRubyを書く程度の人には向かないよねという意見もあった。確かにそうだなーと思いつつも、
自分としてはRubyコミュニティを名乗っている以上、Rubyistの一般的なレベルに参加者のRuby力を底上げしていきたい気持ちがある。
だから「Rubyならこう書く」というTipsが網羅されている「プロを目指す人のRuby」は最適と感じたわけです。

読書会という体だけど、座って本を読んでるだけだと眠くなるので
(白状すると、最初にメタプログラミングRuby読書会をやっていたときは何度か寝落ちした)
多少は実際にコードを書いてみるという時間も挟んでいきたい。
その点でもサンプルコードが沢山載っているので良い課題図書かなと。

 

Hamamatsu.rb #84

 

2/14にHamamatsu.rb #84を開催した。今回はビブリオバトル

Hamamatsu.rbはいちおうIT勉強会だけども、初めてのビブリオバトルなので発表する本については特に制限を設けないことにした。
(みんな技術系の本を持ち寄るだろうと思ったし、実際ほとんどそうなった)

僕はリーナス・トーバルズの自伝、『それが僕には楽しかったから』にて参戦。
選んだのはいいものの、読んだのが5〜6年前で内容をほとんど忘れているという散々な状態。
5分という持ち時間は意外と長く、LTで資料を見つつ話しているとあっという間なんだけど、事前準備もせず資料も無しの状態で5分話すのはなかなか緊張した。
何度同じようなフレーズを口走ったことか・・・。

リーナス・トーバルズ氏はメーリングリストでの口の悪さや、N◯DIAへのf**kサインなどで一部では有名なのだけども、
この自伝を読むと「まったくしょうがないやつだなぁ〜、リーナス君は〜」的に妙な親近感をもって生暖かい目で見ることができるようになる。


面白かったのは、皆それぞれのキャラに全くブレない本をチョイスしていたこと。
(自分の性格を指して“キャラ”と呼ぶことに自分はわりと抵抗があるのだけど、ここではコミュニティ内で限定的に共有されている各メンバーの思想や立ち位置を指しているつもり。”ロール"と呼んだほうが良いかもしれない)
初回ということで皆とっておきの一冊を持ってきたんだと思う。

ということで、
なかなか楽しかったビブリオバトルだけど、ほとんどRuby関係無かったので次回は今後数回の課題図書とするRuby本選びです。

サウンドデザインフェスティバル in 浜松 2017

ハママチューン発表では入選できなかった。
(ちなみにグランプリの商品はAmazon EchoとFireTV Stickだって。いいなー。)
 
プレゼンに失敗した後はとても凹んでしまい、それ以上凹みたくなかったので他のチームの発表は見ないようにしていたのだけど、
チームメンバーから聞く限り結構エンターテイメント性も加味したプレゼンだったらしい(入選した3チームは皆仮装していたらしい)
 
1日経って、気分が落ち着いてきたので敗因をまとめておく。
 
  • 制限時間内に話し終えられなかった
  • 相手が何に期待しているのか、何を評価してくれていたのか読みきれなかった
  • 練習不足
  • プレゼンのストーリーが破綻していた
 
前回は戦略的に勝てたと思っていたのだけど、今回はそれが全て裏返って敗因となったように思う。
あと、精神論で言えばハママチューンで入選したことで完璧に驕っていたし、今回発表することも正直「だりー、面倒い(高校生がよく言うやつ)」と思っていた。
 
ということで、大失敗もいいとこな発表だった。
チームメンバーにも申し訳ないことをしたけど。
 
・・・・
 
実を言うと、今回上手いこと入選できれば市の中の人とパイプができるかなーと期待していて、
そうすれば普段僕らが活動しているITコミュニティとのシナジーが生まれるんじゃないかと淡い期待も抱いていたのだけど、もろくも崩れ去ってしまった。
 
 
市長がハママチューンを「浜松市で初のハッカソン」と呼んでいたのだけど、数年前に開催されていた浜松ハッカソンのことを知っている身としてはほんとうに悔しい。(ハマッカソンこと浜松ハッカソンは2010~2015にかけて5回ほど開催されている。)
ハマッカソンの告知を見たとき、ついに!あのGoogle発の!ハッカソン!が浜松でも開催されるのか!と思ったのを覚えている。
僕はただただ見学するだけだったけど、あのイベントはけっこう僕の人生に影響を与えている。
だから、出世だの起業だの体の良いことを言いながら後からやってきて嘘を吹聴されるのは正直癪だ。
 
まぁ、見つからない場所にしか居ないお前たちが悪い、というだけの話だから
(けっきょくこんなところに愚痴るか)認められることでしかこのモヤモヤは解消できないだろう。
Rubyに関して言えば6~7年もやっているのに松江とか福岡のように注目されないのには本当に力不足を感じていますよ。
なので、政治力とかコネのようなものも利用して認めさせるしかないよね、という気分になっている。
 
自分の功名心も当然あるのだけど、コミュニティで出会った人たちがみなniceでプログラミングやIT技術に対して情熱を持っているので、もっともっとスポットが当たって欲しいと思うわけです。
 
 
---
 
ところで、サウンドデザインフェスティバルでも↓の動画が展示されていた。
元々は2016年に開催された「世界音楽の祭典 in 浜松 2016」のオープニング動画で、三宅純氏の曲がとにかくカッコよかったので即チケットを買った。
今回のサウンドデザインフェスティバルでもアドバイザーとして名前が載っていたけど、また浜松で公演してくれないかなぁと待っている。
 
 

Hamamatsu.rb #82

今回も前回と同じく、RubyGems探索。
最近、ネタ切れ・初心者向けサポート不足という課題が浮き彫りになってきた。
 
ネタなんていくらでもあるじゃんと思われるだろうけど、初心者から経験の長い人まで幅広く居るので、その全員が学びを得られるネタを探すのはわりと難しく感じる。
RubyGems探索は一人でもくもくする時間が主なので経験の浅い人でも自分のペースで進められるかなと思ったのだけど、
全くRubyを触ったことが無いという人にはやや厳しかった様子。
 
以前、Ruby逆引きレシピからランダムでページを選んで写経する、というのをやったけど、あれをまたやってもいいかも。
初心者はただ写経すればいいし、上級者は好きに書いて最期にコードを紹介してくれれば他の人達にも参考になるだろうし。
まぁ、ハマルビももう5年以上やっていて、参加者全員がなにかしらレベルアップしていくことが望ましいと思ってるので模索は続くでしょうね。
 
今回話題に上がったgem達。ざっくりした機能は聞いたけど、念のため後で調べる。
- postwill
- slop
- scientist
- reek
- type_attributes
- puma-dev
 
そういえば、今更ながら「Ruby Tuesday」という曲を知った。ストーンズの曲なのだけど、色々なミュージシャンにカバーされている。
僕はThe Corrsがカバーしているバージョンが好きです。