ページ

2010年5月31日

でかいiPod Touchがやってきた

先週の金曜日にでかいiPod Touchこと、iPadが届きました。いろんなところで、凄いとか、いいとか、そんなエントリばかりです。まあ、一部「かな打ち」ができないとか、とってもマニアックなものもありますが・・・。で、みんなが同じような反応ばかりなので、ちょっと批判してみたくなります。

まず、先週の金曜日はありえるえりあ勉強会(iPadでプレゼンしてます)でした。僕も最初の数分間しゃべります。一応、数枚プレゼンの資料を用意しました。もちろんMacのKeynoteで前日に作りました。メールで資料をiPadに送ってKeynoteに読み込ませると、沢山警告がでます。フォントがないというのは、まああきらめが少しだけ付きますが、やっぱりもう少し増やして欲しいです。一部のエフェクトが効かないとかもハードウェアスペックを考えれば我慢ができます。でも、変なオブジェクトが表示されてそれを消せなかったり、画面全体が灰色になっていまいちだったり、ハードウェアスペックとは関係ないエフェクトがなくなったり・・・。さんざんです。iPad上で修正しようとしましたが、割と大変だったので、PPTにMacで変換させてからiPadのKeynoteに食わせると、大体いい感じです。ちょっとだけ修正しないといけませんが・・・。MacからKeynoteのフォーマットで出力するときもうちょっとなんとかならないものかな?同じ会社のプレゼンツールとしてはいまいちの連携です。

それから、キーボードが使いにくいとかは、慣れの問題で、そのうちかなり慣れそうです。でも、ブログを更新したくてもiPadでは更新できません。ここのあすなろはもちろん、個人のブログのbloggerもリッチテキストエディタが使われています。会社の製品で使っているckeditorもそうですね。で、このリッチテキストエディタに文字を入力することができません。これは、iPhoneも同じなのですが、iPhoneだと我慢できますが、iPadではむりです。ネットブックの代替的な位置づけだからかもしれません。ブログの更新もまともにできないようでは困りものです。

で、批判ばかりだと何なので、Flashの話。僕がみるサイトはほとんどFlashが使われていません。使っていても広告だったりするので、特に困りません。動画(ポルノじゃないよ)でFlashが使われていたりすることもありますが、 よっぽど気が向いた時じゃないと見ないので、気になりません。と言うことで、まあ、Flashがなくてもいいかな。多分、Linuxを使っているときに長年、Flashがサポートされていなかったり、不安定だったりしたせいで、免疫ができているのかも知れません。

まとめると、情報を見るデバイスとしてはいいね。 



2010年5月28日

届いた

月刊Pythonと言うネタから始まるかも知れない真実

今週の初め、一枚の画像がTwitterのタイムラインに流れてきました。下の画像がそれです。なかなか良くできた画像です。いかにもそれっぽいです。

105426889.png

この画像にPython界隈の人たちがおもしろがってRTしまくりました。どこで買えるの? バックナンバーは誰が持っている? 定期購読したいな〜。俺、定期購読しているよ、うちの会社、広告出しているよ、とか。みんなで釣られて楽しんでいました。Twitterのおかげでおもしろものが広まるのがとても速くなったのを実感します。と言っても、僕はTLを気が向いたときにしか読まないので、かなりの確率で見逃すんですが・・・。

で、「どこでかえますか? 」「電子書籍じゃねーの?」 という流れから、「書き手が集まれば作りますよ」と。Twitterこわい。書きたいとか、おお、とか言っている間にいつの間にかメーリスができていました。メンバーも25人もいます。今はネタ出ししています。いや、もともとの始まりがネタだったんだが・・・。でも、こんな感じで何かが決まっているのをみているだけでも心地よいです。そして、その中に飛び込むともっと心地よいです。

