SafariのWeb Storageでプレースホルダを使う方法

「ASCII.jp:iPhoneがJavaScript+SQLiteでGPSレコーダーに! |古籏一浩のJavaScriptラボ」のサンプル06は、値をSQLのINSERT文に直に文字列結合しています。そうせずにプレースホルダを使うにはどう記述すればいいのか? 即座に思い出せなかったので、記憶補…

文字列・整数限定の cputch_printf

src c

文字列・整数限定の printf(3) のサブセット実装の4月1日版は、リンク先のエイプリルフール記事を見てからでっちあげたもので、隠しきれないやっつけ感が漂っています。それでも、せっかく書いたものなので、ソースコードの整理をしてみました。 追加した機…

32 ビット版 Squeak の GC

src

Squeak の VM はstop-the-world非インクリメンタルな 2 世代 mark-sweep-compact GC を採用しています。以下、32 ビット版の GC についてのメモ。この GC は、実行速度を若干犠牲にしてでも、メモリーの消費を抑えるように作られていました。(9日、メソッド …

Ampita-0.16

バグフィックス。ユニコードフラグが立ったテンプレートを渡したとき、コメント、CDATAセクション中にユニコードのコードページ 0 以外が含まれているときに、正規表現がうまく拾い上げていませんでした。 ポカミス防止のための挙動修正。コード・リファレン…

Ampita-0.15

モディファイアに文字列 '0' を渡したとき、空文字列 '' に変換されないようにしました。なお、この修正で default モディファイアは空文字列 '' と undef のときにパラメータの文字列を出力し、'0' は '0' のままスルーするようになりました。 ⇒ 漢字コメン…

HTML-Selector-XPath-0.02 の疑問個所

miyagawa さん作の HTML-Selector-XPath-0.02 は便利ですね。 (10月8日) 以下取消 以下の疑問点は、CSS3 のセレクタ・ドラフト案 (http://www.w3.org/TR/css3-selectors/#typenmsp)の xmlns の先取り実装でした。CSS2.1 で考えていたので、理解できなかった…

(バッドノウハウ) Perl 5.6 で use encoding を避ける

Perl でリソースを書きたいときのためのメモです。Perl 5.6 と 5.8 のそれぞれで扱いやすい文字列になります(5.6 ではバイト列、5.8 ではユニコードフラグが立った文字列)。子飼弾さんの Jcode の 5.6 と 5.8 でソースを切り替える方法を参考にしました。 5.…

Ampita-0.14 と Text-Hatena-PPT-0.10

テンプレート・プロセッサ Ampita と私家版 Text-Hatena-PPT の URI エスケープ方法を変更し、/&#(?:x[0-9A-F]+|\d+);/ エスケープしておくようにしました。これは意図せぬ Javascript の実行がおこなわれないようにする安全処置です。ただし、サニタイザを…

Jcodeの半欠けマルチバイト文字の扱い

星野君より ⇒ マルチバイトの落とし穴 − @IT 半端なマルチバイト文字への対策方法 赤坂さん 「PHPの場合ならmb_convert_encoding関数を使うと半端なマルチバイト文字は消えるみたいだよ。ほかの言語でもマルチバイトをちゃんと扱える関数を使ったらいけると…

Radiant 用 Texthatena フィルター暫定版

Radiant でもはてな記法使いたい!ということで暫定版を作ってみました。Text::Hatena クラスは jkondo 版のポートではなくて、私家 Perl 版から移植したものです。フィルターのスクリプトの中に Text::Hatena クラスも一緒に入っています。 https://tociyuk…

Ampita-0.13

テンプレート・プロセッサ Ampita の機能修正版です。string_format モディファイアに空文字列を渡したとき、フォーマットの内容にかかわらず空文字列を出力するように変更しました。これは、field => undefとして出力を抑制したいのに、モディファイアに st…

Ampita-0.12

テンプレート・プロセッサ Ampita のバグ修正版です。プレゼンテーション・オブジェクトの FOREACH メソッド呼び出しの第一パラメータに undef が渡っていたバグを修正しました。 ⇒ string_formatの仕様変更版 Ampita-0.13 ⇒ http://tociyuki.flop.jp/archiv…

Class::Inspector

Catalyst 5.7001 を見ていたら Class::Inspector が使われていました。Catalyst の 5.70_01 から使われるようになったようです。 パッケージ・ファイルを求めたり、パッケージで定義されたサブルーチン名やそのコード・リファレンスを求めることができるよう…

Y.js

Mozilla LXR の中に Javascript で記述した Y コンビネータを発見。 ⇒ mozilla/js/src/Y.js リンク先のコードは関数名を使っており Y コンビネータらしく見えないので、それっぽく書き直してみました。 (function(f){ return (function(p){ return f(functio…

Javascript の RND を Perlで書いてみました

⇒ amix.dk : RND - fast and simple JS template system Javascript で書いたシンプルなテンプレート RND を Perl で書いてみました。簡易モディファイアが使えるのに、とってもシンプルです。繰り返しや条件付きがいらないなら、これで十分な気がします。 #…

Ampita-0.11

Ampita::Node + Ampita::Node::PrepareMixin + Ampita::Node::FinalizeMixinのコードの再利用性が乏しかったので、利用方法が変わらないないようにテストをしつつ、クラス構造を見直してコードを大きく書き改めました。 ⇒ バグ修正版:Ampita-0.12 ⇒ https:/…

ruby (mingw32) で rails の server を動かす

Windows の MinGW でビルドした ruby で、RAILS 1.1.4 のサーバを動かそうとすると、エラーが何も出ずスクリプトが終了してしまい、--help も動きませんでした。ところが、次のように第一引数に webrick を指定すると動きます。しかも、Apache で public に…

Ampita-0.10

モディファイアのバグ修正版です。マニュアルもつけました。日本語ですけど。⇒ 修正版:Ampita-0.11 クラス構造を見直して再利用性をアップさせました。 ⇒ https://tociyuki.sakura.ne.jp/archive/Ampita-0.10.tar.gz ⇒ https://tociyuki.sakura.ne.jp/archi…

Ampita-0.09 フィックス版

Amrita と同様に XHTML/XML の要素を直接テンプレートのノードとして利用できる Perl 用のテンプレート・エンジンです。ようやく、当初、盛り込みたいと考えていた機能をすべて盛り込みましたので、コード・フィックス版とします。次回のアップデートでドキ…

Ampita-0.08

インデント崩れが残っていましたので、修正しました。 ⇒ Ampita-0.09 コード・フィックス版、修飾子機能を追加。 ⇒ https://tociyuki.sakura.ne.jp/archive/Ampita-0.08.pm ⇒ https://tociyuki.sakura.ne.jp/archive/Ampita-0.08.tar.gz ⇒ 前の版 Ampita-0.0…

Ampita-0.06 ベータ

Ruby の Amrita もどきテンプレートの Apmita の修正と機能強化をしました。 ⇒ Ampita-0.07 出力の見栄え改善版 ⇒ https://tociyuki.sakura.ne.jp/archive/Ampita-0.06.pm ⇒ https://tociyuki.sakura.ne.jp/archive/Ampita-0.06.tar.gz ⇒ 前の版 Ampita-0.04…

Ampita-0.07

テンプレートのインデントと改行が出力に伝わらず出力の可読性が落ちていたので、なるべく忠実に出力するように改善しました。この版からベータを取ることにします。 ⇒ Ampita-0.08 -outer のインデント崩れ改善版 ⇒ https://tociyuki.sakura.ne.jp/archive/…

Ampita-0.04 ベータ

Amrita インスパイアです。Amrita は、id:essa さんが作った Ruby のクールな HTML テンプレート・エンジンで、バリデータを通せる HTML をそのままテンプレートにしてしまえるすごいやつです。id 属性をもったエレメントを動的なテンプレート要素として扱え…

単純データのシリアライズ速度比較

最近の CPAN モジュールで Storable を当たり前のように使っているのをみかけるのですが、入れ子になっていないフラットなハッシュ程度の単純なデータをシリアライズするには重いのではないかとベンチマークをとってみました。ついでに、以前から比較してみ…

ワーカースレッドの停止 (良い回答)

久々の「増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編」の第 8 章 Worker Thread の問題 8-6 (ワーカースレッドの停止)の悪い回答を Two-Phase Termination で書き直してみました。 Thread の raise メソッドを使えば Java の interrupt…

ワーカースレッドの停止

久々の「増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編」を Ruby で読むシリーズです。第 8 章 Worker Thread の問題 8-6 (ワーカースレッドの停止)を書いてみました。 Java の Thread インターフェースに似た動作をさせるために NameThr…

diff_heckel.js αテスト中

ブラウザで差分処理をさせてみようと Heckel アルゴリズムで書いた Javascript のコードをαテストしています。 (2011年2月2日) バージョン 0.03へ。クラスにして、テストを追加しました。diff3 も追加。 (7月9日) バージョン 0.02へ。長いプロパティ名を使う…

Hatena-API-Auth-LiteXML-0.04

Hatena 認証 API の auth.xml を使った Lite 版を 0.04 にアップデートします。 今頃になって気が付いたのですが(遅い!)、本家 Hatena-API-Auth-0.04 とはパラメータの渡し方が異なっていましたので、統一しました。 ⇒ https://tociyuki.sakura.ne.jp/archi…

Hatena::API::Auth で JSON::Hatchet を使うには

まだ、JSON::Hatchet は CPAN にアップしていませんので naoya さんに入れて欲しいと頼むわけにもいきません。 Hatena::API::Auth で JSON::Hatchet を使いたいときは、Hatena/API/Auth.pm を次のように手作業で書き直します。 BEGIN { use Carp; # our $HAV…

JSON-Hatchet-0.03

シングルファイルの JSON のシリアライザ・デシリアライザ JSON::Hatchet を 0.002 から 0.03 にアップデートしました。今回からバージョン番号は他のモジュールに合わせて小数点以下 2 桁にすることにします。 ⇒ https://tociyuki.sakura.ne.jp/archive/JSO…