Categoryweb-tech

ふぉくす子フィギュアを購入した

犬神さんが展開しているプロジェクト Firefox 子が、“ふぉくす子”ミニフィギュア計画? つーわけで、ふぉくす子たんという名称で「ネットランナー 09月号」の付録としてフィギュア化されました。普段は「ネットランナー」なんて手に取っているところをひとに見られることがエロ本より恥ずかしいのですが、ふぉくす子たんが付録となれば話は全然別ですよ! 「同じものですがいいんですか?」などとレジで店員にいわれつつ、意味もなく 2 冊買ってきました!

ふぉくす子

パソコンの前にふぉくす子が飾られている様子は、なんか部屋の中でそこだけ異空間的な雰囲気が漂っているのですが、フィギュアはフィギュアで、これもなかなかいいものですな。これをきっかけに知名度が上がって、さらに Firefox 愛好家が増えると喜ばしいことだなぁと思います。

僕が Firefox を使い出したのは Phoenix と呼ばれていた頃から(Phoenix ver. 0.2 頃から)だから、もうすでに 3 年近くになります。できるだけシンプルに、しかし必要な機能については、たいていのことは多くの方々が開発に携わっている拡張機能で付け加えることができる Firefox は、それがないと僕にとって Web の価値が半減するんじゃないかってな、素敵ブラウザなのです。

ネットランナー 09月号 [雑誌]
ソフトバンク パブリッシング (2005/08/08)
売り上げランキング: 332

Alpha Geek Tracker

IRCJavaScript を極めて起業するブログのひとが「alpha geek のブックマークを集めた RSS があるといいね」とかゆってたのを、XML::RSS::Aggregate 使って作成した。超手抜き。

とりあえず見てるところをあぐりげってみました。MM/Memo も入れたいところがちょっとあるけど、RSS が他と違うので無理ぽ。具体的には、item の link 先がブックマークしたリソースではなくて、ブックマークした本人のページになってる。RSS リーダでみるのに、RSS の仕様や趣旨はおくとして、個人的には非常に使いづらい。

とおもいきや、?mode=rss となってるのを ?mode=xml にするといいと、コメントで作者の ishinao さん御本人に御教示いただきました。