まだ、本当に出すのかどうかや、月刊は息切れするだろう、とか、まだ始まったばかりで曖昧ですが、何か楽しいですね。曖昧だけど、僕は定期的に出していけたら面白いかな〜、と。ちなみに、メルマガじゃなくって電子書籍なのは、上の表紙が必要だからです。表紙がなければ出す意味がありません。

電子書籍がいろいろ話題になっていますが、 コミュニティベースのゆる〜いつながりでできるって、凄いです。まあ、電子書籍も、このネタ、じゃなくって企画も始まったばかりだから面白いのかも知れませんが、不機嫌な顔して冷静に現状を分析するよりも楽しめるときに楽しんでおかないと・・・。と言うことで、月刊Python、とっても楽しみです。月刊じゃなくなるだろうけど・・・。



2010年5月27日

経験がパターン化する

タイトルの「経験がパターン化する」と言うのは僕の言葉ではなく、アリエルの会長様の言葉です。この言葉がでてきた背景は言えないのですが、かっこよくて、深みのある言葉です。

さて、gihyo.jpの「一生の仕事を選ぶと言うこと」の 記事はとても面白いです。中嶋さんもそうだし、今度ありえるえりあ勉強会で講演していただく柴田さんも50前後です。僕もいつの間にかアラフォーとなっていました。僕も中嶋さんや柴田さんのようにいつまでもプログラマでいたいと思います。多分、アリエルのエンジニアの多くの人もそう思っています。つまりは、プログラマを「天職」と考えている人たちの集団です。それはそれですばらしいことです。日本じゃそういう会社は少ないので、大事に育てていきたいです。

プログラマを現役でいつまで続けると言っても、やっぱり20代のころのようなプログラミングは今はできないし、その反対もあります。今は、昔はあまりなかった経験やその他もろもろがあります。どちらが優れているかではないです。アリエルの20代の人を見ていると尊敬できるし、アリエルの一番の年長者の42歳のエンジニアをみても尊敬できるし、彼らは全員がライバルです。

昔なかった経験が今はあると言うとき、冒頭の会長様の言葉が思い出されます。ちょっと前に@ITでおじさんがオブジェクト指向わからないと書いて話題になっていました。昔からの経験がパターン化して抜け出せなかったのも一つかも知れません。そして、今は笑っていられますが、自分もあと10年したら似たような状況になっているかも知れません。会長のことばを思い出しながら、経験だけで生きて行かないようにしようと思う今日この頃です。 

とは言いつつ、今一番興味があることを勉強するというか、興味あることで遊んでいるだけで、全然切迫感がないです。僕は勉強はしないので・・・。プログラミングも本を読むことも、すべて遊びです。



2010年5月24日

今更ながらServersMan@VPS

ちょっと前にとって〜も安いServersMan@VPSに契約しています。3ヶ月無料な上に一月500円なので、iPadからsshでつないでEmacsを起動して開発できるという優れものです。さて、半月ほど前に最初にやったことのメモ。

とりあえず、cat /proc/cpuinfoはお約束です。
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU L5520 @ 2.27GHz
stepping : 5
cpu MHz : 903.099
cache size : 8192 KB
physical id : 1
siblings : 8
core id : 0
cpu cores : 4
apicid : 16
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm
bogomips : 4522.12
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: [8]
一月前はCPUが16個見えていたのに、少なくなっています。クロック数も落ちたような気がしますが、こっちは正確に覚えてません。次にPythonが2.4.3で悲しいので、2.6をインストールします。まずは、gccからyum install gccです。Pythonのソースコードを落としてきて、Modules/Setupを開いてzlibを検索、コメントアウトされているのを有効にして、./configure && make && make install。

あと、必要そうなものをyum install screen emacs mysql。

easy_installを使えるようにしてからeasy_install ipython。libeventをダウンロードして、ビルド、インストール。それから、easy_instal greenlet。easy_install gevent。

ここまでで、僕のメモは終わっていた。



2010年5月22日

iPadと位置情報


