読者です 読者をやめる 読者になる 読者になる

once upon a time,

Iris Tradをビール片手に聞くのが好きなエンジニアが、機械学習やRubyにまつわる話を書きます

非英語ネイティブにとってのOSSのメンテナンスコスト

disclaimer: この記事を書いている人はClouderaというHadoop/Sparkのディストリビューターの会社にいます。

codelunch.fmの20回目を聞いていろいろ思うところがあったのでつらつら買いてみます。

codelunch.fm

この回のcodelunch.fmでは、前職の同僚である丸山さん(@h13i32maru)と@hokacchaさんが、お互いの家庭環境の変化を交えながら個人プロダクトの開発について話しているエピソードです。これ自体なかなかおもしろい回なので、趣味でプロダクト開発している人は聞いてみるといいんじゃないかなと思います。

丸山さんはJasperESDocを精力的に開発していますし、hokacchaさんはnodebrewadventarを作られています。彼らの話していた、個人で趣味プロダクトを開発するモチベーションは何かというところは、以下のようなことが話されていました。

  • 自分が欲しいと思ったものを作りたい
  • 他にも同じ問題で困っている人を自分のプロダクトで助けたい
  • 新しい技術を試したい
  • あわよくば、自分の作ったプロダクトで有名になりたい(承認欲求を満たしたい)

どれも同じエンジニアとしてはそうだよねという気持ちになります。

そんな丸山さんのESDoc関連の発言を見ていると、アクティブじゃないから他のにマージしろとかなかなか悩ましいなぁと見ていて思います。

本質的にはgithubのissueが辛いだけかもしれませんが(丸山さん自身もポジティブフィードバックを得にくいのが辛いと言っている)、スターが1000を超える程度の人気のプロダクトは色々な人のアテンションを引くため、言葉を選ばず言うと「乱暴な」issueが立ちやすいのかもしれません。*1ですが、自分もスター19くらいのtabula-pyというbindingも本家に拾われてからいろいろissueが来るようになりました。

OSSを出すパターンとしては、ざっと考えた限りでは以下のようなパターンがあるんじゃないかと考えます。カッコ内はその目的です。

  • 誰も作っていない欲しいものがないから作ってOSS化する(自分をユーザとして満足させる、承認欲求を満たす)
  • 会社で書いていたコードのうち、一部を汎用的に切り出してOSS化する(同じ問題を解いている他の人を楽にする、会社の認知を上げる、転職後もコードを使えるようにする)
  • 会社として、大きいコードを戦略的にOSS化する(他社との差別化、プロダクト自体の認知を広める)

下に行けば行くほど、メンテナンスする人数も増えていくと思います。ここで、OSSのメンテナンスコストという点について考えたいと思います。というのも、個人ですべてOSSとしてメンテしていくときにこういうのをどう処理すればいいのかな、と考えたのがきっかけでした。

前職のクックパッドに入る前は、OSSに対する考えとしては、ソースコードは公開されており、コントリビュートの機会が開かれている素晴らしいものだと素朴に思っていました。RubyやSolrにお世話になり、自分もC++のコードの小さいbindingを書いたりしていました。

クックパッドに入った後は、社内でも使っているし社外にも使えるものはOSSとして公開しようという流れでOSSを出しているのを見てきました。業務として使うコードを公開することでユーザが増え、コードのクオリティが上がり会社の認知も増えるという効果も得ることができていた様に感じます。 ある意味では、その企業が業務としてのOSS活動をサポートしているからできることだとも思います。プロダクトにもよりますが、1人ないしは数人で開発をしているという開発状況になると思います。

Clouderaに入って、HadoopやSparkといった巨大なOSSは一社ではとてもじゃないけれどすべてをこなすことが出来ないものであるという認識になりました。 良くも悪くも複数の企業やASFなどのファウンデーションでメンテすることで、そのコードを長く使えるようにしているものだということを学んだのです。 OSSコミュニティとして他社と共同開発をしながら、一方でビジネスでは競争をしているという形になります。当然、個人や一社で開発するより圧倒的にフルタイムの開発人数は多くなります。

では、継続的に個人の趣味コードをOSSとしてメンテナンスしていく上での、メンテナンスコストはなんでしょうか?

一つの要素としては、先程から書いているように開発リソースの問題です。

開発者の時間は有限ですし、ユーザーが増える速度はコントリビュータが増える速度より速いです。 ESDocに関してはorganizationに一人しかいないのもさばく負荷が高い理由になるでしょう。 コミットしてくれる人を集めたり、issueを消化してくれるメンテナを集めたりして優しい終身の独裁者として動くのもありかもしれませんが、個人として自由な裁量を持った開発をしたいという人もいるでしょう。 こうした中でどのように、増え続けるissueと戦うべきか、というのは難しい問題です。 なお、このあたりの話は、Sphinxメンテナのtk0miyaさんの記事とFreeBSDのPort maintainerのjj1bdxさんの記事が興味深かったです。

tk0miya.hatenablog.com

qiita.com

もう一つの要素としては、英語に困らない人にはノンネイティブの辛さが想像できない問題というのもあると思います。

