2011-02-01から1ヶ月間の記事一覧

JavaScriptにおけるオブジェクトの定義

JavaScriptで一番簡単にオブジェクト指向プログラミングを行う方法 (id:perlcodesample) 私は特にJavaScriptに詳しいわけではなく、オライリーの『JavaScript』、通称サイ本を読んだ程度なのですが、私の知るかぎりJavaScriptでオブジェクト*1を定義する方法…

"Constant subroutine foo::bar redefined" を抑制する

普通のサブルーチンの再定義は "no warnings 'redefined'" "no warnings 'redefine'" で警告を抑制できるわけですが、定数サブルーチンは警告のでる条件がちょっと違います。具体的には、再定義警告は以下のいずれかの条件を満たすときです*1。 use warnings…

Tips on IEC (implicit encoding conversion)

Perlにおいて日本語のテキスト文字列とバイナリ文字列*1を結合すると激しく文字化けするのは誰もがつまづくトラップですが、これはPerlのデフォルトのIECが Latin-1 に基づいて行われるからです。UTF-8ではなくLatin-1なのは後方互換のために必要な決定なの…

livecoderを動かしてみるテスト

id:sugyanの作ったlivecoderがすごく面白そうなのでまずは手元で動かしてみた。 node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ 上記エントリにしたがっていくつかnode.js用のライブラリをインストールしたところ、特に…

Growl::Anyが新しくなりました

Growl::Any コンストラクタでregister()相当のことができるようになってます。 各バックエンドごとに別モジュールにして、AnyEventのように事前にロードすることで使うバックエンドを選べるようになりました。どのバックエンドも入っていない場合はGrowl::An…

Linux::Inotify2+Growl::Anyでファイルの変更を監視する

Linux::Inotify2ではなくFilesys::Notify::Simpleを使った方がポータブルですが、とりあえずは習作ということで。監視しているディレクトリで何かがあるとピコピコ通知されるので、ああ今PCが頑張っているのだなあという気持ちになれます。 #!perl -w use st…

Re: Chromeのスタートページで自分のはてブをインクリメンタル検索する拡張(ただしPerlで書いた)

http://d.hatena.ne.jp/Cside/20110214/p1 こんなに簡単にChrome拡張が作れるとは!と感動する一方で、Xslateの使い方がいまいちだったので直してみました。pull-reqだけでいいかとも思ったのですが、これらの修正はすべて何度か見たことのあるFAQ的なものな…

Perlの正規表現の限界を突破する

Perlerなら誰しも一度はお世話になったことのあるであろう、大崎氏のPerlメモというサイトがあります。 Perlメモ ここで紹介されているHTMLタグの正規表現は正規表現の叡智が詰め込まれたすばらしいものですが、Perlではこれである特定の文字列系に対してマ…

Xslate 1.0006 released!

リリースしました。 1.0001から1.0006の間には後方互換性を破壊する変更はなく、バグフィクスと小さな機能追加のみです。SEGVを起こすバグや非常に分かりにくいエラーメッセージを吐くバグも修正されているのでアップデートをお勧めします。また、1.0006から…

What does call_sv() return?

call_sv()の戻り値を正確に把握していないがために、Xslate で厄介なバグを引き起こしてしまった*1。具体的には、call_sv()でG_VOIDを指定すると常に1を返すと思い込んでいた。しかし、それは間違いだった。 検証: https://github.com/gfx/p5-XS-CallSV #!p…

mustache.js on JE

(追記あり) Perl製のJavaScript EngineにJEというモジュールがあります。このモジュール、そこそこよくできていて、ブラウザに依存しないようなJavaScriptライブラリならだいたい動くようです。そこで、JEでmustache.jsを動かしてみました。スクリプトは本来…

Xslate meets Scalar::Defer

Template-Toolkitだと関数呼び出しの引数がない場合、括弧を省略できます。しかし、Xslateではかならず括弧が必要であり、この点が非互換となっています。これは、テンプレート内のシンボルの型を意識したほうがテンプレートコードの読みやすいからだと考え…

Logic-less templateに関する覚書

(This entry is a summary of the conversation to @confound and @miyagawa and the paper of ESMVSTE)@confound氏に「Xslateでpush-style template syntaxをサポートしてはどうか」といわれたので、彼やmiyagawaさんからアドバイスをもらいつつ考えたこと…

Why Xslate is so Fast

(There is the Japanese version bellow)There are reasons why Xslate so fast, so this article explains them, which will be added to the Xslate document. Taking precompiling style Template engines which precompile templates are always faster …