2005年 01月 11日

CSS 切り替えのユーザビリティ

CSS 切り替えスクリプトみたいなのを使って、ページ内にドロップダウンとかつけているサイトは結構あるけど、スタイルを変えるごとにそのドロップダウンがどっか別に場所に移動したりするのはなんかアレだなって思う……見失って元に戻すのまで若干混乱する。

バナーをキャッスのソース

バナナ: cache.rb

なんかやっぱソースが汚いけどとりあえず置いとく。

ちなみにうちは以下のような構成

  1. img/
    1. cache/
      1. .htaccess
      2. cache.rb
      3. http%3a%2f%2f...
      4. ...

.htaccess でアクセス制限&DirectoryIndex cache.rb 設定みたいな。アクセス制限よりスクリプトでパーミッション設定してもいい気もする。

2005年 01月 08日

三角形カラーピッカー

Painter 風のやつを JavaScript で実装した。っていっても重要な部分は GIMP のコードからまるパクり。別のもっと単純な計算方法でやってたら、どう考えても三角形の範囲から色がはみ出すのでパクり。某 IRC チャンネルで長いことチャンネル違いな話をしつつアレとかソレとか。

IE はやる気になったらやろう……

2005年 01月 07日

バナナ

サイトのバナーをキャッシュする CGI とか書いてみた - Note @ Temporary-Depot 見て、あーって思って、パクった。Perl がアレなので Ruby にして拡張子じゃなくて Content-type 見るようにして、みたいな。エラー処理が結構微妙。raise CacheImg.const_get(content).new とか無理やりすぎ。なんかサッパリ頭回らない……

Firefox のブックマークの Description に banner:http://example.com/banner とか書いて、まぁ適当に。

こういうちっちゃいのはモジュールで動いている PHP のほうが圧倒的に有利だろうけど、わけわからん糞言語弄るほど頭がノっていないです。

Graphics から Illustration とかいう名前のフォルダに分離して、特別扱いにしたほうがよさそうだなぁ……めんどいからまた今度。ぶっちゃけリンクページとか使わないしねー

注意:スクリプトの話と XSLT の変換の話が混ざってます。Synchronize Bookmarks でヤるアレです。はい。

2004年 12月 31日

フラグメントプレビュー

同一文書のフラグメントへのリンクにホバーした画像

同一文書のフラグメントへのリンクでプレビュー、とか……邪魔か便利かのぎりぎり狭間ぐらいなのでまだ適用はしてない。微妙。

適当に書いて動作したのは Opera, Gecko だけ……IE は何故か動かない。でも Opera は動的なレンダリングが苦手 (糞遅い) のでハズしてみてみた。

DOM の Range とか使ってみちゃう?とか思ってたけど IE では見事に実装されていないみたいなので普通に cloneNode() して CSSoverflow あたりで適当に表示制限。まぁ結局 IE で動いてないわけですが!

なんかの勘違いだったもよりで、IE でも正常に動作してた。キャッシュか何か読んでたカナ。

スタイルを書き換えて適用してみた。このセクションの画像とは違う。スモールスクリーンモード (謎)

Opera (7.6 preview) でもう一回試してみたら割りと普通になってたので適用してみる。

ただ、ネゴシエーションされたファイルの扱いが違うので Opera では一部プレビューされない。Opera は href="" というリンクのときネゴシエートされた後のファイル名を使うのでうまく処理できない。ぶっちゃけどうにもできないので仕様。

結果ツリーフラグメントの誤解

2004年12月の指向性メモ で言及されてるのを読んでもう一度仕様書を読み直してみる。

Variables introduce an additional data-type into the expression language. This additional data type is called result tree fragment. A variable may be bound to a result tree fragment instead of one of the four basic XPath data-types (string, number, boolean, node-set). A result tree fragment represents a fragment of the result tree. A result tree fragment is treated equivalently to a node-set that contains just a single root node. However, the operations permitted on a result tree fragment are a subset of those permitted on a node-set. An operation is permitted on a result tree fragment only if that operation would be permitted on a string (the operation on the string may involve first converting the string to a number or boolean). In particular, it is not permitted to use the /, //, and [] operators on result tree fragments. When a permitted operation is performed on a result tree fragment, it is performed exactly as it would be on the equivalent node-set.

強調した部分が重要らしい。最初の強調がややこしい。原文引用なのは訳文がまたさらにややこしいから (謎)

結果ツリーフラグメントに使える操作はノード集合の一部 (最初の強調) でその許される操作ってのは文字列にできるやつだけ (二つ目の強調)。あとはその後に書いてある通り、/ とかの演算子は使えない。

結局、結果ツリーフラグメントが格納されている $rtf がある場合において <xsl:apply-templates select="$rtf/child::node()"/>XSLT1.0 的にはエラーらしい。

そんなこんなで、XSLT1.0 でマトモな変換を書こうとするとかなり冗長なことをせざるを得ない状況が生まれるみたいです。めんどくさー

関係ないけど、どういう経緯でこういう制限がついたんだろう。

2004年 12月 30日

めんどくさ

XML の本文部分の名前空間あたりがうまいこと決まらないので思いつくまで放置。

なんか軽いのが書きたい。

2004年 12月 29日

日記スクリプト思考

XML は中間データとして使うようにしてみる。もちろんデータを XML で書いてもいいし、てきとーにデータベースから XML 生成するような実装をすればデータベースを元データとして使えるように。

例えば XMLDB みたいなクラス作っといて、get_latest_xml($num), get_month_xml($year, $month) みたいなメソッドを実装 (できればインターフェイスだけ定義したクラスを作っておきたいけど PHP4 じゃ無理くさい) しとく。それぞれのメソッドは決まった XML を返す。

スクリプトは設定に応じてどのクラスを使うかを決めてインスタンス化&メッセージを投げて XML を得る。あとはそいつを XSLT エンジンに丸投げして、結果を設定した Content-type で出力。

別に PHP でなくてもいいんだけど、Ruby は三郎拡張がローカルで動かないから……

カテゴリ? タグ?

新しくするスクリプトではカテゴリではなくてタグという形にしてみる。そもそもカテゴリ的な使い方 (ツリー構造) で使っていないのでそのまま要素を tag 要素にするだけ。

理由は、カテゴリのツリー構造を表現するのが面倒くさいし、実際のところカテゴリのツリー構造ってあんまり上手くいかなかったりするから。

2004年 12月 26日

もういくつ寝ると

25 日終わったからもとのスタイルに戻したよ。

クリスマスにまず損しない (金は減るけど) 投資 (謎) して、ドレぐらい返ってくるかなぁ、とか思ってみたけど損しない分しか返ってこなかった。残念。まぁ全然いいんだけどももももも。

もっと寒いスタイル作りたいなぁ。モニターに息吹きかけると白くなるぐらい寒いスタイルシート書きたいなぁ。スポットライトと観覧車ってとこかなぁ。遊園地って人が多くて好きじゃないけど、観覧車っつう言葉の響きは好きだ。母親の実家に行く途中古ぼけた遊園地があって、その中に観覧車があるんだけど、幼稚園生のときその観覧車が動いているかどうかを何故か毎回確かめてた。この前通りかかったとき遊園地自体が潰れてた。ついでにもう通りかかることもなさそうだ。

まーとにかく Helvetica ってフォントの名前だよね。