自分のボスは、ネイティブと議論するときと英語が得意でないノンネイティブが混ざるときで、話すスピードもそうですが使う語彙を変えて話してくれます。 しかし、githubのissueなどpublicな場所ではこうした気を使ってくれる人は(自分の体感としては)珍しく、こちらが気合を入れて英語を読んだり書いたりする必要があります。 丸山さんとも昔話しましたが、issueの返信だと「この解釈で本当に良いんだろうか」とウンウンうなるときも少なくなく、スラングに苦しめられる時も多いです。*2 All Ears Englishでも、「アメリカ人はノンネイティブの英語に慣れていないから、崩れた英語から汲み取ることができない」という話もありましたし、ここは結局ノンネイティブが頑張るしかないのですが、ネイティブにもここらへん認識してもらう方法はないものか、とも思います。

例えるなら、対面で話しができるスムーズさとメールでのみやりとりしかできないときの負荷のギャップが、ネイティブ同士のやりとりとノンネイティブがネイティブとやりとりするギャップに相当するんじゃないかなと思います。

もちろん、PR貰ってコードでやり取りするのはやりやすいですが、GithubOSS活動をするということはそれだけでは済みません。 僕自身も英語で問い合わせメールが来てissueで辛いやり取りをして以来、最近はそういうコストをどうしたら抑えることができるかということを考えています。 ユーザーを拡大したければ英語でマーケティングをするのも大事になってきますし、英語圏の開発をしてくれるファンを増やせればもっと楽になるのかもしれませんが...。*3

とりとめもなくまとまりもないですが、他の人はどう考えて立ち向かっているのか教えてもらえるとうれしいです。

*1:もしかすると、彼のアピールの仕方が「他より良い」という点で攻めているので面倒なissueが立ちやすい可能性もあります

*2:urban dictionaryがないと死にそうになります

*3:Issue templateやFAQである程度は対処できるとは思いますが決定打にはかけるなとも思います

2016年を振り返って

ブルガリアンスクワットをして筋肉痛でプルプルしています。大晦日も元旦もほぼDMM英会話の予定しかありません。

2016年は、世界的にも激動の年でしたが、個人的にも色々な大きなことが起こり激動の時代でした。*1

昨年の振り返りはこちらです。

chezou.hatenablog.com

Cookpad TechConf、DS祭り、CWT2016で発表した

chezou.hatenablog.com

chezou.hatenablog.com

chezou.hatenablog.com

どれも自社イベントですが、今年は外で発表する機会を例年より多くいただきました。来年も、BigData Analytics Tokyoの発表から幕開けです。

転職した

chezou.hatenablog.com

CookpadからClouderaに転職しました。Sales Engineerというロール、初めての外資ということで慣れない事だらけですが、引き続き、機械学習やデータサイエンス周りでの強みを活かしてやらせていただいています。英語は入社してからDMM英会話をほぼ毎日やったら、最低限社内でやりとりをする力と飲みながら英語話す力は得ることが出来たので、意外となんとかなるかもな、と思っているところです。抵抗感が減ったのと、ちょっと気合を入れれば何かしらの英語はアウトプットできると思えるようになり、瞬発力が前よりはついたなと思えたのが良かったです。

instagram.com

良いなぁと思うのが、同僚で40歳を越えたエンジニアが日本にも何人かいて、その人達がエネルギッシュに働き続けているのと一緒に働けることです。40歳を越えたらマネージャーにならなければならないのかな、とかコード書けないのかなという不安が払拭され、さすが外資だなと思った瞬間です。もちろん、腕に覚えがある人だから生き残ってこれているというのはあるとは思いますが、うちのAPACのdirectorも飛行機で世界飛び回りながらいつも新しく書いたコードの話してくれるので、負けていられないと思う気持ちでいっぱいです。

instagram.com

また、転職の流れで同僚からひょんなことからpyspaに誘ってもらいました。温泉にはまだ言ったことがないですが、お世話になってます。

川崎Ruby会議01を主催した

chezou.hatenablog.com

kawasaki.rbが母体となって主催した地域Ruby会議です。コミッターの方々も参戦していただいたのに、良い意味でRuby色の薄いリージョナルだったと思います。

kawasaki.rbも細く長く続いており、参加してたら転職できた人や、参加してたら起業した人、参加してたら無職になったけど仕事が手に入った人(あるいは採用できた人)などコミュニティとして横のつながりができているなと思います。

(ブログエントリとpodcastが)rebuildデビューした

naoyaさんに紹介されて、データエンジニアリングとデータサイエンスの違いの話がrebuildデビューしました。自分で聞いてた時に突如現れた時にはお茶吹きそうになりました。rebuildはサポータープログラムに入ると文字起こしや一人語り回も聞けますし、本放送とライブ放送直後の配信と二回聞けてお得感満載です。

chezou.hatenablog.com

rubyist.club

本を執筆していた

お誘いいただいて一年くらい執筆活動をしていました。音楽性の違いにより解散してしまったのですが、24月の技術書典で供養したいと思います。

その時の切り出したものがこれらの記事ですが、はてなの教科書からも引用されて嬉しかったです。

chezou.hatenablog.com

chezou.hatenablog.com

また、記事を書くに当たっていくつかFactorization MachinePythonライブラリをPython3対応する人になっていました。

出張が多かった

昨年までとはうって変わって、今年だけでパロアルト、ラスベガス、シンガポールと年に三回出張で海外に行く機会がありました。研修でUSの様々なところから来たエンジニアや営業とはなしをしたり、APACのチームミーティングでシンガやインド、オーストラリアなど様々な国の人とロールプレイをしたりとハードでしたが、成長も実感できました。ただ、妻が一人で子供を二人面倒を見る期間が出来てしまうので、ワンオペ状態となっていたのは悩ましい限りです。

