2012-05-20

PDFの参考資料

PDFの一部の出力を自力でしたいと思いPDFの仕様を調べています。参考になりそうなURLをまとめてみました(追記するかも)。

2012-05-14

PHP: evalとPHPタグ

PHPのevalの項にはこういうことが書いてあるのです。

PHP 開始タグを含めてはいけません。つまり、 '<? echo "Hi!"; >' ではなく 'echo "Hi!";' を渡さなければならないということです。 適切に PHP タグを使えば、PHP モードからいったん抜けてもう一度 PHP モードに戻るということも可能です。 たとえば、このようになります。 'echo "PHP モード!"; ?>HTML モード!<? echo "ふたたび PHP モード!";'

PHPの終了タグはもともと省略できる(PHP ManualのPHPタグの項では 「ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめ」 とさえ言っている)ので、それを踏まえてみるとPHPのeval()ってコードの直前に単純にPHPの開始タグ付けてPHP再実行したような手抜き感(?)が見えなくもないのですが…なのでPHPタグで囲われた文字列をeval()で評価したい場合は eval('?>' . $code); でいけます。開始タグがついているかどうかわからない場合は eval(preg_replace('/\A\s*<\?php/', '', $code, 1)); でいいのかなと思います。どういうものが入っているかわからないところから引っ張ってきた文字列をeval()するのは避けたほうがいいですけど…

2012-05-11

Haml: Hamlでの属性のいくつかの書き方

Hamlは便利だけど属性を書くのがすこし面倒…と思っていたんですがHTML-style Attributesという書き方があるのを最近知りました。 HTMLの属性の書き方に近くて書くのがとても楽です。

他の書き方との比較のため、Hamlでの属性の書き方をいくつか並べてみました。

4番目の書き方も短いけどやっぱり1番目の書き方が一番短くてわかりやすいです。

2012-05-06

jQuery: 空白テキストノードの除去

リストをinlineで並べた時の余白 - CSS HappyLife であるような空白を除去するために一行でソース書いたりコメントで何とかすることができない状況に遭遇した(TumblrテーマでPostの繰り返しのとき改行が入ってしまう)のでjQueryで空白テキストノードを除去してみました。コードはstackoverflowのものと同じです(Node#nodeValueだとタイプ数が面倒なのでCharacterData#dataにした以外は)。

ただ実際やってみるとページ表示の際に除去前と後の動きが見えてしまうので結局ネガティブマージンで調整しました…。

2012-05-01

Fire.appのビルド

MOONGIFTで紹介されていたFire.appを試してみようとFire.appの公式サイトに行ってみたんですが、無料で使う場合は自分でビルドする必要があるそうでビルド方法が載っているページが見当たらなかったのでビルド方法を記録しておきます(Mac OS X Lion上。RVMはインストール済とします)。

試しに実行だけしてみる場合:

rvm install jruby
rvm use jruby
gem install rawr
git clone https://github.com/handlino/FireApp.git
cd FireApp
bin/startJar-osx.sh

パッケージとしてアプリケーションフォルダに入れる場合(bin/startJar-osx.shに代えて下記を実行):

bin/build-all.sh
cp -r packages/osx/Fire.app /Applications

build-all.sh中にlaunch4j: Launch of “windres” failed: the PowerPC architecture is no longer supported.と言われていてWindows用のexeは上手く生成できていないみたいです。「org.bluestemsoftware.open.maven.plugin」の「launch4j-plugin」をLion(OS X 10.7)で実行する方法 (Kanasansoft Web Lab.) が参考になりそうなので気が向いたら試してみます(よかったら試してみて下さい)。

追記(2012-05-11)

Rakefileを見落としていました…。Macでパッケージするならbin/startJar-osx.shの代わりに下記で大丈夫でした。

rake rawr:bundle:app
cp –r packages/osx/File.app /Applications