Page 3 of 13

株式会社ドワンゴを退職しました


巷で流行りのアレをやっていなかったので。

ドワンゴアドベントカレンダー2014に参加して記事を書いた以外はあまり勤務先について書いていなかったのですが、先月末で株式会社ドワンゴを退職しました。
最終出社自体は9月の上旬だったのでだいぶ間が空いてしまったのですが、区切りの意味も込めて記事にしておきます。
なお、退職の理由は私的なもので、とりあえずチャーハン及び焼きそばが関係ないことだけは明言しておきます。

業務では主にPHPとScala、たまにJavaとRuby、個人ツールでOCamlなどを書かせていただいていました。
大規模なサービスの開発に携われたこと、人に恵まれたこともあり、学ぶことも刺激も多く、短い間でしたが非常に良い経験になったと感じています。
なかでもデブサミやAkamaiカンファレンスなど各所で発表をされている吉村さんには、設計論や開発マネジメントなど多岐に渡り教わることが多く、大変お世話になりました。

次は名古屋にある株式会社Misocaさんでお世話になることになります。
というか明日が初出社なので、明日から働きます。
業務内容としては、Ruby on Railsで請求書作成サービスのMisocaの開発に携わることになりそうです。

ちなみに、転職して名古屋に行くと行ったらほとんどの方に「関数型の仕事?」という反応をされました。
まぁさもありなんという感じですが…w
そういった会社も検討したのですが、今回はスタートアップの会社でチャレンジしてみたいと思いMisocaさんで働くことにしました。

ドワンゴの皆様、今までお世話になりました。
Misocaの皆様、これからよろしくお願いします。

(追記)
干し芋のリスト晒しておくので、気が向いたらよろしくお願いします。


ConoHaのオブジェクトストレージをPaperclipから使う


清楚かわいいConoHaちゃんが、APIのレビュー記事を書くとクーポンをくれるらしいので、全力で乗っかっていこうと思います。

conoha_1920_1080_mode_2015summer
(画像はこのは通信室より引用)

今回利用してみるのは、ConoHaのオブジェクトストレージです。
これは基本的にOpenStack Swiftを使って実現されており、API仕様OpenStack Swift APIとほぼ同じ内容になっています。

APIが互換であれば、OpenStack Swiftを扱えるシステムからConoHaのオブジェクトストレージも扱うことが出来るはずですね。
そんなわけで、試しにRuby on Railsで画像アップロードをお手軽にできるPaperclipのバックエンドをConoHaのオブジェクトストレージにしてみましょう。

Continue reading


Kindle Paperwhiteの新型モデルが凄い


先日のKindle本半額セールで色々本を買った関係で、Kindle Paperwhiteを使いまくっています。
自分の持ってるやつは以前の記事で書いた通り2013年7月に買ったもので、既に2世代ほど型落ちしているんですが、今月末に新型モデルがリリースされるようです。

Kindle Paperwhite Wi-Fi 、キャンペーン情報つきモデル
Kindle Paperwhite Wi-Fi 、キャンペーン情報つきモデル
Amazon 2015-06-30

Amazonで詳しく見る by G-Tools

同じPaperwhiteなら、多少モデルチェンジしてもそこまで変わっていないだろうと思ったんですが、調べてみたところ解像度が大幅に上がっていました。
商品ページにもNEWとアピールされていますが、KindleやKindle voyageと比較したほうが製品のポジション変化がわかりやすいので、そちらを見比べていきましょう。

まず、以下が一つ前の2013年モデルでのスペック比較表です。

kindle_spec_2013

一方、以下が新型モデルでのスペック比較表です。

kindle_spec_2015

見ての通り、2013年モデルでは廉価モデルのKindleが167ppi、フラッグシップモデルのKindle voyageが300ppiに対して、Kindle Paperwhiteはちょうど中間くらいの212ppiとなっていました。
一方、新型モデルでは300ppiと、フラッグシップのKindle voyageに並んでしまっています。
こうしてみると、voyageは重量がわずかに軽い程度で、スペック比較表からは良さが全く伝わらなくなってしまっています。
い、一応物理ボタンとか違いもあるので、スペックに表れていない良い所もあるんじゃないでしょうか…?

そんなわけで、解像度が上がってvoyageのお株を奪ってしまった感のあるKindle Paperwhite新モデル。
リリースに合わせて、プライム会員なら4,000円割引のキャンペーンも行われているようです。

kindle_campaign

キャンペーンページからざっくり引用すると以下の通り。

  • 新モデルのKindle Paperwhite、及びKindleが対象
  • Amazonプライム会員なら4,000円OFF
  • Amazonプライム無料体験中の場合は4,000円分のギフト券プレゼント

新モデルのKindle Paperwhiteはキャンペーン情報付きWi-Fiモデルで14,280円となっていますが、プライム会員であれば10,280円で買えるということですね。
解像度がvoyageと同等になることを考えると、かなり魅力的な価格です。
また、なぜかKindleも対象となっており、こちらに4,000円OFFを適用するとキャンペーン情報付きWi-Fiモデルで4,980円。
もはや電子機器とは思えない安さになります。
バックライトがない、解像度が低いなどの欠点を気にしないのならかなりお手頃ですね。

ちなみにAmazonプライム無料体験中でギフト券がもらえるので、「無料体験に加入→Kindle Paperwhiteを注文→無料体験期間で解約」とすれば実質無条件で4,000円OFFになる…
かと思いきや、キャンペーンページにしっかりとその場合の措置が書かれていました。以下引用です。