今年書いたコードなど

小物が多いです。あまりコード書けていないので、来年はもう少しコード書けるといいなと思います。tabula-pyももう少しなんとかしたい。

2017年に向けて

総じて今年は、やることを減らしてできることをやるぞ、というスタンスで来ました。自分のできる範囲内でこなせたんじゃないかと思っています。家族への負荷がもう少し下げられればなと思います。

社内で思ったより色々貢献できることがありそうだぞ、ということが分かってきたので、社内外ともに色々とアウトプットしていきたいと思います。

もう一つ、筋肉を付けて加齢に伴う色々な問題を解消していきたいと思います。

*1:のっけから余談ですが、UKに縁のあるボスが来日中にBrexitの結果を受けて落胆していた様子と、エグゼクティブたちが来日中にトランプの勝利を見てショックを受けているのを見て、波乱の年だったなと思います

2016年買ってよかったもの 10選

ハード中心ですが、2016年に買ってよかったものを書いていきます。10選と言いつつ、枝分かれをしているものがありますがご愛嬌ということで。転職をしたこともあり、必要となったものが大きく変わったのですが、今回は自分の生活を楽にしてくれたものを買えたなという気持ちです。

Philips 43型 4kディスプレイ

このモデルの良い所は、

  • 40インチ超えで7万以下と安い
  • IPS液晶なので斜めから見る場合でも色の変化が少ない
  • フリッカーフリーなので、輝度を落としてもちらつかない

という点が挙げられます。特に、安い10万以下のモデルでフリッカーフリーの液晶はおそらく2016年末の段階でも他にないのではないかと思います。なお、4kで40インチ以上は大きいのではないか?ということが言われますが、PCを繋いで利用するのにはフォントサイズ等を考えると43インチが丁度良いと思います。

  • 1枚で作業領域が4倍になる(視線移動が複数枚より少なくなる)
  • 高解像度の映像も見れる
  • Netflixなどを家族で見られる
  • 少し離れても度の弱い眼鏡でも見られる

会社のMBPは4k対応で、私物のMBP late 2012は4k対応はしていないのですが、3840×2160の解像度で出力することはできます。

椅子と机についてよく聞かれるのですが、机はIKEALINNMONの幅200cmのものを、椅子はバランスボールを使っています。

鉄人倶楽部(IRONMAN・CLUB) ノーバースト ヨガ ボール 65cm IMC-81

鉄人倶楽部(IRONMAN・CLUB) ノーバースト ヨガ ボール 65cm IMC-81

PCを使っている場合、距離としては近いので全体を一目できませんが、それでも視線移動だけで十分広さを活用することができます。特に資料を作るときにパワーポイントを3画面とマインドマップを開けたのは、コンテクストスイッチが減りとても効率が上がりました。

合わせて買ったものとしては、MinDP->DPケーブル、マウス、Bluetoothキーボード、液晶クロス、クリーニング液を買いました。

広い画面になると普通のメガネ拭きなどではとてもじゃないけれど掃除が大変だったので大きいクロスを買いました。子供がティッシュで吹いてくれて傷がついたりしたのも、簡単に復旧できました。

サンワサプライ 液晶画面用ハイテククロス DK-KC5

サンワサプライ 液晶画面用ハイテククロス DK-KC5

ELECOM ディスプレイ用クリーニングリキッド CK-DP60

ELECOM ディスプレイ用クリーニングリキッド CK-DP60

なお、アクティブタイプのHDMI-miniDP変換コネクタでも、MBP late 2012ではFull HD以上の解像度が安定して出せなかったので、素直にminiDP->DPのケーブルを利用するのが良いと思います。

もともと持っていたリモコン付きのHDMI切替器と、DAC付きアンプ、パッシブスピーカーを組み合わせて使っています。HDMI切替器があると便利なのは、Chromecastのようにスリープモードがない端末を付けているとモニターが点きっぱなしになってしまうのを防ぐことができます。また、HDMIから音を光デジタル出力で分離できるので、本体のいまいちなスピーカーを使う必要がありません。もちろん、デジタルAVアンプが1台あればそれで十分かと思います。

Roomba

奥さんへの負荷が下がるし、部屋に物を置かない生活が手に入るので、子持ちの家庭には必須でした。

ポータブルPCスタンド

外や家で作業をするときに、これを持っていくことでかなり肩こりが減りました。miyagawaさんはじめ多くの人はRoostを愛用しているようですが、こちらの製品でも僕には十分でした。

Shure MV88

rebuildのmiyagawaさんがオススメしていたので買いました。これとiOS端末を持っていくことで、どこでもPodcastの収録や映像の録画ができるようになりました。特にRubyKaigiでmirakuiさんとの収録をできたのはMV88のおかげです。

rubyist.club

deuter グラント

[ドイター] deuter グラント D80604 7000 (ブラック)

[ドイター] deuter グラント D80604 7000 (ブラック)

自転車で出勤することもでき、15インチのMBPが入るものを探していたらこれに到達しました。同僚が使っているノースフェイスのバッグもよかったのですが、腰で止めることができるのが良いです。国内の1泊程度の出張であればこれ1つで十分ですし、海外出張のときの機内持ち込みにも良いです。

毛玉取り器

テスコム 毛玉取り器 グレー KD778-H

テスコム 毛玉取り器 グレー KD778-H

妻の希望で買ったのですが、電源がつながるタイプのためパワーが強く驚くほどよく毛玉が取れるそうです。子供の服なんかによく使っています。

