2001-07-06(金) 7305歩
■ スーパーホテル
昨夜泊まったスーパーホテル神戸店。噂にたがわずほんとーに何もなかった。調度と呼べるのはベッドとTVだけ。電話と冷蔵庫がないっつーのはたしかに潔いな。電話はケータイを使うし、冷蔵庫はうるさいだけだし、たしかに今のビジネスホテルから削るならこれらだろう。
代わりにと言ってはなんだが掃除が行き届いていて清潔だし、枕は安物じゃないし、寝るだけが目的のビジネスマンにはいいんじゃないの。あとはもうちょっと朝食をまともにしてくれれば……。
それにしても、向こうは朝晩に雨が降ったから涼しかっただけに、こっちの暑さはこたえるなー。
■ いろいろ
毎度ありぃ:-)
-Rオプションなんて知らなかった(^^; でも、いちおうみんな足りてるみたい。そもそもK2KでビルドしたRPMが、「libssl.so.0
がない」とかぬかす時点で何かおかしいんだよな。まぁ、時間見つけてじっくり調べてみますわ。
そういえばBINDの調子はよくなった模様。なんだったのかなぁ。
2004-07-06(火)
■ tDiary TrackBack Script for Sleipnir
こないだ紹介したSleipnir用のTrackBackスクリプト、相手のページのURLを挿入してくれるとTrackBack的には完璧なんだが……と書いたら、hsbtさんがクリップボードにコピーするという苦肉の策を出してくれた。
まぁこのあたりが限度かと思っていたら(JavaScriptには詳しくないので何ができるのかもよくわからない)、別のテクを紹介してもらった(?)。おぉ、ちゃんとリンクが挿入される!
というわけで、両者を合体すると、こんな感じになった。もっとスマートに書けるかも知れないけど、動いてるからいいや。
TrackBackしたいページでこのスクリプトを実行すると
- 更新ページが開き
- 本文冒頭にそのページへのリンクが挿入され
- TrackBack ping URLも設定済み
という状態ですぐに反応を書き始めることができる。なお、挿入されるリンクはWikiスタイルなので、別のスタイルの場合にはスクリプト末尾のコードをちょっといじる必要がある。プラグイン集に入れちまおうか。
// // tDiaryでTrackBack for Sleipnir // // 現在見ているページに対して実行すると、そのページにTrackBackを打つための // 情報が入った更新ページが開きます // // 【要カスタマイズ】update.rbへのURL // ここに日記更新用のURLを記述してください var td_update_url = "http://url.of.your.diary/update.rb"; // // 以下、スクリプト本体 // var pnir = new ActiveXObject( "Sleipnir.API" ); var id = pnir.GetDocumentID( pnir.ActiveIndex ); var document = pnir.GetDocumentObject( id ); if (document == null) { pnir.MessageBox("Document オブジェクトを作成できません"); } else { window = pnir.GetWindowObject( id ); var org_title = document.selection.createRange().text if ( org_title == "" ) { org_title = document.title; } var org_url = pnir.url window = null; var str = document.body.innerHTML; str.match( /trackback:ping=[\'\"](http.+)[\'\"]/i ); var ping_url = RegExp.$1; var td_id = pnir.NewWindow( td_update_url+'?plugin_tb_url='+escape(ping_url), true ); while( pnir.IsBusy( td_id ) == true ) { WScript.Sleep( 500 ); } //update.rbのドキュメントを取得 var td_doc = pnir.GetDocumentObject( td_id ); if( td_doc==null ){ pnir.MessageBox("td_doc オブジェクトを作成できません"); } else{ //思いっきり場所決めうちでupdate.rbのtextareaに //(Wikiスタイル)見出しを挿入する var f = td_doc.forms[0]; if( f!=null ){ var t = f.elements[6]; if( t!=null ){ t.value = ""; t.value += "! [["; t.value += org_title; t.value += "|"; t.value += org_url; t.value += "]]"; t.value += "\n"; t.focus(); } } } document = null; } pnir = null;
2005-07-06(水)
■ 後置型サイドバーのススメ(2)
先日、はてなから寄贈されたテーマのいくつかが前置型サイドバーを前提にしているかも、と書いたが、濡れ衣でした。ごめん。ぜんぶ後置型でちゃんと表示された(といっても確認したのは担当している半分だけだが)。
表示がおかしかった原因は、独自タグdiv.hatena-bodyの存在。これに完全に依存しているのがいくつかあり、無理やりs/div.hatena-body/body/してみたりしたものの、それでも改善しなかったものは泣く泣く削除。テーマ集入りはあきらめた。他にもまだ、うまく表示されないテーマがあるんだよなぁ、270シリーズとか(←たぶんこれも削除行き)。hatenaシリーズはさすがに素性が良くて、表示が乱れるものも、div.hatena-bodyをbodyに置換するだけでピタっと収まった。
それにしても、hatena-bodyの存在は悩ましい。はてなのヘッダを回避させるためには必須だが、他のツールにその構造を求めるのは酷というものだし。うまい逃げ手がないかなぁ。このままでは、はてなのテーマはtDiary互換とは言えなくなる。つーか、書き換えが必須になりつつある現状では、すでに互換とは言えない。
■ 川崎 0-0 FC東京@等々力
久しぶりのJ観戦。あいかわらず怪我人が多いけど、前節はアウェイで磐田に勝って、調子こいてますからねー。また勝ってもらわんと。
で、スコアレスドロー。ここ10試合勝ち星なしとなったFC東京だが、試合を見ていただけでは運がなかっただけ、というトコロ。いい試合運びだったと思う。パスコースを消すのは上手いし、逆に川崎の穴はきちんと突いてくる。これで勝てなかったら泣くしかねーよな……というくらい、川崎がダメ! 川崎サイドからすると、なんだかショボい試合を見せられてしまったよという感じ。DFが退場者まで出して体を張ったおかげで運良く失点を免れたってだけじゃんか。フッキも黒津も使えねーし。やっぱ、ひっかき回し役のジュニーニョがいないとあかんのか〜。
2006-07-06(木)
■ 久々にツッコミspamにやられた
だが、今のおれにはW-ZERO3がある! ……というわけで、出張先でOperaを使ってちまちま消してまわった。
こいつらは本文にURLを書くタイプじゃなくて、E-mail欄に連絡先を入れていくタイプなので、面倒だからメールアドレスの入ったツッコミは無条件にはじくことにしてしまった。
というわけで、ウチにツッコミするときは、E-mailのところには何も入力しないように願います。つまりE-mail欄は「spam専用」であります(笑)。
(写真と本文は関係ありません)
◆ TrackBack [http://sho.tdiary.net/20060708.html#p02 ただのにっき 久々にツッコミspam..]
2008-07-06(日)
■ ソフトウェア開発は目的じゃなくて手段なんだよなぁ
最近のtDiaryは、hsbtがいろいろ動いてくれるので、助かるわぁ。って、おれが動いてないわけだけど。
もっとも、「某ニコ厨の人がニコニコ動画を見ている内に」って、別にニコ動ばかり見てるわけじゃないもん! いや、見てないとは言わないけど……ていうかけっこう見てるけど。
先週から今週にかけて、とあるサイトの構築に手を貸しているので、それでちょっと忙しかったんだよね。海外向けの英語サイトを手がけた経験は多くはないので、アクセス解析の結果とかがけっこう楽しみなサイトだ(←職業病)。こっちが一息ついたら、tDiaryの溜まったバグをやっつけなくては。
そもそも、楽に日記を書くために(そして読者と交流を持つために)開発したのがtDiaryなわけで、日記が主で、tDiaryは従なんだよな。ソフトウェア開発そのものは目的じゃなくて、その上で表現したいものがあるから、ソフトウェアを開発する。
ので、表現の方に忙しくなると、どうしても開発の方は優先順位が下がってしまうのはしょうがない。もっとも今回のサイトはtDiaryで構築しているので、その過程で見つかったバグはそのつど直してフィードバックしているから、はたから見るとなんだかちゃんと開発しているように見えるという。不思議。
■ とかいいつつニコマス紹介とか
ニコニコミュニティは、なんだか楽しみ方がいまいち想像つかないので、3つほど参加しただけで放置状態。でも「掲示板がない」という苦情(?)はなんか変だよな。いいじゃん、動画の上でコメント応酬すれば(笑)。
さて、今日の話題はなんと言ってもリンPの"GAME"なわけだが、個人的には首を長くして待っていた、しゃどPの新作:
ニコマス界隈には、いわゆる「萌え絵」とはちょっと違う、独特の絵柄の絵師さんが多くて嬉しい。しゃどPはその筆頭だし、あと、かみたPやタカシPも大好き。もちろんアストロPも外せない。
2009-07-06(月)
■ Amazon API認証のPROXYを書いたよ(2)
amazon-auth-proxyの仕様
(2009-07-07:URL形式の仕様追加。レスポンスについて仕様追加。)
(2009-07-23:レスポンスとして302リダイレクトを強く推奨。)
(2009-07-29:Styleパラメタ対応について追記。)
先月公開したamazon-auth-proxyだが、実は満足に動いてなかった(笑)。というか、単純なPROXYになればいいと考えていたけど、ちょっと複雑な事情があったので、仕様をもう少し確定する必要があった。コードは引き続きGitHubから:
とりあえずこれで、手元のtDiaryは動いてる。
仕様的には、これくらい決めておけばいいかなー、と:
- 提供するURLは「http://(任意)/(locale)/」とする。(locale)はca、de、fr、jp、uk、usから任意のものを選択できるが、それぞれに対応するAmazon APIを呼び出すこと
- RESTタイプのAPIに対応し、認証抜きの呼び出しを認証付きに変更してする
- パラメタ内にあるAWSAccessKeyIdもしくはSubscriptionIdは、自身のアクセスキーに変更*1
- Timestampはパラメタにあっても無視し、現在時刻で付け直す
- AssociateTagが指定されていない場合は自身のものを付加してよい*2
- Styleパラメタが指定されている場合は、XSLT用のエンドポイント(xml-(locale).amznxslt.com/onca/xml)を使う
- レスポンスは以下のいずれかを選択可能
- 【強く推奨】認証signature付きのURLを302でリダイレクト(受け取ったクライアントはそのURLを使ってAmazon APIをcall)
- AmazonのAPIをcallして、その結果を丸々返す
こうやって仕様を決めておかないと、従来のアプリのエントリポイントだけをPROXYのものに置き換えれば余計な変更なしで動くという目標が達成できない。ということで、異なる実装をする人はこのへんに準拠して欲しい。今のところこの方向の実装になりそうなのはこのふたつ?:
- poppen版(on Google App Engine)
- furyu-tei版(on Google App Engine)
逆に、danさんの実装はシンプルでいいかも知れないけど既存のAPI利用者が嬉しくない。
amazon-auth-proxyクラスタに関するアイデア
ところで、open proxyにする場合に、毎秒1回制限とか、不正利用による利用停止の問題が指摘されているが、これは複数のPROXYを束ねて順番に使いまわすことでリスクを低減できると考えている。最初は提案されたDNSラウンドロビンで良いと考えていたけど、参加制約がありすぎるので没。
あとはreverse proxyを用意するか(背後で複数のproxyに振り分け)、302リダイレクトを使うかどっちかかなー。一長一短があるけど後者が楽か。もっとも、Rubyでは$SAFE=1のときにopen-uriが302リダイレクトを処理してくれないという(バグ|仕様)があるので前者じゃないと困るというのがある(笑)。
あと、reverse proxyにするとアクセス元を絞れるので、ダイレクトに不正利用されるのを防げるという利点もあるな。というわけで、誰かreverse proxyを提供してくれないかのぅ。
Web APIに対する私見
あと最後に、これだけは書いておきたい。
デジモノに埋もれる日々のProduct Advertising APIの秘密鍵とクライアント型ソフトに関する公式見解という記事にこんな記述があったけど:
これは本来あるべき姿に戻ったというか、javascriptなどから直接APIを 呼んでいたケースについてはこのように自前のサーバ(CGI等)をクッションとして クライアント直コール型からサーバ型に変換されるべきという意味で 非常にいい仕組みだと思います。
冗談じゃない。こんなクソみたいな仕掛けを考えなきゃいけないなんて、間違ってるとしか言いようがないだろ。
「Amazon APIが無尽蔵に使える共有DB」ではない、という点にはおおいに同意するが、それはあらゆるリソースについて言えることだ。今回の新しい制限によって、APIを嫌がってWebページのスクレイピングに戻る開発者だって出てくるだろう*3。そんな実装のせいでHTMLへのアクセスが1日数百万回になったら、AmazonはAPIと同じようにWebへのアクセスも認証制に移行するか? しないよね。
Web APIは、サーバだろうがクライアントだろうが、HTTPというプロトコルさえ喋れれば誰でもcallできることに意味があるのだ。WebブラウザさえあればどんなWebページも表示できるように、HTTPさえ喋れればどんなAPIにもアクセスできるべきだ*4。真にユビキタスな社会がすぐそこまで来ているこの時代に、Amazonの今回の仕様変更は考えうる最悪のやり方だよ。Amazon超カッコワルイ。
◆ ただただし [この流れはきっと、風柳さんがreverse proxyを提供してくれる感じなので(笑)、基本的に同意します。 ただ..]
◆ 風柳 [作ってみたので(笑) http://d.hatena.ne.jp/furyu-tei/20090709/124714..]
◆ 風柳 [今更ですが、お願いが。 (reverse proxyからコールされたときには)Amazon APIを直接呼ばずに30..]
◆ ただただし [反応できなくてすみません、できれば今日中に対応したいと思います(ちょっとRuby側の制約があるのでゴニョゴニョなんで..]
◆ 風柳 [Rubyの知識はない(昨日初めて短いコードを書いた超初心者)のであれですが、$SAFE=1だとopen-uriがSe..]
◆ ただただし [そんな感じです。untaintはいらないかも知れないけど。いずれにしてもtDiary側の話なので、proxyには関係..]
2011-07-06(水)
■ PlayStation Networkが復活したので「感謝とおわびのパッケージ」を入手した
例の個人情報流出問題を受けて閉鎖していたPSNが各国で次々と再開する一方、本家本元の日本ではお上のOKがなかなか出ずにとうとう最後になってしまっていたようだが、ようやく今日から再開。この国はセキュリティに格段にうるさい国というわけでもなかろうに、なんでこんなに遅くなったのか不思議だね。Twitterで「SONYが天下りを受け入れるという条件が提示されているのではないか」という冗談を見かけて笑ったが、案外冗談ではないのかも知れない。
まぁ、元々そんなにゲームをよくする人ではないので、PSNがないからといって何ら困ることはなかったのだが、無料で2本のゲームをくれるというから早速ダウンロードしてみたのだ。簡単そうで楽しそうなの……という基準で以下の2本にした:
で、合わせて1時間ほど遊んでみて、もう飽きちゃったわけだが(笑)。LocoRocoはルールはわかったけど3面でもう難しくて先に進めないし(ヌルくてすみません)、パタポンは何が面白いのかさっぱりわからないという。おれはもうダメだ……。
つーか、タダでもらったゲームってモチベーション上がらないから継続してやる気にならないのかもなぁ。自分の懐痛めていれば「元をとろう」って気になるもんな。
2013-07-06(土)
■ 川崎 4-2 鹿島@等々力陸上競技場 & 闘Aまんがまつり
サッカーを見に来たはずなのに、なぜおれは、こんなところでアニソンライブを聴いているのか……。
詳しくは公式のレポートを読んでもらうとして、いつものようにフロンターレ事務局がはっちゃけたイベントを企画した結果なのだった。ちょっとでも「川崎」にかすってたらなんでもやるな、フロンターレ。サポーターはだいぶ慣れっこだけど、今日はさすがにちょっと客層が違っていて、ちょっと異様な雰囲気。アイマスクラスタ的には、橋本みゆきの「微熱S.O.S!!」が聴けたのが収穫だろうか(XENOGLOSSIA見てないけど……)。あと米倉千尋はめっちゃ上手かった。
プレイベントがそんな感じのお祭りだったので、今日は普段スタジアムに来ない人たちも誘って7人で観戦。とつぜん梅雨明けしてしまったので日中は非常に暑かったが、夕方からわりと過ごしやすくなった上に、いい感じに点が入るので楽しんでもらえたもよう。鹿島はプレスがぜんぜん弱くて、いつもプレスを食らうと横にしかパスが出せなくなる川崎も、今日ばかりは前に前にとボールが出せていた。そうなれば得点できるのも必然か。最近わりと調子いいので、このまま連勝して欲しいもんだなー。
2014-07-06(日)
■ 枕を買いに行って「寝姿がきれい」と言われる
使っている枕がへたってきた──正確にはへたってきた枕の代わりに余っていたテンピュール枕を使っていたけどそろそろ暑くなってきた──ので、ロフテーで枕を買った。
ロフテーでは枕専門のコンサルタントが頚椎の並びとかを元に最適な枕の形や高さを選んでくれるのだけど(おかげでいい感じの枕が買えた)、その際、ベッドに寝ころがったおれをみて、コンサルタントさんが「お客様の寝ている姿勢がすごくいい」と言うのだ。それも何度も。立ち姿勢や座っている姿勢が良いとはけっこう言われるけど(たぶん長年のボーイスカウト活動のたまもの)、寝姿まできれいだとはなぁ。
でも、どんなにきれいでもそれを目撃するのは妻と猫だけですが。というか、普段はベッドの上の猫を避けるようにして寝ているので、かなりねじ曲がった姿勢をしているはずである。ざんねん。
2019-07-06(土)
■ Tama Ruby会議01へ参加して(ついでにOSS Gateの宣伝もして)きた
最近日記のビハインドが1週間前後になっていて記憶があやふや。やばい。とりあえずざっくりとだけ書いておく感じ。
ひさびさの地域Ruby会議へ。そもそもTama.rbというコミュニティの存在を知らなかったのだけど*1、Keynoteが@igaiga555だし、テーマが「Rubyistとしての成長」で参加者の年齢層がだいぶ若そうなので*2申し込んだんだけど、時すでに遅し。キャンセル待ちの山に埋もれてしまったのだった。がっくり……とか言ってたら前日になって繰り上がったので*3慌てて参加してきた(笑)。
さて、個々の講演については触れないが、どれも興味深いものばかりで面白かった。この手のRuby地域コミュニティ、最近では基本的に首都圏のWeb企業でRailsベースのサービス開発をしている人たちが主になるのだけど、話す側も聞く側もこの界隈に入って数年以内くらいで、あいかわらずとても若い業界だというのがわかる。みんな伸び盛りなので、こうして集まるととても活気があって良いですなぁ。RubyもRailsも死んでる場合じゃないよ。
実際、コードリーディングのトークをした@coe401_さんと懇親会で会話したのだけど、とても経験年数が少ないのにポイントポイントでの技術の押さえ方が効率よくて「はー、これが高速道路……」ってなった。おれの10年分くらいの経験値あるんじゃないの。
彼女はOSS Gateにもビギナーとして参加したことがあって、同じくビギナー参加だった@makicamelさんも交えて話をしていたら仲間たちが続々と集まってきて、なぜか若い女性に取り囲まれるという事態になってしまったのだが、ここでキョドったりしないのは年の功である。というか全員目がキラッキラしていて向上心に溢れているし、ほんと素晴らしい。
で、みんなOSS開発にはとても興味があるようなので、せっかくだからOSS Gateのサポーターになってくれるように頼んだのだが:
- 他のイベントとかぶっていることがある
- 自分の経験値ではビギナーにアドバイスできない(のではないか)
みたいな理由で尻込みしていることが判明した。前者は実は想定内で、とりわけ首都圏ではITエンジニアへの「誘惑」が多いのは仕方がない。とはいえ他のイベントに比しても劣ることのない「成長感」を謳えるようにプロモーションをかけなきゃいけないのは確かだ。そのへん、いずれ文書化しよう。
後者はまったくもってわれわれオーガナイザーの説明不足なので、なんとか払拭しなければいけない。OSS Gateのサポーターはむしろ経験が少なくてビギナーの気持ちを忘れていないくらいの人の方が適任なのだ。というわけでだいぶ強引に(笑)、次回はむりながら次々回へのサポーター参加登録をしてもらった。責任とっておれも行かないと。
◆ 鉄ヲタ [フロンサポに言わせると、今のチームは「ジュニーニョと愉快な仲間達」だそうです。 で「愉快な仲間達」は働かないのが定説..]
◆ ただただし [「仲間たち」は中盤より上の連中でしょう。DF/GKは別人格だと思うので、東京が得点できなかったのは彼らの働きによると..]