【プライム無料体験中のお客様】
本ページに従い、複数の「Kindle」または「Kindle Paperwhite」をご購入いただいた場合も、お送りするAmazonギフト券は4,000円分となります
プライム本会員登録されなかった場合、およびご購入いただいた「Kindle」または「Kindle Paperwhite」を返品した場合、本件の利用条件を満たさない場合として、遡って本件の対象外となります
プライム会員登録後、1年以内にAmazonプライム会員登録をキャンセルした場合、お送りしたAmazonギフト券は無効になります。またすでにAmazonギフト券をご利用いただいていた場合、クレジットカードに使用分の金額を請求いたします
プライム会員登録方法はこちら

そんなわけで、今回のキャンペーンはあくまでもプライム会員へのメリット提供、及びプライム年会費とほぼ同額を割り引くことでプライム加入を促すことが目的のようです。

ちなみに、新型リリースに伴って型落ちとなる2013年モデルのほうも3,000円割引のキャンペーンをやっていました。
こっちは6/27までと期間が短いです。

Kindle Paperwhite (第6世代) ―Wi-Fi + 3G
Kindle Paperwhite (第6世代) ―Wi-Fi + 3G
Amazon 2013-10-22
売り上げランキング : 4

Amazonで詳しく見る by G-Tools

3Gつきモデルで12,000円ちょいと、プライム会員入っておらず解像度を気にしないならこちらのほうがお得かもしれません。
なおキャンペーンページにも書いてありますが、プライム会員の4,000円クーポンは2013年モデルのKindle Paperwhiteには利用できないのでご注意ください。

以上、自分が気になって調べたKindle Paperwhiteの新モデルとキャンペーンについてでした。
ちなみに自分はプライム会員のため、この機にPaperwhiteを買い換えるべきか悩んでいます。
現状の端末で不満は全くないんですが、壊れたら買い換えようって言ってるとe-ink端末ってすごい頑丈そうでなかなか壊れない気がするんですよね…
だれか新モデル買ったら感想聞かせてください!


スモールチームの情報共有にIncが便利そうな話


自分含めて3人のチームで趣味プロをしていこうと画策しているんですが、その時に課題になったのが情報共有ツール。
リアルタイムの情報共有はチャットツールのSlackで良いんですが、開発環境の構築方法とか、使ってるツールの一覧とか、そういった「後から見返したい情報」を残すのにチャットツールはあまり向いていないんですよね。
またSlackは無料だと10,000messageまでしかログを保存してくれないため、なおのこと情報の集積は別の場所が必要になってきます。

こういう場合Wikiがお手軽な選択肢に上がるんですが、無料だからといって広告が出るのは嫌だし、最近は色々なサービスが出ているから選択肢も多かろう、ということで色々漁っていました。
条件としては以下のような感じ。

  • Markdown的なものでさっくりエントリを書いて共有できる
  • インターフェイスがこなれていて使いやすい
  • クローズドでメンバー以外にはエントリが見えない
  • 3人で利用した時にできれば無料、無理なら可能な限り低価格で済む

以下では検討したシステムについて紹介していきます。

Continue reading


strtotimeとtimestampの素敵な関係


基本的には関数型言語推しですが、業務では諸事情でPHPを使っています。
色々と罠の多い言語であることは知っていたんですが、先日「これはあんまりだろ…」という挙動を踏み抜きました。
軽くググった限りでは同様の事例紹介が見当たらなかったのと、あまりにも衝撃的だったため記事として残しておきます。

前置き:MySQL DATETIMEとstrtotime

PHPerな諸氏におかれましては、strtotimeが色々と頑張りすぎるせいでハマったことは1度や2度ではないのではないでしょう。
例えばMySQLのDATETIMEで未定義を表す0000-00-00 00を32bit環境でstrtotimeに渡すとfalseになります。
ドキュメントを見ると

返り値 ¶
成功時はタイムスタンプ、そうでなければ FALSE を返します。 PHP 5.1.0 以前ではこの関数は失敗時に -1 を返します。

と書かれており、「そうか、日付として不正だから解釈に失敗してfalseを返したんだな。0月とか存在しないし」と思ってしまいそうになるんですが、同じコードを64bit環境で実行すると以下のようになります。

$ php -r 'var_dump(strtotime("0000-00-00 00:00:00"));'
int(-62170016400)

謎の数値が出てきました。
これが一体いつを表しているのか、さらにdate関数を掛けて確認してみます。

$ php -r 'var_dump(date("Y-m-d H:i:s", strtotime("0000-00-00 00:00:00")));'
string(20) "-0001-11-30 00:00:00"

つまり、PHPはMySQLのDATETIMEの未定義値を「マイナス1年11月30日の0時0分0秒」とみなしていることがわかります。
実はPHPでは0月が「前年の12月」を、0日が「前月の最終日」を、それぞれ表すと解釈されるので、0年の1ヶ月前の更に1日前で-1年11月30日という日付が導かれるんですね。
32bit環境でfalseが返っていたのは、日付として不正だからでも何でもなく、単に「表現できる整数値の範囲を超えていたから」という理由だったわけです。

この挙動の違いは公式ドキュメントのコメント欄にさんざん書かれているので知っている人も多いと思います。
一方、今回踏んだ挙動は発生条件がかなり限られていることと、そもそも普通はそんなことしないだろう、という辺りであまり知られていないだろう挙動です。
あ、ここまでが前振りです。長くてすみません。

Continue reading