Bluetoothオーディオ製品

AnkerのSoundCoreは再生時間が24時間と長く、一週間くらい充電しなくても良いので気に入っています。

2個めのAnker SoundBuds Sport IE20はなぜか高い並行輸入しかありませんが、こちらは非常に便利です。とりあえず、外に出る時これで十分と思わせてくれたのは大きいです。音はまぁまぁで、充電の仕方が微妙ではありますが良い製品だと思います。

Jabraの片耳タイプのヘッドセットは、外を出歩く時やHangout等のテレカン時に良いです。

dot

https://www.indiegogo.com/projects/dot-world-s-smallest-bluetooth-headset

EARINのような耳の部分だけのBluetoothヘッドセットです。こちらは充電器が磁石でくっつくようになっており、スタイリッシュで使いやすいです。電池も一回の充電で1時間半くらいは連続再生できるので、長くないrebuildであれば問題なく聞けます。*1特性として接続してから聞けるまでに少し時間がかかるのと、音はそこまで良くないのを除けば非常に良い買い物をしたと思います。

箱みかん

今年の冬は、子供が非常にみかんを食べるので箱で買うことにしました。近所のスーパーで箱売りをしている店が見つからなかったのでAmazonで買っていますが、子連れで買うのが厳しいのでかなり助かっています。これのおかげで、冬の風邪によるダウン率が下がっている気がします。

アシックスのセミオーダー中敷きの靴

アシックスウォーキング直営店について | アシックス Japan

前職とロールが変わったため、外を出歩くことが増えました。そのため、ビジネスにもカジュアルにも使えそうな靴を探していたのですが、自分の足の形に合う靴がなかなか見つかりませんでした。もちろん、既成靴じゃないものを注文するという方法もあるかとは思いますが、今回はアシックスで足の形を計測し、自分にあった中敷きをしくことで解決しました。歩人館とよばれる直営店で計測をしてくれますが、横に広めで高さが低めの足の自分にとっては、ここのおかげでかなり楽な靴を買うことができました。

いくつか、トレーニンググッズも買ったのですが、来年はこれらをちゃんと使えているよという報告にできればなと思います。

*1:残念ながらbackspace.fmは厳しいです

今年読んで面白かった漫画 2016年編

海外出張の移動やKindle Unlimitedとかもあって結構漫画を読む機会が多かったのですが、今年読んだ漫画のオススメを書いていきます。

買っているものと、マンガワンで一気読みしたものとあります。マンガワンはDAUを上げるための施策がよく出来ていて、12時間毎にチケットが4枚回復して4話まで読めるという設計(iOSAndroidは時間制限)はなかなか良く出来ています。4チケット以上持つことができないので、回復時間が来たら読まなきゃ、という気持ちになります。実際このスタイルは結構成功している部類に入っているのか、コミコなどの他のアプリも似た手法を取ってきています。なお、定期的に入れ替えられる「一気読み」がなかなか良く、まぁ10巻以上のものは普通に全部読み終わらないので、追加チケットを買うか別のところで買わざるを得ません。

さて、前置きはこの辺にして本題に入ろうと思います。どちらかと言うとメジャーな作品が多いかとは思います。

マージナル・オペレーション

ラノベ好きゲーム好きニート体質の主人公がやっとの思いで就職した会社が倒産し、民間軍事会社の「内勤」を始める。この内勤というのが曲者で、「グラフィックもしょぼくできの悪い戦略シミュレーションゲームのよう」なものを進めていきます。成績良くこなしていく主人公が見たものは...。ということで、同名の小説を元にした漫画で戦争ものの作品が好きな人は良いと思います。

ブラック・ラグーン

Netflixでアニメも見れる作品です。タイの無法者が集まるロアナプラという架空の都市を舞台にした、ガンアクションものです。テイストとしては現代のカウボーイビバップという感じで、あのノリが好きな人は良いと思います。

AIの遺電子

人間とヒューマノイドが共に暮す近未来社会でのオムニバス作品です。主人公は人工知能の専門医ですが、手塚治虫星新一を読んでいるような面白さです。人間とヒューマノイドが結婚もできる時代に、それでもロボットは行動が制限されている、みたいな設定の中、様々な人やヒューマノイドが苦悩しながら生きていきます。

かもめ☆チャンス

自転車漫画です。さえない信金のおじさんがある時自転車に目覚めるという作品です。弱虫ペダルなんかよりは比較的地道に成長していくので、読んでいて親近感がわきます。完結しています。

オメガトライブ / オメガトライブキングダム

かもめ☆チャンスの作者の玉井雪雄の作品。主人公がひょんなことから人類が新しい種に進化し、そこから世界を巻き込んだ新しい戦いがはじまります。本作品は、梶秋一や桜一郎など非常に強烈なキャラクターが所狭しと駆け回るのも面白いところです。なお、かもめ☆チャンスで梶も桜もちょっと違う名前で出ています。完結しています。

盾の勇者の成り上がり

同名のラノベの漫画化作品。異世界転生した主人公が災厄と戦うために与えられた伝説の武器が盾だった...。自分一人では攻撃力がないため、虐げられながら仲間を探しながら旅を続けていく話です。人間周りの駆け引きが多く、異世界に行くけれど地道に努力するタイプの作品です。

中卒労働者から始める高校生活

中卒労働者から始める高校生活 1

中卒労働者から始める高校生活 1

