ただのにっき
2007-01-11(木) [長年日記]
■ iPhone、欲しいか?
なんだかApple信者のたてるノイズが多すぎて、冷静に判断できない雰囲気。
でも、iPhoneの存在自体は秘密でもなんでもなかったし、全面タッチスクリーンのデザインも「第6世代iPod」として何度も流出している。こういうのが出るのはとっくに想像していたわけで、いささか騒ぎすぎだろうし、奇襲に成功とは思えないな。二本指が使えるUIだってMacに搭載済みだし。
で、仮に今使ってる「W32SA + W-ZERO3 + iPod shuffle」をiPhoneで置き換える(値段的に釣り合いがとれる置換案だろう)ことを冷静に考えてみたら、まだまだ欲しいと思わせるだけの出来ではないと思えてきた。
手探りで操作できない
余計なものがなにひとつ付いていない、相変わらず魅力的で所有欲をそそられるデザインはすばらしい。が、画面を見ないと何もできないということでもある。これってけっこう不便。
最近、朝の電車で乗り過ごすのを避けるために、8:26にバイブレータのアラームをかけているんだけど、止めるときは服の上から携帯のボタンをちょんと触るだけである。ポケットの中ではおそらく自動的にセンサーが切れるiPhoneではこれができない(※)。緊急時に、ポケットの中で手探り110番することもできない。
かつてPDAと言えば全面タッチスクリーンというのが当たり前だったが、pilot(Palm)がその常識を覆して、最小限のボタンが非常に有用であることを示した。Jobsはボタンをふたたび否定したけど、Palm育ちのおれとしては、ボタンは必要だと思うのだな。iPod shuffleだって、しょっちゅう手探りで操作してるし。
あと、タッチスクリーンはフィードバックに乏しいので、文字入力が遅くなる。たとえ女子高生でも。それを補うためにうんと賢い予測変換を入れてもらいたいものだが、今回のiPhoneにはまだ増井テクノロジーが未搭載なので、たぶんまだまだショボいだろう。これも待ち要因になる。
※ツッコミにも書いたが、ボタンが1個だけあるのを失念していた(知らなかったわけではない)。その意味ではこの例は不適切。個人的には、初代pilotと同じ、4個ないし5個のボタンが必要だと思う。この数はいみじくも、Apple唯一の「手探りデバイス」であるiPod shuffleが持つボタン数にほぼ等しい。
GPSがない
GSMではない日本での動向が気になるところだが、そんなもん、3社(WILLCOM入れて4社?)が競い合って対応させてくれと頼みに行っているところだろう。心配はいらないと思う。
ただし、3G端末で定額料金にしてもらわないと話にならない。そして、今年から3G端末はGPSを搭載すべしということになっている。ということは、今回発表になったiPhoneはGPSを搭載していないという理由で国内販売はなさそう、ということになる。
もっとも、(auユーザとしては)GPSを搭載していない端末なんてありえないと思うくらい、GPSは便利なものなので、そういう意味で今回のiPhoneには魅力がない。ぐだぐだ言ってないで最初から搭載しとけよ、と思う。
唯一の選択肢はGPSを搭載しなくてもいいWILLCOMから出ることだが……どうだろう。そうなるとauを手放せないことになるから、ちょっと困るな。
アプリを追加できない
インタビューによれば、iPhoneにはユーザアプリを追加できない。なぬー!? なんのためにMacOS Xを搭載したのよ。
現在使っているW-ZERO3に搭載されているWindows Mobileは、はっきりいって最低最悪のOSだ。他に選択肢がないからしかたなく使っている。だから、オルタナティブなOSを乗せた端末が出てくれれば、乗り換えるだけの強力な理由になる。
OS Xが載っているなら、当然RubyCocoaで自作ソフトを……って流れになるじゃないか。それができない!? ありえん。だったら、(標準ではダメダメながら)有志が作ったソフトウェアのおかげでなんとか使い物になっているWindows Mobileの方がまだ夢があるってもんだ。
ともかく、Windows Mobileは、ホントにホントにホントにホント〜〜にどうしようもないOSなので、Appleにはがんばって欲しいと思う。でも、もうちょっとなんとかしてくれないと買えない。
■ https://www.amazon.co.jp/dp/9784798111117
via あちこち。昨日発売だったのか。とうとう出たんだ。感慨深いねぇ。
前の『https://www.amazon.co.jp/dp/9784756100504』は、それこそ人生に衝撃を与えた1冊と言ってもよいくらいの重要な本なので、新しいのも欲しいけど高いなぁ。そもそも今の仕事は、オブジェクト指向とかまったく関係ないし……。
ともあれ、これから/今まさにプログラミングに取り組んでいる人は、高くて厚いけど一度は読んでおくべき本だと思う。歯ごたえがあるけど、それだけに長期に渡って血となり肉となる。きっと後悔しないはず。買うときは、ぜひ上のリンクから(バキ)。
■ ISBN-13 ⇔ ISBN-10相互変換
↑のエントリを書こうとしたら、Amazonのページに新しいISBN-13が併記されていたので、変換ライブラリを書いてtDiaryのamazonプラグインに仕込んだ。それを使うために(大手術中で今はちょっと危ない)trunk HEADに追従してしまったよ。ビクビク。
置き場所がないのでここに貼っておこう。仕様書を読んでそのとーりに実装しただけの馬鹿正直・未最適化バージョン。
# # isbn.rb: ISBN Library # Copyright (C) 2007 by TADA Tadashi <sho@spc.gr.jp> # Distributed by LGPL. # def isbn_10?( isbn ) isbn.gsub( /[^\dX]/, '' ).length == 10 end def isbn_13?( isbn ) isbn.gsub( /[^\d]/, '' ).length == 13 end def isbn_check_digit_13( isbn ) raise ArgumentError::new( "#{isbn} is wrong ISBN-13" ) unless isbn_13?( isbn ) odd, even = 0, 0 isbn.gsub( /[^\d]/, '' ).chop.split( // ).each_with_index do |item, index| if index % 2 == 0 then odd += item.to_i else # even even += item.to_i end end check_digit = 10 - (odd + even * 3) % 10 check_digit = 0 if check_digit == 10 check_digit.to_s end def isbn_check_digit_10( isbn ) raise ArgumentError::new( "#{isbn} is wrong ISBN-10" ) unless isbn_10?( isbn ) sum = 0 isbn.gsub( /[^\dX]/, '' ).chop.split( // ).each_with_index do |item, index| sum += item.to_i * (10 - index) end check_digit = 11 - sum % 11 check_digit = case check_digit when 10; 'X' when 11; '0' else; check_digit.to_s end check_digit end def isbn_13to10( isbn13 ) isbn10 = isbn13.gsub( /[^\d]/, '' )[3,10] check_digit = isbn_check_digit_10( isbn10 ) isbn10[9] = check_digit isbn10 end def isbn_10to13( isbn10, prefix = '978' ) isbn13 = prefix + isbn10.gsub( /[^\dX]/, '' ) check_digit = isbn_check_digit_13( isbn13 ) isbn13[12] = check_digit isbn13 end if __FILE__ == $0 then i13 = 'ISBN 978-4-798-11111-7' i10 = 'ISBN 4-798-11111-2' puts "#{i13} => #{isbn_13to10( i13 )}" puts "#{i10} => #{isbn_10to13( i10 )}" end