先日iPadを触って驚いたことの一つに、iPadのアプリケーションのマップで、現在の位置情報がとれていたことです。しかもかなり正確です。数十メートルぐらいの精度がありました。WifiのiPadはGPS機能、と言うか、位置情報を取得する機能が一切ないと信じ込んでいたので、びっくりです。PlaceEngineとかを利用しているんでしょうか?でもPlaceEngineの仕組みは知りません。

会社のある人は、IPアドレスから位置が取得できると主張していましたが、IPアドレスからそれほどの精度で位置が取得できるとは僕は信じられません。数十キロ単位の誤差があると信じていました。

想像したり、ほとんど忘れかけているような記憶を頼りにしても意味がないので、調べてみました。@ITの記事が詳しくて、僕にも理解できます。

IPアドレスによる位置もある程度利用できるようです。数キロから十数キロの誤差があるようです。数十キロの誤差ではありませんでした。でも、ちょっと誤差がありすぎて、あまり正確な方法を取得するためには利用できそうにありません。Google Analysisのアクセス解析でユーザの地域を取得するのに利用したりしているみたいです。

それ以外は電波による位置情報です。基本的には複数箇所からの電波を受信して位置を割り出しています。電波の種類が衛生からのものか、基地局からのものかなどで精度が変わってくる、と理解しました。

Wifiからの電波を利用するようなものは、どうなっているんだろうと思っていました。きっと、公衆無線LANには電波にまじって位置情報をばらまいているだろうと想像していましたが、全然違いました。PlaceEngineは、ユーザが各アクセスポイントの位置情報を登録してみんなが利用するソーシャルで地味で力技のものでした。GoogleがWifiのデータを受信していたと言う話が少し前にありましたが、Streat Viewの車が通ったところでWifiの電波があるところは、位置情報がかなり正確に取得できるようになっているのかも。

で、Wifiルータを変に移動しちゃうと、位置情報が狂うんじゃないか?ある一定数のルータが一斉に移動すれば・・・、とか非現実的なことを想像してしまいます。

とりあえず、WifiのiPadでも電波があふれかえっている都内なら、そこそこ正確に位置が取得できそうです。でも、iPadってコンパスは入っていないんだっけ?



2010年5月21日

TOC

iPadを触ったよ

来週iPadが届くはずですが、ちょっと前にiPadを触りました。iPod Touchがでかくなっただけなのに、なんだかわくわくします。見た目はとってもきれいですが、持つとやっぱり重いです。ただ、電車の中で立ったまま持つには、筋トレにちょうどいいかもしれません。AppleのノートPCもそうですが、適度に重くて筋トレ代わりにもなるという、健康志向なところは見習わないといけません。

iBooksですが、かっこいいです。本が簡単に買えるし、文字を拡大できたりとなかなかよさげです。「プー」を見ただけですが・・・。ページめくりとかこっていたりして、ぱっと見はいいです。ただ、ページめくりなどはi文庫の方がかっこいいですが・・・。で、本のように見せるUIは物珍しさが去った後でもいいのかな?僕は上下のスクロールだけでよくって、ページは必要ないと思っちゃいます。そう思う反面、ロータスのオーガナイザーというかつてのPIM製品は、手帳のようなUIが好評でそこそこ売れたらしいので、リアルなものを再現したUIの方が最初はいいのかも知れません。

Safariは画面がでかいだけあっていいです。iPhoneでPC用の画面を見ていると、小さな窓で大きな庭を見ているようです。大きな窓で大きな庭を見れるのは快適ですが、予想の範囲内です。

メールの画面とか、写真とか、まあ面白くないというか、期待通りです。多分、今の関心が今のiPadより次のOSを積んだiPadに移行してしまっているからです。それと、iPadがでて活気づいた日本の電子書籍の動向も楽しいです。

iPadでプログラミングができれば完璧なんだけどな。多分、sshクライアントを入れてサーバにつないでコード書くんだろうな。書くのか?書くんだ。



2010年5月18日

最近の体重計は高機能である

