2012年7月19日木曜日

最近読んだ本、読んでいる本 はてなブックマーク

グーグル ネット覇者の真実



600ページを超える大作。ものすごく面白かった。

ラリー・ペイジやサーゲイ・ブリンの天才ぶりと、常識にとらわれない自由な発想が印象に残った。
2人とも子どもの自主性を重んじる「モンテッソーリ教育」を受けたそうで、その影響が大きいのではないかと。

Don't be Evilという標語の誕生と、その標語で苦しむことになるいくつかのエピソード(中国、ブックサーチ、プライバシーの問題など)も書かれているが、基本的には善意の会社なのだと思う。ラリー・ペイジが外部の批判に苛立つ気持ちは少しわかるような気がした。

Googleってやっぱり特別な会社なんだなと改めて感じていると、この本にも何度も名前の出てくるマリッサ・メイヤーが、米ヤフーのCEOになるという。日本では考えられない人事。
この特別な会社で、エンジニア至上主義の中でリーダーとしてやってきたマリッサ・メイヤーが、CEOとしてヤフーを立て直せるのかどうか、とても興味深い。


スターバックス再生物語


これも面白かった。

この前の本(~成功物語)も少し読んだのだけど、こちらのほうが読みやすかった。
なんとなくはじめたわけでもお金のためだけにはじめたわけでもなくて、コーヒーや「サードプレイス」というビジョンに情熱を持っていたからこそ、世界規模の企業になれたんだろうなと思った。
ただスタバは食べ物の品質に向上の余地があると思わなくもない。


「週4時間」だけ働く。


これも600ページを超える分厚い本。
少し俗っぽい気もするが、仕事の取り組み方を考えるきっかけになるかも。

インドなどに個人的な用事をアウトソースすることで時間を浮かすというのは、検討してみたいと思った。

Webのサービスのような知的労働は世界のどこでもできるわけで、うまく新興国の力を使えるように仕組み化できたら、みんなハッピーになれるのではないか。
機会があれば化けるはずの眠れる才能があると思うともったいない。


情報検索の基礎



PDFが公開されているIntroduction to Information Retrievalの日本語訳。
自分で検索エンジンを作りながら検索技術を勉強しようかと。
章を進むにしたがって難しくなるが、なんとか読み切りたい。
学生時代にもう少し勉強しておけば…と思ってしまうが、今からでもがんばろう。


2012年6月26日火曜日

『Eloquent Ruby』を読む Chapter 2. Choose the Right Control Structure はてなブックマーク

Eloquent Ruby

Chapter 1

Chapter 2. Choose the Right Control Structure
(正しい制御構造を選ぼう)

この章は簡単に。

・if not ~ ではなく unless ~ を使おう


・一行のときは後ろに置こう


・for ~ end ではなく、each do ~ end を使おう(Rubyのイディオム的に)

・caseについて…は省略

・Rubyでfalseになるのは、false と nil だけ
→0も 'false' (String) もfalse ではない

・?: (三項演算子)がRubyではよく使われる
→fileの値は、allがtrueなら'specs'、falseならlatest_specs'。


・最後はこれ

→@first_nameがfalse(falseかnil)なら''(空文字)が入る。falseじゃなければ、そのまま。

奇妙な構文に見えるが、
count += 1
が
count = count + 1
であるように、

@first_name = @first_name || ''
の省略形だと思えばいい、とのこと。

よく出てくるので自然と覚えます。

Chapter 3. はRubyのCollection、配列とハッシュについてです。

Eloquent Rubyを読む(インデックス)


2012年6月20日水曜日

『Eloquent Ruby』を読む Chapter 1. Write Code That Looks Like Ruby はてなブックマーク

Eloquent Rubyを読んでいきます。

Chapter1. Write Code That Looks Like Ruby
(Rubyらしいコードを書こう)

第1章はコーディングスタイル。
一般的なことなので、Rubyを勉強した人は軽く読めばいいかも。

・意図の分り易いコードを書こう(Great code shouts its intent)、
・簡潔に書こう(good code is not just clear, it is also concise)

というようなことがまず書かれていて、あとはコーディングスタイルについて。

最初はインデントの話から。

・インデントは two space
タブは厳禁 (→環境によって崩れるから。)


この本を通してこのDocumentというクラスを使うことになりますので、軽く眺めておきます。

