2000-11-20(月)
■ ASIMO
うっひゃーっ。どうする、どうする? って、思わず値段を探しちゃったよ(笑)。いやー、かわいすぎ。まるで人間の子供。つーか、フォームファクタがまるっきりアトム。泣ける。名前の由来はアシモフ博士だろうか。だったらさらに泣ける。P2、P3は燃えたけど、こっちは萌えるね。いきなりこのサイズだもんなー。43kgつったら、うちのかみさんとたいして変わらん。がんばれば抱いて歩けるじゃん。って、ロボットを抱いて歩いてどーする。ああ、興奮して何書いてんだかわかんねー。
家に帰って、ニュースチェック。が、国会が荒れててなにも流れず。史上最バカ総理の不信任案なんてどーでもいいからさぁ(一番バカなのは自民に投票した愚民どもなんだし)、ASIMOちゃんのニュースやってよぅ。……で、やっとWBSで流れる。ビデオに撮る。繰り返し見る(笑)。いやー、腰関節はやめて股関節を柔軟にしたようですな。すげぇ人間っぽい動き。手も五本指になってるし。いやぁ、マジ欲しいわ、これ。夢に出そう。
2001-11-20(火) 11855歩
■ cgi.rb
cgi.rb を使っているので出力されたソースに改行が全くないのが悲しひ……それは、CGI::pretty
を使うとよいでしょう。その名のとおり、インデント付きで整形してくれます。
そいえば、ruby-list(ruby-devだっけ?)でcgi.rbの改善計画が出てるんだよなぁ。話題に入りたいけど暇がない……(というか余裕がない)。
2002-11-20(水)
■ 今日のなんでMovableTypeやねん
わははは、よーやる。
負けてはいられないので(?)、例の極秘プロジェクトを早く発表しなくては。って、別に秘密でもなんでもなく、すでにCVS上にはあるのだが。
この「Blogkit」、ようするにtDiaryのblog的運用方法で公開したノウハウを集めたものだ。各種設定やレイアウト指定をしたtdiary.confと、Last-Modified表示やRecent Entiries等を実現する各種プラグイン、そしてセクションアンカーを排して似非サマリ表示を行うblogio.rbをおさめてある。あと、おまけにそれっぽいテーマもね。これらをインストール済みのtDiaryの適切なディレクトリにコピーすると、それだけであら不思議。まるでMovableTypeのようになる……というシカケ。
あとはドキュメントを書くだけで公開できるレベルにはなっているのだが(←最大の難関)。
■ Blogkit
おれが何かアクションを起こすと、2chに必ず「tDiary必死だな」みたいなコメントが載るのは面白いな。なんにでも対立を持ち込まずにいられない人というのはいるものだ。まぁ、賢者と愚者が同じ土俵に居続ける点が2chの魅力なわけだが。
別にMovableTypeをライバル視してるとか、そういうのはないんだけどな。東大の若造くんにも興味はないし、「うんさんくさい」を「hate」と超訳しちゃう人への興味もすでに失せた。いまあるのはblogツールの特性への(プログラマとしての)興味だけだ。
こないだはツールとしてblogと日記の違いを考えたが、こんどは共通点を考えてみよう。
まずこれらは、「コミュニケーション・ツール」である。コメントを付けられる日記システムも多い。blogもそう(らしい)。コメントが付けられなくても、少なくとも段落アンカーを生成する日記システムはリンクされることを意識しているからコミュニケーションが前提であり、単なる日記ではない。コメントが付けられて、リンクも可能という点からは、閉じた世界だが関心空間も仲間だろう。
さらに、「コンテンツ・マネージメント・システム(CMS)」である。CMSつーとXOOPSみたいな大がかりなものが思い浮かんでしまうが、見栄えと中身を別にして、記事を時系列に管理したり、検索できたり、ジャンル別に仕分けしたり……なんて機能は十分にCMS的だ。この観点ではWikiWikiも仲間に入るだろう。
結局、「読者とのコミュニケーションを重視して」「コンテンツ管理を楽にしたい」というニーズがあった場合に、blogツールや日記ツールはどちらも選択肢になるということだ。おれは今、準備中のも含めてtDiaryベースのサイトを6つ管理してるけど(多すぎ……)、そもそも人はそんなにいくつも日記を持つ必要はない。ということはこのAsumi日記以外はみんなトピック主体のニュースサイトみたいなものってことで、記事単位で管理できるblogのスタイルは(日記よりも)汎用性が高くて使いやすいということになる。
専用のblogツールを入れるという選択肢もあるけど、同じ記述形式が使えて、Rubyで拡張できて、ソースの隅から隅まで知ってるtDiaryを使う方がはるかに楽だ。……というわけで、Blogkitなのである。
つーか、こんなもん書いてる暇があったらBlogkitのドキュメントを書け……
2003-11-20(木)
■ こま犬ライブラリ毎日更新(3)
えーと、だいたい半月は継続できたかな。快挙である。まだいけそう。というか、倉庫を空にするには半年くらいこのペースを持続しなくてはいけないのだが……うへぇ。といっても、更新にかかる時間は毎日10分なので(下ごしらえは除く)、持続できているわけだが。これ以上時間のかかる作業はなかなか取れない(ruby-lang.orgのtDiaryバージョンアップとかな……)。
もっとも地図上への反映はすっとばしているので、これもあとが怖い。その代わりと言ってはなんだが、Mapion上にポイントするリンクを生成することに。これでこま犬を訪ねる旅がしやすくなったはず(あまりする人はいないと思うが)。
■ calendar2photoモジュール
これ、誰か作らんかな。
■ 暗号技術入門-秘密の国のアリス(結城 浩)
技術上の概念が、その発明者から直接ユーザに届けられることは少ない。たいていの場合は間に1レイヤ挟まるだろう。
- 概念の発明者
- 発明の実装者
- 実装の利用者
間に挟まる「実装者」の役割は重要で、たいていの「利用者」には理解できない「発明者」の語彙を、うまく翻訳してくれる働きをしている。とくにあるていど歴史のある概念であれば、そうなっているべきだ。昔はテクニカルタームで埋め尽くされていたコンピュータのマニュアルが、最近はずいぶんマシになっているのはその現れだ。利用者が、発明者の語彙にさらされることがなくなりつつあるのだ。
しかし暗号という概念は、けっこう歴史はあるものの、利用者の身近に降りてきたのが最近ということもあり、「RSA」とか「鍵長」のような発明者が使っている語彙が、利用者の前に突然登場することがよくある。暗号は、実装者の努力がまだまだ足らない技術であると言える。
問題は、だからといって利用者が暗号を使わないわけにはいかない点である。インターネット社会で自分の身を守るためには、暗号技術の理解が不可欠だ。現代の暗号技術は、(残念ながら)隣り合っていないレイヤと直接言葉を交わさなければ使いこなせないのである。
こういう場合、ちょっとした用語集やハウツー本では役に立たない。必要なのは入門者向けではあるが用語に関して妥協はしないような書物であろう。そのような本を書くのは非常に困難であるが、本書はその目的をかなりうまく達成している。難しい言葉を、これ以上ないほどに正確に、かつ平易に解説する結城さんの力量には驚嘆する。
というわけで、これを読んでおけば、インターネット上でうっかり出会ってしまった暗号の専門用語に、とまどうことはもうないだろう。「実装者」を目指す人だけでなく、完全な「利用者」にもオススメできる。
2005-11-20(日)
■ はやぶさ、タッチダウンせず(か?)
どうも、松浦晋也のL/Dが、世界的にはやぶさ関連ニュースのポータル化しているっぽいなぁ。というのも、先日のTrackBackをたどってきたとおぼしき、日英翻訳サイトからのrefererがあるからなんだが。やっぱ、本家からのアウトプットが乏しいよなぁ。貧乏の壁は厚い。
今朝の降下に関する記者会見の、詳細なレポートも、やはりL/Dから。ターゲットマーカーは着地したが、本体は地表すれすれをウロウロしただけでタッチダウンには至らなかったようだ。くそー、応援がちょっと足らんかったか! 残念だけど、満身創痍なのに自律でここまでやれれば、たいしたもんだよなー。はやぶさはたいしたロボットだ。
願わくば高温のダメージが少なくて、25日の再降下にチャレンジできますように。
■ Alexa Web Information Service (AWIS)を使ってみようとしてほぼ挫折中
ふとした気の迷いで、AlexaのWeb Serviceを使ってみようと思い、いじってみたんだけど、うまくいかない。一定回数以上のクエリから有料になるため、一風変わった認証システムが組み込まれているんだけど、そこをうまく通過できないっぽい。Amazon Web Services Request Authenticationというのがそれなんだが:
- HMACを使ってdigestを計算し、base64でエンコードする
- ハッシュ関数はSHA1を使用
- digest用のキーは、AWS共通のsecret keyを使用する
- digest用の値は、サービス名(AlexaWebInfoService)、オペレーション、タイムスタンプを連結した文字列
- タイムスタンプはXML SchemaのdateTime形式
まず、HMACの計算をどうするのかわからず、調べてみたらOpenSSLに入ってるらしい。が、例によってドキュメントが見つからない。Ruby使いの宿命だ。甘んじて受け入れよう(全肯定かよ)。OpenSSL::HMAC::digestに、SHA1のインスタンス、キー、値の3つの引数を渡すと、公開されているJavaのサンプルと同じ値を返すようになったので、これでいいんだろう。たぶん(ここからしてすでに怪しい)。
で、楽なRESTインタフェースを選ぶことにして、まずは呼び出し用のURLだけを生成するクラスをこんな感じで作った:
require 'openssl' require 'base64' require 'cgi' class Alexa BASE = 'http://awis.amazonaws.com/onca/xml' SERVICE = 'AlexaWebInfoService' def initialize( access_key_id, secret_access_key ) @access, @secret = access_key_id, secret_access_key end def url_info( url, response_group = 'Rank' ) ope = 'UrlInfo' ts = timestamp sig = signature( ope, ts ) awis = BASE.dup awis << "?Service=#{SERVICE}" awis << "&AWSAccessKeyId=#{@access}" awis << "&Operation=#{ope}" awis << "&Url=#{url}" awis << "&ResponseGroup=#{response_group}" awis << "&Timestamp=#{ts}" awis << "&Signature=#{sig}" end private def timestamp ts = Time::now::utc::strftime( '%Y-%m-%dT%H:%M:%SZ' ) end def signature( operation, timestamp ) digest = OpenSSL::HMAC::digest( OpenSSL::Digest::SHA1::new, @secret, "#{SERVICE}#{operation}#{timestamp}" ) CGI::escape( Base64::encode64( digest ).chomp ) end end
こんな感じで使う:
alexa = Alexa::new( アクセスキー, シークレットキー ) puts alexa.url_info( 'sho.tdiary.net' )
表示された長いURLをブラウザに貼ると、指定したURLに関するアクセス統計情報が得られる……はずなんだけど、帰ってきたのはこんなエラー:
<?xml version="1.0" encoding="UTF-8" ?> <UrlInfoResponse xmlns="http://webservices.amazon.com/AWSAlexa/2005-07-11"> <OperationRequest> <RequestId>066697A3WVFSXYM29S4D</RequestId> <Errors> <Error> <Code>AWS.NotAuthorized</Code> <Message>The identity contained in the request is not authorized to use this subscription id.</Message> </Error> </Errors> </OperationRequest> </UrlInfoResponse>
「not authorized」って言われてもなぁ……。事前になにか、おまじないが必要なんだろうか。
といった感じで、今日は時間切れ。AWISは人気がないらしく、Web上にもほとんど情報がない。とほほ。
◆ (ふ) [「HAYABUSA LIVE」もタッチダウン当日だけですもんね。今回はJAXAのWeb担当のテラキンさんもプロジェク..]
◆ FWDer [つらいよな 明日のクローズアップ現代はどのような構成になるのか?(松浦晋也はゲストのはず...)]
◆ TrackBack [http://sho.tdiary.net/20051121.html#p02 ただのにっき Alexa Web I..]
◆ FWDer [なんと放送予定が飛ばされてなくなっちゃたよ]
◆ TrackBack [http://d.hatena.ne.jp/satzz/20080104/1199438426 satzz onli..]
2006-11-20(月)
■ W-ZERO3をモデムにする
ちっともコードを書く時間が取れないので、「お外でプログラミング計画」をさらに進めるべく、W-ZERO3をモデムにすることにした。なにしろ、ネットにつながらないとAmazonプラグインもいじれない。
USB Select for Windows Mobile 5.0を入れる
マスストレージも使いたいので、モデムと柔軟に切り替えを可能にするUSB Selectを導入。モデムに切り替えておく。
USBモデムドライバを入れる
シャープのサポート/Q&Aからドライバをダウンロード、インストール。
PRINへの接続を設定
ダイアルアップ接続先はPRIN。「つなぎ放題2xパケット方式」の番号(0570-570-611##64)を設定。ユーザ名/パスワードはいずれも「prin」。
5.25円/分だけど、1,575円/月が上限なので実質的に使い放題か。というわけで、いちど接続したら気にせずにつなぎっぱなしでいいだろう(はなから上限まで使うつもりか)。
しかし、禁断のネット接続を許してしまうと、せっかくの「お外」が「おうち」と変わらなくなってしまう諸刃の剣。少なくともLDRを封印しないとまずいよな……。
ちなみに普段使ってるネットサービスで、64kbpsでつなげても快適なのはLDRだけだった。さすが、カリカリにチューンされてる感じ。つーかモバイル版より軽いし(モバイルLDRはmalaプロダクツではない)。見るからに情報量が多い1470.netや、Gmailはかなり重い。RTMはまぁまぁ。
2008-11-20(木)
■ Xacti用ウィンドジャマーを作ったら「まっくろくろすけ」になった
車載動画の風切音をなんとかするために、ウィンドジャマーを自作することにした。
ウィンドジャマーというのは、TVクルーとかが屋外撮影をするときに、マイクにつけてる毛むくじゃらのアレでのことである。棒状のマイクなら市販品もあるのだが、Xactiのマイクは液晶の裏側に埋め込んであるので、自作くらいしか手がない。もっとも、市販品はけっこう高価なので(といっても5000円くらい?)、あってもまずは自作するよな、ふつー。
ネットで探してみるとXactiの事例はないものの、ウィンドジャマーを自作した話はいくつかあって、ムートンなんかを買ってきて流用しているようだ。まぁ、専業メーカーがあるような世界なので、単に毛皮を使っただけの自作ジャマーが、それほど高い効果をもたらすとは考えにくい。「ないよりマシ」という程度の期待をこめて、ユザワヤでワゴンセールのフェイクファーを買ってきたのだった。
600円で、Xacti用ウィンドジャマーが100個くらい作れそうな広大な面積が手に入ったのはいいのだが、ムートン系よりは毛足が長く(長いほど効果があるらしい。ホンマかいな)、コシがない。ちょっと不安。
とりあえず液晶背面を覆う大きさにカットして、付け外ししやすいように両端にゴムを縫いつけた……んだけど、隙間ができてしまってダメな気がする。しょうがない、気が進まないけど、両面テープで貼り付けてしまおう。効果があることがわかってから、取り付け方法を考えよう。
というわけで、現在のウチのXactiの雄姿はこんな感じ。毛が生えたデジカメって……不気味だな。いや、見方によってはカワイイかも。トトロの「まっくろくろすけ」みたいで。
でも、こんなのもう持ち歩けねぇだろ。車載専用だ、こりゃ。
2010-11-20(土)
■ FC東京 1-2 川崎@味の素スタジアム
多摩川クラシコ、2戦目。味スタでこのカードのときは天気がいい記憶しかないな。気持ちのいい秋晴れだった。
1戦目は勝ったので、こっちも取りたいところ。というかとうとう天皇杯も負けてしまって今年のタイトルもなし! ということになったので、残るイベントといえばリーグ3位に入って来年のACL出場権を獲得することしかない。なので気合を入れてのぞみたいところなのにケンゴがイエロー累積で出場できず。おまけに勇介もいないし、矢島が骨折という情報もありどうなることかと思ったら矢島はスタメンに入ってるし。どういうことなの。
序盤からDFがやたらと後ろのほうでボールを回すばかりでぜんぜん前に出て行けず、ケンゴがいないと攻撃のオプションがものすごく減るんだなぁ、と実感。試合内容的には一進一退、互角の展開なんだけど、降格圏内のチームと互角の戦いをしてどーすんの、いやでも向こうは上り調子らしいしなぁ。
最終的には1-1からジュニーニョの決勝ゴールで勝利。なんかすごく久しぶりにアバンテを歌った気がする。いやー、やっぱこのカードに勝つのは気分がいいですな!
■ 不定期yomoyomo飲み
yomoyomoさんの上京に合わせてなんとなく集まる飲み会、第n回。渋谷の「Place」という怪しげなバーにて。今回の参加者はIT濃度やや低め、文壇濃度やや高め。というか最近こういう傾向だな。
眠いのでとりあえずメモのみ。
2013-11-20(水)
■ リハビリにtdiary-io-mongodbを書いている
最近なかなか個人的な開発に時間が割けずにいて、tDiaryへのコミットも数ヶ月くらいしてないありさま。その間に@hsbtがいろいろと見通しを良くする改造を入れてくれていて、ストレージを司るIOや、書式を変更するスタイルをgem化できるようにしてくれていた。
そんなわけで、ちゃんと開発に復帰するにあたって、リハビリがてらMongoDB版のIOであるtdiary-io-mongodbを空き時間にぽちぽち書いている。いちおうUnit Testは通るようになったので、実際にローカル環境のtDiaryに組み込んでみているけど、スムーズに動かすためにはもう少しチューニングが必要だなー。このあたりもリハビリしないと……。
2014-11-20(木)
■ My Kindleが(ついに)リニューアル
kindlizer-backendの設定方法を大幅に変更した*1ときにテストで流したドキュメントを消そうと思い、My Kindleにアクセスしたら見覚えのないページに飛ばされて焦ったのなんのって。少し前に一部のユーザに試験的に見えるようになっていた新しいUIがついにリリースされたらしい。待ってたぜ。
ウキウキしながら触ってみたら(こう見えてもMy Kindleのヘビーユーザである)、まぁもちろん改善されてるところも多数ある。といっても前のUIが壊滅的にダメだったのだから、誰が作りなおしても改善になるよな、というレベル。いまどきのSPAとしてはアマチュアレベルだよなぁ……。
で、もちろん不満点の方が多いわけですよ。まったくAmazonのUI設計・開発力のなさときたら……!!!
- 一度に削除できる文書が10個まで。しかも削除前後に無意味な確認ダイアログボックスが出る
- 「表示するアイテム」「並べ替え方法」のドロップダウンリストが頻繁に空になる。リロードしないと直らない……というかしばらく試してたらリロードしても直らなくなった(笑)
- メールで送ったドキュメントを(端末に送り込むだけでKPDには)保存しないという設定があったので(これこそが待ち望んでいた機能である)、喜び勇んで設定したけどきっちり保存されてる
他にもあるけどもう覚えてない。こんなにシンプルなアプリなのにテストしてないだろこれ。バグ報告してやりたいけどフィードバック方法もわからんし(そもそもAmazonはユーザの声を聴かない)、もうやだこの会社……他の選択肢が欲しいよ……。
*1 変更しましたのでREADMEを参照しつつconfig.yamlを書きなおして下さい。とかここに書いてどうする。
2016-11-20(日)
■ グスタフ、病院から戻ると甘えん坊になる
グスタフの歯茎の腫れがひどくなって、さすがにスケーリング(いわゆる歯石取り)をしないとまずそうな感じになってきたので、意を決して病院へ連れて行った。猫のスケーリングは全身麻酔の手術扱いなので気が進まないけどしょうがない。
もっとも今日はその話ではないのだ。
病院で暴れられても困るので、事前に処方してもらった鎮静剤を飲ませてから行ったら、待合室に入ったあたりで薬が効いてきたのかすごくおとなしくなって「ドラッグすげー」となったんだけど、帰宅しても少し効果が残っていたのか足元がややおぼつかない。
それで不安になったのか、今日はなんだかずーっとそばにいたがる。PCに向かっていれば膝に乗せろと言ってくるし(足がしっかりしないので自力では上がれない)、歩きまわると家じゅうぴったりついてくる。ベッドに横になればこれ幸いと這い上がってきて胸の上にどっかりと乗って満足そうである(というのが上の写真)。
下半身を人の股の間に入れて安定させ、前足は香箱組ではなくだらりとたらしてリラックス。枕が欲しいといって人の手を所望する。かわいいけど、かわいいんだけど、8kg近いので呼吸がつらいのがなー*1。麻酔の効きに影響するのでダイエットしろと言われたけど、どうなりますやら……。
*1 ノロケですよ?
◆ MoonWolf [cgi.rb改善計画は[ruby-talk:21315]ですね。 あと、個人的なプロジェクトで http://www..]
◆ MoonWolf [[ruby-list:32312]のことですよね。勘違いでした。]
◆ ただただし [ええ。さすがにruby-talkを読んでる余裕はないっす(笑)]
◆ しぎたに [CGI.pretty はブロック要素もインライン要素も同じように整形してしまうのが不満と言えば不満ですね。インライン..]