ナカザンドットネット

それって私の感想ですよね

Scala入学式 #NDS33 で長岡に行ってきました

f:id:Nkzn:20130929101652j:plain

ドーモ、テイトク=サン。ナカザン=デス。

9/28に新潟県長岡市で行われた、第33回長岡IT開発者勉強会に行ってきました。

今回は「Scala入学式」と銘打って、 id:nkgt_chkonk さんプロデュースによるハンズオンイベントでした。
僕も2ヶ月前くらいからちょこちょことScalaをやっていたので、これは参加せにゃならんということで行ってきました。

結論から言うと大満足なイベントでした。今回は、その報告を書こうと思います。

※他の人の記事はこちらから→ http://nekogata.hatenablog.com/entry/2013/09/28/185217

やったこと

内容と感想を並べていきます。

入学試験(事前準備)

資料→ https://gist.github.com/Shinpeim/db00b073f7acd6d5b918

まずは環境作りから。
IntelliJ IDEAとSBTを利用する形の、スケールしやすい形の開発環境を揃えてくれていました。
HelloWorldまでしかやらない分には、実はIntelliJ IDEAだけあればできてしまうので、「なんでわざわざSBT依存の実行環境にすんねん!いちいちrun叩くの面倒やろ!」とは思ったものの、Java文化圏最大のライブラリアーカイブMaven Central Repositoryからデータを引っ張ってこれるというのはかなりの強みなので、まあ覚えておいて損はないのだろうと思いました。
テスト実行とかもコマンドラインからできるので、Jenkinsに載せてCIする場合にもSBTが便利なんでしょうね。

第1部 Better JavaとしてのScala

資料→ https://gist.github.com/Shinpeim/6740436#file-00-md

スーパー写経タイム。
とりあえずclassとかobjectとかtraitとかを自分の手を動かして作りながら、初期化の仕方や構文などを学びました。
printlnで表示する内容がドラクエじみていたというか、テーブルトークRPGじみていた点が分かりやすくて面白かったです。Weaponトレイトとかテンション上がりましたわー。

第2部 もっとScala!

資料→ https://gist.github.com/Shinpeim/6740436#file-01-md

  • 基本的なデータ構造の1つであるリストの扱い方
  • パターンマッチ
  • Option型
  • 関数型としてのScala
    • foreach
    • map(flatMap)
    • filter
  • 実は↑はfor-yieldに書き換えられるよ的な話とか

みたいな感じでモリモリとScalaの便利な仕組みについてお話ししてもらってました。ハンズオンちょっと少なめ。

資料の方には書いてあったけど、リストのimmutableとmutableの違いについては言及されなかった気がする。
immutableなリストをfilterやmapで加工したときに出てくるリストは、元々のリストオブジェクトを変更したわけではなくて、新しいオブジェクトが生成されてる、という認識でよかっただろか。

第3部 ぬるぽガッbotを作ろう

資料→ https://gist.github.com/Shinpeim/6740436#file-02-md

Twitter4Jを使って、タイムライン上に現れた「ぬるぽ」に対して「ガッ」をリプライするプログラムを作る時間。

初期設定をしている間に、作者のヒゲメンが反応してくるという一幕も。

Javaのライブラリを普通にScalaへ取り込んで利用することができるんだよー、といういい例だったと思いました。

最終的にはこんな感じに↓

まとめ

f:id:Nkzn:20130929110743j:plain

新潟県はニー型圏!

静的型付け都市、ニー型!!!!!

圏論都市、ニー型!!!!!

素晴らしいイベントでした。まる。

May the Type be with you...

#新潟ラーメンバトル 2013非公式アプリをPlayストアにリリースしました

f:id:Nkzn:20130926001019p:plain:w240
新潟ラーメンバトル2013非公式アプリ
https://play.google.com/store/apps/details?id=net.nkzn.android.app.ramenbattle

はい、というわけで今年も昨年に引き続き、新潟のラジオ局FM KENTOさんが主催している新潟ラーメンバトルのアプリを作っちゃいました。

昨年はアプリを作るだけで精魂尽き果ててしまったので、今年はちゃんとアプリの見どころを紹介したいと思います。

なにこれ?

なかざんのなかざんによるなかざんのためのアプリです。
ラーメンバトルを120%楽しむための機能を独断と偏見で詰め込みました。

全店舗を1回ずつ回るという最終目標にフォーカスした機能が入っています。

