02/28

存在しないフレーバーが指定されたときリダイレクトする

うちのblosxomでは、個別エントリのflavourを"html"にしてますが、先日トラックバックを送った際にwritebackプラグインの送るURLのflavourが"htm"になっていた(ことに気付かなかった)お陰でトラックバックを辿ってきてくれた人にエラーページを見せるという情けないことをやってました。でもあやまんねー!(まさに外道)

というわけで、指定されたflavourが存在しないとき、Location: URLでflavourをhtmlにでもしたURLでも送ろうと思って、最初は「content_type.errorの中身に書いたらいんじゃん!これスマート!俺って天才!」ってもちろんcontent_type.flavourに書けるのはContent-Typeだけだったので頓挫。結局短いプラグインを書くことになりました。<META HTTP-EQUIV="refresh" ... >は嫌だし。

# Blosxom Plugin: redirectif_noflavour
# Author(s): motormean
# Version: 0 

package redirectif_noflavour;

# --- Configurable variables -----

my $valid_flavour = 'html';

# --------------------------------

sub start
{
    1;
}

sub skip
{
    my $path = $blosxom::path_info;
    do {
        return 0 if -e "$blosxom::datadir/$path/story.$blosxom::flavour";
    } while ($path =~ s/(\/*[^\/]*)$// and $1);

    $path = $blosxom::path_info;
    $path =~ s/\.[^\.]*$/.$valid_flavour/;
    print "Location: $blosxom::url/$path\n\n";
    return 1;
}

1;

blosxom.cgi標準のtemplateルーチンからパクってますが。有効なflavour一覧ってblosxomが渡してくれたりしないんだなーと。しかしこのプラグインいま考えたら既にありそうな。

23:49 | 121 writeback(s) | (13), (7) | ?B

02/26

Ajaxってなんだ?→Amazon Searchしてみる

最近?Ajax(参考:antipopの中の人が訳した文書)が流行してるとか。その関連でleafaのASINサーチ見て「ウオ!カッコいい!」と思ったのをきっかけに、さらにfoobar nowplaying+AWSの検索キャッシュを弄くる方法を考えていたところでJavascriptが必要になったところから、JavascriptでAmazon検索をテストしてみた。これはおもしれー!!Amazonサーチ スクリーンショット

JavascriptでXMLを取りにいけるなんてこと自体知らなかったしな。スクリプトから呼び出してるperlスクリプトではデータの整形などを一切せずに、Amazonのレスポンスをそのまま返してるせいで、作るのに四苦八苦した。XMLを扱うにあたって踏み台にすべきDOMはおろかJavascriptもよく分からんのでまだテスト仕様。これからいろいろなサイト巡って改良しよう。

実験はこのblogまたはトップページのサイドの"now playing"から、アーティスト名、アルバム名の隣の"»"をクリックしてください。Amazonで検索した結果を10件まで返します。とりあえずfirefoxとIEで動きました。もちろん要Javascript。

01:37 | 0 writeback(s) | (1), (37), (2) | ?B

02/23

del.icio.usのブックマークをサイトのコンテンツにつかってみた

このブログのサイドバーに読み込ませても面白いかもしれないけど。

いま人気のソーシャル・ブックマークサービスdel.icio.usのブックマークをせっかくだからうちのサイトに取り込もうと、del.icio.usのHTML feedsというのをつかってみた。<div>で囲まれたHTMLを返してくれるので、特にデータをいじくらないときはincludeするだけでいい。便利だ。

ついでに初めてPHPを使ってみたものでもある。(拡張子がcgiになってるのはXREAがモジュール版PHP云々でファイルが弄くれない為云々)ネット上のリソースがURLを指定すればfopen()で取得できるというのは面白いな。あとHTMLソース中に書き込んでしまえると言うのもPHPの大きな利点だと思ったけどそう思ってるそばから

PHP

  • HTMLにコードを混ぜても平気な初心者層と、Smartyとかを使う上級者層に二分される。

My computer is not a Synthesizer

なんだと。PHPの理念には沿ってないのかなぁ・・・。(しょんぼり)

13:50 | 0 writeback(s) | (4), (1) | ?B

_(アンダーバー)で始まるディレクトリ

blosxomではディレクトリ名を数字で始めることができない(年・月別表示に使う)ので、"2ちゃんねる"のディレクトリ名の先頭に、_2chという風に"_"を付けていた。ところがさっき見てみたら、記事一覧のときは表示されるのに個別表示やカテゴリ表示にすると消えてしまう。ディレクトリ移動するのもタイムスタンプ云々面倒だし、かといって別のカテゴリ名も考えられんのでblosxom.cgi本体に手を加えた。

といっても、107行目を

-while ($path_info[0] and $path_info[0] =~ /^[a-zA-Z].*$/ and $path_info[0] !~ /(.*)\.(.*)/) { $path_info .= '/' . shift @path_info; } 
+while ($path_info[0] and $path_info[0] =~ /^[a-zA-Z_].*$/ and $path_info[0] !~ /(.*)\.(.*)/) { $path_info .= '/' . shift @path_info; }

と変更しただけ。とりあえず動いたからいいや。

01:45 | 0 writeback(s) | (13) | ?B

02/21

"position absolute"でぐぐるとpdfばっかりな件について

前からなのかも。さっきGoogleで"position absolute"を検索したらpdfファイルばっかりヒットした。2ページ目なんか全部pdf(スクリーンショット)だしなんだこりゃ。

HTMLバージョンを読んでみるとどれもこれらのキーワードは、このページにむけて張られているリンクに含まれているらしい。リンクしているページを検索しても出てこないから何かと思って考えたら、このHTMLバージョン自身にposition:absoluteが大量に指定されてた。それで検索上位か。まさにひとりSEO。世話ないな・・・。

20:25 | 3 writeback(s) | (18) | ?B

「バレンタインデーのお返しに紅茶を・・・」

俺じゃない。

652 :名無しさん@( ・∀・)つ旦~:05/02/20 05:36:04 ID:???
先日、バレンタインデーに気になる女の子からチョコを貰いました。
お返しに、ホワイトデーに紅茶をプレゼントしようと思うのですが、何かいい紅茶はないでしょうか?
紅茶をプレゼントする理由は、彼女が紅茶好きらしいということを聞いたからなのです。
是非、オススメの紅茶を教えてください。

★物凄い勢いで紅茶通が答えるスレ 3ポット目★

これ以降スレが盛り上がってる。なんかいいなぁ。しかし紅茶男はないだろ。

17:12 | 0 writeback(s) | (2), (1) | ?B

02/20

Flashでギターコードを調べられるchordbook.com

Web上には数多くのギターコード集がありますが、ここほど充実したものもないでしょう。とか言ってみる。chordbook.com - guitar chordsでは、Flashでコード・フォームを見つつ、スピーカーから響きを聞くことができます。これだけでも便利だけど、オススメなのが"name chord"という機能(右上のGUITAR MENUから)。適当に指板上で抑えるところを指定してfind chordすれば、その抑え方が何と言うコードなのか調べられます。テキトーに配置したらare you sure?って言ってくるけど。

cookieでお気に入りのコードをキープできたりするけどその辺はどうでもいいや。

17:57 | 1 writeback(s) | (1), (18) | ?B

02/16

cronジョブが頻繁にkillされる

変愚蛮怒のスコアランキングのRSSをcronで作っていたときに、軽いスクリプトのはずなのにやたらkillされていた問題は、 スクリプトの実行時刻を毎時0分からキリの悪い他の時刻に変えたら全くなくなった。他のユーザーの行動も大事だね。みんな0分を狙いすぎなのかと。

13:55 | 0 writeback(s) | (1) | ?B

02/15

変愚蛮怒スコアランキングのRSS

cronが使えるようになったんで、変愚蛮怒のスコア(新着順)の最新15件のRSSを作成してみることにした。→変愚蛮怒 スコアランキング(newcome)

一時間ごとに作成してます。負荷なんてかかってない筈なのに、なぜか頻繁にkillされるんで実際は数時間おき更新くらいの気持ちで。使う人いたら・・・ご自由にどうぞ。

14:37 | 0 writeback(s) | (2), (1), (3) | ?B

02/13

表示位置固定とJavascriptとアスキーボタン

スタイルシートの話。サーバのアクセスログを解析した画面で、よく使うボタン(「リファラを表示する」とかそんなの)を画面の端っこに固定した方が便利なんでCSSでposition:fixedってしたんだけど、これってIEじゃできないんだなー。と思ってたらUnknownPlace.で対策が紹介されてた。→UnknownPlace. - IEでposition:fixedっぽいことをしてみる かっくいー。

これ知った後だと、位置の固定をJavascriptでやってるRubyのメーリングリストのボタンはやっぱ使いにくかったなぁ(例えばこんなの)。position:fixedにしてくれてたら見やすかったかも。初めて見たとき「こ、こんなに見難いMLが!」って思ったもん・・・。
あと、各種リンクがアスキーボタンになってたのも分かりにくかった原因かな。"<"、">"はともかく"^"(親記事)とか"_"(子記事)とか"~"(フレームを閉じる)は意味不明すぎる。titleで説明があったりヘルプもあったりしたけど、やっぱりこういうのは分かりやすくしたほうがいいんでないかなぁ。

人のふり見て我がふり直せってね。そのうちな~(だめだろ)。はっ、スタイルシートの話じゃなくなってる・・・。

13:29 | 2 writeback(s) | (1) | ?B

02/06

perl用syntaxをちょっと変更

Vim 日本語版を愛用してます。jjjkkkk(僕なりのジョーク)慣れればかなりの武器になること請け合い。って今更言うことでもないくらい。

ただ時々、:syntax onにするとperlソースの色のつき方が変なことがあって困っていたのでsyntaxファイル($VIM/syntax/perl.vim)を弄くってみた。まぁ単に、m//とかqq//の区切り文字に"!"を使った時だけなんだけど。

diff perl.vim.bak perl.vim
138c138
< syn match  perlVarPlain                "$[\\\"\[\]'&`+*.,;=%~!?@$<>(-]"
---
> syn match  perlVarPlain                "$[\\\"\[\]'&`+*.,;=%~?@$<>(-]"
143c143
< syn match  perlVarNotInMatches         "$[|)]"
---
> syn match  perlVarNotInMatches         "$[|)!]"
235a236
> syn region perlMatch  matchgroup=perlMatchStartEnd start=+[m!]\!+ end=+\![cgimosx]*+ contains=@perlInterpMatch
303a305
> syn region perlQQ             matchgroup=perlStringStartEnd start=+\<q[qx]\!+ end=+\!+ contains=@perlInterpDQ

これでs!<.*?>!!だとかqq!...!でも綺麗に色分けできるっぽい。初めてだから何が起こるか分からんけど・・・。

03:20 | 0 writeback(s) | (5), (12) | ?B

02/04

CSSサンプルページ

Javascript鋭意勉強中。でもまださっぱり手探り状態。どこのドキュメント読んだらいいのかすら分からんなぁー。ぐぐってもしょうもないサンプルばっかり引っかかるし、ブラウザ間でびみょーに違うらしいし。それでもJavascript+DOMを踏み台にして頑張ってるところ。

とにかく、ひとつ作ってみた。今表示しているページに適用されているスタイルシートのサンプルページを表示するbookmarklet。firefoxでしか動作確認してないって言うかIEだと長すぎてだめだろって言うか。Opera?ヽ(゚∀゚)ノアッヒャッヒャ!

javascript:(function (){function a(root,elts){var ctxt='';var le=root;for(var i=0;i<elts.length;i++){ctxt+=elts[i]+' ';var e=null;var t=elts[i].split('.')[0].split('#')[0]||'DIV';var el=document.getElementsByTagName(t);for(var j=0;j<el.length;j++){if(el.item(j).ctxt==ctxt){e=el.item(j);break;}}if(!e){e=document.createElement(t);(elts[i].indexOf('.')!=-1&&(e.className=elts[i].split('.')[1]))||(elts[i].indexOf('#')!=-1&&(e.id=elts[i].split('#')[1]));e.innerHTML=ctxt;e.ctxt=ctxt;le.appendChild(e);}le=e;}}var sss=document.styleSheets;if(!sss)return;var body=document.getElementsByTagName('BODY').item(0);body.innerHTML= '';for(var i=0;i<sss.length;i++){var ss=sss.item(i);for(var j=0;j<ss.cssRules.length;j++){var rule=ss.cssRules.item(j);if(rule.type==1){var s=rule.selectorText.split(',');for(var k=0;k<s.length;k++)a(body,s[k].replace(/^ +| +$/g,'').split(' '));}}}})();

テスト。スタイルシート中で@importしてるとさっぱり聞かなかったり云々と、まだまだおかしいところ沢山だけど・・・。いや、さらに長くなっちゃうんですよ!

02/02

オーケンの記事が消えた!!

Movable Typeを使った「ダ・ヴィンチ」ウェブサイトのコンテンツ4ちゃんねる大槻ケンヂのエントリーをBloglinesで購読してます。今までブックオフで古本のエッセイしか読んでなかったから、人の書いたものをリアルタイムで読めるって面白い。ま、それよりもオーケン自らが人形とともに出演する「愛のブー劇場」の方が目当てだったりするけど。

この間も四つ目のエントリー「ビヨンド・ザ・ロック4」の通知が来たので読みに行くと、記事がない。404にはならねどコンテンツがない。なんかまずいことを書いたようにも思えないけど・・・。(「ニューイヤーロックフェスティバルの思い出」の話だった。)こりゃ間違って投稿したな。と思っておこう。

atomにエントリーがまるまる入っているおかげで全部読めた。「愛のブー劇場」をひとり先取りできて嬉しい。とか思う。
まだBloglinesでkeep newしてます。

01:42 | 4 writeback(s) | (18) | ?B

recent entries

tags

syndication

powered by