2010-04-02(金) [長年日記]
■ GO2WEB20の「Follow me」バッヂがIEでエラーになるのを抑止する(やっつけ編)
しばらく前からページの右上につけているTwitter用の「Follow me」バッヂ、HTML4なサイトに貼ると微妙にinvalidだったりして、scriptの閉じタグを足したりして使っていたんだけど、ゆうべたつをさんからIEだとページが表示されない場合もあるという報告をもらった。エラーになるのは確認していたけど、うちはページの内容はちゃんと出てるから気にしないことにしてたんだけど、IE7だとエラーダイアログが出ちゃうらしくて、それはちょっとまずいかなと。
その辺のやりとりはTogetterのまとめを参照。
というわけでインチキっぽいながらもエラーを抑制できたので、ここにメモっておく。配布用のJavaScriptの最後の方にあるこの1行:
tfb.showbadge();
これを以下のように書き換える(5秒遅延させる場合):
setTimeout(tfb.showbadge,5000);
まぁ、5秒というのは適当だけど、たいていの環境では十分だし、サイトを訪れてから5秒以内にfollowに至るような人はまずいないだろうから、こんな感じでいいだろう。もちろん本質的な解決ではないので、あくまで「やっつけ」である。そして本質的解決をする予定はない(えー)。
追記(2010-04-06)
上記の対策を入れて、tDiaryのプラグインにした。twitter_badge.rb*1。使い方はヘルプを参照。
*1 もともとあった同名のプラグインは、作者のgajuさん了解のもとでrecent_tweet.rbに変更した。
■ 「Water Front」の傘を買った
先日の風雨でいつも持ち歩いていた折りたたみ傘が壊れてしまい、Twitterでオススメを聞いたところ、シューズセレクションのWater Frontを教えてもらった*1。
調べてみると自由が丘駅の南口近くに店舗があるらしいので、仕事のついでにちょっと寄ってみた。キオスク並の小さな店に、さまざまな傘がぎっしり。これはなかなか楽しい。
太いの細いの、長いの短いのとよりどりみどりで、どれも500円~1000円という低価格。折りたたみ傘は基本的に消耗品なので、この価格帯は躊躇なく買えていいよなぁ。大人が入れる大きさで、できるだけコンパクトな製品を……といくつか見せてもらって、直径55cmの三つ折りタイプのものにした。
これが数日前。今日やっと雨が降ったので実戦投入。
畳んだ状態だとご覧のとおり、不安になるほど細い。おまけに今日は雨だけでなく相当な風。だが意に反して、ちゃんと風上に向けていれば壊れることなくちゃんと役目を果たしていた。まぁ、かなりたわんでいたけど。1000円ならすぐ壊れてもあんまりショックじゃないし、このコンパクトさと軽さは魅力だ。
*1 その他にモンベルなどのアウトドアブランドを勧められた。アウトドアで傘という発想がなかったのは、ボーイスカウト活動が長いせいだなぁ。きっと耐久性は高いと思うが、価格もちょっと高めだったので今回は見送り。
2010-04-03(土) [長年日記]
■ グスタフ、久しぶりの入浴
今日はけっこう気温が高かったので、久しぶりにグスタフを洗った。冬の間は寒くてかわいそうだったので、ほとんど洗ってないんだよねー。でもさすがに春になって、抜け毛も増えてきたので一気に流してしまおうと。
前回はまだ小さかったけど、最近は体重も4kgを超え、けっこうパワーもついてきた。抵抗されたら抑えつけていられないと思うけど、ときどき腕づたいに這い上がろうとする以外は、そこそこおとなしかった。爪も立てないし。普段は噛んだりひっかいたりの乱暴者なのに、本当に弱ってるときにはそういうことしないんだなー。
普通の短毛種より毛が多くて長めな気がするんだが、おかげでなかなか乾かなくて難儀した。乾いたあともしばらく震えていたし、冬毛のあいだはあんまり洗えないなぁ、これは。
ちなみに、狙い通り抜け毛が落ちたかというと、それほどでもなかったという。むしろシャンプー後の抜け毛が増えたような……。
◆ げいる [なんか「いや文句言えねーけど、これ何時まで続くんだよオイ…」的な目が萌えたw]
2010-04-06(火) [長年日記]
■ MoviePegみたいなiPhoneスタンドをLEGOで(ry
LEGOで作るiPhoneスタンドシリーズ、その3(4かも?)。MoviePegが実にスマートで、こういうデザインができるのはすごいなーと感心してしまったので、さっそくパクります(ぉ
とりあえず適当なパーツを使って仮組みしてみたんだけど、やはり直線で構成されるLEGOパーツでiPhoneをがっちり固定するのが難しく、背面が曲面になのを恨む。たぶん初期のiPod touchなんかだとけっこううまく作れる気がする。
それでもフレキシブルチューブを使うなどして、多少の柔軟性を持たせることで、横置きの場合にはそこそこ安定させることに成功。
ただ、縦置きの場合はどうしても頭が重いせいか、なかなか安定しない。いちおうちゃんと固定されているように見えるけど、この状態で操作しようと思うと、つるっと滑ってスタンドから外れてしまうのだった。うーむ、まだ改良の余地があるなぁ。
2010-04-09(金) [長年日記]
■ iPhoneを捨ててAndroidにするよ
※多分に感情的なので、興味ない人は読まない方がいいと思う。
今朝のiPhoneOS 4.0の発表で、ようやくマルチタスクが実装されることになったけど、新APIを使わないと対応されないとか、けっきょくタスクマネージャを実装したとか、3G置いてきぼりとかは「ダセェ」のひとことなんだけど、それはまぁいいや*1。
それより問題なのは、「AppleがiPhoneデベロッパライセンス規約を変更し、Adobe Flash Professional CS5などのクロス・コンパイラを禁止に?」(MACお宝鑑定団)だ。最初に読んだときはせいぜい「やれやれ」って程度だったんだけど、半日考えていたらだんだんと怒りがこみ上げてきて、とうとう自分のiPhoneに触ることすら困難な心理状態になった。なんかもう、「なにこの汚らわしい機械」って感じ。おれの中でAppleは、完全に敵認定されたってことだなぁ。
このことに危機感を持たない開発者がいたらおかしいよ。どの言語を選択するかは開発者の権利だし、開発者の環境を縛っていいのは顧客だけだ。プラットフォームベンダにどうこう言われる筋合いはないし、そんな要求に唯々諾々と従ってはいけないと思う*2。Appleは越えてはいけない一線を侵してしまったし、当面iPhoneOS上でアプリを書く予定のないおれにとってすら、これは吐き気がするほどの嫌悪感を抱く暴挙なんだ。
「自分が作るのは(アプリじゃなくて)Webサービスだから関係ないもんね」とうそぶく人もいるかも知れないが、SafariブラウザがあなたのURLをブロックする未来はすぐそこだよ。ストアからいきなり理由も告げずにグラビアアプリを撤去するような連中だよ。この先どんな横暴な真似をするかわかったもんじゃない。そんなプラットフォームの上で何か作るなんて冗談じゃないよ。
というわけで、ちょうど今月末にはSoftBankからAndroid端末「Desire」が出るはずなので、乗り換えることにした。2年契約のiPhoneを1年で捨てて新規に端末買い足しするのは経済的にはそうとう厳しいけど、iPhoneを使い続ける心理的罪悪感に比べたら屁でもない。
最後に、Appleの有名なCM「1984」を貼っておこう。おれに動画編集スキルがあれば、スクリーンの人物をJobsに書き換えるところだけど。ツッコミでJobs差し替え版を教えてもらったのでそっちを貼っておく。
◆ iR3 [今頃読みました。「自由」は、大事ですよね。経営者の自由もあるし、ユーザの自由もあるし、自分は、自分の頭で考えて判断す..]
◆ ef [Appleは、iPhoneビジネスがout-of-controlになるのを非常に恐れていますね。丁度、Mac互換機の..]
◆ 久しぶりの通りすがり [この時期のAndroid VS iOS記事を読み返すとすごく面白いですなぁ 2012はAndroidの真元年になりそ..]
◆ OT [アップルがAppStoreから2ちゃんねるブラウザを排除するそうです。アップルの帝国化は留まるところを知りませんね。]
◆ ただただし [「SafariブラウザがあなたのURLをブロックする未来はすぐそこだよ」という予言がひたひたと近づいてきてますねぇ。..]
◆ にくきゅう [別記事から流れて来てつい最後まで読んでしまいました。 ipod touch 1 から使ってますが、2chブラウザ排..]
2010-04-10(土) [長年日記]
■ 超久々ワインディング[西伊豆スカイライン]
こないだの車載オフからまた一ヶ月開いてしまった。いったん乗る習慣が途絶えると、なかなか復帰できないもんだ。というわけで、今日は暖かくなりそうだったので西伊豆スカイラインまで。すっごい久しぶりのワインディング。
そう言えば、一部供用開始された沼津ICからの伊豆縦貫自動車道を使ったことがなかったなー、と思い、ふらっと入ってみた。なにしろナビに道がない上にどこに出るのかすらわからず(帰宅してからルートを確認する始末)、ドキドキしながら走ったが、上の地図を見ればわかるように終点は三島市内のR1に接続しているのだった(とか言って、これを書いている現在、EveryTrailがうまく動いてないようだ。地図はこちら)。
ちょっと期待したところよりは東寄りすぎだが、今までの反時計回りルートより短くて信号・歩行者がいないのは良いね。ただ、R1に出てから1車線の部分で詰まるので、早朝はともかく日中はストレス溜まるかも。
ワインディングが久々すぎて往路はなかなか調子がつかめなかったが、復路になるとだんだん思い出してきた感じでペースアップ。天気もどんどん良くなってきて、だいぶ気分がよかった。
そうそう、やっと走行距離が3万kmに到達。走るのに夢中でぴったりのところで止まれなかったのが悔やまれる。買ってすぐのころは1万km/年ペースだったんだが、さすがに最近は忙しいのと、グスタフが来てからは乗れなかったこともあり、ちっとも距離が伸びない。
◆ kitaj [そうそう,伊豆縦貫道はR1に合流するのがちょっと東寄りすぎるよね. もっと南まで伸びる予定みたいなので,早く完成して..]
2010-04-12(月) [長年日記]
■ iTunes代替同期ツール「doubleTwist」を使ってみる(Android受け入れ準備その1)
会社帰りに町田ヨドバシに寄って、さっそくDesireを予約してきた。町田店のような場末のヨドバシには、まだホットモックどころかポスターすら配備されないので、実物はまったく目にしないままの予約である。なにしろ価格すら決まってない。度胸あるなー(自分で言うな)。
あとは、来るべき発売日に向けて、いろいろと受け入れ準備をしておかなくてはならない。携帯電話としての乗り換えもやっておくことがあるけど(連絡帳移行とか)、ミュージック/ビデオプレイヤーとしても使うつもりなのでiTunes以外のメディア管理ツールも探さなくてはならない。
ということで、今日はdoubleTwist。さまざまなガジェットに対応した同期ツールということで、iTunesの置換えができるかなーと期待してインストール。が、本当にただの「同期ツール」で、MP3TAGの入力すらできなかった。
もっとも、なにもしなくてもiTunesのライブラリを読んでくれて、プレイリストのインポートも自動なので、同じような条件のライブラリを構築するのは簡単そう。試しに16GBのSDカードを認識させて、一部の音楽ファイルを同期させてみたが、特に問題なくすいすいとコピーしているようだ。もっともiTunes上では「ミュージックビデオ」として扱っている動画ファイルは、ライブラリ上では見えるのに同期対象にならないみたい。
iTunesの置換えはできないけど、iTunesライブラリはそのままに同期先を切り替える用途にはアリ。ただ、GUIはかなりしょぼいし、同期中はCPUを食いすぎるので、もうちょっと進化してくれないと常用するのは難しいかなー。これなら自分でコマンドラインツールを作ってフルオートで同期させる方が楽な気がする。
2010-04-13(火) [長年日記]
■ Desire実機を触ってきた!
浜松町で仕事があったので、ちょっと有楽町ビックカメラに寄って、展示中のX06HTことDesireを触ってきた。
いやー、いいね! これはいい!
高詳細できれいな液晶、きびきびした動き*1。手のひらにしっくり収まるサイズもいいし、ハードウェアキーがいくつかついているのもポイント高い*2。光学ジョイスティックがどんな感じか不安だったけど、感度が良すぎるということもないし、悪くないんじゃなかろうか。まぁ、あんまり使わない気もするけど。
Dolphine Browserが入っていたので、ためしにこの日記(iPhone向けCSSが設定してある)にアクセスしてみたら、iPhoneと同じ見栄えで表示された。なんだ、iPhone対応しておけば自動的にAndroid携帯対応になるんか? ……と思ってあとで聞いてみたら、おそらくUAをiPhoneに偽装してあるのだろうとのこと。ふうむ。偽装してあることを前提にするわけにもいかないから、ちゃんとAndroid対応もしないといけないのか。
なんにせよ、これは手元に来るのが楽しみだ。1年前のiPhoneはわりと消去法的な選択肢だったけど、Desireは「欲しくて買った」ということになりそうなヨカン。
2010-04-15(木) [長年日記]
■ Rubyベストプラクティス -プロフェッショナルによるコードとテクニック(Gregory Brown)
オライリーの高さんから献本いただいた。読むのが遅くてすいません……。
しかしなんだ、面白い本だなぁ、これは。例えるなら、Ruby部族の集落に潜入した文化人類学者によるフィールドワークの報告書みたいな本だ*1。まえがきでまつもとさんも書いているけど、誕生当初なにもなかったRubyに、十数年かけて蓄積してきた「文化」のいいところを、粒度にこだわることなく紹介している。レシピ本と違うのは、文化として定着しているかどうかを基準に内容を厳選・整理している点かな、と思う。
多くの書評で「中級者以上向け」とされている本書だが、それは構成に負うところが大きい。冒頭から3章までは、Rails以降急速に活用が進んでいるRubyの動的言語的側面がメインで、(自分が動的テクに不慣れな点を差し引いても)正直なところかなり歯ごたえがある。ここで読者のレベルを制限してしまうのが狙いかなー、と思わなくもないけど、ちょっともったいない。
その後の展開はわりと普通で、Rubyの文法をひととおり身につけた初心者でも、問題なく読み進めることができるプラクティスも多いからだ。特に、テキスト処理、デバッグ、M18Nあたりは独力で遠回りする前に触れておいた方がいい題材だし、既存のライブラリを使う上でもプロジェクトメンテナンスの話題はとても有用だ。
というわけで、一通りの文法が身についていれば、「自分は中級者じゃないから」と尻込みしていた人でも読んでみていいんじゃないかな。4章以降から読み始めてもほとんど問題ないし、途中でつまずいても参考にできるリソースはすぐに見つかると思う。
Rubyベストプラクティス -プロフェッショナルによるコードとテクニック
オライリージャパン
¥2,731
*1 実はその学者も集落の出身なんだけど。
2010-04-17(土) [長年日記]
■ 今日になってiPhone関連商品が送りつけられるなど
Amazonから注文した覚えのない荷物が届いたので、宛名をみるとあんのじょう「ただただし」、つまりギフトである*1。「はて、誕生日でもないしなんだろう」といぶかりつつ開けてみると、入っていたのは吸盤型のiPhone用スタンド「iStand」だ。なぜこれを選んだw
さっそくiPhoneにつけてみたけど、想像どおり、よけいな固定パーツがないからすっきりしていていいデザイン。ビデオ視聴時の横置き用スタンドとしてはかなり秀逸。ただ、縦置きの場合はかなり下側に貼り付けないと安定しないので、見る角度が厳しいかも。あと、けっこう強く吸着するので、頻繁な付け外しには不得意か。ということは、Desireが来たあとの卓上クロックとしての余生を送ってもらうのもいいかもなぁ。
いやまぁ、基本的にはiPhone専用品というよりは汎用的に使えるデザインなので、おそらくDesireにも使えると思うけど*2。しかしこのタイミングでiPhone用品を送ってくるなんて間の悪い人だなぁ……いやいやありがとうございました。ギフト包装じゃないから誰からの贈り物なのかわからないので、差し支えなかったら名乗り出てね~。
あ、そういえば一昨日Twitterで「ほしい物リストからiPhone関連商品を削除するのを忘れていた!」と発言したので、タイミング的にはその直後か。だとしたらネタなのかな?*3
ISTAND LOA040-BK
イデアインターナショナル
¥660
上のブラックだけじゃなく、ホワイト・オレンジ・ピンク・ブルー・パープル・グリーンと揃っているので、某プロダクションのアイドル向けに各色買い込んで、オフ会なんかで配るのもいいんじゃないでしょうか。
2010-04-18(日) [長年日記]
■ 浦和 3-0 川崎@埼玉スタジアム
今年もやってきました埼玉スタジアム! このカード、アウェイでは5年間負けてないらしいので、今年もやってもらおうじゃないの。
……と、数時間前までは思ってました。とほほ。
こないだのマリノス戦とまったく同じ、「パスが適当」「クリアミス」「プレスが弱い」の三拍子揃った「ダメなフロンターレ」だった。メンバは変わらないのに、すごくいいチームな時と(水曜のACLはまさにそれ)、すごくダメなチームな時の差が大きすぎるなぁ。
後半、ケンゴが入った直後は「おっ」と思うこともあったけど、けっきょく問題が修正されることなく、ずるずると負けてしまった。レッズもミスが多かったけど、攻撃のスピードと畳み掛けがはるかに上回っていた。というか、あれがウチのサッカーちゃうんか。
審判についても言いたいことあるけど負け試合なので略。あれにはレッズサポも言いたいことありそうだけど。
2010-04-19(月) [長年日記]
■ 20年来探していた音楽に再会して、自分の検索力のなさに愕然とする
松任谷由実に「VOYAGER~日付のない墓標」という曲がありましてな。かの有名な日本SF映画の黒歴史「さよならジュピター」の主題歌なんだけど、これを再発見したという話。自分の検索力のなさを自覚し続けるために、未来の自分に向けて書くよ、もう。
「さよならジュピター」を劇場で見たのは、もう四半世紀以上前になるのか。「特撮はハリウッドに負けてない。でも脚本も演出も演技もダメ……」と、期待を裏切られてがっくりと座席に沈んでいた上映終盤、この歌が流れてきて、あまりの素晴らしさにとめどなく涙が流れはじめ、それまでのネガティブな評価が一気にひっくり返ってしまった。今でも一番好きな映画のひとつ。だから「黒歴史」なんて評価を見るといまだに「ピキッ」てなるんだけど(自分で書いてて何を言うか)、それくらい衝撃的な歌だった。
客観的に聴けば、短く抽象的でよくわからない歌詞、おまけにリフレインが多くて水増し疑惑っぽいんだけど、とにかく映画の最後に流れる歌としてはこれ以上マッチしているものはないというくらい。次点は平成ガメラ3の「もういちど教えてほしい」(って特撮ばっかりかい)。
そんなわけで、曲を聴きたいと思い続けていたものの、買いそびれたサントラは今では絶盤、そうとうなプレミアが付いているらしいし、松任谷由実のオリジナルアルバムには収録されずじまい。松任谷由実には「VOYAGER」なんてタイトルのアルバムがあるのに、そこには入っていないっていうんだからひどい話だ。iTunes Storeにユーミンの曲が入ると聞いたときも真っ先に探したし、時おり思い出してはAmazonで検索してみたり。まぁ、なかったんだけどね。DVD買えって話だけど、まぁ、そこまでの情熱でもなかったというか、DVDから音楽だけ抜き出すとかバカらしくて。
で、今日になってふとYouTubeで検索してみたらあるじゃん! フルコーラスで、しかも複数あがってるし。さっそく聴いたよ、もうね、感動。ぜんぜん色あせてないの。よく考えたら今まで2、3回しか聴いたことないことになるんだけど、歌詞もちゃんと覚えてたもんなー、よっぽど衝撃的だったんだろうなぁ、自分。
その後、ニコニコ動画でも探してみたら一本あって、ふと市場を見たらユーミンのベストアルバム「Neue Musik」が貼ってあって、たどってみたらこの曲がちゃんと収録されていたというオチ。なんてこった、全然知らなかったぞ。検索しても出てこないってどういうことだ。
……という知恵をつけてから、Googleで検索してみれば、当たり前のようにYouTubeの動画はリストアップされてるわ、Wikipediaにもちゃんと「1998年ベストアルバム『Neue Musik』に収録」と書いてある。おれの目は節穴か。たぶん自分の中には「曲が欲しい」→「買うならAmazonかiTMS」→「検索しても見つからない」→「あきらめる」というストーリーしかなかったんだろうなぁ。「いまどき音楽探すならYouTube」というのは、頭ではわかってるつもりなのに、ぜんぜん行動に結びついてない。かみさんなんてよくYouTubeで懐かしい曲を探してるから、これは年齢のせいというより習慣の問題だ。うーん、反省。
で、さっそくベストアルバムをポチっとしたかというと、この一曲のために3000円以上出すのかよ、なんで曲単位で買えないんだよ、そもそも曲名が検索にかからないのはどういうことだよ……などと考え始めたらムカムカしてきたので、マーケットプレイスで安いのを買ったのであった(←だいなし)。レコード会社の人たちは、権利ばっかり主張する前に、商品をちゃんと陳列して下さい。
2010-04-20(火) [長年日記]
■ tDiary、9歳
25年という目標からすると、やっと1/3ですか。道は長いね。
今年中に(いまの2.3をベースにして)3.0を出したい。一番の難関だったUTF-8化はもう済んでいるので、ruby 1.9.2がリリースされれば障害はないな。3.0までにあと何を入れるか、議論する必要がありそう。いま読んでる『Webを支える技術』に触発されて、AtomPub準拠のAPIを整備したいという気持ちもあるけど、はてさて。
あとはきちんと継続するためにはメンテナンスコストの低減を図らないといけないので、今の安定版・開発版の二本体制は見直す必要があると思ってる。ぼんやり考えてるのは、リリースのベースにはいまのSubversionを使い、開発ベースはGithubに移行するという方向性。いろんな人が好き勝手にいじっている現状を消極的に認めるなら、変更管理のSubversionよりパッチ管理のGitの方が相性がいいだろうし。
■ tDiary: スマートフォン識別
tDiary 2.3にはとりあえず作った「Config#iphone?」というメソッドがあって、UserAgentを見てiPhoneとiPod touchをプラグインで判別できるようにしてある。だが、スマートフォンも増えつつあるし、他の端末も同じように扱えるようにする必要が出てきた(主におれの要件だが)。
区別したいのは表現力はPC並みだがスクリーンサイズの制約が大きい端末なので、そのあたりは恣意的に決めていく。例えばUserAgentに「Mobile」が入っていればいいかというとそんな単純な話ではなくて、例えばiPadのUserAgentにも「Mobile」が入っているけど、あれは十分なスクリーンサイズなのでスマートフォン扱いしてはまずい。
というわけで、先程コミットした2.3.3.20100420では「Config#smartphone?」メソッド(aliasで従来通りの「iphone?」も使える)の判別用正規表現はこんな感じ:
/iPhone|iPod|Opera Mini|Android.*Mobile|NetFront|PSP/
Android端末がこれでいいかどうかわからない。PSPは(スマートフォンじゃないけど)試しにこの日記を見てみたらそこそこな感じだったのでまぁいいか、というところ。NetFrontはついでに加えてみたけど、ここに加えていいのかどうかわからない。
◆ ただただし [もちろんそれを知った上でのアイデアだよ~]
◆ G [tdiay9歳おめでとうございます。 今までずっと使わせていただいています。 これからもがんばってください。]
◆ なかむら(う) [Androidは「Mobile Safari」で拾った方がいいかも。現状でもマッチはしますけど、Opera Mini..]
◆ ただただし [AndroidはMobile Safariだけじゃないですよねぇ? あんまり気にしなくていいのかな。]
◆ なかむら(う) [いや、何で拾いたいのかによると思うんですけどね。 Opera Miniで拾うならブラウザで識別したいんだろうと思った..]
◆ ただただし [「何で(手段)」は問わないんですよ。峻別したいのは端末の能力なので、それがブラウザに依存した能力ならブラウザ名だろう..]
2010-04-21(水) [長年日記]
■ グスタフ、寝室のドアを自力で開ける
グスタフに触られると困るものは寝室に置いておくことにしていて、人間と一緒でなければ入ってはいけないことになってる(そう認識しているのは人間だけだけど)。なので、締め出されるとドアをカリカリと引っかいたりして、入れて欲しいことを伝えていたのだが。
ところが今朝、あんまり騒がしいので寝室の外に放り出しておいたはずのグスタフが中にいるではないか。うわー、ついにこの時が来たか!
寝室のドアは内開きで、ドアノブは押し下げると開くレバータイプなので、外からうまく体重をかけると開けることができるだろうと思っていたのだが。ちょっと前から、ドアとドアノブの関連に気づき始めていたようだから、時間の問題だとは思っていたんだけど。ケダモノのくせに知恵つけやがって……。
うーん、人間の聖域がまたひとつなくなってしまった。なにかうまい対策はあるかなぁ。スプリングでドアを閉めておくヤツでも付ければいいんだろうか?
なお、写真は記事とは関係ありません。ここ最近でいちばんカワイイ写真。もっとも股間のタマタマがかなり大きくなってるのがわかるので、一概にカワイイとはいいがたい。いま市に去勢費用補助申請をしてるので、申請が通ったら取っちゃうけどね(笑)。
2010-04-22(木) [長年日記]
■ Remember The Milkのスマートリストを活用して、ActionリストとCalendarリストを合体させた
約4年前にRemember The Milk(以下RTM)上で始めたGTD、ちゃんとまだ続けていて、自分でもたいしたもんだと思うのだが、もはや完全に自己流になってる気がしなくもない。まぁ、こういうものは、そうやって自分のものにしていくもんだろう。
土曜日の週次レビュー以外は、基本的にCalendarリストにある「今日〆切のタスク」をActionリストに移動するだけで、あとは淡々とお仕事をこなすだけなのだが、RTMで唯一残念なのがこの「タスクのリスト間移動」。ほとんどの操作をキーボードだけでできるのだが、移動先のリスト選択だけはマウスが必要になっている(まぁキーボードで選択できなくもないけど)。1日2回(終わらせられなかったタスクは延期して翌日に回すから+1回)とはいえ、この操作はできればやりたくない。
どうせActionリストは直接見ることはなくて、実際はタグを見て「仕事用スマートリスト」と「プライベート用スマートリスト」に分けて運用しているのだから、これをもっと賢く(スマートに)してやれば、ActionリストとCalendarリストは合体しちゃってもいいんじゃね? と思ったのでやってみた。
ようするに、仕事用スマートリストの検索設定が以下のようになっていたのを:
list:Action tag:job
こう変えればいい:
list:Action dueBefore:"2 days after" tag:job
「2 days after」にしてあるのは、翌日の仕事量が見えていた方がいいと考えたから。今日の分だけ見えていればいいなら「tomorrow」でもいい。同様にプライベート用スマートリストはこうなった:
list:Action dueBefore:"2 days after" NOT tag:job
〆切が近づくと自動的にリストに登場してくるので、これはそうとう便利かもしんない。なんで今まで気付かなかったんだろ。
2010-04-23(金) [長年日記]
■ Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)(山本 陽平)
技術評論社の稲尾さんから献本いただいた。読むの遅くてすみません(ここまでテンプレ)。
とはいえ、すでに出回っている書評に付け加えることはほとんどないんだよなぁ。Webテクノロジーの基礎に関する最高の教科書のひとつだと思う。付録のリファレンスも含めて、作りが極めて教科書的で、色褪せない工夫が随所にあって感心する。Webサービス開発者に限らず、Webに携わる者はみんな読んでおくべき。
実は、途中までは、対象読者は開発者だろうと思っていたんだけど、最後のリソース設計のところで情報アーキテクチャとの関係が登場して、もっと広く読まれるべきだと思い直した。「Webアプリとか関係ないし」とか言いつつふつーの情報サイトを設計している人がいたら、自分が作ってるサイトが、いつかどこかでAPI化される可能性に気づいて居ずまいを正すのもいいと思うよ。
それにしても、かれこれ15年以上Webに関わってるのに、知らないことがいっぱい書いてあるんだもん、まいったわ。知らなかったところに付箋を貼りながら読んでいたんだけど、読み終わってあんまりたくさん貼ってあるもんだから、げっそりした。まだまだ勉強が足らんなー。
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESSプラスシリーズ)
技術評論社
¥2,827
といいつつ、ひとつだけ理解できないというか、納得できないところが。トランザクションのところがなんだかRESTっぽくないのがすごく気になる。
トランザクションリソースに対象となる操作を加えていくところで、「削除」に相当する指示を与えてないんだよね、このサンプル。トランザクションリソースにDELETEを送れないのはわかるし、代わりに使えるメソッドがPUTしかないというのもわかるんだけど、じゃあ「削除」はどこへ行ってしまったのか? 「ボディを与えてないから削除なんだ」というのはちょっと苦しいと思う。
やっぱりこういう複雑な要件をRESTfulに実装するのは困難な面もあるんじゃないかなー、と思った例だった。それともサンプルだから省略されている奥義があるんだろうか。もしかして『RESTful Webサービス』を読むと答えが書いてある罠だったりして(と思ったのでほしい物リストに入れておく)。
RESTful Webサービス
オライリー・ジャパン
¥4,180
追記
ますますひっかかるらしい。なんと……。
◆ TrackBack [http://developer.cybozu.co.jp/kazuho/2010/04/rest-re-web-a..]
2010-04-24(土) [長年日記]
■ 川崎 3-0 神戸@等々力競技場
ケンゴがスタメンで出てきた時は思わず涙ぐんでしまったよ。これでジュニーニョが戻ってくれば元通りなんだがなぁ。
3点中2点がPKという微妙な形だったが、勝ちは勝ちなのでOK。黒津はもうちょっとチャンスをものにして欲しいけど……。もう2点は入っても不思議じゃなかったような気がするよ。
序盤はDFの裏を狙われて、たやすくゴール前までボールを運ばれるシーンが頻発してヒヤヒヤしたけど、すぐに修正されたようで、このところ心配していた守備はまぁまぁ安定していた感じ。浦和戦みたいに最後までグダグダでなければいいのだ。
2010-04-26(月) [長年日記]
■ tDiary: ナビゲーションメニューにdropdown_calendarなどを埋め込む
先日のデザイン変更ついでに、↑に出ているナビゲーションメニューへカレンダーなんかを埋め込んだら、どうやってるのか聞かれたので、参考までに。何を入れたいと思うかは人それぞれなのでcontribとかには入れるつもりはないんだけど。
# my_navi.rb プラグイン # # 通常のnaviに、カレンダーとRSS feedのアイコンを追加。 # dropdown_calendar.rbを有効にしておくこと。 # @options['dropdown_calendar.label']は空('')にしておく。 def navi result = %Q[<div class="adminmenu">\n] result << navi_user result << navi_admin result << calendar result << %Q[<span class="adminmenu"><a href="index.rdf"><img style="border-width: 0px;" src="http://tdiary1.tdiary.net/feed-icon-12x12.png" width="12" height="12" alt="RSS feed"></a></span>] result << %Q[</div>] end
重要なのはCSSで、カレンダーが挿入するdivやformなんかをinline要素にする必要がある。gustavテーマにはこんな感じに仕込んである:
div.adminmenu div, div.adminmenu form, div.adminmenu select { display: inline; }
おまけ。スマートフォン向けにnaviのラベルを短縮:
if @conf.smartphone? then def navi_index; 'TOP'; end def navi_prev_diary(date); '前'; end def navi_next_diary(date); '翌'; end def navi_prev_nyear(date); "前"; end def navi_next_nyear(date); "次"; end def navi_latest; '新'; end def navi_update; "追"; end def navi_edit; "編"; end end
2010-04-27(火) [長年日記]
■ iPhoneからHTC Desireに乗り換えた
……というわけで、ぶじ予約が通ったので発売日にHTC DesireことX06HTを入手。予約しても今日入手できなかった人もいるらしいねぇ。
iPhoneからの機種変ではまる
会社帰りに町田ヨドバシで手続き。ところがこれがちょっとしたトラブル。
(iPhoneのキャンペーン付き)ホワイトプランから、普通のWホワイトプランへの移行ができないという問題が起きて、対応してくれていた店員がケータイでSBMのサポートに問い合わせるという事態に。最終的に、何か別のプランに移行する形で契約して、あとで変更料のない方法でホワイトプランへ変更という技を使うことで回避したようだ。まぁ、よけいな金がかからないならなんでもいいのだが、そもそも夜の7時になって初めてこういう事態に遭遇したわけ?
と思って聞いてみたら、なんと今日iPhoneからDesireへ機種変したのはおれが初めてだそうだ。それ以前の客はみんな、iPhoneとは別にDesireを新規契約した人ばかりだったとか。おまえら金あるなー。というか、まぁ、発売日に予約して買うような客はそういうマニアばっかりだってことですね。おれは違うけど。
使い方がさっぱりわからない
どうせiPhoneのいいとこどりなんだから、操作方法もたいして違わないだろうとたかをくくっていたら、これがもう、ぜんぜんわからないの(笑)。最初は(iPhoneの時と同じで)音声通話で自宅に帰るコールをするというタスクで、これは画面の真ん中にでっかく「電話」と出ているのでわかる。少なくともiPhoneよりはわかりやすいので、電話としてはこっちの方が上。
そっから先は、フリップ式じゃない文字入力にとまどい、アプリの選び方にとまどい、ホーム画面のカスタマイズにとまどい……と、まるで自分がアホになったかのような錯覚に陥る。まぁ、iPhoneの学習が効かなかっただけで、基本的にはわかりやすいUIなので、これはAndroidのせいではない。
ハードはとてもいい!
この手の製品のハードウェアは、現代では「革新的な新技術による競争」というよりは「SCM(サプライチェーンマネジメント)勝負」になっているので、基本的には新しいほどよい。そういう意味で、iPhone 3Gよりも、iPhone 3GSよりもDesireの方がハード面では優れているのは当然だ。速度面でも画面の美しさでも、iPhoneをはるかにしのいでいる。
デザイン面でもよくできていて、サイズ的にはiPhoneとたいして変わらないのに、丸みを帯びたフォルムのおかげで想像以上に小さく感じる。おれ、女性がiPhoneを両手で操作しているのを見ると気の毒でしょうがなかったんだけど*1、もしかするとDesireならいいセンいけるかも。
素材や表面加工もいい感じで、つるつるしてないから落としそうな不安も感じない。なによりふんわりしていて暖かみを感じるし、握ってると安心感がある。ゴツゴツしていて冷たいiPhoneとは対照的。
一方、ソフトはまだまだ
タッチスクリーンはレスポンスもいいし、スクロールもなめらかでそういう面のチューニングは悪くない。ホーム画面(と呼んでいいのか?)も、ダッシュボード的にいろいろ置けて、(カスタマイズが好きな人にとっては)自分が使いたいアプリを目を皿のようにして探さなくてはいけなかったiPhoneよりも、ずっと人間味がある。
ただ、各ソフトウェアの作り込みはまだiPhoneに及ばない。熟成する時間がかなりあったiPhoneにたいして一朝一夕に追いつける部分ではないので、まぁ想像できていたレベルだけど。メニューの優先順位付けとか、ボタンの間隔とか、あるいは単にウィジェットの美しさとか、ユーザを「イラっ」とさせない工夫がまだまだ足らない感じだ。こういう部分が熟成するだけの時間が稼げるといいんだけど。
でもまぁ、今はまだマニアしか買わない製品なので、大丈夫だとは思う。ローカライズも甘いけど、それよりもAndroid 2.1端末をすばやく出すことを優先したSoftBankは正しい判断をしている。Xperiaの評判はひどいもんだからなー。
*1 iPhoneのサイズって、図体のでかいヤンキーが、自分の手に合わせてモックアップをデザインしている姿が目に浮かぶよね。
◆ hs [Nexus Oneが技適を通っている = Amazonで売っているNexus Oneを国内で使うのは適法、とはならな..]
◆ ただただし [あー、私はそこのところは理解してますが、あえてツッコまなかったというか。適技マークは本体貼付けじゃなくて画面に出るだ..]
◆ ぱお [すみません。教えてください。 古いiPhoneが残っていると思いますが、新しいSIMをiPhoneに刺して使えますで..]
◆ ただただし [iPhoneとはSIMの共有ができないと聞いています(試すつもりもないですが)。実際、(使えない)iPhoneのSI..]
◆ ぱお [ すばやい回答ありがとうございます。そうか、iPhoneからDesireに機種変するとSIMも変わる(灰SIM?)ん..]
◆ ただただし [root取ればできるんじゃないですかね、よく知りませんが。私はEMOBILEも使っているのでデザリングには興味ないで..]
2010-04-28(水) [長年日記]
■ 引き続きHTC Desireセッティング(連絡先、音楽、スクリーンショット)
1日遅れで日記書いてると、どんどん忘れいくなぁ。覚えている限りでやったことを書いておこう。ちなみにrootedとか危ないことはしばらくやらないので。なにしろケータイはこれしか持ってないし、買うときに「現在品薄なので故障修理でも代替機が出ません」って断言されちゃったからねー。
HTC Syncを使って連絡先を転送
ちゃんとケータイとして使う以上、iPhoneで使っていた連絡先をなんとかして移行しなくてはいけないが、もちろん移行サービスなんてない。
iPhoneではWindows Contacts(ようするにOS標準のアドレス帳。VcardじゃなくてXMLファイルの集合体)をiTunesで同期させていた。AndroidではGoogle Contactsが標準だが、あんなお粗末な連絡帳なんて使ってられないのである。ちょっと調べるとHTC SyncというツールでWindows Contactsが同期できるらしいのでそれを使うことに。
たぶんこれだと思うのでダウンロードし、インストール開始。最初に「すべてのアプリを終了しろ」「ウィルス対策ソフトも切れ」とか怪しいことを言ってくるので、どちらにも従わずにインストールを決行。そしたら、Windows Security EssentialsがWin32/YourSiteBarを検出してくれた。ADウェアじゃねーかwww 台湾人の倫理観欠如には恐れ入るぜ。もちろん、これを削除してもHTC Syncは問題なく動作する。発売日にDesire買うような人はITリテラシも高いだろうから、こんな胡散臭い手にはひっかからないと思うけど、SoftBankは何か手を打った方がいいんじゃないかなぁ、これ。
あとはUSBケーブルでPCとDesireを接続し、同期モードを選べば連絡先を同期できる。iTunesなしではできることに制約があるiPhoneと違って、Android端末はスタンドアロンでもけっこういけそうなので、今後はしばらく同期しないで運用してみよう。もっとも(わかっていたことだが)読み仮名もないようなシロモノなので、どうやれば効率良く探せるようになるのかなど、課題が多い。
doubleTwistを使って音楽ファイルを転送
iPod代替機としても使うので、通勤時に聴くための音楽ファイルも転送しなくてはいけない。そういえば書かなかったけど、あらかじめ16GBのmicroSDHCカードを買ってあるので、裏蓋を開けて挿入済み。なお、裏蓋は本体背面全体を覆う上にきわめて開けにくいので、一度入れたSDカードはめったに抜かないことになりそう。
さて、あまり準備もできなかったので先日試したdoubleTwistで転送することにする。Desire本体はUSBマスストレージモードで接続。上の連絡先同期とはモードが異なるので注意。doubleTwistはちゃんと端末を認識してくれて、転送準備状態になった。あとはiTunesから読み込んだプレイリストを適当に選んで同期ボタンを押すだけだが、これがかなり時間がかかる上になぜかめちゃくちゃCPUを食うので、暇なときにやっておくと吉。おれは出社前に始めてしまったので、遅刻するんじゃないかとひやひやした。doubleTwist自体の完成度はかなり低いので、これはいずれ代替手段を探さないとなぁ。
ついでに写真をいくつかと、動画も選択しておいたが、今日はまだ試してない。
Bluetooth経由で音楽を再生する
さて、音楽再生には専用のアプリが入っているので、それを使うだけである。SDカードに入っている音楽ファイルを適当に認識してくれるみたいだし、doubleTwistで選んだプレイリストもちゃんと見えている。まぁ、普段は全曲ランダム再生しかしてないんだけど。
それより聞いてくれよ。
いつものようにBluetoothのヘッドフォンを接続したんだけどさ、なんと、ちゃんとリモートで曲送りができる!!! あと(光学ジョイスティックで曲にフォーカスすると)、長い曲名も全部表示される!!!
iPhoneはiPodを出自とするくせに、上記のようなミュージックプレイヤーとしての基本的な機能がいつまでたっても実装されないのが、個人的には最大の不満だったんだよね。「Appleはユーザ体験を大切にする会社です」なんて意見を聞くと、いつもこれを思い出してムズムズしていたものだ。いやもう、これだけでiPhoneから乗り換えてよかったって思った(笑)。まぁ、実際のところは、Desireのミュージックプレイヤーもまだまだ作り込みが甘いんだけど、あとはマーケットで代替プレイヤーを探してもいいので。
あと、ミュージックプレイヤーにはウィジェットもあるので、これをホーム画面に置いておけば再生中の曲名確認なんかも手軽にできて良い良い。
Android MarketにPermalinkがなく、端末単体でスクリーンショットが取れない件
日本語入力にはフリック入力が使えるSimejiを、Android Marketから導入。ちょっと癖があるのでOpenWnnも試してみたい。他にも色々と導入してみてるけど、まだ有料アプリには手を出していない。
ところでAndroid Marketの個々のアプリにはなんと、Permalinkがないらしい。パッケージ名で検索することで代替できるけど、とてもじゃないがGoogleの息がかかっているとは思えないひどい作り。どうなってんの?
結果的にユーザによる紹介サイトが賑わうわけだが(TwitterでAndrolibを紹介してもらった)、PCブラウザからAndroidへの情報受け渡し手段がQRコードとか、こっちもどうなってんだそれ、という感じ。これはかなりがっかり。先行するAppleが、リンクからiTunesを立ち上げる仕掛けを使って成功しているのに、何も学習しなかったのかねぇ。
で、QRコードに頼らない方法として、AppBrainを使ってみている。PC上から導入したいアプリを選んで「Install」しておくと、あとでDesire側で「同期」することでそれを時間差インストールできるというサービス。ソーシャル要素もあって、なかなか面白くて便利なんだけど、残念ながら日本向けアプリが扱えないのでちょっと不完全。とりあえず→おれのDesireに入ってるもの(の一部)
そうそう、doubleTwistで転送した(iPhoneで使っていた)壁紙を使おうとしたら、中央にちんまり表示されて笑った。解像度がこんなにも違ったのか。……というシーンを撮ろうと思ってスクリーンショット撮影方法を探したらなんと、普通の方法ではスクリーンショットが取れないらしい。root化したり、SDKを使ってPC側から撮ることはできるようだけど、一般ユーザには敷居が高すぎるねぇ、これは。
Androidアプリ市場をiPhoneアプリと同じように盛りあげようと思ったら、クチコミで紹介できるルートを制限しちゃダメだ。自分の端末に表示されているものを撮って共有するという行為は普通にできた方がいい。アプリ情報の共有をするにしても、すぐにアクションを起こせるようにMarketへのリンクは必須だし、魅力的なスクリーンショットがあればかなり印象が変わる。
Permalinkとスクリーンショット。この2点が欠けていると知ったことで、Androidの行末にちょっと不安を感じてしまったよ。Googleはすべてをクラウドに持って行きたがってるはずで、スタンドアロンアプリの市場には力を入れたくないってことだろうか?
というわけで、SDKを導入するまではしばらくスクリーンショットは載せられません。↓とりあえずGR Digitalで撮った。うわ、ショボっ。
◆ ただただし [それがAndroid端末やAndroid Marketの外でも通用するなら、Permalinkと呼んでもいいと思いま..]
◆ ぜひとも [SlideScreeも試してみてください。 http://slidescreenhome.com/]
◆ ただただし [へえ、美しくていい感じですねぇ > Slide Screen ただこういうのを入れちゃうと、元のHTC Senseが..]
◆ nobzooo [Home Switcher って言うアプリでHOMEのUI?切り替え出来ますよ。Switcherを入れなくても、HO..]
◆ ぜひとも [むしろ、そのあたりも検証していただきたく。>元のHTC Senseがどうなっちゃうのか(元に戻せるのか)、あと標準添..]
◆ ただただし [あんた何様だよw]
2010-04-29(木) [長年日記]
■ 久々に富士山一周(「今ここロイド」を試用)
今日は天気もよくなるということだったので、5時に起きて(というかいつものようにグスタフに起こされて)バイクで出動。もう春だから富士山スカイラインを走ろう。せっかくなので今ここロイドを使ってみる。
さっそくMobileBoosterをつないで今ここドロイドを起動、現在位置が出ていることを確認してからタンクバックに放り込み、東名へ。で、海老名SAに入って確認してみたらなんか固まってるし。こういう時、どうなるのか知らなかったんだけど、キー操作に反応しない状態がしばらく続いたあと、強制終了を促すダイアログボックスが出るので再起動した。ううむ、Nexus Oneでは動いたという話を聞いてるんだけどなぁ。
その後もちょくちょく再起動させつつ確認してみたが、必ずハングしているのでどうしようもない。後半は気にせず走ることに専念。富士山麓はまだ花が付いた桜が残っていたりして、まだまだ春の雰囲気が残っている。
というか、富士山スカイラインに入って水が塚の駐車場に入るころには富士山なんて影も形も見えなくなっていて、雨と霧と強風でまるで真冬の様相になっていた。ま、われわれアメフラシ族は、それくらいでは動じないんですけどね。ちょっと寒かったけど。
いつものように朝霧高原に出て、青木ヶ原樹海を縫って走ったあとは、山中湖からふたたび御殿場に戻る。この時点で本降り。そのままBMW Motorrad Shonan(旧Craft)に寄ってオイル交換。なんと、前回の交換は1年前の車検のときだったらしい。なんてこった、年間走行距離がたった3,000kmかい。一番よく乗るシーズンを子猫の世話に費やしたからなぁ。今年はもっと乗ろう。
2010-04-30(金) [長年日記]
■ 続々HTC Desireセッティング(今ココなう!、KeePassDroid)
引き続き、Desireのセッティングを詰めている。さすがに数日使い込むと、だんだんいい感じになってくる。もうiPhoneには戻れんなー、というのが実感。それくらいマルチタスクの恩恵は大きいね。
「今ココなう!」公式アプリを使う
なんと、昨日書いた「今ここロイド」とは別に、今ココなう!を作成したふじたろんさんの手による「公式版」があると知らされた。まだマーケットには入ってなくて、ダウンロードページから入手できる。公式が野良アプリだったとは!(笑)
で、野良アプリ(.apk)の入れ方には複数あって、
- PCからAndroid SDKのadbコマンドでインストール(たぶんこれが公式)
- SDカードにコピーして、端末上のファイラから実行してインストール
- 端末でWebから直接ダウンロード、インストール
で、何も入れなくていい一番楽な3番目の方法をとった。ただし、設定画面で野良アプリの導入を許可するようにしてやる必要がある(設定→アプリケーション→不明な提供元)。
iPhone版でおなじみの今ココのアイコンをタップすると、シンプルな情報表示だけの画面。今ここロイドは地図を表示していたけど、こっちは電池消費を抑える作りかな。ステータスバーにもアイコンが出て、動作中なのがひと目でわかる。あとはアカウント情報を入れてやれば普通に使えた(なぜかTwitter連携がうまくいかなかったけど)。とりあえず試しに動かした朝の通勤時の軌跡。
今ここロイドは、周辺の利用者情報を取るために使うのがいいかもなー。
KeePassDroidでパスワード管理
オープンソースのKeePassはぜったいマーケットにあるだろうなと思っていたが、やっぱりあったKeePassDroid。1.x用の.kdbファイルしか対応してないけど、PC側からマスストレージモードで接続した端末に直接エクスポートすればいいのでらくちん。ネットワークごしにセキュアなやり取りをするために四苦八苦していたiPhone版とは大違い。
アプリ側でそのファイルを指定して、パスワードを入力するところまではiPhone版と同じ。そこから先が、マルチタスクOS Android版の面目躍如だ。
入力したいエントリを選ぶと、自動的にユーザ名とパスワードの両方が(仮の)クリップボードにコピーされる。ログイン待ち状態のアプリやブラウザに戻って、上の情報バーからそれぞれの情報を選ぶとシステムのクリップボードに移るので、普通にペーストすればいい。ユーザ名入力後にパスワードを取りにKeePassの画面に戻らなくていいのがいい。さらに、KeePassは常駐しているので(マルチタスクだから)、DBファイルのオープン時に必要なパスワード入力も1回で済む。セキュリティを意識して長いパスワードを設定してあっても苦にならないのがいいね。
シングルタスクのiPhoneだと、(以下どれだけ面倒な作業だったかを書き連ねかけたけどすごく長くなるので省略)パスワード管理そのものを諦めたくなったもんなぁ。
◆ hago [iPhoneは永劫もう使いません?]
◆ dan5 [5秒遅延は良いアイデアですね。まねします。]