星と海のあいだで

ブログタイトルが厨二なのは、ちょうど天地明察を読み終えた直後だったから。海の方は趣味のダイビングから来てます

重要文化財で学ぶScala

来月 8/1 にこんなイベントがあります。

summit.scala-kansai.org

私もスタッフの一人としてずっと準備を進めていましたが、先日ようやく参加者募集にこぎつけることができました。

会場はここ↓

https://ja.wikipedia.org/wiki/%E5%A4%A7%E9%98%AA%E5%B8%82%E4%B8%AD%E5%A4%AE%E5%85%AC%E4%BC%9A%E5%A0%82ja.wikipedia.org

この大阪市中央公会堂国の重要文化財に指定されている建物です。

重要文化財の中でITカンファレンスに参加できる機会はなかなかないと思います。

さらに、スピーカー陣もかなり豪華な顔ぶれになってきています。

関西Scala界隈をリードしている各社からご登壇いただきます。 おそらく、関西Scalaオールスターズと言っても過言ではないんんじゃないでしょうか。

その上、関西以外からもScala界隈で活躍されている方々に関西にお越しいただき、そのノウハウを伝授していただきます。

まだ、計画中ですが初心者向けハンズオンの開催も検討しているので、今からScalaを始める方も楽しめるかと思います。

ぜひ、この機会に大阪の歴史的建築物を見ながら、Scalaの知見をためこむといいと思います。

GitBukcetのパッチを供養してきた

昨日、ほげ駆動のメンバーで某年度会を開きました。 といっても、いつものような勉強会ではなく、 @tunemage さん @tmybj さんのお宅におじゃまして、

鍋かっくらって、ビールを飲みました。(昼間っから)

というだけの会だったはずなんですが、 まぁ集まったメンバーがメンバーなのでLT大会も併催。

某年度という名目なので、 2014年度に書いた不遇のソースコードを供養するために こんなLTをしてみました。

書いたソースコードは、こちら

github.com

最新のバージョン3.0からは、 プラグインシステムが新しくなっていて、 プラグインのjarを GITBUCKET_HOME/plugins 以下に配備して、 GitBucketを再起動すれば利用出来ます。

つまりProxyに邪魔される事なくプラグインを追加出来ますね。 ほんとパッチ無用… 安らかに眠れ…

github.com

ちなみに

昼間っから飲むために、私の地元岡山の独歩ビールを差し入れました。 岡山らしい桃やマスカットのフレーバービールがあって良かったです。

最高にほげな忘年会を開催しました

おなじみ(?)のHoge駆動の忘年会を開催しました。

https://github.com/hogedriven/hogedriven.github.com/raw/master/logo/07.png

今回は、鹿駆動を除けば過去最多の30人を超える参加者が集まりました。