家庭の事情で中卒の主人公が働きながら妹と一緒に定時制高校に行く話です。定時制高校だから、様々な年齢や経歴(普通高校を退学したり、若い時代には高校に行けなかったり)を持った生徒が通っていてそこで起こる人間模様が描かれています。

ろんぐらいだぁす!

アニメにもなった自転車漫画です。タイトルの通り、長距離を自転車で走るだけの話ですが、少しずつ乗れるようになって成長していく様が読んでいて楽しいです。のんびりぼーっと読めるので気分転換にはちょうどよいです。なお、読んでいるとどう見ても美少女の中はオッサンにしか見えません。

Landreaall

剣と魔法との中世ファンタジーものです。最初は辺境の貴族と囚われの姫との恋物語という雰囲気ではじまるのですが、王都の学園に行くに従って様々な国の思惑が絡んできます。ファイアーエムブレムファイナルファンタジータクティクスのような中世をテーマとしたシミュレーションゲームが好きな人には良いでしょう。もともとはKindle Unlimitedで読み始めたのですが、思った以上に人間模様の描写が面白くのめり込んでしまいました。

スティーブズ

スティーブズ(5) (ビッグコミックス)

スティーブズ(5) (ビッグコミックス)

言わずと知れた、スティーブジョブズ、ウォズニアックによるApple創業からのお話。ジョブズの現実歪曲空間やアランケイの東條シーンなど、漫画っぽいアレンジで非常に楽しく表現しています。裏取りをしながらも、伝記を読むよりも話として楽しめるように作られています。

まおゆう魔王勇者「この我のものとなれ、勇者よ」「断る!」

もともと2ちゃんねるに投稿された小説の漫画版。ようやく完結しました。魔王と勇者が戦わず世界をより良くするよう手を結んだら、という話です。文明の進んでいく様子や他種族混成の軍隊による戦いが展開されるのが面白いです。

シドニアの騎士

アニメにもなった作品。完結しました。宇宙で未知の生命体との戦いを繰り返していくという、王道的なSFものです。rebuildでなおやさんが話題にしていたので覚えている方も多いと思います。宇宙ものが好きな人は是非。

市場クロガネは稼ぎたい

稼ぐことが正義とされる学園で、財閥の御曹司である市場クロガネが一文無しからスタートして稼ぎまくる話。外部のお金が全く使えない世界で、自分の実力だけでチャレンジして稼いでいくという資本主義を凝縮したような学園です。漫画としてデフォルメされていますが、少年誌にしては経済的な要素を盛り込んできていて、インベスターZとは少し違う系統ですが面白いです。

ヴィンランド・サガ

プラネテス幸村誠の作品。ヴァイキングの時代のアイスランドノルウェー、イギリスなどの戦いの話。血なまぐさい所も多いですが、結構史実も調べた上で作品を書いているようで幸村先生の遅筆さ丁寧さが際立ちます。少しずつ進んでいますが、緊迫感が続いており面白さは変わりません。

振り返ってみると

振り返ってみると、プラネテスビバップみたいな宇宙モノや中世の時代物、戦争ものが好きなようです。他にも面白い作品があればどんどん読んでいきたいと思います。

#eigo と私〜あるいは子持ちの業務外活動の続け方

こんにちは、温泉行きたいです。この記事は、pyspaアドベントカレンダー2016の21日目です。1日前は、渋川さんの保険の話でした。

Clouderaという外資系のHadoop/Sparkを中心としたプラットフォームを提供する会社に今年転職しました。そこで生きていく上で必要な #eigo の話を中心に2016年を振り返ります。

転職した

転職エントリーにも書きました。今ちょうど9ヶ月経ちましたが、まだ首にならずなんとか頑張ってやっています。

シンガポールでAPACのSales Enginnerでのミーティングに行ったら、いろんなアジアの国の英語とディスカッションをして揉まれました。 日本のチームは成長中なので、グローバルに比べると相対的に人数も少なく、Doug CuttingやMLlibに詳しいSparkコミッターのSean OwenをはじめとするUSのエンジニアと話す時間が多くあるのがとても楽しいです。

機械学習周りを自分の強みとして、いくつかの発表もさせていただきました。

chezou.hatenablog.com

chezou.hatenablog.com

さらに機械学習の話に加えHadoop/Spark周りの技術やスキル増やしており、考えられることの幅が広がっているのを実感できます。また、会社の新しいプロダクトや大きな変更が3ヶ月毎に起こるので、それを理解し広めるのに終わりがなく、息をつく暇もありません。

全然関係ないのですが、Clouderaに誘ってくれた @shiumachi さんとはIngressのコミュニティ運営で繋がったのですが、人生何が何につながるかわかりませんね。でも、今回の転職で「この人達と働きたい」という想いを重視したのですが、それには間違いがなかったなと思っています。

英語の話

転職のところでも書きましたが、英語はDMM英会話とiKnow!、podcastで継続して学習しています。DMM英会話の話をkawasaki.rbでLTしたらインタビューもしていただきました*1

eikaiwa.dmm.com

DMM英会話は先生のばらつきがありますが、いろいろな国の多くの先生と話せるのが良いです。フィリピンの先生から自分の好きだった合唱団がなくなってしまった話を聞いたときは感慨深いものがありました。また、ニュースの教材が、VOAからよい感じにピックアップしてくれる*2ので気に入っています。 DMM英会話のスケジュールをGoogle カレンダーに登録してるのですが、最近見つけたこのブックマークレットが非常に便利です。

