Home

日記
お気に入り新着リストを追加 (19:08)Edit

気に入った人のみの新着メモを表示する機能。

各ユーザーのmylistのヘッダ部分に「このユーザーをお気に入り新着リストに 追加する / 削除する」なんてリンクがあるんで、そこからユーザーをお気に入りに追加する。

自分のお気に入り新着リストを見たい場合は、自分のmylistページのヘッダ部にある「お気に入り新着リスト: URL / メディア / テレビ番組 / 位置情報」のところをクリック。

って感じで、標準で用意しましたよ>nazokingさん。もっとSNSっぽく料理することもできるけど、実用本位でこんなもんでいいや。

お気に入り新着リストを他のユーザーから見えるようにするか見えないようにするかちょっと迷ったけど、1470.net上では基本的にすべての情報を公開する方針なんで、全公開。

Published At2005-02-16 00:00Updated At2005-02-16 00:00

日記
ダブル定額は今月で解約 (13:48)Edit

最初のうちはいろいろ遊んでいたんだけど、もうあんまり使わなくなってきたんで、ダブル定額は解約することにした。高画質写真をメールで送り放題ってのは捨てがたいんだけど、思ったより撮影するのが面倒くさいし。

で、休眠中のAirH"カードを引っ張り出して、これを京ぽんとやらに機種変更することを検討中。こっちは、単体でもPCとつないでもどっちも定額なんだね。

Published At2005-02-17 00:00Updated At2005-02-17 00:00

日記
iTunesで聴いているアルバムをMMに登録する (15:03)Edit

ふと思いついたんで、「Hacking the Hack #92: iTunes COM API で今聞いている曲を Blog エントリに掲載: blog.bulknews.net」を応用して、iTunesで今聴いているアルバムをMMに登録するJavaScriptを作ってみた。

// Get Trackname from iTunes using COM
var iTunes = WScript.CreateObject("iTunes.Application");
var track  = iTunes.CurrentTrack;
// Create text
var strNowPlaying = track.Artist + " " + track.Album;
// Open blogmap media search
var objIE = WScript.CreateObject("InternetExplorer.Application");
objIE.Visible = true;
objIE.Navigate("http://1470.net/bm/searchmedia?mode=music-jp");
// Do Search
while (objIE.busy);
while (objIE.document.readyState != "complete");
objIE.document.forms[0].q.value = strNowPlaying;
objIE.document.forms[0].submit();
while (objIE.busy);
while (objIE.document.readyState != "complete");
// naviate to MM/Memo form
var detailUrl = objIE.document.links[5].href;
if (detailUrl.substring(0, 28) == "http://1470.net/bm/asininfo/") {
var mmUrl = "http://1470.net/mm/memo_form.html?asin=" + detailUrl.substring(28) + ";memo_kind=PL";
objIE.Navigate(mmUrl);
}
WScript.Quit();

これをitunes2mm.jsなんてファイル名で保存しておく(日本語を使うなら文字コードはEUC推奨)。iTunesで音楽を聴いているときに、このファイルを(IEで)開くと、blogmapのメディア検索を使ってCDを検索し、うまくCD情報見つかった場合はその商品をMMに登録するフォームを開く。まあお遊びネタだけど、ちょっと面白いよね。

Published At2005-02-17 00:00Updated At2005-02-17 00:00

日記
今見ているスレをp2で見るbookmarklet (15:29)Edit

って絶対すでにどこかにあるだろうなー。

javascript:document.location.href=
'http://url/to/read.php?nama_url='+
escape(document.location);

http://url/to/read.php」の部分は実際に使用するp2のread.phpのURLに書き換える。あと、改行も本当はなし。

Published At2005-02-17 00:00Updated At2005-02-17 00:00

日記
というわけで (18:22)Edit

飯に行くついでに計画的に勢い余ってAH-K3001Vを購入。というか機種変更。そういやAH-K3001VとAH-K3001VWS(最後の2文字ちょっと違うかも)というのが並んで置いてあって、値段が1000円くらい違っていたんで、「これは何が違うの?」と店員に聞いたら、単にWILLCOMロゴがついているかどうかの違いだった。ただ、WILLCOMロゴがついている新しい方には新色があったんで、どうせならそれを購入。一応ネットにつながるところまで確認したけど、あとは仕事が終わってから遊ぼう。それにしても写真はきちゃないなー。

Published At2005-02-17 00:00Updated At2005-02-17 00:00

日記
submitに認証コードを含ませるコメントSPAM対策 (16:18)Edit

さっきMMの方で思いついたけど、書ききれなかったコメントSPAM対策。

submitボタン自体に認証処理を付加してみる方法。単にhiddenで認証コードを渡してもいいけど、ボタン自体に認証コードを含ませておくと、「どのボタンを押すか」という人間が頭を使って選択する余地ができるんで、応用範囲が広がりそう。

