Code 2014 in 定山渓温泉

Code 2014 in 定山渓温泉 の日記です。おもしろかったー。

出発

11:00札幌北口集合ということで、15分位前につきました。が、見つけられないので@jkudoさんにTELして合流。
@ag0u3さんと外人さんが待ってました。
11時くらいになると一通り集合したようで、車を出してくれる方に乗せてもらい出発です。

車は@jnkyknさん(運転ありがとうございます)、@h_hiro_さん、@hotwatermorningさん、私で出発です。

定山渓へ行く途中「鬼そば」でラーメンを食べました。鰹だしでなかなかおいしかったですが、それよりもひろさんが頼んだ「鬼退治」が値段のわりにでかかった。
器がすりばちだし。

IMG 6761

その後しばらくして定山渓温泉グランドホテル瑞苑にとうちゃーく。

IMG 6764

瑞苑の瑞を見ると、泡盛が飲みたくなるよね。

開幕

会場で受付を済ませて会場へ。

全員で簡単な自己紹介。
結構初参加の人がいる感じです。

Opening Speech (Drew Robbins)

最初は@chack411さんの上司のDrewさんの基調講演。
英語ききとれない\(^o^)/

でもスライドをわかりやすく作って頂いていて助かりました。
話の中でCodeMashの話をしていました。

CodeMashは楽しそうですねー。
まだうちの子供は小さいけど、大きくなったら一緒に勉強会とかイベントに行きたいですね。興味ないっつーか臭いよパパハゲ。って言われないといいなぁ。

最後に@chack411さんがDrewさんの話を日本語で要約してくれて終了でした。

きんぎょばち #1 AngularJS入門 @jsakamoto

きんぎょばち一発目はAngluarJSの話を聞きました。
ひろさんが生贄となり実際にコーディングしながら説明。
内容はangularjsの最初のバインドのところとresourceを使ったWEBAPIの利用でした。
Angularのここの部分は何度見ても、おおー!、ってなりますよね。
AngularJSサイコー。

あと、この時間ではないですが、@jsakamotoさんに

サーバサイドが.Netだとクラス名もプロパティもUpperCamelCaseで書くので、そのままWebAPIで返すとプロパティの名前がUpperCamelCaseになるけど(そのときのデモアプリがそうだった)、ムズムズしますよね? いつもはどうしてるのですか?

って感じの質問をしました。

そしたらあとで ASP.NET Web APIでJSONをLowerCamelCaseで返す方法 – けさらんぱさらん を教えていただきました。
ありがとうございます!

きんぎょばち #2 TypeScript入門 @chack411

次は@chack411さんのTypeScript入門です。

ちゃっくさんの話とは関係ないですが、自分の今のプロジェクトでAngularJSをTypeScriptで書いていますが、かなり書きやすくて幸せです。Javascriptを生で書いていたらきっともうちょいハマっていた気がします。

自分の中でTypeScriptで一番ハマったことといえば、外のスコープのthisを使うにはアロー関数を使う必要があること、ですね。
アロー関数とfunctionのどちらでもOK -> イコール だと思っていたので、生成されたJavaScriptとにらめっこしたことがありました。
でも、でてくるJavaScriptもきれいなのでわかりやすくていいですよね。

TypeScriptサイコー

コードゴルフお題発表 @tututen

@tututenさんが問題を作ってくれました!

CodeJP 2014 問題用

1日目はお題が出されて終了です。
あとはやりたい人が好きな時間にやればOKのフリースタイル!
(実際翌日にコードを出したのは5人でした。)

宴会

美味しいご飯とお酒を頂きました。

余興は大喜利が開催されました。
全員相手に適当にクイズっぽくやるのかと思ったら、ステージ上でBGMあり山田くんあり小道具ありの本格派大喜利!

話すことのできないブラックネタも絡めながら楽しく盛り上がりました。

宴会後

あとは予定がないので各自適当です。
まずは温泉に入りましたが、すぐに男女湯の切り替え(?)で追い出されましたw
なので、部屋に戻ってコードゴルフのコードを書きかき。
12時位までやって寝ました。

2日目

じーさんなので早起きです。4時すぎに起きて、コードゴルフの続きをかきかき。
300バイトちょっとになったので、もう十分!ということで終了。
@jsakamotoさんに聞きたいangularのサンプルコード書いたりPebbleのコードを書いたり、露天風呂に入ったり、朝ご飯食べたり、外を散歩したりしてました。

IMG 6768

それにしても朝の露天風呂はかなりよかったです。
すうーーっと透き通った青い空と、元気過ぎる木々のコントラストが絶妙でした。
空には白く薄い雲がふわっと風に流れていて、お湯につかりながらぼんやり眺めていると、いろんなことがどうでもよくなります。

でも、もうちょっとコードが短くならないかなー。

コードゴルフ大会

さて、2日目一発目はコードゴルフ大会です。

書いてきた人は5人で、順番に発表していくことになりました。

1人目は@hotwatermorningさん。272バイト。もはや私の勝ち目なし。
そしてコードが綺麗。解説も綺麗。かっこいい。
(いやゴルフしてたわけだから綺麗ではないのだけどでも綺麗だったよね? いや綺麗だった)

2人目は@h_hiro_さん。296バイト。先に文字列作っても296になるのか!すごい

3人目は私。309バイト。前の2人に比べると人間味があるコードです。わかりやすい整数だもんね。Ω\ζ°)チーン

4人目は@tututenさん。231バイト!!! 文字化け!! 変態!!

5人目は@sandinistさん。274バイト! 32進数?

優勝は@tututenさん。
その後、帰り際まで格闘していた@tututenさんが到達した境地は・・・またあとで。