Atsushi's Homepage ` Google ƒJƒŒƒ“ƒ_[‚Ö‚³‚­‚Á‚Æ“o˜^

f:id:chezou:20161219084621p:plain

10月はこんな感じです。11月に長らく風邪を引いてしまったので、ちょっとブランク空きましたが、会社からもDMM英会話のお金を出してもらっているので、手を抜くわけにはいきません。

単語については、そろそろiKnow!からvocabulary.comに移行しようかとも悩んでいますが今のところアプリもあるし、効率良くできるのでiKnow!で続けています。iKnow!はPCでやると圧倒的に効率良くできるので家でできるときはそうしていますが、通勤でやることもあります。

最近おすすめのpodcastとしては、All Ears English, GCP Podcastです。GCP Podcastは技術的な話も分かりやすく説明してくれ、スピードもそこそこなので良いです。

www.allearsenglish.com

www.gcppodcast.com

英語の学習は筋トレみたいなもので、使わなければ衰えていきます。実際、風邪でダウンしたりしてレッスンをしばらくやらないと、lとrの発音周りで舌が回らずに苦労します。あとは、語彙にしろ表現にしろ、引き出しの多さを増やさないとと思っています。 Duolingoの萩原さんも言うとおり、語学学習は継続してやる人が伸びると言いますし、DMM英会話のような低価格で毎日継続するのが一番得な料金体系*3はペースを作りやすいのが良いです。

jp.techcrunch.com

業務で英語を使うようになって、以前に比べて明らかに話せるようになったなぁという実感はあります。例えば、妻の友人のスウェーデン人カップルと2年前に話したときは、片言で会話する感じだったのが今は難なく話せるなという実感を得ています。一方で、英語がほぼネイティブの人同士の手加減のないスピードで議論をしている環境にいくと、まだまだしんどいです。DMM英会話のインタビューのときにお試しでいただいたネイティブ講師のチケットを試した時にも、ネイティブの人の語彙の豊富さと速い言い回しがとても訓練になりましたが、語彙セットが違うのが一番苦労します。

特に、Cloudera World TokyoのJulietの発表の統計や物理、数学用語の訳をして感じたのですが、専門用語の英語の語彙が圧倒的に少ないと感じています。 半分英語の学習と称して、CouseraのHintonのコースを学んでいますが、Quizがバグってる、Hopfield NetworkやRBMは2016年にやる必要があるのかなど色々な障壁と戦いながら続けています。

英語が前よりできるようになって良かったことは、コミッターや同僚との議論が気楽に望めるようになったことに加えて、各国のエンタープライズやスタートアップ系のソフトウェア関係の状況が前よりも見えてくるようになったことです。例えば、ソフトウェアの文脈ではアメリカ全体が凄いというよりはシリコンバレーは特に特殊な環境で天下一武道会みたいな場所である、とか、エンタープライズ系の企業はどの国でも似たような慎重さがあるんだなとか。

一方、英語ができるようになって残念なこともありました。例えば、GitHubで公開した簡単なラッパーに関する質問がメールで飛んできてそれをIssueに誘導したら辛いIssue連発されたりしました。これは、多くの人と接する機会が生まれる反面、出会う人の分散も広くなるので仕方のないことだとは思います。

妻子を持ちながら仕事以外の活動を続けるには

kawasaki.rbを月一で開催したり、川崎Ruby会議を主催したり、たまにpodcastを収録したりしていると、たまに「お子さんがいるのによく時間がとれますね?」と言われる時があります。

確かに、今年は3ヶ月に一回海外出張もしていたので、妻への負荷は上がった面もあります。また、1年位本の執筆に勤しんでいたこともあり、週末に子供を外出させることをサボっていたところもあります。なお、本は諸般の事情により企画がなくなったのですが、レビューいただいたpyspaの面々からはchezou概念本と呼ばれ一部から「まだなの」と定期的にツッコミが続くため、技術書典2に応募しています*4。「サークルカットって何?」と妻に聞いたら「カタログに載せるやつじゃん。必要なら作るよ」という心強い環境なので、通ったら技術書典でお会いしましょう。

DMM英会話も原則毎朝やるようにしていますし、週末にCourseraのコースをまとめて取り組んでいたりしますが、リズムを作って継続するということが良かったのかなと思います。こうしたリズムは、執筆活動を継続していたときに通勤時間に書いたり週末に書いたりという時間を作っていたのでできるだろうなという気はしていました。

今年に入ってゲームをすることが圧倒的に減りました。new 3DS LLも買ったんですがなかなか聖戦の系譜が進まない...。情報の収集等も基本はてブのマイホットエントリーとpodcastを聞き流す程度です。以前に比べてあまり勉強会に行かないようにしています。これは、人から執筆するなら勉強会は行かないほうが良いと言われたのもあってです。場を作る側の意義は認識しているのでkawasaki.rbは継続していますが、参加したのは大きなイベントだとRuby Kaigiくらいでしょうか。有り体に言えば、自分の時間は有限なので取捨選択を意識的にするようにはしています。

ただ、そもそも出社時間に融通がきくこと、お客様とのミーティング等がない限り自宅で働くことも許容されている*5ので、そこが大きく効いていると思います。また、妻が体調崩したときにも子供の面倒を見ながら家で仕事をすることができる環境なので、そこは助かっています。*6