特に、今回は東京から帰省されていた方々や乙女部(http://otomebu.info/)の面々(+@plum_shiga)にも参加して頂けました。

というわけで、僕の発表資料ぽいっ

発表を聞いてて

今回、のっけからレジェンドこと小酒さん(@s_kozake)の発表でしたが、大爆笑をかっさらっていってくれました。 (主にガヤで飛んできたマサカリが最高でした)

今回初参加の東京勢が、あまりのガヤガヤしさ(とマサカリ)にびびってました。

このガヤ(とマサカリ)が、ほげ駆動らしくて良かったです。

で、Groovyネタなんてやったもんだから、マサカリだけでは飽き足らず@kiy0takaさんがGroovyパズラーズを発表。 Groovyはパズラーズネタをスグ動かして確認出来るのでメッチャいいですね。

その他にも、面白い発表が続いたんですが、今回はいつも以上にオフレコ発表が多くて、身内感がほげ駆動らしくて良かったです。

そして、一番のハイライトは@backpaper0さんの発表でした。

女装した@backpaper0さんが普段の仕事で気をつけている事を質疑応答形式で説明するという、まじめなのか不真面目なのかわからない発表でほげ駆動らしくて(ry

ちなみに、今回の発表資料ですが、SlideShareに公開されたものについては、下記にまとまっています。

忘年会本編

ほげ駆動の忘年会はあくまで忘年会なので、乾杯してふぐ食うのがメインです。

お昼の発表タイムはこの時までの時間つぶしに過ぎません。

ということで、ふぐメッチャうまかった。

オススメ本交換会

今回、ちょっとした催しとして、自分が持ってる技術書(とかいろいろ)を持ち寄って交換するということを行いました。

(ふぐに舌鼓を打ってて、忘年会終了前まで交換会のことわすれてたのもほげ駆動らしくて良かったです)

僕は、↓の3冊を提供しました。

王様たちのヴァイキングは僕の一押しマンガです。5巻には美しすぎるScalaプログラマーが物語に絡んできます(登場自体は1巻から)し、先日最新6巻も発売されました。

また、他の2冊もWeb系のエンジニアなら知っておいて全く損はない内容になっています。

ちなみに、僕はこの交換会で、@syobochimさんご提供の東京駅のカステラと、@backpaper0さんご提供(多分)のRubyで作る奇妙なプログラミング言語 ~Esoteric Language~を頂きました。

その他にも、面白そうな、でも僕があまり買いそうにない本がたくさん出品されていてカオスな感じがありました。 この色々ある感がほげ駆動らしくて良かったです。

ちなみにカステラについては、顧客(嫁)に納品(献上)いたしました。

というわけで

最高にほげ駆動らしい1日でした。 きっちり2014年のほげ締めが出来たので、気持ちよく2015年を迎えられそうです。 来年も楽しくほげほげな活動をやっていきたいと思います。

王様達のヴァイキング(1) (ビッグコミックス) 王様達のヴァイキング(5) (ビッグコミックス) 王様達のヴァイキング 6 (ビッグコミックス)

僕のであった英語本:パーフェクト・ワールド What a perfect world!

最近英語の勉強を頑張っているので、色々僕に影響を与えてくれた本を紹介してみようかと思います。

栄えある第一回目は「パーフェクト・ワールド What a perfect world!」をご紹介します。

この本は、講談社Box大河ノベルシリーズの第1弾として刊行されました。2007年1月から毎月1冊12月までで全12冊あります。 ちなみに、大河ノベルシリーズ第1弾で、同時に西尾維新刀語シリーズも刊行されていました。 大河ノベルについてはWikipediaを参照してください。

講談社BOX - Wikipedia

で、この小説12ヶ月連続刊行というだけでも無茶なのに、色々詰め込みまくりでした。 この本は、 ジュブナイル小説であり、 京都解説本であり、 英語の参考書でした。 はっきり言って奇書です。

パーフェクト・ワールドの英語

この本では、基本的に英語勉強法としてキャナスピークと呼ばれる手法を取り上げています。 キャナスピークとは、要するにカタカナ英語手法で、英語ローマ字読みを脱却して、もっと原音に近いカタカナ表記をすることでネイティブ発音に近づけるという感じです。

この小説の主人公が英語の私塾講師で、ストーリーにあわせて英語を教えてくれます。 カタカナ英語って言い切ってしまうと、ちょっとライトに思えますが、ちゃんと12冊読み込むとめちゃくちゃしっかりした学習理論に裏打ちされている事がわかります。 この内容を、12ヶ月でまとめて連載しきるのはめちゃくちゃスゴいです。 しかも、12冊を通して徐々にステップアップして行きますし、英語初学者に段階的に教えるという流れがストーリーに組み込まれているので、かなり抵抗なく英語を学習する事が出来ると思います。

これを読んでいた2007年当時は、私は全然英語に興味が無かった時期ですが、英語に対する無意識の抵抗を取り払ってくれた様に思います。 2007年の年末に私は大学のプログラムで2週間のカナダホームステイに参加しましたが、この本があったから、参加しようという気になれたのかもしれません。

京都解説本として

この本は英語以外にも京都の解説書でもあります。 ストーリーの進行にあわせて、アメリカからの留学生を案内するという体で、京都の各名所を訪れ、その場所の見所、歴史などを解説してくれます。 こちらも、英語同様にしっかりとした調査に裏付けされた情報になっていて、めちゃくちゃ参考になります。

まとめ

パーフェクトワールドは、はっきり言って奇書ですが、内部に持っている情報量はとてつもないです。 多分、この本が無かったら私はホームステイしてないし、今こんなに英語をちゃんと勉強しようと思って無かったと思います。

個人的に小説としてはあまりお勧めしませんが(オイ)、英語に苦手意識あるけど、興味はある人は一度読んでみるといいかもしれません。

Scalaがつないでくれた縁-NetflixMeetup Kyoto 開催後記-

このエントリはScalaアドベントカレンダーの2日目です。

昨日のエントリはozw_seiさんの初心者のうちに知っておきたかったScalaのTipsやパターンでした。

Scalaアドベントカレンダーと言いつつ、あんまりScala関係ないエモい記事になってしまってすいません。 でも、昨日NetflixMeetupを主催した体験が素敵だったので書かずにはいられませんでした。

最初に

私は、@Kuchitama(クチタマ)といいます。 ScalaMatsuri2014では、スタッフとしてマイク係したり、チラシ作ったり、アンカンファレンスのセッションでちょっとファシリテータをしたりしてました。

また、つい昨晩にNetflix社のエンジニアで、O'ReillyからLearning Scalaという本を出版予定のJason Swartzさん(@swartzrock)をお迎えして、NetflixMeetup in Kyotoを開催しました。

Learning Scala: Practical Functional Programming for the Jvm

Learning Scala: Practical Functional Programming for the Jvm

NetflixMeetup in Kyoto - connpass

この記事は、このイベントを開催できた経緯と、関わってくださった方々への感謝を述べて、1年を締めくくる記事にしたいと思います。

開催の経緯

今回のMeetupはJasonさんが、家族旅行で来日され、そのついでに日本のScalaエンジニアと交流を持ちたいと、ScalaJPのMLに投稿が来た事に始まります。

Jasonさんの旅行先が東京だけでなく、京都も含まれていた事から、京都でもMeetupをしてはどうかと、 JSAの麻植さんからご提案がありました。

このとき麻植さんのご提案がなければ、京都でのMeetupは無かったかもしれません。 麻植さん本当にありがとうございました。 おかげさまで素敵な一晩を過ごす事ができました。

開催準備に際して

2つの不安

京都で開催してはどうかというご提案を頂いたものの、不安事項が2つありました。

一つは、参加者が集まるかどうかという不安でした。 関西では関東に比べてScalaの普及や認知度もそれほど高くなく、Scalaユーザの絶対数が少ないという点がありました。 さらにNetflixは日本ではサービス展開されておらず、マイクロサービスやAWSScalaに強く関心のある人でなくては知る機会がないのではないかと思います。

もう一つは、自分に英語力が足らずJasonさんを案内する事ができないという不安でした。 自分の英語力のなさについては、ScalaMatsuriの際に痛感していました。 現在は英語力を鍛えようと取り組んでいるものの、まだまだです。 (その辺りの事はこの記事にまとまっています)

そのため、英語のやりとりで海外のエンジニアとスケジュール調整をし、Meetupを開催できるほどでは全くありませんでした。

不安の解消

この2つの不安は自分ではどうしようもないので、人の力を借りて解決する事にしました。

参加者の問題については、関西を代表するScalaの利用企業を巻き込むことにしました。 そもそもScalaを業務に利用している会社の人に協力してもらえれば、最低限Meetupの体裁を整える事は出来そうだと考えました。 そこで、株式会社はてなのエンジニアである@daiksyさんと、nulab@hakuraiさんにご協力を願い出ました。 お二人とも快く協力して頂き、はてなさんには会場提供もして頂けました。 また、今回のスタッフ間の連絡はnulabさんのTypetalkというサービスを利用させて頂きました。

また、英語力に関しては、もともと色々な勉強会で仲良くさせて頂いていた@posauneさんに話を振った所快く協力して頂けました。 posauneさんはそもそもがC#、F#のエンジニアで、あまりScalaになじみはなかったのですが、以前DevLove関西の英語勉強会でご一緒した事もあり、Jasonsさんとのやり取りを担当し頂きました。

これで、Jasonさんを迎える準備が出来ました。

Meetupを一緒に準備してくださったdaiksyさん、hakuraiさん、posauneさん本当にありがとうございました。 また、会場提供をしてくださったはてなさんははてなアドベントカレンダーを開催中です。 一緒にスタッフをしてくださったdaiksyさんも、このMeetupの記事を投稿されています。 Meetupの内容について気になる方は是非こちらの記事をご参照ください。

はてな京都オフィスで、Netflix Meetupを開催しました - Hatena Developer Blog

翻訳の協力

ここまできて、ようやくMeetupの開催にこぎつけることが出来ました。 しかし、当日英語の翻訳をどうするかという問題がありました。

Meetupの参加希望者にとったアンケートで翻訳が必要かどうかを聞いたところ、「翻訳がある方が望ましい」との回答が半数以上を占めていました。 しかし、スタッフ内で十分な翻訳体制を整える事が難しく、悩みどころでした。

ただ、半数弱の参加者の方は翻訳不要ということだったので、なら、「英語できる人の力を借りよう」という事になりました。 というわけで、参加者の方に翻訳した内容を #netflix_kyotoハッシュタグをつけてつぶやいてもらうようお願いしました。

実は似たような事はScalaMatsuriの2日目のアンカンファレンスで実施していました。 そのため、うまくいく自信はあったのですが、もくろみ通りの結果になりました。

当日のツイートはdaiksyさんが下にまとめてくれています。

Netflix Meetup in Kyoto まとめ #netflix_kyoto - Togetterまとめ

自信があったとはいえ、当日ソーシャル翻訳がうまくいったのは、参加者のみなさんのおかげです。 みなさん本当にありがとうございました。

なによりも誰よりも

わざわざ家族旅行中にお時間を作ってくださったJasonさんには感謝してもしきれません。 ジェントルで素敵な人柄でお話は非常に参考になりました。

同じ内容のスライドは下記になりますが、Jasonさんのお話を直接聞く機会を得られて本当によかったです。

Jasonさん本当にありがとうございました。本も買います。買って読んでもっと勉強します!

Mr. Swartz, I really appreciate you. I'm hoping your trip will be excited. I'll buy your book.

(英語あってるかな?)

Learning Scala: Practical Functional Programming for the Jvm

Learning Scala: Practical Functional Programming for the Jvm

あらためて

というわけで、Scalaを使う事で関西から飛び出して活動する事ができました。 Scalaのおかげで尊敬できるエンジニアと出会えました。

改めて、Jasonさん、麻植さん、daiksyさん、posauneさん、hakuraiさん、Meetupにご参加頂いた皆さんありがとうございました。

私はScalaエンジニアとしてまだまだですが、2015年も引き続きScalaエンジニアとして邁進して行きたいと思います。 ScalaMatsuriではScalaの作者であるMartin Odersky先生にもご挨拶出来ましたが、いつか改めて「Scalaのおかげで素晴らしい経験が出来ました。ありがとうございます。」と伝えたいと思います。 そのためにも英語の勉強も頑張ります。

というわけで、とてもエモい内容になりましたが、以上がScalaアドベントカレンダー2日目になります。

明日は、awekuitさんの記事になります。

最後まで読んで頂きありがとうございました。


追記

参加された方にもMeetupについてBlog記事を書いて頂けました

tnoda-scala • NetflixMeetup in Kyoto 参加メモ

DevLove関西英語回が俺得すぎた

DevLove関西で英語と向き合ってきました

DevLove関西|エンジニアとして、英語と向き合ってみよう!

先日、DevLoveで最近やってる英語勉強と周りを巻き込む取り組みについて話してきました。 で、このイベントが超俺得イベントだったので、メモを残しておきます。

俺得ポイントその一 自分の取り組みに自信が持てた

僕を含めて3人のスピーカーで、最初は宇畑さんの「It’s a stepping stone to open the door to the world !!」でした。 この発表では宇畑さんの実体験をもとに、英語を身に着けるうえで大切だと思われる点をご紹介頂きましたが、

僕の内容と被る被る!

いわく

  • 目標を定めてモチベーションを保つことが大事
  • 英語は筋トレと同じで続けないといけない
  • 小さな成功体験を積み重ねて徐々に目標に近づく

とのこと。

はっきり言って、内容だだ被りです。 この後、僕の発表聞いてくれた人には、同じ内容を言葉を変えて繰り返してるだけに聞こえたかもしれません。 というか、繰り返しただけです。 僕が発表するとき3スライドに1回くらい「さっき宇畑さんもおっしゃってましたが」って言ったような気がします。

ただ、僕にとっては、自分が考えてやろうとしていることが間違いでない!という確信を得ることができました。 もう、これだけでこの日、定時ダッシュして梅田まで出てきた甲斐がありました。

俺得ポイントその二 Posauneさんの発表が良すぎた

Posauneさんが英語を勉強してきた中で、見つけた英文法の面白い見方をご紹介いただきました。

可算名詞と不可算名詞の違いが"どこ"から来ているのか、その単語が"何"を指しているのかという、文化、物事の見方・捉え方の違いでわかりやすく解説されていました。 発表時間中、ずっと目からウロコでめちゃくちゃ面白かった。

さらに、話が'a''the'の使い分けに。 これも面白くて、めっちゃいいTIPSだなぁと思いながら聞いていたら、最後に'Manifesto for Agile Software Development'と'Principles behind the Agile Manifesto'が出てきて、今日の発表内容をベースに再度読み直すと、会場全体がどよめいてました。

「美は細部に宿る」という言葉がありますが、「名文は冠詞に宿る」と言いかえれるんじゃないかというぐらい、たった1文字の'a'と3文字の'the'に重要な意味とその文章の本質が宿っていることを示されてました。

ぜひとも「aとtheで読み取るAgile宣言」をブログエントリか何かにまとめて欲しいと思います。(本人に既に言いましたが、もう一度言いたい)

↓がその時のリアルタイム感想ツイート

俺得ポイントその三 発表準備してて更に英語と向き合えた

今回の資料を準備するに当たり、一度英語と向き合ってそれで勉強を始めていたのですが、再度向き合い深堀りするいい機会になりました。

特に資料冒頭にある、「エンジニアに英語は必要か」、「エンジニアに英語は不要か」の問いかけとそれに対する意見は、今回の発表を準備するにあたって、自分の英語観を分解していく中で見つかりました。 これまでは、「自分」からの視点でしか英語を捉えていなかったのですが、「エンジニアにとっての英語」を考えることができました。

今回の発表で今現時点で僕が英語に対して持っている考えは全部出し切れたんじゃないかと思います。 周りを巻き込むという話から、最後に「With us」で締めましたが、ダイアログでご一緒した方や、今回話す機会を作れなかった方とも、今後どこかで英語で絡めたらいいなぁと思っています。

おまけの俺得ポイント

開始前に@moririringさんと話してたら、突然、お礼を言いたいことがあると言われ戸惑いました。 お会いするのは久しぶりで、特に最近何をしたということもなかったのですが、 どうも、僕がTwitterか何かでPowerShellを推しているのを見て、それでPowerShellにハマってもらえたそうです。

まさか、あのMicrosoft MVP for Visual C#の@moririringさんに、Microsoftの技術で、僕がお礼を言われるとは夢にも思いませんでした。 ほんとPowerShellいいですよ皆さん!(これが、この日唯一の技術トークでした)

英語はじめました

最近、英語の勉強を始めました。

そもそもは、9月にScalaMatsuriのスタッフをしてマイク係をしながら、Martin Odersky先生を始め、招待スピーカーの講演を聞いていたのですが、内容以前に英語が全く理解出来ませんでした。 懇親会でもOdersky先生にご挨拶させて頂いたのですが、英語が全くわからず、なんとか自己紹介はしたものの、もっと英語力を高めたいと思うようになりました。

はじめたこと

ちょうどScalaMatsuriスタッフのチャットでも英語の勉強について話が盛り上がり、英語勉強法について聞く事が出来ました。 その時教えてもらった事をもとに勉強を始めました。

勉強の目的は、

  1. ScalaMatsuriの様な場でのプレゼンを聞き取れるようになる
  2. 技術ドキュメントを読めるようになる

の2つに設定しました。

最初に始めた勉強

ScalaMatsuriスタッフのチャットで教えてもらった勉強を試してみました。 教えてもらったのは、Podcastで耳を慣らすといいということと、単語帳はDUOがオススメとでした。 Podcastはいくつかオススメの番組を教えてもらいました。 (本当は、日常に入ってくる情報を全部英語に切り替えようと言われたのですが、さすがにそれは難しい...)

DUO 3.0

DUO 3.0

また、英語のドキュメントを読めるようになりたかったので、上記に加えて英語のBlogを読むようにしました。 ちょうど、そのタイミングでMediumというBlogサービスを知りました。 Mediumは1本のエントリを読み切るのに何分かかるかが表示されますし、検索やリコメンドが良さそうだったので、Mediumの記事から気になるものを1日一本読むようにしました。

という事で、基本的に通勤時間に下の内容で英語の勉強をしていました。

  1. Podcastを聞いて耳を英語にならす
  2. Mediumの記事を読んで英文に慣れる
  3. DUOを読んで語彙を増やす

英語勉強会の開催

ただ、私は実は大学のときカナダでホームステイをしていて、その後TOEICを受けるなど英語の勉強をしていた時期がありました。 なのですが、気がついたら勉強しなくなっていて、結局ちゃんと身に付かないままになっていました。 そんな経験があるので、自分一人では絶対に勉強が続かない事が自分でよくわかっています。

ということで、英語勉強会を開催する事にしました。 意図はとても単純で、一人でやってると怠けて続かないので、勉強会を主催してやらざるを得ない状況に自分を追い込みました。 勉強会といってもオープンなものではなく社内での勉強会開催としました。

第一回の勉強会の内容は下記にまとめています。

https://gist.github.com/Kuchitama/2ba42e747024c80d0277

今の勉強方法

10月前半は、最初に上げた内容で勉強を進めていたのですが、英語勉強会で勉強法についての意見交換をして、すこし勉強内容を変更しました。 というのも、語彙を増やすときに本だけでは英単語の音がわからず、リスニング時に単語と結びつけられないことがあるので、語彙を増やす際には音もあわせて覚えた方がいいとのアドバイスを頂いたためです。 そこで、Podcastの代わりにDUOのCDを買って聞き始めました。

出勤時は日本語訳がついたDUOの基礎編を聞き、帰宅時は復習編を聞くようにしました。

DUO 3.0 / CD基礎用

DUO 3.0 / CD基礎用

DUO 3.0 / CD復習用

DUO 3.0 / CD復習用

これまで、Podcastを聞いていても全く内容がわからず、ただ英語を聞き流している状態でしたが、DUOに切り替えてからは、しっくり来て勉強になっている感じがあります。 この辺、ちゃんと自分のレベルにあった勉強をしないといけないというのを実感しました。

また、先月誕生日でプレゼントにnasneを買ってもらったので、NHKのスーパープレゼンテーションを録画してみるというのも始めました。これは、字幕がついてますし、テーマに沿ったスピーチなので、なんとかついていけています。

ということで、今やってる勉強はこんな感じです。

  1. 英語の記事を読む
  2. DUOを読む
  3. DUOのCDを聞く
  4. スーパープレゼンテーションを見る

今後

このまま、勉強をしばらく継続したいと思います。 とかをTLとか、周りの人に言ってたら(宣言して追い込むメソッド)、こんなイベントで話す事になりました。 もう定員超えてるけど、資料は発表後に公開します。

エンジニアとして、英語と向き合ってみよう!|DevLove関西