すべての機器が高機能化していくのは、宿命なのかも知れません。追加される機能は、すべてが便利とは限らないし、どんな機能なのかもよく分からなかったり、分かったりしても結局使わなかったりします。それでも、機能を追加しないと新製品として売り出せないのかも知れません。そして、ちょっと前に新しくやってきた体重計もいろいろな機能が付いてきました。


 

我が家にやってきた体重計は、最初に生年月日と身長を入力します。よく見ていませんが、多分、5人ぐらい登録できるようです。最初に体重を量ると、次回からは体重を量ろうとする人を選択しなくても、前回の体重から人を判断してくれます。なので、体重計に乗ればすべてが完了します。内にあった壊れた数年前の体重計は、まず人を選択してから体重計に乗らないといけませんでした。びっくりです。

それから、体重計でいろんなことができるらしいです。できることは、

  * 体重

  * 体脂肪率

  * 内臓脂肪

  * 基礎代謝

  * 推定骨量

  * 筋肉量

  * 体内年齢

こんなのが分かるみたいです。沢山ありすぎて分かりません。さらに、これらの数値が前回と比べて増えているのか、減っているのかまで表示してくれます。体重計は体重を量るためだけのものではなくなっていました。

でも、あまり僕はほとんどの値は気にしていないし、あまり興味もないのでどうでもいいですが、体内年齢だけはちょっと面白そうです。他の値はなんだかよく分かりませんが、これはわかりやすいです。いや、この値の算出方法とか良くわかんないし、意味もよく分かりませんが、とにかく何かわかりやすい。いや、比べやすいです。

で、一週間ほど前の僕の体内年齢は20歳とでました。先週末は18歳とでました。なんか、この体重計の体内年齢、間違ってないか?




2010年5月17日

iPad

会長が見せびらかしに来た。

2010年5月15日

Aquamacsをインストールしてみた

先日、Aquamacsがリリースされたと聞いて、インストールしてみました。今まではCarbon Emacsを使っていました。そろそろ、Cocoa Emacsに乗り換える頃かな〜、と思っていたのですが、あまりこだわりがないので、Aquamacsにしちゃいました。実はEmacsは使わないでおこうと決心してKomodo Editを使っていましたが、いつのまにかまた、Emacsを使っています。何かののろいかも知れません。

Emacsを使っている人の中にはEmacsですべてをやっている人がいます。僕はとってもライトなユーザなので、プログラミング以外のことをEmacsではやりません。しかも、Java以外のプログラミングだけです。Javaはどう考えてもEclipseが最強だと思います。EmacsでJavaのコードを書いているのを見ていると、苦行をやっているように見えるときがあります。

さて、Aquamacsですが、全体的に、Carbon EmacsよりAquamacsの方がアイコンは好きです。でも、ツールバーも消しちゃうので、アイコンを見る機会はあまりありません。アプリケーションの切り替えの時のアイコンぐらいでしょうか?いずれにせよ、機能とは全く関係ありません。

anythingを使おうとすると、ウィンドウが右上の方に移動しちゃいます。CarbonEmacsだとそんなことはなかったので、びっくりします。すがわらさんに相談したら、「それじゃ、anythingは使わなきゃいいです」とお達しがでました。まあ、anythingがないと生きられない体ではないので、お達しに従うことにしました。

どこかで、CarbonはCocoaより遅いとか聞いたような気がします。今時のマシンでEmacsのようなUIで体感できるとは思いませんが、なんとなく、Aquamacsの方が起動が遅いような・・・。一度起動しちゃえば、ずっと動かし続けるので、起動する時間はあまり重要じゃないです。

とりあえず、使いはじめましたが、あんまりCocoa Emacsとかとの違いが分かっていません。



2010年5月12日

bylineが帰ってきた


