JavascriptをPNG画像として圧縮する

prototype.jsをバイナリ列とみて、8ビットのPNG形式で可逆圧縮したものだそうです。

これをFirefoxやOperaなどcanvasに対応したブラウザでcanvasに描画し、getImageData()で画像からデータを取り出し、eval()してJavascriptとして再実行させることで、この画像圧縮されたprototype.jsを実行しているそうで。

作者自身も、gzipによる圧縮のほうがいいのでこれを現実的なサービスに適用する意味はないと書いているのですが、画像にスクリプト(やその他も)を埋め込むことで何かするアイデアが派生してくるかもしれないですね。Ajaxianのコメントには、これでFlickrをスクリプトストレージにできるな、というのも出ていましたけど。

via Ajaxian

CSSアスキーアート

シンプソンズのホーマー・シンプソンを描いた、アスキーアートの変種、CSSアートです。

文字をCSSでサイズや色を変えて配置していくことで、画像を使わずに絵を描くというもの。

リンク先では、一文字ずつ描画する様子をアニメーションで見ることもできます。描いてるステップを見ると、すごく面倒なことをして絵を組み立てているのがわかります。

こちらは同じくCSSで描いたブッシュ米大統領

リンク先の絵の上でドラッグすると、絵の中に隠れているアスキー文字が反転して、たしかに文字だけで作られているのだなということが確認できます。

via Ajaxian

PHP6に望む機能リスト

What I’m looking forward to in PHP6から。

  1. 変数名を句読点だけで書けるように
  2. すべての出力を無効にする「セーフモード」 (こりゃ安全だ!)
  3. HDMI端子
  4. 言語コアにアスキーアート生成機能を内蔵(ライセンス条項に同意した人にね)
  5. コロン4つ(::::)の新オペレータ
  6. すべてのスーパーグローバルを唯一の配列$_FUCK0に集約
  7. よりエレガントさを追求する

ライセンスうんぬんの話はPDO2に関する議論の話から来てるんだろう。僕としてはPHP6ではバッテリーの持ちを長くして800gを切ってほしいかな。光学ドライブは無しでいいから。あと数々の心温まる改善提案に感謝して言語名をPHPからMatz6にするべきだね。