2013年9月7日土曜日
非常勤講師@早稲田大学 - Java Programing上級
大学の先生達と同じ事をしていては面白くないので、IntelliJ、Github、Homebrewなどを導入して実際に僕がグリーで行っていた開発環境に近いような形で授業を進めてきました。最後の課題では素因数分解のプログラムを書いて貰ったりしたのですが、終了時にはPull Requestで提出してもらいました。
開発環境のセットアップに思った以上に時間がかかったりなど反省すべき点も多々ありましたが、生徒も楽しんで積極的に授業に参加してくれましたし、何よりどんどん吸収して上達していく生徒を見ているのが僕も楽しかったです。
ちなみに授業で使ったプログラムはgithubで公開、スライドはSlide Shareで公開しています。
github - https://github.com/peisan/WasedaAdvancedJavaClass
2013年9月5日木曜日
グリーで覚えた&忘れた単語リスト
覚えた
- CDN
- LVS
- Web Storage
- App Cache
- CSRF
- SPOF
- UX
- DAU
- MAU
- UU
- ささる
- くばる
- デグレる
- 上長
- リア充
- ネト充
- スイーツ()
- ボトラー
- 懐古虫
- イカ娘
- ノ
- まどマギ
- プギャー
- モヒカン
- マサカリ
- ラブライブ
- Homebrew
- git-flow
- Coffee Script
- Tyepe Script
- Zepto
- node.js
- PHP
- Ethna
- Shading
- Master / Slave
- play framework
- finagle
- sbt
- Redis
- DDD
- Monad
- Scrum
忘れそう
- Bloomberg Tickers (jb/js/jl/...)
- Reconciliation
- Tweak
- PNL
- Delta
- FUTEQ
- PVBP
- Interpolation
- fix / float leg
- xccy
- basis swap (e.g. 3m / 6m)
- fixing risk
- LIBOR / TIBOR / EURIBOR
- Spring Framework
- RMI
- RMDS
- dbunit
2013年8月25日日曜日
卒グリー(中退かも)
思い起こせば入社時には、
入社当時は、大手の証券会社という全く別の業界からきた事もあり、コミュニケーション面でも、技術面でも勝手が分からずおどおどしていたのを覚えています。「IRC?LVS?CDN?DAU?SPOF?なんだそれ?」みたいな。システムのリリース時にも何百台という単位のサーバにデプロイをするのはWeb業界のない僕には初めての経験で、初めは心臓バクバクでした。大きなミスをやらかしたりもしました。そんな僕でしたが数百万DAUという巨大Webサービスが如何にして運用させているのかというノウハウも少しずつ身につけ(実はけっこー日曜大工的ですw)、後半には海外のチームとの共同プロジェクトのマネジメントや、新規プロダクトの立ち上げ業務や、非常に技術力の高いエンジニア達のマネジメントも任せてもらえるようにまでなりました。特にかとじゅんや上村君の元ドワンゴ勢と一緒に仕事するのは本当に刺激的でした。本当はかとじゅんからもっと色々吸収したかったな。
グリーに入って一番感じた事は、技術好き、プロダクト好きの人の多さと、現場の裁量の大きさでした。やはりJPMorganという巨大な国際的大企業から、グリーという大きくなったとはいえまだベンチャー気質の残るインターネット企業への転職ですから、インパクトが大きかったのだと思います。
本当に技術が好きで、自分の作っているプロダクトが好きで、それが世に出てサービスとして使ってもらえる事を一番の喜びにしている人たちが本当に多かったです。プロダクトとかじゃなくて、常に自分の好きな技術を押し通してみたいな人達もいたしw。JPMorganにいた時は、モチベーションは「お金を稼ぐ」という人が殆どだったと思いますが、グリーは本当に多様で、モチベーションって人によってこんなに違うんだなというのを強く感じました。
裁量の面では、グリーでは与えられた仕事の枠をいくらでも広げたり壊したりできるというか、そもそも枠自体がすごく曖昧。
あと、CTOの藤本さんにも驚かされました。CTOなのに現場レベルの仕事に自ら積極的に関わってくれている。僕も一度ヘマをした時に、付きっきりでフォローをして頂いた事がありました。マネジメントも現場のエンジニアを理解して、いかに僕らが仕事をしやすくするかを考えて進めてくれていました。憧れの存在です。
あ、なんかこう比べるとJPMorgan批判みたいになってしまいましたが(汗)、前職で身につけた能力があったおかげでグリーでもこれだけの事を吸収できたのだと思います。日本国内のエンジニア職であれだけグローバルな環境で働けたというのは本当にありがたい経験でした。国際感覚はかなり身につきましたし、証券業務のという複雑で専門性の高い知識、もちろんシステム開発や運用のスキルも身につきました。おかげで転職時も引く手数多でしたし:)
そうそう、最後に、グリーで働いたせいで「リア充」という言葉もしらないくらいリア充だった僕が、たった1年ちょっとでかなりWeb系のヲタの人達に順応してきてしまいました。朝会社こないし、短パンにサンダルだし、変な言葉いっぱい覚えたし、実は最近では変なアニメとかも見るようにまで…。グリーを突き抜けてドワンゴ化してしまいました。
それでは次のチャレンジへと進んでいきたいと思います。グリーでお世話になった方々、壮行会で暖かく追い出してくれた方々、どうも有り難うございました。おかげさまでいつも笑顔で楽しく働く事ができました。
2012年4月30日月曜日
JPMorganからグリーへ
まず、JPモルガン証券を退職した理由ですが、従業員のレベルは本当に高く世界中からとびっきり優秀な人達が集まった素晴らしい職場でした。僕は債券システム部という部署にいたのですが、東京オフィスでさえチームメンバーのほとんどが外国人で、毎日のように世界中(ニューヨーク、ロンドン、シンガポール、香港、ムンバイなど)のメンバーと協力して業務を進めていたので国際感覚はかなり身につきましたし、証券業務のという複雑で専門性の高い知識を身に付けることもできました。勿論、システム開発や運用のスキルも身につきました。
ただ、証券会社ということもありエンジニアが主役ではない点や、大手金融機関ということでコンプライアンスが厳しく社内の手続きが猥雑という点はありました。なので、ここ数年間でFacebookやTwitterを始めとする世界を変えるほどのインパクを持つ新しいWebサービスがどんどん出てきて、Facebookの「The Hacker Way」に象徴されるようなエンジニアが先頭に立って自由にサービスを作り上げていくインターネット業界には強く憧れていました。
数あるインターネット企業の中からグリーを選んだ理由は、SNSに対する興味、エンジニアを重視するカルチャー、積極的な海外展開の三点です。
まず、SNSに対する興味ですが、僕はFacebookのヘビーユーザです。最近はSNSを利用することによって自分のコニュニケーションのスタイルが変わり、時間や場所を越えて効率的にコミュニケーションがとれるようになりました。最近では友達と連絡を取るときにはメールではなくFacebookメッセンジャーで話すことが多いですし、人と知り合うときにも携帯番号などではなくFacebookで友達申請し合うようになっています。グリーのSNSはまだFacebookほど洗練されたものではないかもしれませんが、ゲームとの連携や半匿名性のような特徴を利用してFacebookとはまた違うタイプの面白いプラットフォームになる可能性があると思ってます。
次にエンジニアを重視するカルチャーです。転職にあたって他社ともお話をしたのですが、私が検討した会社の中ではグリーが一番エンジニア主導の会社だというイメージを持ちました。社長が自ら作って始めたSNSサービスが会社の始まりですし、創業時のキープレーヤーの多くがエンジニア出身という点が大きく影響しているからだと思います。会社によってはエンジニアは他の人のアイデアを実現するためのリソースとしての位置づけという印象をもった所もありましたので、そこは大きな魅力でした。
最後に、積極的な海外展開ですが、グリーは世界市場をを狙える日本企業という点でもとても魅力的でした。今までは「世界展開している外資系大企業の東京支社」で働いていたので、意思決定権をもっているマネージャーがロンドンにいたりして、予算や技術的な枠組みがすべて海の向こうで決まった後に僕らがそれに合わせてプロジェクトにアサインされれローカライズするような形でした。なので、程よい規模で世界展開をすべく急激に成長している企業で働けるという点は大きな魅力でした。JPモルガンで海外のエンジニアチームと協力してプロジェクトを進める能力はかなり身についたと思うので、今度は日本から世界へという部分でその能力を活かせたら嬉しいです。
そんな感じで4月頭に入社して丁度一ヶ月経ちますが、基本的にはイメージしていた通りの会社で順調にやってます。特に、前職がマネジメントが強い会社だったこともあってか現場主導の環境にとても心地よさを感じていますし、カルチャーの違い(全然違うよ!)なども楽しめています。その辺りを含めて、まだブログに書きたい事はいくつかありますが、今回はこの辺で。
2012年4月22日日曜日
Graph APIとGAEでお遊びアプリ
http://pei-fbstats.appspot.com/
基本的にはfacebookのGraph APIを使って友達の性別や所属、コメントやLikeの数などを集計しているだけのアプリです。遥か昔に忘れたHTMLの書き方とか、GAEの使い方や初めて書くPythonやjQueryやKVS(結局使わなかったけど)の使い方とかを覚えながら、のべ二週間くらいかけて作りました。Feedのコメント数とかが微妙に上手く取れていないことがあるような気もしたりするので、お遊びの参考程度だと思っててきとーに使ってください。ユニットテストすら書いていないので…。気が向いたらちゃんと確認します。
なんか問題があっても責任はとりませんがw、当初のKVSのお勉強をするという目標とは裏腹に、実はデータは全くKVSにストアしていないのでデータ集めてるとかはないです(KVSは使ってみたし勉強はちゃんとしたけどね!)。でも、毎回Graph API叩くのはさすがにパフォーマンス的にどうかと思うので、cache目的で使った方がいいだろうなぁとは思ってます。まぁでもその目的ならBigtableではなくmemcachedになるか…。でも、たぶん転職直後で忙しくて触ってる暇はもうないですが。
以下、使ってるサービスとかライブラリの説明です。たぶんWebプログラミングに慣れてるひとからするとアホみたいな話でしょうが。僕が5-6年前に大学でやっていた頃と比べると、特にクラウドサービスとかJavascriptのライブラリの充実ぶりが半端無くて、本当に簡単にWebサービスが作れる時代になったんだなぁと実感しました。
GAE
サーバ借りたりとか面倒だし、勝手にスケールしてくれるし(そんなに使う人いないと思うけど)、僕みたいな怠惰な人間には最高のプラットフォームです。余談ですが、GAEではurllib2.urlopenは使えなくてgoogleの用意したurlfetchっていうライブラリを使わないといけないみたいです。socketが使えないのが理由みたい。軽くハマりました。詳しくはここで(The URL Fetch Python API)。
Facebook Graph API
言わずと知れたfacebookのAPIです。リクエストの数が多い時には複数のリクエストをまとめてPOSTできるbatch機能とかもあったりして便利でした。けっこー、レスポンスに時間がかかったりするのでtimeoutとかpagingとかのパラメーターを上手く調整する必要があります。でかいデータにアクセスしようとすると、時間かかったりレスポンスがなかったりするのはこいつのせいです。(嘘です。ぼくが怠惰でエラーハンドリングとかcacheとかしてないせいです。)
jQuery
Webに慣れてる人は何を今更って感じでしょうが、奇跡のライブラリですねこれは。恥ずかしながら今回はじめて使ったのですが、非同期の処理が本当に簡単にできてしまってjavascriptの敷居を一気に下げるツールです。6-7年前に自分でオブジェクト作ってブラウザごとに分岐したりしてAjaxの処理を作っていたのが懐かしい(というか馬鹿みたい)。
simplejson
Graph APIはJSONでデータを返してきますし、このアプリも基本的にサーバ側はJSONでデータを返すだけで、クライアント側がサーバから返ってきたデータを可視化しています。実はJSON形式のデータって今まで使ったことなかったんですが(証券会社勤務だったのでJavaでXMLみたいな堅いメッセージングばっかり)、すごくシンプルなデータ構造ですし、このライブラリを使ったら超簡単に扱えました。pythonの配列や辞書形式のデータとJSONの文法がほとんど同じだったなのですぐに慣れました。python2.6以降ではデフォルトで含まれているみたいですが、GAEがサポートしているpython2.5に含まれていないので自分で落としてきました。このチュートリアルが分かり易かった。
gae-sessions
後はwebappというGAEビルトインのフレームワークにはSession管理機能が含まれていないためgae-sessionsというセッション管理ライブラリを利用しました。たしかmemcachedを使ってるライブラリだったような。
Google Graph Tools
グラフはGoogleのAPIを利用しました。javascriptのオブジェクトにデータ突っ込むと勝手に綺麗なグラフを作ってくれます。pie chartとbar chartしか使わなかったけど本当はもっと色々と細かいことできるみたいです。
Graph API Explore
Graph APIで遊ぶなら必須ツールです。APIがどんなメッセージを返してくるのか簡単にチェックすることができます。
Favicon Generator
faviconはこれでテキトーに作りました。
git
Dropboxをレポジトリにしてgitで管理しました。一度、リファクタリングしたらGitHubに乗せてみようかな。
今後追加してもいいかなぁと思っているもの
- キャッシュ。毎回時間かかり過ぎだから。
- 人の名前をクにその人のFBページのリンクをつける。(Google Chart Toolsで簡単にできそう)
- 自分と一緒にタグ付けされている人のランキング
- 友達やグループメンバーのフィルタリングツール(友達を所属とか年齢や性別みたいな属性で絞り込むような機能。絞り込み後にメッセージ一斉送信とかできたら更に使えるかなみたいな。)
2012年3月12日月曜日
昔のブログ「外資系投資銀行を選んだ理由(2006年03月20日)」
僕は修士課程在籍中の2005年3月のにJPモルガン証券のシステム部門に内定して2007年の4月から新入社員として入社したのですが、以下のエントリーはその時にどうして僕が外資系投資銀行のシステム部門という特殊な職を選んだのかを説明したものです。
6年経った今ではソフトウェアエンジニアの争奪戦が起こっており、高度な知識や技術をもったエンジニアの価値や待遇がどんどん高まっているという点では、この時の僕の考えはかなり的を得ていたと自分でも思っています。このエントリーで述べている僕のITコンサルやSIerに関する見方はちょっとステレオタイプな部分もあるかもしれませんが、今でも自分のキャリアに対する考えはこの時と殆ど変わっていません。6年前のひよっこ時代にも、それなりに物事を考えていたんだなぁと昔の自分にちょっと感心 :)
「Life is beautiful: ソフトウェアの仕様書は料理のレシピに似ている」
要約すると、日本のシステム開発は「上流→下流」とゼネコンみたいに階層化されていて、プログラムもろくに書かない上流コンサルタントの設計を下請けの下流プログラマが仕様書どおりにコーディングするという構造になっている。そんなの効率悪いし、品質のよいソフトウェアはできないよという話。
2012年2月29日水曜日
旅券統計で遊んでみた
外務省の統計によりますと、平成23年のパスポート発行数は5年で1,543,554、10年で2,417,828の合計3,961,382だそうです。以下のように計算してみると、一年で550億円以上の収入が入っていることが分かります。あんな小さい冊子にICチップを埋め込んだ程度のものなので、作成には1000円もかからないでしょうし、事務手続きも簡単だと思うのですが…
1,543,554 x 11,000円 + 2,417,828 x 16,000円 = 55,664,342,000円
後、てきとーに数字を眺めていると以下の事にも気づきました。
- 若い世代のシーズナリティが強い。
- 特に19才以下は8月の夏休みと3月の春休み期間に発行が集中しており、その二ヶ月で一年の発行数の25%を超えています。
- 20才を超えると年齢と発行数が逆相関になっている。
- 面倒くさくてちゃんと調べてないけど、Wikipediaの年齢別人口のグラフを眺めたところ、20代よりは30代、40代、50代の方が人口が多そうなのに発行数が減っていっています。やっぱ若者のほうが海外旅行に行きたがるのですかね。
- 都市部の発行数が多い
- 人口に応じて発行率(発行数 / 人口)が上がる。
- 上位は東京(4.80%)、神奈川(4.22%)、千葉(3.65)
- 下位は青森(1.21%)、秋田(1.41%)、高知(1.66%)
- 以下、縦軸を発行率、横軸を人口として各都道府県をプロットした図です。水色のラインはただの線形回帰。なんとなくイメージが掴めると思います。
で、結局550億円って一体どこに行くのでしょうか??
参考
外務省旅券統計
Wikipedia 日本の人口統計
Wikipedia 都道府県の人口一覧
2012年2月20日月曜日
Sitting is Killing You