長らくバージョンアップと言うか、忘れ去られた印象のあったbylineがやっと3.0になって帰ってきました。bylineって、iPhoneのアプリでGoogle Readerクライアントです。昔からオフラインの機能はとても強力だったのですが、バージョンアップから取り残されていたせいか、Instapaperやtwitterなどの他の機能との連携ができなかったりしました。他のクライアントはほとんどそれらに対応していて、寂しい思いをしていました。それに、bylineの同期は他のクライアントに比べて、と〜っても遅かったのです。そんなこんなで、去年の暮れぐらいから別のクライアントを使っていました。でも、bylineに比べるとやっぱりオフラインの機能が弱いです。

で、帰ってきたbylineです。twitterやinstapaperなどと連携できるのは当たり前です。フィード元単位で一覧できたりと、以前不満だったところも解消されています。でも、一番いいのがオフライン機能がさらに強化されていることです。画像などをキャッシュしてくれるのは、どこもやっていますが、フィードに全文が含まれていなさそう、と判断したら勝手にInstapaper Mobilizerを使ってページ全体をとってきてくれます。手動で設定もできますが、おまかせで勝手にやってくれるのはいいです。 ネットワークがつながっていなくても快適ですね。

ちょっとした不満は、ページを開くときにキャッシュがなければ普通のページとしてか開くことができないことです。やっぱり、Google MobilizerやInstapaper Mobilizerでいらない装飾をはずして表示できるようになって欲しいな。それ以外は、うーん、まだ、それほど使っていないけどいい感じ。

最初にちょっとだけ困ったことは、次のエントリに移動する方法がわからなかったことかな。今まで使っていたやつだと、次のエントリへの移動は下にスワイプすれば良かったんだけど、bylineは左右にスワイプしないといけないことです。これを発見するまでちょっとだけ時間がかかりました。これは、どっちがいいのか分からない。

とにかく、メインのRSSリーダとしてしばらくはbylineが返り咲くことになりました。



2010年5月11日

僕もiPadを予約してみる

他の人も予約をしているようで、僕も同じように予約してしまいました。量販店で予約するかどうか迷ったのですが、量販店だと当日に入手できるかちょっと不安だったのでやめました。でも、ポイントがつかないのはちょっと悲しいです。月曜の昼間から量販店に行けないという悲しい理由の人もいますが、僕はそんなことはないです。

それでApple Storeで予約しました。システムが重くなることもなく、すんなりと予約できました。とりあえず、モバイルルータ
があるので、3Gモデルは必要ありません。wifiのモデルで容量をどれにするか迷います。迷ったときは訳が分からなくても真ん中を選ぶのが鉄則です。あとは、ケースとVGAの出力ケーブルと、Wireless Keyboard
。本当は、家のMac Mini用にApple Magic Mouse
も欲しかったのですが、予算オーバーしすぎです。諦めます。

これで、Keynoteを入れれば、プレゼン用には重いノートを持ち歩かなくても良さそうです。でも、開発ができない・・・。きっと、ネットワークさえつながればsshでサーバにつないで開発ができるはず。と自分を言い聞かせています。でもiTeleportがあればいいような気もします。

でも、予約をしましたが、とっても待ち遠しいです。MacBook Airがアップデートされるかもという噂もあるので、そっちの方が魅力的ならキャンセルしちゃうかも知れませんが・・・。



2010年5月8日

gevent based rss/atom feed aggregator/filter

をとりあえずgithubに置いてみた。昔のpyhabuの別実装です。とりあえず動くはず。pythonでgeventをベースにしているだけ。

abstract transform aggregator interfaceを略してatamiらしい。意味はまだない。

2010年5月7日

geventのthread local

geventというよりはgreenletのお話です。greenletってマルチスレッドっぽく動いても基本はシングルスレッドじゃん。じゃあ、thread localってどうなのよ?と言うことで動かしてみました。
順をおって冗長に。

まず、何も考えないでthread localを使ったコードです。まあ、あとの方も何も考えないのですが、そこは気にしません。

from gevent import monkey, __version__
import gevent
monkey.patch_all()

import threading

print "gevent version", __version__