めぼしい機能としては

  • 済スタンプによる達成度管理機能
  • 最寄り店舗検索機能
  • 未挑戦のバトルラーメンからランダムに今日のラーメンをサジェストする機能

なんかが挙げられるでしょうか。

達成度管理

各バトルラーメン紹介の画面では、食べたラーメンに「済」スタンプを付けることができます。

f:id:Nkzn:20130926003818p:plain:h240

そして、スタンプが貯まってくると、メニューで確認したり、

f:id:Nkzn:20130926004053p:plain:h320

達成スタンプ数の画面から確認したりできます。

f:id:Nkzn:20130926003720p:plain:h320

また、↑の画面では食べたバトルラーメンの総額も確認できるため、お財布が危なくなる前に早めに気付くことができるかもしれません。

f:id:Nkzn:20130926004228p:plain:h240

最寄り店舗検索機能

これは画面を見ていただけば一発で分かると思います。

f:id:Nkzn:20130926004536p:plain

GPSを有効にしていると使える機能です。
近い店舗から順に巡って行きたいという最早自分好みのラーメンを出しているかどうかはどうでもよくなっているタイプのストイックな方にオススメの機能ですね。

サジェスト機能

f:id:Nkzn:20130926005409p:plain:h320

現在地から近ければいいやという発想を更に飛躍させてまだ行ってないところならどこでもいいやという、最早コンプリートのことしか頭にない方のために、サジェスト機能も備えております。

まだ「済」スタンプをつけていない店舗の中から、ランダムで1店舗をご紹介しますので、行って下さい。

「アプリに言われたら従うしか無いのでちょっと妙高まで行ってくる」という猛者が現れるのを楽しみにしています。

おまけ:Twitter投稿機能

f:id:Nkzn:20130926003448p:plain

各バトルラーメン紹介の画面右上にあるTwitterアイコンをタップすると、Twitter本家やTwitterアプリを開いて、店舗名をツイートすることができます。

こんな感じ↓

まとめ

仕事で作ったわけではないので一銭にもなりませんが、まあ自分のために作ったアプリなので、基本的には問題なしです。
えっ、iOS版? だれかつくれ。

ところで、



主催サイドアカウントたちの期待感怖ええええええええ!!!!!!!!!!

余談

新潟ラーメンバトル学のオープニングに延々と流れてた、ラーメン食べたくなる曲を探したら見つかった。
どうやらラーメンバトル実行委員長のswampさんの曲だったらしい。

ScalaとTypeScriptが似てる気がしたお話。

ScalaとTypeScriptを交互に勉強していたら、なんか似てるなあと思ったので、そう思った理由らしきものを書いてみた。
[JS]とあるものは、TypeScriptがJavaScriptから受け継いだ特性です。

もちろんこれ以外の視点で見れば全然違う言語だし、両者の型推論が同じレベルかというとそうでもなかったりもするんだろうけど、なんか書いてて雰囲気が似てるなあ、と思った次第。
「JSに型を付けた言語」と「Javaを関数型&スクリプトっぽくした言語」が似たような書き味に仕上がったのだとしたら、面白い話だなあ(小並感)

*1:なお、Scalaの「メソッド」はファーストクラスオブジェクトではないとのお話を id:nkgt_chkonk さんからいただきました。このへんの話らしい→ https://sites.google.com/site/scalajp/home/scala-pitfalls/method_neq_object

8/31でウォーターセル株式会社の取締役を退職しました

2013年8月31日をもちまして、丸2年務めたウォーターセル株式会社の取締役を退職しましたことをお知らせいたします。


また、2013年9月1日より、ウォーターセル株式会社に社員として入社することをお知らせいたします。




というわけで釣り記事ですが、エイプリルフールではないので本当に役員辞めました。
客観的に見ると降格人事なので、何事かと思う方もいらっしゃるかもしれませんが、今回はかなり前向きというか、喜ばしいご報告になります。

今回の人事の理由について

創業初期のベンチャーというのは、まあ多かれ少なかれ、昼も夜も平日も休日もなく働ける人間が何人か必要になるものだと思いますし、そういった目的のためには会社役員という立場が必要です。
その立場から僕が外されたということは、会社がそういった働き方をする人間を必要としなくなる程度には、不安定な状況を脱しつつある、ということになります。

今後の仕事内容について

今までと変わらないと思います。
主な業務はAndroidアプリの設計・開発ですし、イベントの説明員をたまにやったりしますし、エンジニアチームの意見調整(という名の軽い喧嘩)をするのも今まで通りです。