・# でコメント
in-line で置くこともできる
return 0 if divisor == 0  # Avoid division by zero

コメントでは、何をしてるかは基本的には書かない(コード自ら語るようにする)
good code is like a good joke: It needs no explanation.

・クラス名はcamel、その他はsnake(Camels for Classes, Snakes Everywhere Else)
定数はCamelにするか、ANTLERS_PER_MALE_MOOSEのように書くか。(この本では後者)

・かっこ(parentheses)は省略できる
引数がない場合は普通省略する(上記Documentのwordsメソッド)

・ブロックは一行のときは{ } 、複数行のときはdo ~ end

In the Wild

各章のIn the Wildというコーナーでは、実際のRubyコードでは勉強したことがどう使われているかということが書かれています。

この章では、Ruby standard libraryのset.rbで、コメントがどう使われているかなどが紹介されています。

内容もまだまだ基本的なことですので、このあたりで英語にしっかり慣れておきます。
平易な英語なので、英語がまだまだの自分でもなんとか読めました。

Chapter 2はControl Structure(制御構造)です。

Eloquent Rubyを読む(インデックス)

『Eloquent Ruby』を読む はてなブックマーク

Eloquent Ruby
日本語訳が出てないせいか、いまいち読まれてないように思いますが、Rubyらしいコードを書いて、Rubyを使いこなせるようになるために、これはすごくいい本です。
入門書を読んでひと通り理解した人に、次に読んでほしい本(というか自分がそうしたかった)。
英語で読むというのは少し大変ですが、その苦労をする価値があります。

著者は、RubyによるデザインパターンのRuss Olsenさん。
著書はこの2冊だけのようですが、外さないですね。どちらもおすすめです。

31章ありますので、1日1章ずつ読んでいけば、一ヶ月で読めることになります。
復習も兼ねて、1章ずつまとめてみようと思っています。




2011年2月25日金曜日

Titanium Mobileではパスワードを安全に保存できない はてなブックマーク

iPhoneアプリをTitaniumで作っている。

iPhoneアプリでは、ログインのためのIDとパスワードを端末に保存することがよくある。それをTitaniumでどうやるのか調べた。

結論:現時点では、TitaniumでIDとパスワードを安全に保存する方法はない。
(2011年2月現在)

そもそも、iOSでどうやって保存するのかというと、Keychain という仕組みを使ってパスワードを保存するのがよいらしい。
iPhoneアプリ用のログイン情報設定画面の作り方(その2)

そのKeychain を使うことが、Titaniumからはできない。

本家のQ&A。
Best practice for storing user authentication credentials?

開発元AppceleratorのCEO、Jeff HaynieがKeychainをサポートする計画だと答えているが、1年経った今でもサポートされてはいないようだ。

Keychainを使わないで平文でパスワードを保存するとどうなるか、そういうアプリはあるのかということも調べたので、別エントリーに書く予定。

2010年11月9日火曜日

新Kindle(右) はてなブックマーク


カバーも合わせて買ったので、送料など合わせて18,000円くらい。
画面の切り替えスピードとコントラストが改善されているということだけど、比べてみるとわざわざ買い換える必要もなかったかな?
まあいいか。

2010年10月24日日曜日

Titanium MobileでAndroidがようやく起動 はてなブックマーク

このエントリーを見て、Titaniumを使ってみたのだが、iPhoneエミュレータは動くのにAndroidのほうは一向に動かなかった。

何回やっても、

[INFO] Building ○○ for Android ... one moment

のまま止まってしまうという現象にさんざん悩んだのだが、どうもjavaのPATHが通っていなかったからみたいだ。JAVA_HOMEは設定してあったし、コマンドプロンプトから普通にjavaも実行できていたので全く気付かなかった。エラー出してくれよといいたい。

PATHに%JAVA_HOME%\binを追加して動作した。



(でもKitchenSinkは結局動作せず。GitHubからダウンロードしてきたver1.4.0。)

少し見た限りでは、JavaやObjective-Cで直接開発するよりずっと簡単に開発できそう。
だいたいのことはできそうだった。

ただ、検索結果でよくある、TableViewをスクロールすると自動で次を読み込んでくれる機能だけがどうやるかわからなかった。できるんだろうか。

iPhoneだと行をたくさん読み込んでもうまくメモリ管理できるようになっていたと思うが、そのへんもどうなるんだろう。