localdata = threading.local()
localdata.x = "hello, hope you can't see this"
def func():
print "func's view of localdata.__dict__:", localdata.__dict__

jobs = [gevent.spawn(func)]
gevent.joinall(jobs)


threding.local()でthread localなオブジェクトを作って、funcをスレッド的なもので動かしています。偉大なるサルmonkeyによってpythonにパッチが当てられるので、ちゃんと動いていくれそうな気分にさせてくれます。
実際に動かすと、
gevent version 0.12.2
func's view of localdata.__dict__: {'x': "hello, hope you can't see this"}
のように表示されます。簡単に言うと、thread localは使えません。Issue24で同じ問題に悩んだ賢人がいます。
次のように偉大なるサルmonkeyのパッチだけでは飽きたらず、自前でおまじないを唱えないといけないそうです。ちなみに、Pythonの本体にもうんたらかんたらと先ほどのレポートには書いています。


import threading
import thread
threading.local = thread._local


で、これで、ちゃんとうごいて、funcの中のlocaldataの中身は空になります。thread localが動いた。めでたしめでたし。

そういえば、djangoをgevent上で動かしてロングポーリングやってるぜ!ってどっかで見た。

主観的ゴールデンウィークの高速道路の混雑状況

今年のゴールデンウィークは電子書籍のお話とか、勝間さんのお話とか、いろいろネタには困らない楽しい期間でした。そんな楽しいことを実家で読んだり、見たりしていました。実家に帰って驚いたのは、Softbankの電波状況が改善されていたことです。電波が一本ぐらいしかたたなかったのが、ちゃんと入るようになりました。まあ、実際の作業はイーモバの回線を使って作業してましたが。

さて、その実家に帰るのは今年も車です。5月1日が移動日です。距離は大体400kmぐらい離れています。御殿場のあたりはよく混むので、今年は、厚木からじゃなく箱根を越えて沼津から高速にのりました。箱根と沼津インターまでのアクセスが良くなったというのもあります。それから、若干交通費がかさみますが、渋滞に比べたら許容範囲です。沼津までは目立った混雑もなく順調でした。

それから、東名高速です。ところどころとっても遅いスピードになりますが、去年ほどの渋滞はありません。少なくとも渋滞区間を抜けるのに1時間とかかかることはありません。30分もあれば抜けます。名古屋を越えて自分の実家までは前からそれほど混まないのです。それから、今年からエコを心がけて(燃費をきにしているだけですが)、あんまりアクセルを踏み込まないようにして、あまりスピードを出しすぎないようにしたので、今までの2/3ぐらいですむようになりました。

帰りは5月5日です。連休の最終日です。最後の日はみんなのんびりしたいのか、あまり混みませんでした。去年は若干の渋滞区間があったのですが、今年は全くありません。まあ、速度が60km/hぐらいに落ちることはありますが、数分で解消しました。前日の渋滞のニュースを見ていると、数十キロの渋滞なので、その人達は大変です。

と言うことで、まとめると今年はあまり、と言うか、ほとんど混まない高速道路でした。



2010年5月4日

また作ってしまった

ちょっとした処理をしたくって、Pythonでちょっとだけコードを書いていました。テストコードとか書いて、それ以外にも少しいじっていて、ちょっとだけリファクタリングしました。なんだか、どこかで見たことのある仕組みだな〜と、思っていると、昔書いたこの人みたいなものができていました。困ったものです。いや、困っていないんだけど。
あの人はTwistedで、内部的にはすべてがコールバックで処理されていたけど、新しいこの人はgeventで、まあ、GUIは完全に考えていなくって、cronでの処理しか想定していないので、行数は凄く少なくなっちゃいました。まあ、コールバックベースじゃないというのが大きいかな。

間違いのもとは、モジュールをコードの中に書くのが面倒になって、動的にロードできるようにしたところかな?まあ、そんな感じです。
設定ファイルが今はiniファイルなんですが、それがyamlになれば・・・。