ぐりもんアップデート時は load 順に注意

まぁ別に LDRize に限ったことじゃないんだろうけど。JavaScript には require の仕組みがないことが原因、ということなのかな?

とにかく

  1. minibuffer
  2. AutoPagerize
  3. LDRize

の順番を守ること。どれかアップデートすると新しくなったものが最後に読み込まれるようになってしまうので、その都度修正が必要。

ちょっとメンドイけどしょうがないのかな。

colordiff で色とりどりな世界へ

実は今まで diff はすべてモノクロで見ていた。Emacs の vc-diff 以外では。どうにかならんかなぁと思ってはいたがこんなもんかなとも思って長いこと過ごしていた。

しかし

coderepos の commit 数ナンバー1の人が github を練習したメモ - TokuLog 改めB日記

を読んで git では設定次第で color 出力できることが分かった。だったら他のツールでもそういう方法は必ずあるはずだと思ってググったらいきなり

ColorDiff

が出てきた。そこら中でパッケージとして利用できるみたいなので使い始めるのは十分簡単。中身は Perl スクリプトで、diff の出力を解析してエスケープシーケンスで色づけしてくれる。

使い方は

diff [options] FILE1 FILE2 | colordiff

みたいなのでもいいし、

colordiff [options] FILE1 FILE2

でもいい。基本的に diff の代わりとして使えるように配慮されているようだ。手っ取り早くは

svn diff | colordiff

みたいにしても使える。調子に乗って

.subversion/config

 diff-cmd = colordiff

にしてみたけど、これは失敗。というのも Emacs の vc-diff がエスケープシーケンスをそのまま吐き出して意味不明になってしまうから。ということは

svn diff | colordiff
hg diff | colordiff
git diff

で color 出力できるって感じか。

また、普段ページャとして less を使っているんだけど、less は標準ではエスケープシーケンスによる色づけには対応していない。man を読むと

-R or --RAW-CONTROL-CHARS
       Like -r, but only ANSI "color" escape sequences  are  output  in
       "raw" form.  Unlike -r, the screen appearance is maintained cor-
       rectly  in  most  cases.   ANSI  "color"  escape  sequences  are
       sequences of the form:

ということは、-r か -R でエスケープシーケンスをそのまま terminal に解釈させられそう。

最終的には .zshrc で

export LESS=R
alias diff='colordiff -u'

しといた。簡単な色づけだけど、分かりやすさが段違いだ。こりゃ便利。

あと直接関係ないけど

alias ls='ls --color=auto'

alias ls='ls --color'

にした。(BSD では export CLICOLOR_FORCE=1 )これで ls の出力を less に渡しても色付きで見ることができる。

そうか geek だったのか

秋元@サイボウズラボ・プログラマー・ブログ: 格言2.0とギークの格言トップ10

より

1f u c4n r34d th1s u r34lly n33d t0 g37 l41d

読めちまったorz

違いは作業環境的な面だと思うんだな

企業システムにおけるPHP5の可能性 (Matzにっき)

