Hiro

1月 072012
 

統一されたページレイアウトのサイトをZend Frameworkで作るのにZend_Layoutをよく使う。最もシンプルなレイアウトスクリプトを書くとこんな感じになる。

<?php echo $this->doctype() ?>
<html>
<head>
<?php echo $this->headMeta() ?>
<?php echo $this->headTitle() ?>
<?php echo $this->headLink() ?>
<?php echo $this->headStyle() ?>
<?php echo $this->headScript() ?>
</head>
<body>
<?php echo $this->layout()->content ?>
</body>
</html>

Continue reading »

1月 062012
 

コマンドラインをviモードで編集するのエントリで「それどうやんの!?」と訊いてきた知人から、後日こんなメールをもらった。

viモードにしてその延長上でコマンドの結果に対してpromptで編集(?)みたいのってできるのですかね?

例えば

$ cat somefile.txt  # これにファイル名が幾つか入っている
src/file1.txt
src/file2.txt

でここでESCを押すとviモードになってjとかkとかでfile1.txtfile2.txtがチラチラと見える。
最終的にはiとか使って

$ vi src/file2.txt

とかがぱっとできたりするといいなーと思っている。

Continue reading »

1月 052012
 

シリコンバレーは雪とはまったく無縁な快晴が続いてるが、「気分だけでも」とブラウザの中で雪を降らせてみた。

キーワードはlet it snow。

Continue reading »

1月 052012
 

node.jsはソースコードに加えて、Windows版、Mac版のインストーラが用意されているが、なにせnode.jsは今のなお開発進行形で頻繁にバージョンアップがされており、その都度アンインストール/再インストールするのは非常に面倒だ。node.jsはRubyの影響を強く受けているのか、RVM(Ruby Version Manager)と同じようなNVM(Node Version Manager)というバージョン管理システムが用意されている。開発環境としてはNVMを利用してnode.jsを自動インストールする方が便利だ。

Continue reading »

1月 032012
 

Zend Frameworkを使って開発を進めていくと、利用するコンポーネントが増えていくにつれて、アプリケーションのINIファイル(一般的に使われているapplication.ini)の内容が膨らんでいく。特にZend Frameworkのバージョンアップに伴って、Zend_Applicationから利用できるリソースプラグインの種類が充実していくので、ソース中にハードコーディングしていたような環境依存パラメータは、どんどんINIファイルに移行するようになっていく。application.iniファイル内では、できるだけリソース毎にまとめて書くようにしているが、INIファイルをリソース毎に分けて管理できないものかと思っていた。

Continue reading »

1月 022012
 

標準タグクラウドのウィジェットをWP-Cumulusというプラグインで置き換えてみた。WP-CumulusのウィジェットはFlashで実装されており、残念ながら英語以外のタグは表示されない。プラグイン開発者のブログにHelp me test WP-Cumulus unicode supportというエントリがあり、そこでは英語以外のタグも表示されているデモがあるのだが、最新バージョンのプラグインをインストールしてもなぜか日本語のタグは表示されなかった。

Continue reading »

1月 022012
 

デジカメで撮った写真をブログなどにアップロードする場合に、高解像度がゆえにファイルサイズが無駄にデカくて、アップロードに時間がかかってしまったり、あるいはアップロード可能なファイルサイズの上限に達してしまって、写真のアップロードができなかったりすることがある。ちなみにWordPressの3.1系では、ファイルサイズの上限が2MBとかなり小さめ。

Continue reading »

12月 302011
 

妻が使っているラップトップがそろそろ寿命(最近マウスパッドが死んだ)なので、クリスマスにあやかってMacBookAir-11インチを買った。iOSデバイスはあったけど我が家ではMac初登場。所有者は妻ではあるが、アカウント作らせてもらって(Admin権限も)、とりあえず快適なMacライフをスタートできるように最低限必要そうな無料アプリをあれこれインストールしたので備忘録がてら。

Continue reading »

12月 302011
 

プログラミングを始めてから現在に至るまで開発してきたアプリケーションの実行環境が、Windows→UNIX(Solaris)→Linuxと移り変わってきたこともあり開発環境も直近10年はUNIX/Linux。エディタも10年以上vim(Solarisではvi)を使い続けているだけに、身体にvimのキー操作感が染み付いてしまっている。ソースの編集だけでなく、コマンドラインもviキーバインディングで編集しているわけだが、先日その様子を知人に見せたときに「それどうやんの!?」と訊かれたので、意外に知らない人が多いのではと。

Continue reading »

12月 282011
 

bashを使ってネットワークアドレスの設定をするためのスクリプトを書いてたときに、入力されたサブネットマスクが正しいかどうかを検証するコマンドがなかったので自前で作ることにした。まず、入力値がIPv4アドレスとして正しいかどうかの判定は、正規表現を使った例などもあるが、ipcalcコマンドを使った方が楽チン。

#!/bin/bash

read mask
if ! ipcalc -c $mask > /dev/null 2>&1; then
    echo "ERROR: Invalid format"
    exit 1
fi

Continue reading »