ただ、肩書きはまだ決まってないので、名刺作りのためにも早めに考えないとなあ、といったところです。
ハイパー○○クリエイター的なのかっこいいですよね(棒)

個人的には

個人的な思惑の話で言えば、文化祭前夜みたいな状況がずっと続くのも、楽しいといえば楽しいのですが、そろそろ身を固めないとなーということも考えたりすると、ここらで一度普通の社員に戻って働き方を考えなおすのもありかなと思った次第であります。

年収的なところで言うと、役員でも社員でも、そんなに変わらない(残業代を加味するとちょっと役員のほうが少ないかもしれない)くらいだったので、直近の判断材料としては重大には考えませんでした。

会社の利益と僕個人の利益の最大化を考えた時に、僕が役員でいたほうが互いにとって都合がいい状況が生まれた時には、また役員に指名してもらえればなあ、と思います。
まあ、一般論として、会社が大きくなった時に創業初期メンバーが邪魔になるパターンというのも世の中にはあるらしいので、役員云々言ってられる状況じゃなくなる可能性もありますが、そのときはそのときで。


そんなわけで、生まれ変わった(ように見えて何も変わっていない)中川を、今後ともよろしくお願い致します。

enchantMOON開封の儀

f:id:Nkzn:20130802003356j:plain

ちゃんむー届きましたので、新潟限定ビイル 風味爽快ニシテとチャーシューを添えてご紹介したいと思います。

注意書き

f:id:Nkzn:20130802004220j:plain

USBケーブル繋ぎっぱなしで電源入れるとバグるらしい。超クール。あとビール美味そう。

開けてみた

f:id:Nkzn:20130802004356j:plain

本体とペンがお目見え。あとビール美味そう。

付属品を並べてみた

f:id:Nkzn:20130802004529j:plain

  • 説明書
  • ACアダプタ
  • 専用USBケーブル
  • 初回限定ストラップ

あたりが入ってました。
なお、チャーシューとビールは付属品ではないですが、美味そうです。

説明書

f:id:Nkzn:20130802004839j:plain

ビールを飲みたい気持ちを抑えながら、説明書を開いてみます。

f:id:Nkzn:20130802004841j:plain

「ある日」

1ページ目から攻めてる感じですね。あとビール美味そうですね。
2ページ目以降もなかなか攻めてる感じなので、読みたい方は是非購入して下さい。
なお新潟限定ビイル 風味爽快ニシテサッポロビール創業者と初代開発者が新潟出身だったことを記念して作られた新潟限定の美味しいビールです。

Wi-Fiパスワード入力

f:id:Nkzn:20130802005715j:plain

突然見慣れたAndroidのキーボードが出てきて「解せぬ・・・」ってなったけどビールが美味しそうに写ってるので許した。チャーシューも輝いていますね。

チュートリアルでMOON書いたりしてた

f:id:Nkzn:20130802005836j:plain

間違えてペンで丸書いちゃったりしてた。コマンドのための囲みは指でやらないといけないんですね。それはそうとチャーシューが美味しそうなので早くビールと一緒に飲みたい。

おまけ:シリアル

f:id:Nkzn:20130802010147j:plain

972番でした。ビール飲みながら撮りました。

まとめ

f:id:Nkzn:20130802010249j:plain

ひと通り触ってみましたが、処理落ちによる書き損じは評判通り多いように感じました。でも、できること、できないこと、といった用途の面に限って言えば、期待を大きくは外れていないように感じました。むしろブラウザとか要らないんじゃないかと思うくらい。

それはそうと、今回紹介させていただいた新潟限定ビイル 風味爽快ニシテは、サッポロビールが新潟のために作ってくれた美味しいビールです。皆様、新潟にお越しの際には是非お飲み下さい。

とあるSIerのエレベーター要件定義(ネタ・フィクション)

※このお話はフィクションです
f:id:Nkzn:20130510210334j:plain

ある日、とあるSIerの部長さんが、当面PJにアサインされる予定のない人員を会議室に集めました。

部長「みんな、今年の初めにこういう議論があったことは知っておるかね」

間違えやすい「エレベーターの開閉ボタン」をJAYPEGでデザイナーたちがリデザインしてみた - NAVER まとめ
http://matome.naver.jp/odai/2135925440564258701