思いつきだけだらだらっとメモ。

  • まつもとさんがまた危険な橋を渡ろうとしているように見える(w
  • きっと ishinao さんは大きな声で言わないだけでとてもよい回答を手に入れているはずだ。

なんか知らないリファラが増えててビビったのでお断り。自分の経験値は Perl : PHP : Ruby = 5 : 3 : 1 くらいでしかも利用局面が同じとは限らないので、それを加味して読むように。mixi ではどんな文脈で参照されているんだろう、どきどき。

  • PHP はオブジェクト指向を知らなくてもまともに使えることが前提で、Ruby の場合はオブジェクト指向を知らなくても使えなくはないが、リファレンスマニュアルとか読もうとしたときにオブジェクト指向が分かっているか、他の言語に汚染されていないまっさらな状態かのどちらかでないとつらい。1
  • PHP は Unicode、半角カナを含め文字コードの扱いに悩む必要がなく、透過的に内部エンコーディングに変換してくれてとても便利。しかもこれは php.ini などに設定してあれば、コーディングする人はその機能の詳細を知る必要すらない。
  • PHP はブラウザを裏切らない。CGI の場合、CGI としての最低限の機能を満たさないスクリプトのエラーは Apache のログを調べる必要がある。あるいはコマンドラインでごにょごにょ。しかし PHP はエラーがブラウザに出る。Unix 的な文化に親しみがない人間でも PHP はブラウザとエディタがあれば開発できる。これはレベルはともかく、PHP で Web アプリを開発する人の絶対数を相当に押し上げる効果があると思う。
  • PHP は permission に厳密になる必要がない。CGI ベースの場合は x が落ちると最悪。でも PHP の場合は気にする必要がない。2これは多人数で共同作業するときにかなり助かる。アプリケーションとして主張しない、「ちょっと高級な SSI」程度の頻繁に HTML ベースで更新する原始的なサイトにはとてもよくマッチする。
  • phpdoc が javadoc みたいで、同じノウハウが通用するのがよい。phpdoc を生成するツールの完成度も高い。(ただし動作はトロい。)
  • RDoc が標準添付されたとき、「おい、RD はどうした」と本気でめまいがした。
    • でも使ってみてとても便利だったので今はどうでもよくなっている。
  • PHP はマイナーバージョンアップに伴う挙動の変化が怖い。とても怖い。Ruby はその点結構安心。
    • だから PHP ではやたらと wrapper を書くのが普通とされている。(ほんとか?とも思うけど。)
  • PHP のコーディングはたるい。特に正規表現のからんだ文字列処理は Perl の流儀に慣れ親しんだものからすると気が遠くなるくらいにたるい。
  • てゆーか正面切って書かれてるのを見たことがないが、PHP では標準の ereg と mb_ereg と preg で細かく挙動が違うんだぞ。3面倒くさいじゃないか。しかも正規表現クラスとかないから普通の文字列扱いになってすごく面倒なんだよ!
  • PHP のハッシュはなぜか入れた順番通りに取り出せる。なんか気持ち悪い。
  • PHP はハナから HTML と混在するのが前提なのでテンプレートの意義とか考えずにとりあえずゴリゴリ書いてしまいがち。流行った頃の Perl 4 ベタ書き CGI スクリプトみたいなのが氾濫している気がする。チョー思い込み。
  • てゆーか PHP だけ書いてるのにいちいち <?php ?> を書かなきゃならなくてウザイ。
  • PHP は立ち上がりが速いので負荷の低いものを細かく繋いでいったときにかなり嬉しい。
  • Ruby は mod_ruby にすると速いんだけど、mod_ruby は require したスクリプト掴んじゃうので開発中の場合面倒くさくね?4 でも CGI だとなんかかったるいし、しかも CGI でも mod_ruby でも動くように〜とか考えるの面倒なんで、フレームワーク使いなさい。
  • たぶん PHP と Ruby の関係は Pythonのパラドックス における Java と Python の関係に似ている。だから PHP の案件を見た人が「なんでそれ Ruby にしないの?」と言うのが普通な時代は(少なくともしばらくは)こない。
  • PHP の良さはある一人のプログラマにとっての良さではなく、兵隊の集めやすさ、兵隊の仕立てやすさだと思う。
  • でもそれは PHP の戦略だったわけじゃなくて結果的にそうなっただけだと思う。(PHP っていうか Zend 以前、Zend 以後とか分けて考えないとダメなんじゃないかな。)

言い訳。TrackBack を送らないのはこのサーバではプラグインが動かないからです。TrackBack を受け付けていないのは、自分が送れなくて受け付ける一方になっちゃうのがいやだからデス。

  1. こういう切り口はすでにオブジェクト指向どっぷり、Ruby どっぷりな人には反論できないのでフェアじゃないかもしれない。ただ自分はそうだったんだもん。でも反対に Ruby や Perl を経なければ自分はオブジェクト指向はよく分からなかったと思う。 

  2. セキュリティ周りのことはとりあえず今は置いておく。 

  3. もっと言うと PHP3 との互換性のためにある mbereg とも違ったりする。本当は mbereg は mb_ereg への alias として機能するはずなのに、途中でおかしなことが起きたりするんだから困りもの。こういうネタはマニュアルひっくり返しても分からない。PHP3 の頃から動いているシステムはバージョン上げるのほんと大変ですよ。 

  4. これは mod_perl でも同じなんだけど、PHP の場合は掴むのは accelerator の仕事なので、mod_xxx で動かしながらの開発しやすさは実はちょっと違う。 

変わりチーズ2種

変わったチーズを見つけた。

唐辛子好きにして醤油星人の私が食べないわけにはいかない。

同じ日に食べたわけではないけど、軍配はわさび醤油に上がった。さけるチーズの方はピリっと辛い感じがする以外はただのさけるチーズで、全体になじんでないのが敗因。(分かりきった話ですが、こりゃ個人的な好みの話でずぜ。)

ま、どちらも無理に食べるものではないと思うけど。

凸版印刷が Mac OS X環境のデータ入稿に正式対応

古いネタですが。やっとか、と。プリンティングの業界には危機感てないのかなぁ。Windows にさえ対応しておけばそれでいいとか、そういうもんなんですかねぇ?

今週はデザインリニューアルと資料整理のみ

平穏ではあるが新たな発見はなし。

About

例によって個人のなんちゃらです