あとは、できるだけ継続するためのコストを削減することを意識しています。kawasaki.rbは場所はNTT-ATさんのおかげで悩む必要もなく、ペースメーカーとしての読書会があるので手ぶらで参加もできます。DMM英会話もレッスンが終わったら強制的に翌日のレッスンを予約するルールを適用することで、翌日の時間を選ぶだけの問題に帰着させています。

今年一番の買い物

家庭内/業務での業務効率を上げるために、ルンバ870とPHILIPSの43インチの4kモニタを買いました。

洗濯乾燥機はもともとあったのですが、ルンバは何故これまで買ってこなかったのかというくらい活躍しています。Amazonのタイムセールさまさまです。後は、食器洗浄機があればいいんですが、賃貸だとなかなかスペース作るのが難しいので悩ましいところです。

ルンバのおかげで部屋が以前より片付くようになったので、PHILIPSの43インチモニタを買いました。これは、おそらく2016年12月段階では7万円前後までの低価格の4kモニタの中では頭一つ抜きん出ています。IPS液晶なので見る角度による色の変化が少ないこと、フリッカーフリーなので輝度を下げてもちらつかないことが挙げられます。4kモニタの生産性は目の視線移動だけで4枚のモニタがあるのと同義になるというところでしょうか。Cloudera World Tokyoでの発表資料を作る際は、社内のスライド2枚とマインドマップを開きながら自分のスライドを書いて効率がかなりあがりました。

また、モニタにChromeCastとAppleTVが繋がっていますが、主にChromeCastが活躍しています。妻が子供にYouTubeを見せたり、Netflixを見せたりしています。 ChromeCastの良いところは、HDMI-CMCに対応しているモニタならYouTubeアプリからキャストを開始すると電源連動で起動するのでキッチンからリビングの操作が可能です。(残念ながらフィリップスのモニタは対応していない) また、スマホの制御とは独立してChromeCastが動くので、ChromeCastでYouTubeを再生しながらキッチンではpodcastを聞くということが可能です。ChromeCastのYouTubeアプリにはキューが存在し、それに見せたい動画をリストに突っ込めば適切な動画のみを見せることができます。キューが枯渇しても関連動画やオススメ動画が出ないので、うっかり子供に見せたく無い動画が出てくるのを防げます。

当たり前の話ではありますが、業務や家庭内の活動の生産性を上げるための投資は惜しんではいけないなと思います。

子どもと #eigo

子供がNetflixのエルモズワールドという番組を気に入ったおかげで、今ではYouTubeにあるセサミストリートシリーズ(Sesame Studios)を見ているようです。

ちょっと前にピコ太郎さんのPPAPのエルモとクッキーモンスター版のCCBCが出ましたが、これ以外にも実はアメリカで有名な俳優さんやアーティストとコラボをしていたりします。ロードオブザリングガンダルフクッキーモンスターが"resist"という単語の意味を学んだり、スターウォーズパロディをしたり、ワンダイレクションとコラボしたり。

www.youtube.com

youtu.be

横で聞いていると、自分の語彙力が小学生以下なんだなと改めて気づかされます。

まとめに変えて

今年は新たな人たちとつながることができたのが特に大きな年だったなと思います。 これだけ色々とやっていけるのは、妻のおかげだなぁと思っています。本当に感謝しております。 来年は今より子供を外に連れ出したいなぁ。

明日は@mopemopeさんです。

*1:英会話未経験とはテクニカルタームですね :)

*2:Messengerアプリのセキュリティの話など、日本人に合いそうな記事がわりと多い

*3:1日1回25分で4950円で、レッスンは翌日持ち越しができない

*4:https://kuyodera.github.io/

*5:社内ミーティングもビデオ通話でも大丈夫

*6:夫婦で体調崩したりしたときのリカバリー方法をいい方法を見つけたいです。まだ、ファミサポなどは試していません。

iPhone 6sのバッテリー交換には電話サポート+エクスプレス交換がオススメ

噂のiPhone 6sのバッテリー交換に当選しました。症状としては、突然電源断が起こるというもので、ちょいちょい突如落ちる現象には悩まされていました。

当選確認は、以下のサイトでシリアル番号をいれることで確認できます。 https://www.apple.com/jp/support/iphone6s-unexpectedshutdown/

当選したら、以下のサイトから「修理サービスを申し込む」で進めていきます。 https://support.apple.com/ja-jp/iphone/repair/battery-power

で、ここからが本題ですが、特に東京近辺の人たちは、カジュアルにアップルストアに行けるため、すぐに終わるため店舗に行って修理交換をすることが多いと思います。ですが、今回は一斉にバッテリー交換が発生したため、バッテリーの店舗在庫が切れていたり、代替となるiPhone6sの在庫も切れているという状況になっていたそうです。

今回は、店舗ですぐ交換できないという情報を同僚などから聞いていたため、試しに電話サポートを受けて見ることにしました。 というのも、電話サポートならその時々のおおよその在庫状況を把握していることが期待でき、最短の選択肢を提示してくれると考えたからです。

「今すぐアドバイザーと話がしたい」を選ぶと、30秒後に電話がかかってきてトントン拍子に話が進んでいきました。「rebuildでアメリカ人は何でも電話で解決したがる」ということを言っていましたが、やはり音声情報でやりとりするのは密度が高いためスピーディーに解決しました。先方も数をこなしていたため、的確なポイントを聞いていただけましたし、予想通り店舗は在庫が切れているため1,2週間かかり、かつ複数回店舗に行かなければならないということを教えていただきました。