部長「私はえらく感動した! エレベーターという普段使うもの、つまり『常識だと思っていたもの』にも疑問の目を向け、さらに使いやすいものにしようとする姿勢! こういった姿勢を持つ人間こそが、よりよい企画を生み出せるのではないかね。
君たちにもこれに倣って、エレベーターの改善案を考えて欲しい。前例では内部のUIを考えるものだったから……(ニヤリ)我々はその逆を行こう(ドヤァ)。エレベーターの外側のUIに疑問を投げかけたまえ。何も方針がないのも酷な話だから、ユーザーを最速で目的の階へ届けられる新しいUIを作るということを目標にするといい。後は任せた」

続きを読む

理屈っぽい意識低い人がダイエットらしきものに手を出した1年間のお話

意識の高さを前提とした手法なんて滅べばいい(挨拶)

今回はダイエットというか健康管理のお話です。(後記:終盤のグラフを出したかっただけの記事です)
僕のことを2009年以降からご存知の方(旧WinMo界隈、Android界隈の方はこの辺の層だと思います)は、僕のことをデブ層もしくはピザ層としてご認識いただいていることと思いますが、高校・大学時代をご存知の方に僕の当時の体格の話を聞くと「ガッシリしているイメージ」「逞しい体つき」など、デブをオブラートに包んだ言い方とも取れますが引き締まったマッスル系の肉体を持っていたことが伺えます。

全ては2009年末の卒論進行でチョコをバカ食いしたのがいけなかった・・・!!!

まあ過ぎ去った日々のことを言っても仕方ないので、とりあえずどげんかせんといかんと思い、2011年10月ごろ、ダイエットなるものを初めてみようかと思いました。

なかざんさん@がんばってみた

とりあえず新潟駅南のコナミスポーツクラブに通うことにしました。
2011年といえば弊社はまだ1年目ベンチャー。当然大した給料はもらえてませんし万年金欠状態です。そんな中での毎月9,000円近い出費。

「金欠の人間がわざわざお金払ったら、モチベーション上がるはず」

 →上がりませんでした。

まあ仕事が忙しかったのもありましたが、2011年12月〜2012年3月にかけて、合計35kものお金をドブに捨てるという大惨事が起きました。

敗因

スポーツクラブに行ったら、気合入れて運動しないといけないと思っていたのです。
残念ながら、僕はスケジュールが押している時に運動する分のモチベーションまでは起こらない派の人間だったようでした。
時間を削ってまで体力増進に努める意義を見いだせていなかったというのもありました。

理屈っぽいとよく言われますが、まあそのとおり。頑張るための理屈が足りなかったのです。

なかざんさん@がんばらなくてもいいんじゃね

話は変わりまして、弊社で出しているアグリノートというサービスがあるのですが、現状のコンセプトは「キャンパスノートや手帳といったデータ可用性の低い媒体に記録を取っている農家さんに、デジタル媒体のデータ置き場をあげてデータを活用してもらおう」というものです。
「農業のPDCAサイクルを、Check(≒現状把握)から始めてみませんか」という提案でもあります。

・・・現状把握?

そういえば、ダイエットを頑張ろう的なことをぼんやりと考えていましたが、自分の体がどうなっていて、どこがゴールなのかをよく考えていませんでした。
強いて言えば体重の目標はありましたが、後述の通り、体重は目標の置き方によっては何の役にも立たない指標です。
ゴールを設定していない長距離走のモチベーションが上がらないのは、当然といえば当然のことなのでした。

なかざんさん@がんばらない

そもそもからして、根本的に僕は意識が低い人間なのです。一般的なダイエットって意識的に頑張ったり我慢したりする行為じゃないですか。無理ですよそんなの。

つまり、

というわけで、意識を低く保ったまま勉強するみたいな仕組みが必要である。
意識を低く保つための tips - life.should be_happy # => 1 examples, ? failures

こんな感じになるわけですね。
自発的・内面的な意識喚起など期待しない。がんばらない。でも痩せたい。がんばらざるをえない状況に自分を持って行きたい。
がんばらないドリブンダイエット(GDD)と名付けました(嘘)

その前提に立った結果、僕が至った結論は「スポーツクラブに来たからって運動しなきゃいけないわけじゃない」でした。
スポーツクラブに通うメインの目的を、運動から逸らすことにしたのです。

主立ったところだと、以下の2点。

  • スーパー銭湯で普段よりもリッチなお風呂タイムを満喫する
  • 現状把握のためにボディスキャン計測の記録を取る

スーパー銭湯