時間制限も付けているけど、これはあまり意味がないかな?(フォーム自体をGETされたら、時間切れ前にPOSTされちゃうだろうし) でもまあ時間切れだった場合は再投稿フォームを新しいsubmitボタン付きで生成して、「フォームの有効期限切れです。もう一度投稿を行ってください」とかするだけだから、ユーザーの手間はそれほどかけないでしょう。

define('SEED', 'SOME_SEED_VALUE');  //適当な文字列
define('TERM_OF_VARIDITY', 60 * 10);  //10分間有効
header('content-type: text/html; charset=euc-jp');
main();
function main() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (check_submit()) {
echo 'SUCCESS';
} else {
echo 'NOT VALID';
}
}
echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
show_submit_button();
echo '<input type="submit" name="submit_'.time().'_'.md5(time()+1).'" value="こっちはだめ">';
echo '</form>';
}
function show_submit_button() {
$now = time();
$check = md5($now . SEED);
echo '<input type="submit" name="submit_'.$now.'_'.$check.'" value="投稿する">';
}
function check_submit() {
foreach (array_keys($_POST) as $key) {
if (preg_match('|^submit_([0-9]+)_([0-9a-f]+)$|', $key, $matches)) {
$time = $matches[1];
$check = $matches[2];
if ($time < time() - TERM_OF_VARIDITY) {continue;}
if (md5($time . SEED) == $check) {return TRUE;}
}
}
return FALSE;
}

一応実働サンプルも置いておこう。

全部のsubmitを投稿されちゃうといやだし

if (md5($time . SEED) != $check) {return FALSE;}

もした方がいいのかな。でもそうなると、チェックする順番も意味が出てきちゃうな。ってまあ思いつきネタだから厳密に考えなくてもいいか。

Published At2005-02-18 00:00Updated At2005-02-18 00:00

日記
AirH" Phoneからの位置情報メモ (00:37)Edit

AirH" Phone(動作確認済みなのは、AH-K3001Vのみ)からの位置情報メモの投稿機能を用意しました。

AirH" Phoneから1470.net 位置情報APIにアクセスすると、AirH" Phone用というリンクがあるので、それをクリックしてください。位置情報を取得してよいか聞かれ、はいを選ぶと位置情報を取得します。

取得結果ページには、MMへのメモ登録リンク、Yahoo! Mapの該当位置へのリンクが表示されるので、MMへのメモ登録を選択してください。TypeKey認証が行われたあと、登録フォームへと遷移します。

なおAH-K3001Vにおいては、位置情報精度対決! AH-K3001V v.s. AH-J3002V!によれば、AirH" Phone用をブックマークしておき、パケット通信が切断された状態から直接上記ブックマークを開くことで、精度の高い位置情報が取得できるそうです。ただし、試してみた限りでは200メートル程度の誤差は出るようですが。

ちなみにMM自体はまだ携帯端末対応を全然やっていないので、Operaが使えるAirH" Phoneといえどもあまり使い勝手は良くありません。そのうち徐々に携帯電話での使い勝手も向上させていきます。

Published At2005-02-19 00:00Updated At2005-02-19 00:00

日記
風邪をひいたくさい (02:10)Edit

今日の夜は天気予報通り雪が降っていて、昼間の好天と比べてちょっとびっくりしたわけだけど、雪で濡れたせいか家に着いたら猛烈に頭が痛くなってきた。風邪かな。それとも会社でもついに罹患者が出たインフルエンザの方か。

Published At2005-02-19 00:00Updated At2005-02-19 00:00

日記
URL検索を追加 (14:26)Edit

MMに登録されているURLを検索する機能を追加しました。

この日記に関するURLを検索したい場合は、

なんて感じで使います。現在表示しているページをこの機能を使って検索するbookmarkletは、

javascript:document.location.href=
'http://1470.net/mm/searchurl?url='+
escape(document.location.href);

なんて感じです。

Published At2005-02-19 00:00Updated At2005-02-19 00:00

日記
URLを利用した関連情報表示に対応しました (15:39)Edit

従来は、あるメモに関する情報を表示する際には、

という形でメモの内部IDを使った指定方法しかできませんでしたが、新しく、

という形での関連情報表示に対応しました。上記のような指定をした場合、そのURLについて最初に登録されたメモに関連する情報が表示されます。もしもそのURLに関するメモが存在しない場合は、そのURLに関するメモを登録するフォームが開きます。

この機能を使って、現在表示しているページのMMにおける関連情報を呼び出すbookmarkletは、

javascript:document.location.href=
'http://1470.net/mm/related?url='+
escape(document.location.href);

なんて感じになります。

Published At2005-02-19 00:00Updated At2005-02-19 00:00