折角なのでコードゴルフのメモ。

コードゴルフをがんばってやるのは初めてだった気がするので、まずは昨年の情報とJavascriptのコードを短くする情報をググって学習。
下に書くようなテクニックを使って元のソースを短くしました。
次にどうやってデータを圧縮するか考えましたが、
天才的な発想は何一つ浮かんでこなかったので、
人間味あふれ、幼稚園児でも読める整数にして完成しました。

今見るとソースが汚なすぎるけど、がんばったよじぶん!

今回使った短くする内容はこちら。

  • 空白と改行を除去する。
  • ブロックのカッコ {} の最後のかっこ } の前のセミコロンはなくてもよいので削除する。
  • for文をデクリメントする。for (i=0;i<10;i++) -> for(i=10;i–;)
  • for文の3つ目にinnerHTMLへの代入を書く。for(i=10;i–;document.body.innerHTML=o+=”<br”>)
  • 代入した結果を代入する。document.body.innerHTML=o+=”<br”>
  • setIntervalにfunctionではなくて文字列を突っ込む。
  • setIntervalに突っ込む文字列は変数に代入しておいてevalで初回実行をする(問題だとsetIntervalの前に一回処理が走ってるので)。
  • データを圧縮する。今回は_*を01になおし、1つの文字の横幅が6文字だったので、6文字(6ビット)をひと塊として整数にする。

きんぎょばち #3 Monaca/OnsenUIについて @jnkykn

急遽話すことになったそうですが、今回一番のヒット! 近いうちに何か作っておきたい。

Onsen UI – A Custom Elements-Based HTML5 UI Framework | Onsen UI

Monaca – Hybrid mobile development cloud for cross-platform app

@jnkyknさんはMonacaの説明をされていましたが、耳を傾けつつもcordovaをインストールしてちょこちょこしているだけでアプリをiphoneに入れて動かすことができました! 簡単すぎ。
しかも、普通のアプリと同じくらいの速さでぬるぬる動いてくれます。

IMG 6777

って、スクリーンショットじゃ全然ヌルヌル感がわからないですね。

しかも、OnsenUIはAngularJSベースでできてるとのこと。
今自分の中でAngularJSがホットなので拡張しやすそうです。
ありがとうございました。

きんぎょばち #4 How to learn English as an engineer @chack411

最後のきんぎょばちはちゃっくさんの英語の話。
ディスカッション形式で、reading,writing,(hearing,)speakingごとに勉強法や体験談などが話されました。

Googleで英文そのものを検索してヒット数であってるかどうか確認するとか、Wordやoutlookで単語や文法のチェックをするといった技や、国ごとでの話す英語の違いなど実際に体験してないとわからないような話もあり大変勉強になりました。
openstackの翻訳でも使われているTransifexGingerのようなツールの話もありました。

私はstack overflowやoreilly.comのebook(英語版は豊富だし安いのでw)は読むけど、書いたり聞いたり話したりは厳しいです。
そもそも日本語も怪しいけど・・・。

channel9を聞いてヒアリングが鍛えられたという話がありましたが、自分も国内外のpyconの動画なんかを見て聴いたりしてます。
一向にヒアリング能力は上達はしませんが、英語がわからなくてもコードはわかるので勉強にはなります。

終わり

最後の最後までコードゴルフをがんばった@tututen師匠の成果は202バイト!

IMG 6774

もう少しで100台ですね。がんばってください!

最後に、みんなで感想を話しました。

感想では全然伝えきれませんでしたが、本当に楽しい2日間でした。
皆様本当に有難うございました。
あと、今回で札幌の勉強会でよく見かける人の顔と名前がだいぶ一致しました(・ー・

帰宅

最後、車を出してくれた方に送って頂いて帰宅しました。
DoraPandaさんありがとうございました!
ロビーでも気を使わせてしまってすみません!

ちなみにメールでは、あなたが落としたのはきんのう◯こですか?ぎんのう◯こですか?カレーですか?、と聞かれ、ふつうのまつざきし◯るです、と回答するのに頭をひねっておりました。
座布団はもらえませんでした。

余談

席が割と隣だった外人さん(connpassにソーシャルなIDが無いので名前は伏せときます)は日本語も箸の使い方も上手で色々お話ができて面白かったです。
この方は日本が大好きで何回も来ているという話を聞いて何となく嬉しくなりました。

この方と話をする中で印象に残っているのは2つあって、1つは日本って世界向けにサービス作らないよね、ってのと、ITですっごい会社でも雇用がすっごいわけじゃないよね、って話です。

1つ目は、その人の母国はマーケットが小さいので何かITサービスを作るときには世界に向けてサービスを作るけど(作らないと儲からないけど)、日本は割とマーケットがあるので世界に向けたサービスを作らないよね、ってことでした。
日本国内でもそういった記事はみかけますが、日本に来てる外人さんも肌で感じちゃうくらい温度差があるのだな、と思いました。

雇用の話は、その人の国だとそもそも人が少ないのでITを使って効率化することに力を入れているけども、結果、人が減って雇用も減って悲しいような話をしてました(かなり間違って聞き取ってるかも^^;)。

以前、TPS(トヨタ生産方式)を導入している会社にいたときに情報をあさったところ、効率化していった先にあるものは人員削減になりがちで結局不幸になるのでは?みたいな話もみかけました。
TPSの問題を改善する方法も色々と考えられているようでしたがそれ以降は情報を追ってないです。
この話は先ほどの話とは逆に、どの国でも似たようなことは起こるんだな、と感じました。

何にしろ、違う国の方と話すと面白いですね。

というわけで

コードゴルフの変態たちやすごい人たちと知り合うことができた楽しいイベントでした。

おしまい