はてブのスターが表示されなくなった

ここ数日、はてなブックマークのコメント欄のスターが表示されなくなっていた。IEOperaGoogle Chromeだと表示できていたので環境に問題があると分析。アドオンを全部無効にしてみたり、3.1b2から3.0.6に戻したり。結論は以下のように。

Firefoxかつプロキシ使用時に限り、はてなスターのデータであるJSONが壊れている」

はてなスターのデータURLは

の2つがあり、前者のbookmark.jsonのデータが壊れている。小規模なブックマートコメント群では後者のsimple.jsonを取得しているが、ホットエントリした場合などは負荷分散か軽量化か分からないがbookmark.jsonにて取得するようだ。
正常なJSON

Ten.JSONP.callback({"entries":[{"stars": 〜

となるが、なぜかプロキシ経由だと

{"entries":[{"stars": 〜

となるようだ。このためコールバック関数が実行されない。エラーコンソールでは

エラー: invalid label
ソースファイル: http://s.hatena.ne.jp/entries.bookmark.json?
行: 1, 列: 1
ソースコード:
{"entries":[{"stars":[{"quote":"","name":

となっている。
ここで使用しているプロキシとはProxomitronのことであるが、全フィルタを無効にした状態である。また、上記JSONのダンプはWireshark上で行っており、アプリケーションレイヤでの影響は考えられない。

このように、サーバ側に何らかの問題があると考えているのだが・・・。

はてなブックマークのコメントをスター順にソート

http://d.hatena.ne.jp/kusigahama/20080522#1211476591
http://dev.chrisryu.com/2008/04/sort_by_hatena_star_bookmarklet.html
http://d.hatena.ne.jp/gomis/20070823#1187836227

ここらへんのを自分用に改造。

  • DOM操作が減ったのでたぶん早い(ノーコメノー☆をスルー)
  • ☆なしコメントもソート

090110

  • 短くした

pipes故障中

どうもFetch pageの相対リンクがおかしいっぽい。
http://discuss.pipes.yahoo.com/Message_Boards_for_Pipes/threadview?bn=pip-DeveloperHelp&tid=5201&mid=5202
http://discuss.pipes.yahoo.com/Message_Boards_for_Pipes/threadview?bn=pip-DeveloperHelp&tid=6435&mid=6435

解決策としては、nofollowになっていても構わずにhref部分にマッチする正規表現かますとhrefの中身はとれるようだ。どういう作りなんだか・・・。

で、久しぶりにpipesの開発部ログを見たらAppJetと連携して素のJavaScriptで色々書けるらしい。下手にpipes上で正規表現をこねくり回すよりも楽かもしれん。

※11/19 追記
治ったっぽい。
文字化けも対処した模様。

titleタグって実はいらないんじゃないのか

HTMLのHello, worldは大抵以下のようなソースになっている。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
 <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
 <title>Hello, World!</title>
</head>
<body>
 <p>Hello, World!</p>
</body>
</html>

http://ja.wikipedia.org/wiki/Hello_world%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E4%B8%80%E8%A6%A7#XHTML

XHTMLではtitle要素の設定は必須になっている。したがって、Hello, worldは2回記述する必要がある。互換性のためとはいえ、他のhead要素に含まれるタグと違ってtitle要素だけ属性による指定でないのはちょっと浮いている。格好良くない。

XHTML2.0では

<head>
    <title>My Life and Times</title>

<head>
    <meta property="title">My Life and Times</meta>

の省略形ということになっている。こちらの方が自然であろう。

また、

<a href="Jakob.html" title="Author biography">Jakob Nielsen</a>'s Alertbox for January 11, 1998

<meta about="#jakob" property="title">Author biography</meta>
<a href="Jakob.html" id="jakob">Jakob Nielsen</a>'s Alertbox for January 11, 1998

と同値ということにもなっている。

結論としては、最後に挙げた例のようなmicroformatsを用いて、body中にタイトルを設定するのがスマートなのではないかということだ。最後の例はリンク先についての記述だが、現在のサイトに関するメタ情報を付加するのは難しくない。

というかもう既にhAtomで実現されている。これに基づいてHTMLでHello, worldを書けば、

<html>
<body>
<span class="entry-title">Hello, world.</span>
</body>
</html>

となる。これでいいんじゃない?

AutoTitle初版リリース

http://userscripts.org/scripts/show/25800

GreasemonkeyスクリプトのAutoTitleをリリースしました。

以前からひっそりSleipnirで使っていたSeaHorseスクリプトを、Firefoxに乗り換えた記念にwedata対応版として移植・公開したものです。動作確認はfx3b5でしかやっていません。

日経やZAKZAKなどで一度に大量のタブを開くとどれがどれだか分からなくなるのを見やすくし、はてブ登録時に(bookmarkletに"&title='+escape(document.title)"があれば)統一的なタイトルを入力することができます。