2005年7月アーカイブ

トップページに、過去のエントリーからランダムに抽出したものを、Flickr しかり Hatena しかりのタグっぽく表示してみた。

エントリー一覧をインデックステンプレートで出力して、重み付けは手動というレトロな手法だけど、過去記事をそれなりに紹介できるかもしれない。

CGI で一定期間ごとに HTML をはく。それを php include しているのだけど javascript のほうがいいかな。

はてなブックマークを使ってみることにした。

溜まっているブックマークを紹介したいけど、ブログでは大げさだしなー、と思っていたところに、たまたま他の方のはてなブックマークを見た。

そしたら、一行コメントがついていた。

これだ、と思った。

まずは、XTMemo のランダム検索(-G10)で出てきたのを軽くピックアップして登録。

RSS と同じく、なんか気になるけど、よくわからないから使っていなかったモノ。「RSSはわかりにくい」なんて書いたけど、実はあれは誇張で、「調べればわかる」とは思っていた。しかし、その、いつでも解るだろう感が逆に利用を後回しにさせていた気がする。

http://b.hatena.ne.jp/towofu/

いくつかハマったのでアウトプット。

var
  s: TStringStream;
  wsse: string;
  nonce: string;
  created: string;
  passwordDigest: string;
const
  password = '123456789';
  user = 'username';
begin
  s := TStringStream.Create('');
  try
    {WSSE認証用の文字列を作る}
    //created
    created := DateTimeToIso8601(Now);
    //nonce
    nonce := HashSHA1(created + IntToHex(Random($FFFFFFFF), 8));
    //passwordDigest
    passwordDigest := HashSHA1(nonce + created + password);
    //wsse
    wsse := Format('X-WSSE: UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
                   [user, EncodeBase64(passwordDigest), EncodeBase64(nonce), created]);
    {リクエストする}
    HTTP.Request.ExtraHeaders.Add(wsse);
    HTTP.Get('http://b.hatena.ne.jp/atom', s);
    //Memo1.Lines.Text := s.DataString; //煮るなり焼くなり
  finally
    s.Free;
  end;
end;

この例では、HTTP は Indy。

ハマったのは、二点。

一つは、ハッシュを16進数表記にしてから使ってしまった。こんな感じ。3C748979...

実際には、Chr($3C) + Chr($74) + Chr(89) + Chr($79)... に相当する文字列を渡す。