実は僕、割と入浴している時間というものが好きでして。大浴槽もそうですが、寝湯とかサウナとか露天風呂とかがあるスポーツクラブの浴場はなかなか満足度が高いのです。
さらなる工夫として、スポーツクラブ用の持ち物に入れてある自前のシャンプーやらボディソープのランクを、自宅用のものよりワンランク上げてあります。
これにより、風呂に入るためだけにスポーツクラブに行くという素敵な図式が生まれました。
本当に風呂だけ入って帰る日もありますし、気分が乗ったら運動もしています。

ボディスキャン

コナミスポーツクラブ民の皆様にはお馴染みの、体組成計ですね。

ボディスキャン
http://www.konamisportsclub.jp/goods/club/bodyscan/

当初は僕も「わー色々とデータが出てくるもんだなー」と思って見ていただけだったのですが、このデータを活用すると、がんばらないドリブンの精度が上がるのではないかと思い、継続的にデータを取ることにしました。

実際に1年間、GoogleスプレッドシートGoogleフォーム)に取ってみたデータがこちらになります。

f:id:Nkzn:20130413211633p:plain

ボディスキャンの計測項目は以下の12項目です。

  • 体重(kg)
  • 基礎代謝量(kcal)
  • 体脂肪率(%)
  • BMI
  • 内臓脂肪指数
  • うでの脂肪率(%)
  • あしの脂肪率(%)
  • 筋肉量(kg)
  • うでの筋肉量(kg)
  • あしの筋肉量(kg)
  • 水分率(%)
  • 骨量(kg)

これだけのデータがあると、なかなか面白いことが見えてきます。
主に、体重の増減で一喜一憂する必要はない、ということです。

体重×体脂肪率

f:id:Nkzn:20130413231329p:plain

体重と体脂肪率って正比例しないんですね。
脂肪は減ったはずなのに体重単品だけ見るとむしろ増えてるケースまであります。これ体重しか測ってなかったら絶望してもう何もしたくなくなるレベルです。

体重×筋肉量

f:id:Nkzn:20130413231522p:plain

筋肉筋肉ー!(訳:リトバス1期やっと終わったね!)

はい、というわけで、どうやら筋肉量と体重はほぼほぼ比例しているようです。
諸説あるようですが、筋肉は脂肪より何倍か重いらしいので、体脂肪率が減っても筋肉が増えたらそりゃー体重も増えるってもんです。

基礎代謝量×筋肉量

f:id:Nkzn:20130413232454p:plain

で、体脂肪率が減った原因はたぶんこっちなんだろうな、的なデータ。
筋肉量の増加に伴い、基礎代謝量が増えてきています。

なんか楽しくなってきた

運動よりもデータ取りがメインになっていた時期もありましたが、ある程度データが溜まってきて、以下の様なことが分かって来ました。

  • 体脂肪率が減ると身体のぷにぷに感は減る(最終目標)
  • 基礎代謝を増やすと、体脂肪率は勝手に減る
  • 基礎代謝を増やすには、筋肉を増やせばいい
  • 基礎代謝を活かすには、日頃のカロリー摂取を控えればいい
  • 筋肉を増やすと体重は増える

僕個人としては、スリムになりたいとかそういう欲求はなくて、とりあえず皮下脂肪と内臓脂肪を減らせれば最終的にマッチョな体重80kgでも構わないので、つまり基礎代謝の効果を最大限増やすようなことをすれば良いようです。

1年間データを取ってみて、自分の運動との付き合い方みたいなものが段々見えてきたような気がします。

まとめ

1年間取ってきたデータを踏まえると、世間的にダイエットの本丸とされている「体重を減らす」というのは、結構馬鹿馬鹿しい話やなと思えます。一時的なものでよければ、筋肉減るような生活するのが一番手っ取り早く痩せます。オススメです。その後脂肪が減らなくなりますが、とにかく早く減らしたいだけなら筋肉減らして下さい。オススメです。

我々「理系の人々」は、とかく理屈で動きますが、このデータ取り→考察という流れはとても理屈っぽくて、比較的とっつきやすいのではないかと思いました。

ここ3ヶ月くらいで「炭水化物減らすダイエット」というがんばらない系の取り組みでPDCAサイクルを1周できてますし、スーパー銭湯に行くついでに体重測るのと大して変わらない労力で出た成果としては上々なのではないかなと。

そんなわけで、なんとか意識低いながらも1年間データが取れたので、嬉しくなって記事を書いてしまったお話しでした。

* 余談:fitbit始めました

f:id:Nkzn:20130413212740j:plain:h480

ダイエットとは半ば関係なく、Androider界隈で流行ってたのでつい。

このへんにいます→ http://www.fitbit.com/user/254H9V