つーか、del.icio.us なら inbox、はてなぶっくまなら「お気に入り」とかゆって、自分とこのサービスの他ユーザのブックマークを取り込める機能があるわけですが、同じような RSS なんだし、他サービスのブックマークも取り込めるようにしてくれたらいいのになー、とか思った。そゆ状況なので、インターサービスなブックマークアグリゲートサービスとか作るといけるかもしれませんね!(何が

mixi 日記 URL の仕様変更について

mixi 日記の個別エントリ URL に仕様の変更がなされたようです。具体的には、いままでの URL に owner_id=[ユーザ ID] というクエリが付加される感じ。

これまでは、日記の公開レベルを「友人まで公開」等に設定していた場合、アクセス解析に残ったリファラからその URL で示される日記で言及されていることを知ることはできても、公開レベル制限にひっかかる場合、内容を見ることができないのはもちろん、その日記を誰が書いているのかすらわかりませんでした。それが、今回の変更で日記著者のユーザ ID が付加されたことで、少なくとも誰の日記で言及されているのかということはわかるようになったようです。

僕個人としては、言及先日記著者を知ることができてもできなくても、そんなんどうでもいいやってな感じだけど、ある種の mixi 日記書き(内輪で悪口ばっかり書いてたりするひととかw)にとっては、内容を知られることはないとはいえ、気になったりすることもあるんじゃないかなぁと思います。

些細なことといえばいえるけど、mixi のような SNS は、公開レベルの設定が肝となるサービスなのであってみれば、わりと気を遣うべき問題であるはずで、とすればなんらかの判断のもとに行われた仕様変更なのかな、と思います。が、このエントリを書いてる時点ではアナウンスがないので、わかりません。「プライベート日記からのアクセスうぜええええ」みたいな苦情に対応するためかな、とか邪推したりしましたが(w

カススタon はてな@Fotolife

既存のテーマを使わず CSS を自分で作成してデザインされ、かつ HTML 的にまとも(「まとも」の意味はまぁ察してください)なはてなダイアリを adramine さんが集めたアンテナ「カススタon はてな」というものがありまして、そのリストを元にサムネイル画像を作成し、はてなキーワードにて「カススタon はてな(サムネイル版)」というリンク集を、かつて僕が作成しておりました。「カススタon はてな(サムネイル版)」はもうすでに役割を終えたかなぁという感じで、というか僕自身がいろいろ面倒になって放置しちゃったりしてアレなのですが、なんか思い立って、Fotolife でちょっと復活させてみました。

スクリーンショットkhtml2png という、khtml レンダリングエンジンを用いたソフトによって作成し、それらの画像を、先日「右クリック一発フォトライフ投稿作戦、失敗…」にて作りかけを公開した Fotolife AtomAPI 用のモジュールでもってアップロードするってな仕組み。今回、画像をアップロードするに際して、その作りかけだったモジュールをいちおう使えなくはないかな、という感じに整備した(というか作り直した)ので、ついでに CPAN にあげときました(はてな側でモジュール作成の計画があったらバッティングしてマズいなってんで確認をとったところ、OK とのことでした)。

カススタon はてな(サムネイル版)」は、往時に比すと消えてしまったダイアリがずいぶんと多くて寂しいものだなぁという感じ。まぁでも、はてなダイアリの初期にはそれなりに参考にされた方も多かったようなので、それなりに意味はあったかなぁ、と。今回の Fotolife 版は、歴史的資料の保存というかまぁそういったアレということで。

サムネイル付きソーシャルブックマークサービス BlogMarks で遊ぶ

kyo さんに教えていただいた、サムネイル付きソーシャルブックマークサービス BlogMarks が素敵風味。このサービスは、普通の SBM に加えて、クリップ先のサムネイル画像も取得してくれるというもので、サムネイル付きの SBM 自体はまぁすでにあるわけですが、似たようなサービスがたくさんある昨今、単にブックマークだとかサムネイルだとかいわれてもつまらない。やっぱ、いじくりまわしたくなるような仕掛け、具体的にはオープンな API が必要なんですよ! 日本のサービスにはそこんところが欠けてるところが多くて、つまらないと思います。

とうわけで、さっそく BlogMarks の Atom API を叩いて遊ぼうと Perl でモジュールを書いて、とりあえず使いたい GET と POST ができたので、さてテストすっかー、という時点で行き詰まりました……。正しいユーザ名 + パスワードを送ってるのに、認証でハネられる……。なんでだ……というわけで、使用した XML::Atom の実装と、API ドキュメントの認証関連箇所とを見比べてみると、Web Services Security: Username Token Profile V1.0 [PDF 注意] で定義されている Nonce のエンコード方法が違う……。XML::Atom の方は Base64エンコードしていて、API ドキュメントの方では素で送るようになっています。そこで、仕様をのぞいてみました。

/wsse:UsernameToken/wsse:Nonce/@EncodingType
This optional attribute URI specifies the encoding type of the nonce (see the definition of <wsse:BinarySecurityToken> for valid values). If this attribute isn’t specified then the default of Base64 encoding is used.

Web Services Security: Username Token Profile V1.0 – Page: 9-10, Line: 182-185

というわけで、EncodeType が特に指定されていなければ、Base64エンコードするという風なニュアンスを感じます(でもこれって、SOAP での話ですよね……)。まぁよくわからないので、いちおうこんな記述もありますが、どうでしょうか……? 的なメールを送ってみました。

あるリソースの、はてな内での言及数を知ることができる API

Firefox 用の拡張 Hatenabar をインストールしてみたら、なにこれ? ってものが。

ツールバーに謎の数字が

これ、現在みているページの、はてなブックマークでのクリップ数と、はてなダイアリ内での言及数なのですが、ページを移動すると当然切り替わるのでどうやって取得してるのかなーっつって、Hatenabar のソースをのぞいてみた。たとえば「Firefox の拡張 greasemonkey あるいは Hatena Rolling ではてな閲覧を快適に」のブックマーク数とはてなダイアリ内での言及数を知りたければ、以下のようにして URL をわたしてやればいいみたい。

http://d.hatena.ne.jp/exist?mode=xml&url=http://antipop.zapto.org/mt/archives/001262.php

その結果、以下のような XML が返ってきます。

<?xml version="1.0"?>
<hatena:existxml>
<count name="diary">4</count>
<count name="antenna">0</count>
<count name="bookmark">28</count>
</hatena:existxml>

antenna のカウントが何を意味するのかはわからない(普通に考えるとはてなアンテナからのリソースの被捕捉数だと思われるのですが、どうも数が一致しないので不明)のですが、ブックマークとダイアリーについては、以下のページで詳細な情報を見ることができます。

これ、先日の「はてなブックマークはブックマーカー(何)以外にも便利」で書いたようなところ組み合わせて使えると、いろいろ便利だなぁ、ありがたいなぁと思ったりします。

はてなブックマークはブックマーカー(何)以外にも便利

リリースされたときにはすでに del.icio.us でクリップしまくっていた上に、キーワード自動抽出自体はそれはそれで便利かもしれんけど自分で tag 付けできないのはなー、なんつっていまにいたるも利用するにいたっていないはてなブックマーク。しかし、直接にユーザとして利用していなくても、閲覧者あるいは Blog 等の運営者的にも便利なサービスだったりします。

はてなブックマークには「Movable Type に「このエントリーを含むはてなブックマーク」ボタンを表示する : NDO::Weblog」にて解説されている通り、URI をわたすと、そのリソースをクリップしているブックマークの一覧が表示される機能があります。上記エントリでは Movable Type での利用法が解説されていますが、もちろん他の Blog でも簡単に利用できるでしょう。また他にも、たとえばドメイン等を指定して、クリップされているリソース一覧を、新着順・人気順に表示してくれる機能もあります。以下は、この Blog をおいてあるドメイン antipop.zapto.org 以下のクリップされているリソース一覧を、人気順にソートして表示しているページです。

このページでは RSS も提供されているので、RSS リーダに登録して自分のサイトのリソースで新たにクリップされたものチェックしたり、RSSJavaScript に変換してくれるサービス等を利用することにより、たとえば以下のような形で JavaScript により書き出して利用したりすることができます(JavaScript が有効であることが必要です)。「この Blog の人気エントリ一覧」とかゆってサイドバー等にはっつけたりするのにもいいでしょう。

RSS のタイトルが条件の指定に関わらす「はてなブックマーク エントリー一覧」に固定されているのはどうにかして欲しいなぁとは思うものの、便利です。この手のクリップ系サービスとしては後発のはてなですが、さすがにユーザ数が桁違いで有意なデータが得られることもあって、僕自身、この Blog のエントリやその他のリソースの中でどういうものが閲覧者の興味を惹いているのかを知るため、わりと頻繁にチェックしています。

そんなこんなでブックマーカー(何)以外にとってもいろいろと便利なはてなブックマークなのですが、先に書いた NDO::Weblog で利用法が紹介されている「このエントリーを含むはてなブックマーク」ではなぜか RSS が提供されていないのですよね。だからボタン画像にはてなブックマークの当該ページへのリンクを張るというぐらいのことしかできないわけですが、これ、RSS が提供されればもっと利用できる範囲が広がるのではないでしょうか。さらに、クリップしているブックマークのタイトル、コメント等を JavaScript でも提供するようなサービスがあれば(はてなが提供することが望ましいと思いますが)、簡易なコメント機能としても利用することができるようになり、より素晴らしいと思います。

drry さんが vimcolor プラグインを改造してくださった

コードを Vim のカラーシンタクスで色分けする MT プラグイン」というエントリで公開したプラグインは、激しく手抜きしたので Perl 決め打ちだったのですが、「vim 本来の豊富なカラーシンタクスを利用できるようにするべく、改造がなされています。素晴らしいですね!

antipop2.0 のけんたろさんが公開された vimcolor プラグインPerl しか書かないしなぁと思っていたので Perl 決め打ちで放置したのですが、ここにきて JavaScript おもれー! という流れになってきたので、さっそくありがたく使わせていただくことにしました。

これ、直接サーバ内の vim を起動するので、使える環境がかなり限られるような気がしますが、エントリにコードを直接はっつけることの多い MT な Blog の方には、色分けされて見やすくなるのでぜひとも採用していただきたいと思います。

『詳解 HTML & XHTML & CSS 辞典』の新版リリース

詳解 HTML & XHTML & CSS 辞典

秀和システムから出ている XHTML/HTML, CSS, JavaScript 関連本、いわゆる赤本・青本・緑本のうち、個人的にもっともお世話になった赤本『詳解 HTML & XHTML & CSS 辞典』の新版がリリースされました(赤本が白本に!)。CD-ROM がなくなったせいか、値段も 200 円ほど安くなっていい感じ。つーかね、CD-ROM なんていらないんですよ。読むのに邪魔だから、ほぼ確実にそっこー破り捨てます。こういうサンプル的なものは、必要なら理解した上で自分で書くし、ソフトとかならネットから持ってこればいいし。

それはともかくとして、HTML なんてわかってるしー、とかいってもスクリプト等でフォームを作ってて思わぬところでハマっちゃったり、あるいは「やっぱり「正しい HTML」をできれば指向したいものだよね」という要望を満たすためにも、本書は必携です! 僕はまだ購入してませんけど!

Ajax が切り開く Web アプリケーションの進化

新しいものに目がない誰もが、Google の各プロダクトや Flickr, A9.com 等が提示する新しい Web インタフェイスに触れ、殊更な興奮に満ちた書きぶりでエントリを起こすことはないまでも「これはなんかすごい! かっけー!」とその動向を密やかに探っていたのは、それらのアプローチが Ajax と名付けられた途端、それまで間歇的にしか口にされることのなかったその技術が、Ajax という名のものとしてみるみる間に人口に膾炙したことからも明らかです。

この Blog においても、Ajax というか、それ以前に Google によって喚起された JavaScript の新たな面白さに発奮させられ、ほんの些細な実験等を行ってきました。主に海外のリソースにあたり、その周辺技術を調べていた最中、ma.la と名乗る方による日本語のリソース群を発見するにいたります。

Google 等が垣間見せた Web インタフェイスの新たな姿、パラフレーズすれば Web アプリケーションのプレゼンテーション層は今後大きく変貌することになります。その中の一部のアプローチが先日 Ajax と名付けられ、広まりつつあるわけです。今後、たくさんのひとが具体的な実装、またフレームワークという形での統合を進めていくでしょう。しかし、しばらくの間は上にリンクした Blog, Wiki で ma.la 氏が(数年前から)提示してきた実装・アイディア・ヴィジョンを超えることはありません(断言)。ma.la 氏は、次回の Wiki ばなのプレゼンタとして、とんがった機能を持つ、Wikiの未来を見せるアプリ群について、そのとんがり部分について存分に見せることになるようです。なにがなんでも参加したいけど、無理です……。

先日、この Blog で行った antipop2.0 のタイトル全文インクリメンタル検索は、それはそれで全く面白くないわけではない、それなりに好意的な反応を得られたものでした。しかし、そんなものは ma.la 氏が数年前から実践していることの、劣化コピーに過ぎません。エントリのタイトル「Movable Type な Blog の全エントリを JavaScript with XMLHttpRequest でインクリメンタル検索する」が示すとおり、実際には、これは Ajax というようなものではありません(Asynchronous ではないので)。また、この程度の実装であれば、わざわざ対応ブラウザの限られる XMLHttpRequest を使うことなく、サーバ側で JavaScript の配列をコードとして書き出し、それをクライアント側にロードさせてやる方が、アクセス性という観点からは優れています。

しかし、それをなぜ JavaScript with XMLHttpRequest という形で実装したのか。それは、Ajax と呼ばれもするアプローチが示す可能性の一部である、検索やナヴィゲーションにおけるパラダイムの変化の兆しを自分でも実際にサンプルを作ってみることにより、実感するためです。その変化とはつまり、ナヴィゲーションの解釈や検索を実行する主体のサーバサイドからクライアントサイドへの移行ということです。具体的に考えてみましょう。

まずはナヴィゲーションについて。たとえば Google で検索を行う場合、一画面におさまり切らない検索結果は、ページ下部にて数字や「前へ / 次へ」といったナヴィゲーションにより、次以降が存在することを知らされます。そして、次ページへ移る際には、「次へ」あるいは数字によるリンクをクリックし、サーバがなにか処理しレスポンスを返すのを待ちます。これは、「Ajax: Web アプリケーション開発の新しいアプローチ」で述べられている、典型的な旧来型の Web アプリケーションの動作です。ここで、考え方を変えてみます。Ajax の発想によれば、「なぜそこで待たなければならないのか」ということになります。次ページ・前ぺージの結果などというものは、クライアントに先読みしてしまえばいいわけです。これまでサーバ側で行っていた処理を、いまや通信回線も処理能力も飛躍的に高まってきているクライアントへ委譲すること。先読みとはいっても、必要とするデータはたかが画像一枚程度のものです。

検索について。これはこの Blog で行ったタイトル全文インクリメンタル検索の例が示す通り、1,000 件あるいは数千件程度の小さなレコードの固まりを検索するのに、クライアントからのリクエストがあるたびにサーバサイドでいちいち処理をしてやる必要はないのです。そのとき、サーバはあらかじめ作成しておいたデータの固まりをぽんっとクライアントにわたしてやるだけでよい。検索を実行するのは、クライアント上で動く Ajax エンジンです。そして、サブミットされたデータを処理したり、インタフェイスを生成するコードが追加で必要になったり、新たにデータを取得したりするためになにかをサーバに任せる必要があったりした場合に、ユーザとアプリケーションとのやりとりを失速させることなく、エンジンは、通常は XML を用いて、非同期にリクエストを発行すればいいのです。

この、検索とナヴィゲーションにおけるパラダイムシフトは、しかしまだ一般化されているわけではありません。そもそも実装するにも、多大な困難が立ちふさがるであろうことは目に見えています。しかし、Google のインタフェイスがこのようになったとしたら……と考えてみると、触っていてとても気持ちのいい、使いやすいものになることが容易に予想しうるのではないかと思います。Web の限界について我々が知っていると思っていることを忘れ去ること。そして、もっと広く、豊かな可能性に思いを馳せること。ここで述べたのは(また、僕が理解し得ることは)ほんの触り程度のことですが、しかし、Web はこれから間違いなくもっと、ずっと楽しくなります。

© 2020 栗林健太郎

Theme by Anders NorénUp ↑