Hatena::ブログ(Diary)

naoyaのはてなダイアリー

October 18, 2014

エンジニアにとって良い組織とは何かを知りたい?

「エンジニアにとって良い組織体制ってどんなものですか? お話を伺いたいのですが・・・」と依頼をいただくことがあるが、都合上全部を受けてはいられない。ので、そういう疑問を持たれた方は以下の本を読むと良いかと思います。

How Google Works (ハウ・グーグル・ワークス)  ―私たちの働き方とマネジメント
エリック・シュミット ジョナサン・ローゼンバーグ アラン・イーグル
日本経済新聞出版社
売り上げランキング: 19

小さなチーム、大きな仕事〔完全版〕: 37シグナルズ成功の法則
ジェイソン・フリード デイヴィッド・ハイネマイヤー・ハンソン
早川書房
売り上げランキング: 7,579

Team Geek ―Googleのギークたちはいかにしてチームを作るのか
Brian W. Fitzpatrick Ben Collins-Sussman
オライリージャパン
売り上げランキング: 14,665

この3つを読んで何も感じることがないようなら、あなたにはエンジニアにとって良いなにがしを構築する素養はないと思うし、本なんて読んでられるかというのには、その程度のことにも時間を割けないならそもそも諦めろとしか言えない。

September 29, 2014

日本語で読める IT名文書 三選

pplog の方に書いたけど、別にブログに書けばいいかと思い直したので投稿。Slack でチャットしてて、なんとなくこれ面白いよ URL を共有する機会があったので適当に選んだもの。

伽藍、バザール、ノウアスフィア、おなべ(3)

artonさんがノウアスフィアの開墾についてわかりやすく書いてるもの。原文はちょっと長くて読むのが大変だけど、こっちは分かりやすいし、面白い。OSS の構造がなんかわかったきになる、すごい。

Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した

Rebuild.fm とかでも何回か話してる記事。元Amazon で Google+ の中の人が「俺たちプラットフォーム作ってる言ってるけど、全然だめだよ! お前ら Amazon の SOA とか見ろよ!」と憤って社内にメールしたら流出しちゃいました、という文書。

ベゾスからトップダウンで「SOAしないやつはクビな」とか言ってできあがったシステムがその後のアレになりましたとか、むちゃくちゃ面白い。

射撃しつつ前進

メールみてWebみて昼飯くってメールみてWebみて・・・ってやってたら夕方になってようやくエディタ立ち上げる、みたいなくだりがあるあるすぎて面白い。本編よりそこが面白い。

ハッカーと画家

例えば、大学で私は、コンピュータに手を触れる前に 紙の上でプログラムを完全に理解しなければならないと教わった。 でも私はそういうふうにはプログラムできなかった。 私が好んだやりかたは、紙の前ではなく、コンピュータの前に座って プログラミングすることだった。もっと悪いことに、 辛抱強く全てのプログラムを書き上げて正しいことを確認するなんてことは せずに、私はめちゃくちゃなコードをおっぴろげて、 それを次第に形にしてゆくのだった。 私が教わったのは、デバッグとは書き間違いや見逃しをつかまえる 最終段階の工程だということだったが、 実際に私がやっていたのは、プログラミングそのものがデバッグという具合だった。

随分長い間、私はそのことを後ろめたく思っていたものだ。 ちょうど、小学校で教わった鉛筆の持ち方と違う持ち方をしていることを 後ろめたく思っていたのと同じように。 他のものを創る人々、画家や建築家がどうやっているかを見れば、 私は自分のやっていることにちゃんと名前がついていると気づいていただろう。 スケッチだ。 私が言えるのは、大学で教わったプログラミングのやりかたは全部間違っていた ということだ。 作家や画家や建築家が、創りながら作品を理解してゆくのと同じで、 プログラマはプログラムを書きながら理解してゆくべきなんだ。

最高の一節。

あれ、3といいつつ4になってた・・・

September 23, 2014

HBFav 2.7.1 をリリース。iOS 8 に対応しました

審査に時間がかかってしまいましたが、無事 HBFav 2.7.1 をリリースできました。

これで iOS 8 にするとクラッシュする問題が解消されました。

ただし、iOS 8 でプッシュ通知を受け取ろうと設定しようとしたとき正しく設定できない問題が見つかったため、急遽修正しまして 2.7.2 の審査待ちです。デバッグの過程で既存のプロビジョニングファイルをいろいろいじったせいで、もしかすれば既存のバージョンもプッシュ通知が届かなくなっているかもしれません、申し訳ないです。プッシュが届かなくなっているもしくは iOS 8 でプッシュが来ないかたは 2.7.2 のリリースをお待ち下さい。

このところ HBFav の開発にあまり時間が取れず、バージョンアップの割に目新しい機能はほとんどありませんが、今後ともよろしくお願いします。

September 18, 2014

HBFav が iOS 8 でクラッシュする問題について

HBFav をお使いいただきありがとうございます。

現在のバージョン 2.6.1 は、iOS 7 から iOS 8 にアップグレードするとアプリ起動後、記事一覧を読み込んだところでクラッシュしてしまいます。

クラッシュの原因を修正したバージョン 2.7.1 を先週には App Store にアップロードしたのですが、まだ審査待ちでリリースできていません。申し訳ございません。今しばらくお待ち下さい。

September 14, 2014

質問: Go の変数初期化に伴う条件分岐をもっと良い感じに書きたい

Go にはスクリプト言語でいうところの variable = a || b のような構文や三項演算子がないようなので、

var accessKeyId, secretAccessKey string
if config["aws_access_key_id"] == "" {
	accessKeyId = os.Getenv("AWS_ACCESS_KEY_ID")
	secretAccessKey = os.Getenv("AWS_SECRET_ACCESS_KEY")
} else {
	accessKeyId = config["aws_access_key_id"]
	secretAccessKey = config["aws_secret_access_key"]
}

とか

var url string
var err error

if len(os.Args) == 1 {
	url, err = gozo.SendCapture()
} else {
	url, err = gozo.SendFile(os.Args[1])
}

こんな感じのコードを毎回書くことになるんだけど、本当は

accessKeyId = config["aws_access_key_id"] || os.Getenv("AWS_ACCESS_KEY_ID")
secretAccessKey = config["aws_secret_access_key"] || os.Getenv("AWS_SECRET_ACCESS_KEY")

とか

url, err := len(os.Args) == 1 ? gozo.SendCapture() : gozo.SendFile(os.Args[1])

みたいに書けたらいいと思ってますができません。それは諦めるとしてもちっとまともに書きたいんですがみなさんどうしてるんでしょうか。

追記