コードを見やすくするためにPHPのコーディングスタイルもPEAR標準に従って読みやすくしていきたい。

よく読んでみるとPEAR標準コーディング規約は結構細かく書いてある。viやemacsでの設定も書いてあるので便利だ。大まかにまとめるとこんな感じ。
  • インデントはスペース4個(タブは駄目)
  • 半角75-85 文字ごとに改行することを推奨。(必須ではない)
  • if, for, while, switch等の制御構造と括弧の間はスペース1個。
  • 制御構造の中括弧は条件と同じ行。(間はスペース1個)
  • 関数コールでの関数名と括弧の間にはスペース無し。
  • 代入のイコールの左右はスペースを入れる。(沢山入れて見栄えを揃えても良い)
  • 関数定義の中括弧は次の行の関数名と同じ位置。(one true braceと言うらしい)
  • デフォルト値付き引数は引数リストの終わりに置くこと。(なるべく右側ってこと)
  • Perl/Shell形式のコメントは使ってはいけない。
  • include~およびrequire~は命令であり関数ではないので括弧は付けない。
  • PHPショートタグは使ってはいけない。(<?のこと)
  • 文字エンコードは ISO-8859-1 を使用しなければならない。
  • 改行はLF。
  • PHP終了タグ(?>)の後は改行を一つ入れる。
  • 変数展開や特殊文字を含まない文字列はシングルクォートを使う。(via koyhogeさん)

大体こんな感じのコードになるようです。

&lt;?php
require_once 'Foo/Bar.php';

$foo = foo();

function connect(&$dsn, $persistent = false)
{
    if (is_array($dsn)) {
        $dsninfo = &$dsn;
    } else {
        $dsninfo = DB::parseDSN($dsn);
    }

    if (!$dsninfo || !$dsninfo['phptype']) {
        return $this-&gt;raiseError();
    }

    return true;
}
?&gt;

意外と「うわっ、勘弁してくれよ!」っていう感想の人が多いんじゃないでしょうか。おれもそうですが、頑張って自分の体を合わせて行きたい!(ドM)

PEAR :: Manual :: コードの提供

コードの提供にあたっての要求事項

コード自体およびパッケージの著者に対して、 いくつかの要求事項があります。

  1. 標準コーディング規約への合致

新しいパッケージの作成か、既存のパッケージへの付加かに係わらず、 PEAR にコードを提供する場合は、 標準コーディング規約 に合致している必要があります。 標準コーディング規約というものが良いものかどうかについては 多くの議論がありましたが、絶対に必要なものであるとの決定に達しました。 さらに議論する意義はありません。

スタイルシート読み忘れ・・・じゃなくて、ブログのデザインを変更しました。

コードの見やすさ最重視という狂ったコンセプトです。シンタックスカラーリングも絶対やりたいんですが、いい方法が見つからず探し中です。

ishin.png

刀削麺荘で飲み会。

Webのことを話す予定で集まったハズが、光栄(ランペルールと維新の嵐)の話で異常に盛り上がる。 おれらはゲーム世代でいま中3ぐらいのやつがネット世代か!?

tmpruby’s Wiki – Debian

apt-get update で

W: GPG error: ftp://ftp.nerim.net unstable Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907

Unofficial Debian Package を見てみると、ftp://ftp.nerim.net/debian-marillat/ に対しての処置が示されている。

Debian etchの場合apt-get updateで

W: GPG error: ftp://ftp.nerim.net unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 07DC563D1F41B907

とか出る状態への対処法。死ぬほど助かりました。

経緯:

p0t: コンポーネント化されたテンプレパーツ

Mojavi Smartyでコンポーネント化されたテンプレートはどうやって作るんだろうか・・・。

悩み。

p0t: Action呼び出しプラグイン

テンプレ中でActionChainでパーツを呼び出す。 なんで今までこれ気づかなかったんだろ。

解決。

本題:

Webアプリのコンポーネント化されたテンプレパーツが好きだ。

他にも好きな奴がいるらしい。JSR 168にPortletなんて仕様もあった。

JSR-000168 Portlet Specification

いやいやいや、こんなメンドイやつじゃないっつーの。ロジックとテンプレ(見た目)がひとまとまりになってればなんでもいいっつーの。

前述のmojavi_actionプラグインによって解決に見えたが、あれには2つ問題があります。

  1. エラーが拾えない
  2. 遷移が出来ない