Via: Medical Billing And Coding
2012年2月19日日曜日
読書日記「仮想世界錬金術 モバイルソーシャルアプリに見る現代ディジタルコンテンツ革命」
僕が一番面白いと感じたのは、モバイルソーシャルゲームはひたすらEnterを押し続けるような単純なゲームに見えながらも、裏側では以下のような技術やノウハウが凝縮された、かなり高度なサービスだということです。
- 限られた機能、コンテンツ、UIでいかにユーザを楽しませるか(ゲームニクス理論、エクスペクトロジー、時間の使わせ方など)
- どうユーザ間のコミュニケーションを楽しませるか
- データマイニングに基づくチューニング
- フレームワークを利用した少人数、短期間での開発
- クラウドサービスや並列処理を利用した負荷分散
個人的には、これからゲームビジネスはどんどんパッケージ型から課金型へビシネスモデルが変換していくと予測しています。据え置き型のゲームも初期の価格設定を低く抑えて、コンテンツやアイテムなどで課金していくのが主流になっていく気がします。正直、僕自身がモバイルソーシャルゲーム(怪盗ロワイヤルとかドリランド)をやった限りでは、システムが単調すぎてのめり込むほど面白いとは思えなかったんだけれども、おそらく今後はスマートフォン向けの新しいゲームがどんどん出てきて、もっとリッチなコンテンツを求めるユーザ層も獲得していくだろうと思っています。メインフレームがオープン系のワークステーションに置き換えていったようにね。海外進出もどんどん進められているようなので、日本のIT企業が海外の市場でどれだけ戦えるのか楽しみですね。
2012年2月8日水曜日
読書日記「企業のファイナンス ベンチャーにとって一番大切なこと」
この本は、実際に自分が起業した時のイメージを持つために書かれており、起業の流れやファイナンスの仕組み、上場やバイアウトのプロセス、実行時にに気をつけたほうが良いことなどを易しく筆者の経験を交えながら説明してあります。
かなり幅広い事を説明しているので詳細まで紹介することはできませんが、事業計画の作り方、ストック・オプションや種類株式や投資家(VCなど)との交渉の仕方の説明まで含めた資本政策の方法、バイアウトや上場によりどうキャピタルゲインが得られるのかなどまで説明してあります。僕は証券会社に5年間ほど勤務しているので基本的なファイナンスの知識はあるのですが、上場時に何が必要になるかや、種類株式を利用して如何にすべてのステークホルダーの利益を損ねないように増資を行うかなどの説明はとても興味深かったです。
また、日本はベンチャーの市場規模が小さく、「ベンチャーに冷たい」と言われがちですが、実際にはそうではなく足りていないのはアニマルスピリッツをもったイケてる創業者や、それをサポートする仕組みだというのが著者の意見です。
シリコンバレーみたいに次から次へと競争力もスピードもあるスタートアップが湧いて出てくる環境と比べればライバルが少ないですし、サポートしてくれる人は資金政策さえ上手く行けば、競争の少ない分だけ上手く行く可能性が高いのかもしれませんね。

