ゆるふわ.rb in 大洲 〜やってみようスクレイピング〜 を開催しました
11/2(日) にゆるふわ.rb を開催しました。
今回のテーマは「スクレイピング」で、説明を兼ねた私のライブコーディング後に参加者のみなさんにも実際に手を動かしてもらいました。
ゆるふわ.rb in 大洲 〜やってみようスクレイピング〜 - ゆるふわ.rb | Doorkeeper
まずは自己紹介から
はじめに参加者のみなさんに簡単に自己紹介してもらいました。今回初めて来られた方もいて、まだまだゆるふわ.rb の多様性も広げていけるな〜という可能性を感じました。
また、意外だったのは「スクレイピング」というテーマに惹かれて来ましたという方が複数人いたことで、面白くて参加したくなるようなテーマをこれからも考えていきたいと思いました。
スクレイピングの説明&ライブコーディング
次に私から参加者のみなさんへ、簡単にスクレイピングの説明をしてライブコーディングに入りました。ライブコーディングは irb で、まずは open-uri を使ってサイトの情報を取得してみました。
open-uri は Kernel.open を再定義してくれるもので、open("http://xxx") という形式でサイト情報を取得できるようにしてくれます。(スクレイピング対象はHeartRails のサイトにしました。)
irb> require 'open-uri' irb> url = "http://www.heartrails.com" irb> hr = open(url) irb> hr.each_line do |l| irb> p l irb> end
このコードを実行すると、対象サイトの HTML が出力されます。(スクレイピングの入り口ですね)
次に「ではタイトルを取ってみましょう」ということでコーディングしてみました。
irb> require 'open-uri' irb> url = "http://www.heartrails.com" irb> hr = open(url) irb> hr.each_line do |l| irb> if l.include?("<title>") irb> start_index = l.index("<title>") + "<title>".length irb> end_index = l.index("</title>") irb> p l[start_index...end_index] irb> end irb> end # => "HeartRails | ハートレイルズ | ザ・ウェブサービス・カンパニー"
<title> ディレクティブで検索して、見つかったらその中身のデータを出力するようなプログラムになっています。
まぁこれでも OK なんですが、ちょっと <title> の中身を取るところの処理が長いですね。。。
そこで次は nokogiri を使ってもっと簡単にしてみました。
nokogiri は HTML/XML パーサーで、Nokogiri::HTML(open("http://xxx/")) という形式でサイト情報をパースしてくれます。
irb> require 'nokogiri' irb> hr = open(url) irb> noko_hr = Nokogiri::HTML(hr) irb> noko_hr.methods.grep /title/ # => [:title, :title=] irb> noko_hr.title # =>"HeartRails | ハートレイルズ | ザ・ウェブサービス・カンパニー"
nokogiri を利用するとすでにタイトル部分はパースされているため、noko_hr.title とするだけでタイトルが取得できます。
利用しない場合に比べるとずいぶんシンプルなプログラムになりました。
スクレイピングしながらビアバッシュ
続いて参加者のみなさんにスクレイピングにチャレンジしてもらいました。やってもらったのは HeartRails のサイト内の Services のリンク(<a href=...> の部分)とサービス名を表示するというもの。
みなさんあまりおしゃべりもせず結構真剣に挑戦されていました。
その光景を見て「ゆるふわ.rb っぽく無いな〜」と思って笑ってしまいました(笑)
今回は参加いただいた越智さんのつながりで、ボノ株式会社さんと Skype でつないで交流を深めるという新しい試みも実践しました。
残念ながら Skype では刺身は送れないので、しっかり見せびらかしながら食しましたよ(笑)
ボノ株式会社|Bono Inc.
ちょっと写真では分かりづらいんですが、後ろに写っているオフィスは倉庫を DIY したそうです!
次はキッチンを導入予定らしく、もしキッチンが出来たら出張ゆるふわ.rb で魚のさばき方勉強会リターンズなんてのをさせてもらったら面白いかも?なんて勝手に思ってたりします(笑)
まとめ
今回久しぶりにゆるふわ.rb を開催しましたが、何人もの方にこうやって田舎まで足を運んでもらえることは本当にありがたいなと改めて思いました。これからもこういう人とのつながりを大事にしつつ、面白いテーマでみんなでワイワイ ruby を楽しめる場を提供していけたらと思います。
参加いただいたみなさん、ありがとうございました。
DevLOVE甲子園2014 西日本大会に出場しました。
DevLOVE甲子園2014 西日本大会に出場しました。
DevLOVE甲子園2014 西日本大会 - DevLOVE関西 | Doorkeeper
DevLOVE甲子園には昨年も参加させて頂いたんですが、今年はスタッフとして事前準備から関わり、光栄なことに選手宣誓まで担当させて頂きました。
西日本大会には120名くらい(?)参加者がいたのですが、もちろんその中で選手宣誓が出来るのは1人だけです。
こんな刺激的な機会を与えてもらってとても嬉しく思います。
選手宣誓の内容
宣誓!
われわれIT技術者一同は、自らの現場を持ち寄り、共有することでお互いの気付きを促すとともに
いまの現場を、少しでも改善するきっかけを掴むために、他者の現場の話に耳を傾け
明日の現場を、より魅力的で楽しめるものにすることを誓います。
というか誓わないと・・・ダメよ〜ダメダメ平成26年 8月23日 DevLVOE四国 荻野浩史
・・・お気付きですよね?
オチとして今話題の日本エレキテル連合をパロってみました。
宣誓後には見事に生暖かい空気が会場を包んでいました(笑)
選手宣誓直後のツイート、違う意味で登壇者のハードルを上げてしまったらしいです(笑)
あれ?今日ってそういうノリなの? #devkan
— 口玉(西の緊縛[ゴールデンボンバー]) (@Kuchitama) 2014, 8月 23
違う意味で発表のハードルが上がった!どないしよ… #devkan
— 口玉(西の緊縛[ゴールデンボンバー]) (@Kuchitama) 2014, 8月 23
全登壇者のハードルがある意味で爆上がりの選手宣誓 #DevKan
— だいくしー零式 (@daiksy) 2014, 8月 23
こんなに体を張った笑いをとらないといけないのか #DevKan
— 花嫁修業中のどんまいこ (@mnakajima18) 2014, 8月 23
確かにその直後の一回表の発表を聞きに行った先で「私の発表内容はごく普通です、選手宣誓の後でやりずらいですが頑張ります」的なことを登壇者が言ってましたね(笑)
私は四回裏に登場して「"地方エンジニア" という考え方はすでに終わっている」というテーマで発表させて頂きました。
こちらは以前DevLOVE四国で発表させて頂いた内容の再演です。
初めは別テーマでの発表を考えていたんですが、四国外の方々も巻き込んで地方で生きるエンジニア像みたいなことを考えてみたかったので再演することにしました。
この資料は公開後にそれなりに反響があったものなので、ひょっとしたらネタバレして誰も聞きに来てくれないかも、と少し不安を抱いていましたが、思ったより多くのみなさんが聞きにきてくれました。
そして発表後には「凄く面白かった!」とありがたい声もかけてもらってホッとしました。
自分の発表以外の時間は色んな現場の話を聞いて回りました。
さすが西日本大会だけあってツワモノ揃いで、笑いあり熱意ありの興味深い話が数多く繰り広げられていました。
そんな中、見事に MVP を獲得されたのははてなの栗栖 義臣さん、なんと 8/1 に社長に就任されたそうです!
今回は対話する機会が無かったので、また次回どこかでお会いした時にお話してみたいです。
そんなこんなで西日本大会は終了、次は50名以上で飲み屋に突入するという懇親会です!
懇親会では恒例のLT大会も開催され、10名以上の方がエントリーされていました。
酒に飲まれてテンションの上がった私もLTに飛び入り参加させて頂きました、資料無し&ビール片手で(笑)
話すことは何も決めてなくて、とりあえず「リモートワーク良いよ」的な話をしようと思ったんですが、私のリモートワークを選択するに至る経緯を話している内にあっという間に5分経って途中で終了。
周りの方に「続きがめっちゃ気になるやん!」って言われたんですが、酔っ払ってた私はすでに何をどこまで話していたかさっぱり覚えてません・・・きっとこの続きが話がされることは永遠に無いでしょう(笑)
そんなこんなで楽しいひと時があっと言う間に過ぎていきました。
今回は名古屋の勉強会で知り合いになったたくさんの方と再会したり、打ち解け合う新しい仲間が出来たりと実りの多い勉強会となりました。
また、前回も思ったことですが、こうやって自分の現場と向き合い、より良くするために努力し、挑戦し、熱くなる。
そんなエンジニアがたくさんいる日本のIT業界はまだまだ捨てたもんじゃないなと思います。
自分もそんな周りの熱意に負けないよう、もっと精進していこうと思います。
スタッフのみなさん、参加者/登壇者のみなさん、お疲れさまでした。
またどこかで会って、お互いの現場を語り合いましょう!
ゆるふわ.rb in 大洲 〜魚のさばき方勉強会やります〜 を開催しました
8/2(土) にゆるふわ.rb を開催しました。
今回のテーマは「魚のさばき方」ということで、Ruby の要素を一切排除して(笑)、参加者のみなさんに実際に魚をさばいてもらいました。
ゆるふわ.rb in 大洲 〜魚のさばき方勉強会やります〜 - ゆるふわ.rb | Doorkeeper
ウェルカムドリンクはかぼちゃの冷製スープ
いつもゆるふわ.rb のウェルカムドリンクはみそ汁を用意してるんですが、今回は暑い真夏の真っ只中で冷たいものがいいだろうということで、かぼちゃの冷製スープにしました。これは前日に仕込んだんですが・・・かぼちゃの冷製スープは少し煮込んだあとに牛乳を入れてミキサーにかけて作るんですが、ちょうど作ってる時にミキサーが壊れてうんともすんとも言わなくなったんです。。。
仕方ないので全て手作業で裏ごしして作ったという涙無しでは語れない裏話があってですね・・・「美味しいですね」と言われたときは本当に嬉しかったです。
魚のさばき方を実演
ウェルカムドリンクを楽しんでもらった後、参加者のみなさんに簡単に自己紹介してもらって、早速さばきに入りました。今回はアジのさばき方を学んでもらうべく、まずはわたしが実演しました。
こんな感じに説明しながら実演しました。
みんなでさばいてビアバッシュ!
次に参加者のみなさんにさばいてもらいました。結構みなさんうまかったです。
アジだけでなくゆるふわ.rb恒例の鯛や市場でサービスしてもらったイカなども振る舞いました。
鯛のあらを焼いたり途中で塩サバ買って来て焼いたり、今回はとにかく豪勢でしたね〜
これでも一応 Ruby の勉強会です(笑)
まとめ
今回は Ruby コミュニティでありながら一切 Ruby に触れないという暴挙に出てみました。その結果、多くの方が Ruby ではなく魚に引き寄せられくるということが分かりました(笑)
とはいえ、美味しい料理やお酒が入るとみんな真面目に仕事の話とかこういうサービスがあったらいいねとか色々話が弾むんですよね。
そうやって熱い話が出来る場としてゆるふわ.rb があるというのは主催者冥利に尽きるな〜と思っています。
また、今回もエンジニアだけでなく、デザイナーさんや学生さんにも参加して頂きました。
ゆるふわ.rb ではプログラム一辺倒の勉強会ではなく、このような多様性も大事にしたいと考えていますので、これからも誰でも集まりやすく、楽しめる場を提供できるようがんばっていこうと改めて思える1日となりました。
ご参加頂いたみなさん、ありがとうございました。
Agile Japan 2014 四国・徳島サテライトに参加しました
Agile Japan 2014 四国・徳島サテライトに参加しました。
Agile Japan 2014 四国・徳島サテライト&産直セッション - Agile459/アジャイル四国 | Doorkeeper
毎年 Agile Japan の四国サテライトは愛媛で開かれているんですが、今年は徳島県で話題の神山町で開催されました。
神山町は四国内だけでなく全国的に有名な地区となっていて、以前からいつか行ってみたいと思っていたのでノリノリで参加しました。
当日の内容はざっくりこちらにまとまっています。
AgileJapan2014 徳島サテライト #agilejapan #agile459 - Togetter
会場は山のコワーキングスペース
会場はコンプレックスというコワーキングスペースでした。セッション中にウグイスの鳴き声が聞こえるくらい自然に囲まれた場所でした。
神山バレー・サテライトオフィス・コンプレックス
そして周りは大自然!!
「働き方と生き方 ? 地方とソフトウェア開発と幸せな生き方について考える」
徳島でのセッションは「働き方と生き方 ? 地方とソフトウェア開発と幸せな生き方について考える」というテーマで実施されました。実際に神山町で働いている Sansan さんやダンクソフトさんのエンジニアの方々がそれぞれの働き方やサテライトオフィスへやってきた理由などを語ったり、同時接続していた東京会場や広島会場からの質問に答える形式で進んでいきました。
といったような質問が出てそれぞれの方が回答してたんですが、私とは少し観点の違う回答もあって新鮮でした。
同じリモートワーカーとして、いつかその辺も話してみたいな〜と思いました。
サテライトオフィス見学
その後いくつかのセッションを終えた後、神山のサテライトオフィスを見学させて頂きました。コワーキングスペースの一角をオフィスにしているダンクソフトさん、古民家を超おしゃれに改装して(?)オフィスにしているプラットイーズさん、一見すると普通の家にしか見えないオフィスの Sansanさんと多様なオフィスを見せて頂きました。
ダンクソフトさん、なぜかチェンソーと隣り合わせです ( ̄Д ̄;)
プラットイーズさん、このおしゃれな古民家風のオフィスを通称「えんがわオフィス」と言うそうです。
まとめ
今回の徳島セッションでは「働き方と生き方」というテーマの元、リモートワークについて語り合う場となりました。今までこの規模でこういったことが語られることはあまり無かったと思うので、首都圏の方々にとっても多様な働き方を考える良いきっかけとなったのではないかと思います。
私自身、リモートワークという働き方にとても幸せを感じていますし、エンジニアとして自分を成長させることの出来る働き方だと思っています。
これからもリモートワークが働き方の選択肢の1つとしてもっと広まっていくことを願っています。
私もその一端を担えるようにこれからも頑張っていきたいと思った週末でした。
ゆるふわ.rb in 大洲 〜刺身とお寿司とTDD〜 を開催しました
GW後半戦のまっただ中の 5/4(日) にゆるふわ.rbを開催しました。
今回はお寿司を頂きながらTDDを実践する場としました。
ゆるふわ.rb in 大洲 〜刺身とお寿司とTDD〜 - ゆるふわ.rb | Doorkeeper
チェックイン&TDDライブコーディング
はじめに参加者のみなさんに自己紹介・・・の予定だったんですが、自己紹介が必要ないくらい集まったのは顔見知りの方ばかりだったので、そこはサクッと済ませてTDDライブコーディングに入りました。ライブコーディングでは以下の3点をポイントとして ゆるふわ.rb in 大洲 〜刺身とお寿司とTDD〜 - ゆるふわ.rb | Doorkeeper に載せている「図書APIを作成せよ」という架空の問題に取り組みました。
- テストファーストを原理主義的に守らない
- テストフレームワーク(今回使ったのはRSpec)だけで実践しない、必要に応じて spec を書く前に実際に動かしてみる
- inside-out なアプローチではなく outside-in なアプローチをとる
1点目は、TDDの根幹はテスト技法ではなく設計技法なので、設計出来る部分はさっさと設計&実装してからテストケースを書く方が効果が高いという観点に因るものです。
プログラマとして経験を積んでいけば「似た感じのコードを以前書いたことがあるな。たぶんこんな感じでイケるはず!」というショートカットが出来るようになってくると思いますが、テストファーストを原理主義的に守ろうとするとこの行動が抑制されてしまうことが多いと経験上感じているので、そんなことしなくていいよ、ということをポイントとして挙げました。
2点目は、テストコードとプロダクションコードを同時に書いていった場合、どちらにもバグを埋め込んでしまう危険性が高まるため、まず実際に動作させながらプロダクションコードがおおよそ自分の想定通りに動くことを確認してからテストコードを書く方が効果が高いという観点に因るものです。
もちろん単純明快なテストだったらテストコードにもミスは少ないかと思いますが、複雑になればなるほどその実装の難易度は高くなるので、それだけに縛られず、色んなツールを利用して自分の脇を固める方が良いと思っています。
今回はAPIの作成だったので、プロダクションコードを書きながら Advanced REST client - Chrome Web Store を利用してAPIの挙動を確認、おおよそ思い通りの実装が出来たと思った段階で spec を書いていくというような手順で実施しました。
3点目は、(1点目と少し似ていますが)TDDの根幹は設計技法であり、設計していくためには「フィーチャーテスト =>ユニットテスト」という outside-in なアプローチでテストケースを書いていった方が効果が高いという観点に因るものです。
ほとんどの方が設計をする場合は「外部設計 =>詳細設計」と outside-in のアプローチを取るものと思いますが、これに合わせてTDDでも同様のアプローチをとる方が良いと思っています。
刺身とお寿司とTDD
次にゆるふわ.rb 恒例のビアバッシュ、という名の自由時間でした(笑)今回は刺身とふぐの湯引きとお寿司と酒という、なかなか豪華な感じでした。
私は前日に飲んでたのもあってあまり飲めなかったんですが、TDDについて語り合ったり、仕事観について語り合ったり、いつも通りの楽しい場となりました。
前日に仕込んだ鯛の昆布締めも好評でしたよ〜^^
チェックアウト
最後にみんなで洗い物してゴミを片付けて会場を後にしました。今回は初めてライブコーディングをやってみましたが、その効果がとても高いことに気付かされました。
色んなものがオープンなこの時代、世の中のいたるところにコードが存在していて、それらを拝見することで色んなことを学ぶことができますが、そこにはコードの完成系しかありません。
どういう思考回路でそのコードに辿り着いたかはなかなか推測しづらいものです。
一方でライブコーディングでは、コーディングしていって、エラーになって、直して、コードが安定してきたらリファクタリングして・・・というようにコードが育っていく様を目にすることができ、(少しオーバーですが)プログラマ自身の思考回路をそこに見ることが出来るように思います。
その中には完成系のコードを見るよりも気付きや学びが多いように感じました。
ゆるふわ.rbでも、もっとこのような機会を増やしていければと思った今日この頃でした。
兵庫県西脇市の話題のパン屋さんに行ってきました
3/21(金) 〜3/23(日) の3連休を利用して関西方面へ旅行してきたんですが、その中で Coupé Baguette -クープ バゲット- というパン屋さんへ行ってきました。
毎回オープンしてあっという間に売り切れてしまうという話題のパン屋さんです。
どれも噂に違わぬ美味しさで、味つけうんぬんはもちろんあるんですが、パン生地がとても美味しかったです。
またこの右に写ってる丸いパン(カンパーニュ)の中にチーズが入ってて「うぉっ!?」と驚く楽しさもありました^^
さてさて、もうお気づきの方もいると思いますが、こちらは何を隠そうソニックガーデンの伊藤さん(@jnchito)の奥さんのやってるパン屋さんです。
前々から食べたいとずっと思っていて、今回ちょうど関西へ赴くことになったので「この機会を逃すまい!」と行ってきました。
思えば伊藤さんと最初にお会いしたのはDevLOVE関西の「勉強会勉強会」という勉強会でした。
DevLove関西「勉強会勉強会」に参加してきました - ITエンジニアとして生きる
当時わたしは愛知県に住んでたんですが「関西圏の勉強会って行ったことないからちょっと興味あるな〜。土曜開催だし旅行がてら行ってみるか!」と思って参加しました。
当日は3名の発表と、その後はビアバッシュという構成で勉強会が行われたんですが、このビアバッシュで当時の現場の悩みや不満や愚痴を伊藤さんに聞いてもらっていたと思います。
初対面で色々愚痴ってしまうとは・・・いやはや、お酒の力は怖いものです(笑)
それからわたしも愛媛でリモート勤務をするようになって、より仲良くさせてもらうようになりました。
もしあの時、「関西行ってみようかな〜」と思っていなかったら
もしあの時、(お酒の力を借りて)積極的にお話していなければ
もしあの時、その場限りで終わってSNSで繋がっていなければ
今回訪問させて頂くことも無かったと思いますし、伊藤さんをどこか遠い存在と感じて意識することも無かったと思います。
改めてこういう人との繋がりを大事にしていきたいと思う今回の訪問でした。
伊藤さんもブログを書いてくれました。こちらも要チェック!
愛媛からリモート勤務友達の荻野さんが遊びに来てくれました - give IT a try
ゆるふわ.rb in 大洲 〜鯛しゃぶをつつきながらCodeIQに挑戦!!(後編)〜 を開催しました
3/1(土) にゆるふわ.rbを開催し、みんなでCodeIQに挑戦しました。
ゆるふわ.rb in 大洲 〜鯛しゃぶをつつきながらCodeIQに挑戦!!(後編)〜 - ゆるふわ.rb | Doorkeeper
勉強会が始まる前に・・・
いつも勉強会で出す魚は八幡浜港で仕入れてそこでさばいてもらっているんだけど・・・この日はあいにく市場の人がバタバタしていてさばいてもらえなかったんです。ということで勉強会前に朝からせっせと鯛をさばきました。
今回も看板は「ふるふわ.rb」
そして勉強会スタート。今回もやっぱり会場案内は「ふるふわ.rb」となっていました。この看板は使い回しているようなので当分「ゆるふわ.rb」の看板を見る事は無さそうです(笑)
ウェルカムドリンクと自己紹介
今回のウェルカムドリンクはあおさのみそ汁をご用意しました。いつもより参加者数が少なかったのでみそ汁もちょっと少な目にしたんですが、予想以上に人気があってあっと言う間に無くなってしまいました。
次回からはもっとたくさん作っておこうかな。
あおさのみそ汁をつつきながらみなさんに自己紹介して頂きました。
鯛しゃぶ、ふぐしゃぶ、CodeIQ、パソコン甲子園
続いてはメインのCodeIQへの挑戦です。CodeIQのRuby系の問題の中から手頃な問題を選んで挑戦しました。時間が長かったのでCodeIQだけでは飽き足らず(?)並行して過去問|パソコン甲子園2013の問題にも挑戦しました。
どちらもみなさん楽しんでいるようでした。
そしてもう1つのメインのしゃぶしゃぶ。ホントはこの日は鯛しゃぶだけの予定だったんですが、市場を回ってるとたまたまふぐを見つけてですね、、、売ってたのは唐揚げやフライ用のふぐだったんですが「当日水揚げされたもの」「たまに刺身で食べる人もいるよ」と言ってたんで「じゃあしゃぶしゃぶ用に使えるだろ〜」と思って購入しました。
これがまた超うまくてですね〜 これからふぐしゃぶを定番としようかと思うくらい美味でした。
歓談&CodeIQ、パソコン甲子園に挑戦中。。。
実は前日に・・・
実は今回の勉強会の前日にCodeIQの中の人からメールを頂きました。内容は「勉強会でCodeIQをご利用頂いているようであれば、ぜひCodeIQに出題されませんか?」というもので、ぜひ前向きに検討させてください!とお返事させて頂きました。
前もって出題しておいて勉強会でみんなで問題に挑戦するというのもアリだと思いますし、勉強会でみんなで出題する問題を考える、なんていうのも面白いかなと思っています。
まだ何も決まっていませんが、今後そういった勉強会を展開してゆければと考えていますので興味ある方はゆるふわ.rbにご参加ください!
おしまい
最後にみんなで片付けをして撤収しました。今回も飲んで食べてRuby触って、楽しい時間を過ごすことが出来ました。
いつも私は初めに軽く喋って、あとはずっと刺身切ったり飲食の準備したりとかしかしてないんですが、そんな中で自然と問題に取り組んだりウェルカムドリンクを温め直したり(笑)毎回参加者のみなさんの自主性に驚かされます。
ホントゆるふわ.rbは参加者のみなさんの自主性に支えられているな〜と思います。
次回以降もそういった自主性に支えられつつ、美味しい食事と楽しい勉強を出来る場を提供出来ればと思います。