1についてはこの間のEthna開発ミーティングでも話が出てました。(そういう仕組み入れてくれるらしい。あつい) Action → View → テンプレ という風にコンポーネントを呼び出す場所を後にもってくる程楽にはなるけどエラーが拾い辛い。

2は例えばログインのコンポーネントがあったとして、ログイン失敗したときに元の画面に遷移できない。いくつものコンポーネントが集まって一つの画面になってるのに遷移先はそのコンポーネントのみの画面に遷移しちゃうんです。

Paul Grahamの教え子(じゃない)はどうやってるのかなと思い、最近のUI的ヒットであるreddit.comを見てみました。

reddit_1.png

これのログイン枠も同じ問題を持ってるハズ!

reddit_2.PNG

?error=1だとinvalid loginで、

reddit_3.PNG

?error=2だとusername already takenかよ!!!

Life Hacks PRESS 記事 「自分のための情報整理」:Goodpic

技術評論社のムック、Life Hacks PRESS ””デジタル世代の「カイゼン」術”“に記事を書かせていただきました。百式 – 100SHIKI.COM / checkpad.jpでもお馴染みの田口さん監修。Getting Things Doneやマインドマップ、Google活用術などなど、日々の作業がスムーズになるカイゼン・アイデアが満載。

Lifehackで一冊ムックが出るとはすごいなー

羨望は無知 – なぜ「デザイン」という行為、「デザイナー」という職業は誤解されるのか

この記事でいう「ハイブリッド君」(デザイナーとエンジニアのハイブリッドみたいなやつ)のことを本当はデザイナーと呼ぶのではないか、ということだ。

この間、Ajaxを使ったサイトの工数見積もりでデザイナーの人が、

「これどっち(エンジニア or デザイナー)が見積もるの?」

って聞いてました。 今までは紙芝居だったからそういう分け方が成り立ってたんでしょうな。

Slashdot | Root Password Readable in Clear Text with Ubuntu

allows anyone to read the root password simply by opening an installer log file.

ちょwwwインストールログにrootの平文パスワードwww(via 2ch Ubuntuスレ)

SaikyoLine.jp: coLinuxインストール資料。

内部勉強会向けに寝る間をつぎ込んで作った資料ですが、想像以上に興味を持ってもらえなかったのでカッとなって大公開。

先週の水曜日に第1024回coLinuxインストール大会勉強会が行われました。

発端は「Linuxの勉強をする環境が無いので会社で用意してくれないか」というメールを発見したyoshukiさんが、「人に用意してもらわないと勉強できないのか!」と、カッとなったこと。「誰にでもLinux環境を用意できるように勉強会開催してくれるわ!」って厳しいのか優しいのかわかりません。

これでインスコできなかったとは言わせん!とばかりの丁寧な内容なのでcoLinux布教や社内で配布するのに向いてそうです。勉強会自体は一人も脱落せず、全員が持ち寄ったパソコンでcoLinux動きました。おれもちょうど0.6.2から0.6.3にしたかったとこなので入れ直しました。ほぼ全社員(300人ぐらい)に告知したのに参加者5~6人とは清清しい。内容は素晴らしいので全然気にせずやってきますよ!

気になりまくっていたUbuntu Linuxを試してみた。

Ubuntuは元々デスクトップでの手っ取り早い環境が整っているらしいが、Ubuntu-jaが日本語環境のために更に手っ取り早い奴を作ってくれていた。

coLinuxのイメージが配布されているので手軽に試すことができました。現状のDebianを残したままもう一個サービスに登録しておけるので切り替えも簡単ー。

ubuntu.png

公式サイトにも載ってるけど、NX Client for WindowsっていうXサーバ?でVNCやCygwinよりも更に簡単にcoLinux上のUbuntuに入ることができた。

フォントもIPAのモナーフォントがいきなり使えたり、Anthyで最初からIMEライクに日本語入力ができたりと、大雑把にいうとVine並みの手っ取り早さのDebianって感じでした。rootログインはできなくて最初からsudo前提になってたり、何かと好感が持てる作り。

自分にとっての焦点は、XでEmacs(XEmacsじゃなくて)が使えるかどうかにかかっていたんですが、(speedbarとかCUIだとせつない)

ubuntu@colinux:~$ emacs -q --no-site-file
Undefined color: "black"

起動しねぇぇ!(emacs -nwだと起動する) ココでは普通に動いてるみたいなんだけど・・・。

これが解決するまではPutty + Debianです。