2007-01-27(土) [長年日記]
■ 1月31日〆切2題
セレーネ「月に願いを」キャンペーン
今夏に打ち上げ予定の日本の月探査機「セレーネ」に、「あなたの名前と願いごと」を載せてもらおう企画の〆切が1月13日。火星探査機の「のぞみ」や、小惑星探査機の「はやぶさ」でもやった企画だが、自分は残念ながらどっちも応募し損ねたので、今回は気合を入れて(?)応募した。
的川さんのコラムによると、応募数がぜんぜん目標に届いていないそうだ。なんでだろう? 火星やイトカワみたいに遠くない月だと思って、なめてるとか? 今生きてる人類のほとんどが、ほぼ間違いなく死ぬまで行くことができないほど遠いのにね。
RubyKaigi2007プレゼンテーション募集
6月開催予定、RubyKaigiの発表者募集も、1月31日まで。
去年は発表してくれと泣いて頼まれたが(うそ)、今年はこっちが泣いて頼みたいくらいだけどネタがない。まぁ、参加はもちろんするけど。何か面白いネタを持ってる人は、ぜひとも応募して、オジサンを喜ばしてくれよ〜。
■
虚数 (文学の冒険シリーズ)(スタニスワフ レム)
ムツカシイ本なので、読むのにたいへん時間がかかってしまいました。とほほ。
「架空の本の序文集」という触れ込みだが、別の単行本だった「GOLEM XIV」との合本(?)なので、すべてが序文ではない。そういう意味では、まがりなりにもすべてが架空の書評だった『完全なる真空』の方が面白みは大きかったかな。いや、もちろん本書も面白かったけれども。
前半の序文集は、「X線写真による写真集」とか「知性を獲得したバクテリアの話」とか、実物があったらマジで読んでみたい本がネタなんだが、序文とは言えずいぶんネタ割れしてくれるので、欲求不満になるわけでもない。冒頭の「序文集の序文」からしてかなりユーモアたっぷりなので、げらげら笑いながら読めること請け合いである(笑えるのは一部の人種に限るかもしれないけど)。もちろん、ただのユーモア小説(?)ではないのは当然のことで、「バクテリア本」の序文を書いているのは実は誰なんだろう……なんてことに思い至ると、背筋をヒヤッとしたものが流れたりして。
後半に収められているのは、「シンギュラリティに向かうことなく人類とのコミュニケーションを維持することにした超人工知能の講演録」なんだが、まぁとにかくこの人工知能が、高慢ちきで鼻持ちならない上に、やたらと話が長くて脱線ばかりする「嫌われるオヤジ」の代表みたいなヤツなので(と書くとこっちもユーモア系みたいだが、こちらはすごく硬派)、めちゃめちゃ面白いけど、読むのになかなか骨が折れる。たぶん、1割も理解できたかどうか怪しいので、こっちは老後に線引きながら読むことにしよう。
つーか、老後のためにレムの著作を集めておいた方がいいような気がしてきたな。マジで。
2007-01-26(金) [長年日記]
■ 町田駅の特殊性に絶望した!(2)
一昨日書いたPASMOネタだが、ちゃんとそのあとに小田急のお客様センターへ問い合わせをしてある。「町田駅乗り換えではPASMOとSuicaを統一できないのは本当か」と、「もし本当ならそれはなぜか」という質問を投げた。もちろん「なぜか」の方には「そういう決まりなので的な回答を求めているわけではない」と釘を刺した上で。
……というわけで、かれこれ24時間(あれ、48時間か?)、なんの音沙汰もないわけだが。そもそも、質問を受領したという自動メールすら来ない。あとでspamフォルダを覗いてみよう。
と思ったら、まさに入れ違いに返事が来た。お客様センターからのメールだけに馬鹿丁寧なので、引用せずにまとめると:
- 町田(横浜線)のほかに新宿駅(都営地下鉄線)や海老名駅(相模線)にも同様の問題がある
- 問題点は認識しているが、サービスインまでに解消できなかった
- サービスイン後も適用拡大に努力する
とまぁ、予想通りといえば予想通り。「事業なんだから計画があるはず。いつまでに解消するつもりか、スケジュールを聞かせてくれ」と返事しておく(←イジワル)。
問題はそのあとに、PASMOとSuicaを2枚持つ場合の「アドバイス」がご丁寧に書かれていたことだ。こないだのツッコミ欄みたいに、乗客の側があれこれ考えるのはかまわないが、事業者サイドがそういうことを言ったらあかんだろう。
逆の改札で間違ったカードを使って、払わなくてよかったはずの料金を払う羽目になるのは、乗客の方だ。ただでさえ、今後は間違って小田急改札にSuicaで触ってしまう危険が増えるというのに、事業者がさらにリスクを高める方法を客に勧めてどうする。この問題を真剣に考えてない証拠だよ。やれやれ。
追記(2007-01-29)
返事が来た。
一日も早くスムーズにお乗り換えいただけるよう、引き続き「PASMO協議会」で準備を進めてまいります。現在のところ、具体的な解消時期は決まっておりませんが、決定次第、速やかにお知らせしてまいりたいと考えております
だそうで。まぁ、そんなことだろうと思った。つまり、まったく予定が見えていないというわけで、おれのパスケースの中はもうしばらく小田急の時期定期、パスネットカード、JRのSuicaの3枚だて体制が続きそうだ。とほほ。
そう言えば、新横浜も特殊な駅だったせいで、Suicaの導入も最後まで待たされたんだよなぁ。
2007-01-24(水) [長年日記]
■ ISBN-13 ⇔ ISBN-10相互変換(3)
先日話題にした、Amazon ECSがISBN-13に対応したのを受けて、tDiaryのamazonプラグインを最新の2007-01-17版APIに対応させた。
IdTypeにイロイロと与えられるのはいいんだが、今のamazonプラグインにはそういうインタフェースがない。しょうがないので与えられたIDから数字以外の文字を除いたものが13桁あった場合には"ISBN"、それ以外は"ASIN"と判断。JPサービスの場合、他に"EAN"が指定できるが、無視して大丈夫だろうか。
おまけに、IdTypeを"ISBN"にした時にはSearchIndexを"Books"にするか"ForeignBooks"にするか選ばないといけないのだが、これも情報がないので"Books"固定に。ForeignBooksにリンクしたいときはどーすりゃいいんだ? これ以上amazonプラグインのインタフェースを複雑にするのは勘弁だしなぁ。
■ 町田駅の特殊性に絶望した!
そろそろPASMOのことでも勉強しておこうかな〜、と思ってイロイロ調べていた。JR東日本と相互利用できるようになるってことは、いま小田急で使っている磁気定期券をSuicaに(もしくはPASMOに)一本化でき、ほとんどの生活圏内で「タッチ&ゴー」できるようになるからだ。
が。
調べていくうちに、不穏な情報にぶちあたる。
町田駅というのは特殊な駅で、JR町田は旧原町田駅なので、小田急町田駅との乗り換えが「制度上」認められていません。(難しく言うと連絡運輸協定がない)
ええぇぇぇー!? 制度上ってナニヨ!! 客をバカにしてんのかい!
いやー、たぶん鉄な人たちには常識的な話だったんだろうけど、なんで磁気時代から定期が別々だったのか、やっと真相が判明したよ。なんてこった。
で、PASMOのサイトには、無情にもこう書いてある:
2枚以上の定期券をお持ちになる場合は、お手数でも磁気定期券をご利用ください。
2枚以上のICカードの同時使用はできません。
じゃあ、町田駅で小田急線⇔横浜線を使ってる何千人だか何万人だかの人たちは、未来永劫、全面ICカード化は望めないってこと? スゴイハナシデスネ……。
■ ドメイン名の長さでspam判定してみる
だいぶ前から「www.なんちゃらinsure.com」とか「www.ほにゃららlife.info」みたいな、妙に長い名前のreferer spamがよく来る。発信元はまちまちなので、botnet経由だろう。ネーミングも手を変え品を変えしてくるので、NGワードで締め出すのも、イタチごっこだ。
そこで、「ドメイン名が長かったらspam」というのは有効ではないかと思い、以下のようなスクリプトを書いてtDiaryのリンク元ファイルを検索させてみた。ピリオドで切り離したホスト名要素の中に、13文字以上のものがあればアウト、である:
require 'uri' while s = gets next unless /^\d+ / =~ s n, u = s.split begin URI::parse( u ).host.split( /\./ ).each do |d| if d.length > 12 then puts uri.host next end end rescue URI::InvalidURIError end end
どれどれ……
% ruby longdomain.rb 2007/*.tdr takagi-hiromitsu.jp sinseihikikomori.bblog.jp : :
ああもう……_| ̄|○
とはいえ、こういう「まとも」だけど長いドメインはたいていblogだから、トップページだけじゃなくpermalinkからのrefererが多く含まれている。トップページ(パスが「/」のURL)を選んで弾くようにすれば、十分役に立ちそう。
というわけで、以下のようにフィルタを書いて設置してみることにした(longdomain.rb)。
require 'uri' module TDiary module Filter class LongdomainFilter < Filter def referer_filter( referer ) begin uri = URI::parse( referer ) uri.host.split( /\./ ).each do |d| if d.length > 12 and uri.path == '/' then return false end end return true rescue URI::InvalidURIError return false end end end end end
追記(2007-01-27): バグってたのでちょっと修正。
◆ TrackBack [http://yamk.net/20070125.html#p03 yamk日記 町田駅の特殊性に絶望した! (ただ..]
◆ TrackBack [http://array.jugem.jp/?eid=420 Arrayの体外刺激反応 PASMOとSuica ちょ..]
◆ 通りすがり [「定期をなんとかして2枚持つソリューションは無し」ということなので不要の蛇足情報だとは思いますが、アイクレバー(ht..]
◆ ふ [通りすがりさんの方法では、たださんの言う「裏表間違えてタッチしたときに課金されちゃう」問題に対応できないですよね。]
◆ ただただし [その通り、あの手の商品は問題を何も解決してくれません。改札を通るたびにどっちを上にすればいいのか考えなきゃいけないな..]
◆ coke [片方の面に指で触ると分かる凸を付けて「凸の方がSuica」とか覚えてしまう…ダメか。]
◆ n [締切が延びたのかなぁ。2/28 > セレーネ]
◆ ただただし [おお、ホントだ。延びてるし。]