また、音声でやりとりしているため必要な時のみ「iPhoneを探す」をオフにするなど、合理的なタイミングで必要最小限の作業をするのですみました。おそらく、チャットサポートだとやりとりが倍になっていたのではないかな、と想像します。

最終的には、エクスプレス交換という、ヤマトの宅急便で新しいiPhoneと交換してくれる方法を教えてもらい、そのまま電話で手続きが完了しました。

エクスプレス交換は家で受け取りをしなければならないという手間はかかりますが、受け取り即発送となるので受け取ることができれば復元するだけです。また、通常の宅急便と同様に再配達のお願いもできるし、原則的に追加のお金がかかるわけではないので店舗に複数回行く必要もなく良かったです。

[12/18追記] エクスプレス交換はAppleCare+加入だと無償で使え、そうで無い場合は3000円程度かかるそうです。地方などでAppleCareに入っておらずリコールにお金かかるとすると、かなり酷いですね…。 また、クレジットカードで7万円程度のお金が保証金として引き落とされ、後日返却されます。 thx @tsuboi !

[/追記]

結果として、月曜に手続きをして金曜に交換完了するという5日で済んでしまったので、とても満足しています。また、はじめてアップルの電話サポートを受けましたが、他の日本のメーカーのようなたらい回しや待たされる体験もなく、やりとりも無駄にへりくだることもなく非常に気持ちが良かったです。

交換時には、SIMも抜いて保護フィルムもカバーも外さなければいけないので、フィルムは買い直しました。

当選したけどまだ交換していないという人は、お試しあれ。

Rubyで深層学習を使った音声合成Amazon Pollyを使ってWebサイトの読み上げ音声合成してみた

f:id:chezou:20161201230818p:plain:w200

今日のre:InventでDeep Learningを使った音声合成サービスのAmazon Pollyが発表されました。 正直、DLを使ったの音声合成が話題になったのなんて今年に入ってからだと思っていたのに、もう商用化したんか!という気持ちでいっぱいです。

Amazon Polly – 文章から音声へ、47の声と24の言語 | Amazon Web Services ブログ

Amazon Polly – Lifelike Text-to-Speech

[2016/12/02追記] PollyがDLベースという話は https://aws.amazon.com/jp/polly/ に、"Polly is an Amazon AI service that uses advanced deep learning technologies to synthesize speech that sounds like a human voice. "と書かれていますが、DNNを一部のモジュールとして使っている波形接続型じゃないの?とのことです。なので、「DLを使った」という表現に修正しました。

なので、DeepMindのWaveNetのように音声を直接生成しているわけではなさそうです。

[/追記]

Amazon PollyはAmazon AIのサービスとして展開していますが、画像認識(Amazon Rekognition)、音声合成(Amazon Polly)、音声認識自然言語理解という対話用のコンポーネント(Amazon Lex)が使えるようになりました。 画像認識についてはGoogleのVision APIで話題になりましたが、その他の2つはちょっと変わっていると思いますがこれはおそらくSiriのような対話エージェントであるAmazon Alexaのバックエンドを切り売りしているんだと思います。

Pollyが凄いのは、AWS CLIで簡単に音声合成がされるということです。しかも、お値段は月500万字までは無料で、その後も$0.000004/文字と非常に安く、本一冊で$2.4くらいという驚異的な安さです。なので、ちょっと前にrebuild.fmでスクリプト書くだけで音声合成podcastできるんじゃないみたいな話題がありましたが、おもったより速くその現実が来るのかもしれません

AWS CLIを使ったbashのサンプルコードはこんな感じです。かんたんでしょ?

$ aws polly synthesize-speech \
  --output-format mp3 --voice-id Joanna \
  --text "Hello my name is Joanna." \
  joanna.mp3

また、サポートしている言語数も2016/12/01現在で、ヨーロッパ言語を中心に以下の24言語をサポートしています。

日本語も聞いていて結構自然に聞こえており、ちょいちょい単語の認識に失敗するときは変なアクセントになりますが、レキシコンで単語を登録すれば自分で改善もできそうです。 サンプル音声はこんな感じです。

http://chezou.tumblr.com/post/153883804175/amazon
chezou.tumblr.com

[2016/12/02追記] Google翻訳に手伝ってもらって英語版をMediumに書きました。それの生成した音声も貼っておきます。

soundcloud.com

[/追記]

で、Mediumなんかの記事の中に面白い記事をよく見るのですが、英文だとなかなか途中で挫折するので、音声にすれば聞くんじゃないかと思い、記事を音声に変換するコードをRubyで書いてみました。 以下にコードがあります。

gist.github.com

ポイントとしては、幾つか重要な制約があります。

  • API一回あたりの文字数が1500字*1(なので、catでmp3を結合している)
  • 長い音声は、5分以降が切り捨てられる

詳細は以下を参考にしてください。 docs.aws.amazon.com

実際には、ちょうどHckr newsで見つけた以下の記事の音声を聞いてみました。意外と聞けます。

How the Circle Line rogue train was caught with data

もうちょっと頑張ってRSSを取得すれば、特定のサイトの最新の記事の音声を生成して、Dropboxに保存した音声をモバイルから再生するということもできそうですね。

正直、安くて多言語でそれなりに自然で何よりAPIが使いやすいということで、既存の日本の音声合成を頑張ってきた企業は大変だなぁという気持ちになりますが、いろいろな使い方ができそうで楽しみです。

*1:厳密には、"1500 billed characters (3000 total characters)"と書いてあるけど"billed characters"がわからない