二つ目は、ヘッダに記述する nonce を EncodeBase64 していなかった。(参考: http://d.hatena.ne.jp/molih/20050512/p1)

maps.google.com を見てみたら、地図とサテライトを重ねて表示できる「デュアル」モードが追加されていた。
http://maps.google.com/maps?q=new+york&ll=40.707970,-73.992233&spn=0.110764,0.184931&t=h&hl=ja

ちなみに 、co.jp では未サポート。けど、期待大。

RSS はとてもわかりにくい。

この感覚は、初めて「ウェブログ」なる「ホームページ」で、オレンジ背景に白抜きでXML と書かれたアイコンを見たときから続いている。

当時は本当に意味がわからず、重要かもしれないと思いながらも、そのアイコンを全力でスルーしていた。

今でこそ、RSS が単なるホームページの一部で、それが HTML ではなく、XML という形式で書かれている、ゆえに 「XML」アイコンなのだ、と理解したつもりになれる。

しかし、本当にこれでいいのだろうか。乱暴な書き方をすれば、「XML」 は単なる「拡張子」だ。拡張子が前面に出てくるのはおかしい。本来、"更新情報.xml" とか、"全文配信.xml" であるはずだ。

RSS なら "R*** Site Summary.xml" ということになる気もする。だが、諸説あるこの略語は、事実上「拡張子」として使われているのではないだろうか。いうなれば、"RSS.rss" だ。なんのファイルなのかサッパリわからない。

まだまだ黎明期だから、フォーマットを強調するのだろう。それはわかる。わかるけど、最低限こうしてほしいことがいくつかあるので挙げてみる。

  • RSS へのリンクにその内容を併記する。例えば、「更新情報::RSS」などとする。「RSS」「XML」等の単体使用は止める。 「フィード」も意味不明。
  • XML ファイルには必ずスタイルシートを指定する。サイトの一部であることがわかる。多分。
  • XML・RSSアイコンは、むしろ、スタイルシート適用後の RSS ページへ載せる。(今見ているこのページが RSS なのか?!)
  • RSS ページに RSS の簡単な説明を載せる。

○▲▲ 一般ユーザーにとって、意味不明な RSSアイコンはこういうことだ、というちょっと皮肉った例。フォントに Wingdings を使用。 

○▲▲::更新情報 「更新情報」と併記すれば、この変なシンボルとその意味が結びつく。少し前進。

そうそう、当サイトで使っているRSSアイコン。持ち帰ってご自由にお使いください。

英語版 XSL に使ったのをメモしておく。

XML:
<date>2005-04-03T00:00:00+09:00</date>
XSL:
<xsl:variable name="m" select="substring(date, 6, 2)" />
<xsl:variable name="month" select="substring('JanFebMarAprMayJunJulAugSepOctNovDec', $m*3-2, 3)" />

変な駄洒落で申し訳ない。

[を] よく飛ぶ紙飛行機(円筒翼)
http://nais.to/~yto/clog/2005-07-21-2.html

の最後のほうでリンクされている本、「よく飛ぶ紙飛行機〈Vol.1〉―切りぬく本」(記事から飛んで下さい)があまりにも懐かしかったものだから。

本体やら翼やらを切り抜いて、数枚重ねて接着して、図鑑の下敷きにして圧着・・・。重心さがして、翼つけて・・・。真似してオリジナル型紙を作るも、あまり飛ばなかったり・・・。ああ、懐かしい。

んで、この本では、盛んにセメダインCの使用が薦められていたことを思い出す。それだけ画期的なものだったのだろうか。

子供のころの思い出だけに、今でも「セメダインC最強」というイメージがある。

#円筒翼飛行機もセメダインCで作ってみようかな

閉じた状態で図1 のような窓がある。この窓は、ガラス二枚、アミ戸一枚から成る。

それでは、この窓の正しい開け放ち方は、以下の A?C のうちどれか?(複数回答可)

 

 

 

 

 

 

 

 

 

 

 

正解は、A と C である。理由は単純で、「B は虫が入りやすいからダメ。それ以外が正解」となる。

私はこれを常識だと思っていた。しかし、B の方法を常用し、なおかつ理由を言ってもピンときていない人が結構いたので解説してみる。

この問題は、窓の断面図を見るとすぐにわかる。

 

B はスキマがあいてしまっている。ここから虫が入ってくるのである。もちろん、「虫上等」という人には関係のない話だ。

そんなに複雑なのかと思って調べてみた。

世界の言語の数体系」 (思索の遊び場) が面白い。

私は世界のいろいろな言語でどのように数を数えるのかを集めています。私が個人的に複雑だと思う順番で並べてあります。

フランス語は 10 進法と 20 進法が混在しています。

言うほど複雑じゃあないよ・・・な。ということでフランスの方々は訴訟なんていわずに、笑い飛ばしてほしい。

それに 80 を 20 に分ける、という考え方はわからなくもない。フランス語の文化的な背景は知らないけど、個人的には数字を見て思い浮かべてしまう数字というのがある。例えば、

  • 25 → 5
  • 30 → 10, 3
  • 40 → 20x2, 5x8
  • 80 → 20, 4, 少し遠い頭の片隅で 100-20
  • 100 → 50, 10, 20...
  • 256 → 16, 8 (^^;)

などなど。

まあ、基本的には割り切れる数字なのだけど、ミソはたぶん、30 なら 10 を思い浮かべるけど、80ではそうではないところ。

ちなみに、60 も 10 よりは 20 を思い起こさせるので、俺様的フランス語では 60 = trois-vingts ということになるのかな。

こういうのって自分が今まで数字で何をしてきたのかが潜在的に現れるわけで、やっぱり文化なのだと思う。

せっかく RSS で更新情報を提供したんだから、手書きで同じことをトップページに書くのはアホらしい。そこで、PHP の XSLT を使って、RSS の内容を整形して流し込んでみた。

更新情報の提供がすごく楽になったはず。

参考: http://php.morva.net/manual/ja/ref.xslt.php

PHP4向け (当サーバー・s5.xrea)
<?php
        $xslt = xslt_create();
        $result = xslt_process($xslt, 'rss.rdf', 'rss.xsl');
        if ($result) {
                echo $result;
        }
        xslt_free($xslt);
?>

PHP5向け

<?php
        $xml = new DomDocument;
        $xml->load('rss.rdf');
        $xsl = new DomDocument;
        $xsl->load('rss.xsl');
        $xslt = new XSLTProcessor;
        $xslt->importStyleSheet($xsl);
        echo $xslt->transformToXML($xml);
?>
XSLファイル
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:rss="http://purl.org/rss/1.0/">
<xsl:template match="/">
  <xsl:apply-templates select="rdf:RDF" />
</xsl:template>
<xsl:template match="rdf:RDF">
  <ul>
    <xsl:apply-templates select="rss:item" />
  </ul>
</xsl:template>
<xsl:template match="rss:item">
  <xsl:if test="position()&lt;=5">
  <xsl:variable name="yy" select="substring(dc:date, 3, 2)" />
  <xsl:variable name="m" select="number(substring(dc:date, 6, 2))" />
  <!--xsl:variable name="mm" select="substring(dc:date, 6, 2)" /-->
  <xsl:variable name="d" select="number(substring(dc:date, 9, 2))" />
  <!--xsl:variable name="dd" select="substring(dc:date, 9, 2)" /-->
  <li><a href="{rss:link}"><xsl:value-of select="rss:title" /></a> [<xsl:value-of select="concat($yy, '年', $m, '月', $d, '日')" />]</li>
  </xsl:if>
</xsl:template>
</xsl:stylesheet>

RSS でホームページの更新情報を提供したいけど、「手書きかったり?」&「アップロード面倒くせ?」という人のためのツールです。

「作りかけですが、多分、そこそこ、楽できますよ?」版。

画面はこんな感じ。(なんか、こんな外見のソフトばっか作ってる気がする)

コンテンツ配信ではなく、更新情報の提供が目的なので RSS 1.0 のみ対応してます。

「ファイル > 新規RSSプロジェクト」で作られるのが RSS ファイルひとつ分。ここにアイテムを追加していきます。

使い方はだいたい見た目どおりですが、ちょっとわかりにくさそうな点は、

  • すべてのプロジェクトは1ファイルへ保存される(保存を忘れずに)。
  • アイテムの削除は、一回目でチェックボックスがはずれ、二回目で完全に削除されます。チェックされていないアイテムは RSS に出力されません。

制限事項・仕様

  • UTF-8 のみ (変更する可能性:中)
  • RSS 1.0 のみ (変更する可能性:極低)

rsspost_0.1.1

鳥に見えない また、ハズレだった。

まずいケンタッキー・フライドチキン(以下KFC)を食べてしまうとへこむ。一日台無し気分だ。

でも待てよ、よくよく考えてみれば、KFC が当たりだったことって、いったいどれだけあるというのだろう。

私は、KFC はウマイはずだ、という幻想を追っているだけなのではないか。そして、たまに当たると安心して、次の機会にうっかり、「ときどき、無性に、食べたく」なって、へこむはめになる。

青い鳥などいないのだ。いつもの580円の定食のほうがよっぽど良いに決まってる。もう KFC という青い鳥を追うのはやめよう。

毎回毎回そう思いながら、やっぱりときどき食べてしまう自分がいやだ。

http://www.c-evo.org/ で配布されている、文明発展ゲーム、C-evo 0.14.1 の
日本語表示不具合修正バージョンです。

ルールなどの変更は一切ありません。

日本語の動作確認には http://www1.atwiki.jp/cevo/ 日本語化ファイルを
使わせていただきました。当バージョンを使うと、\ やスペースなどで文字化けを防ぐ必要がなくなります。

ライセンスはオリジナルと同じく、パブリックドメインに準じます。

Download (663.9 KB)

Ref: http://www.towofu.net/wolf/archives/2005/06/28_23_49.html

#あっちでやるのもさびしいのでこっちへ持ってきた。
#あっちもこっちも統合しようかな・・・。

このアーカイブについて

このページには、2005年7月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2005年6月です。

次のアーカイブは2005年8月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。