PHPとJavascriptでFeedParser(のラッパー)を作ってて思った。

いくつかフォーマットがあるFeedを統一的に扱うものを作るってことでStrategyパターンぽいのが思い浮かんだ。

parser

こんな感じの。

Javaだったら大体こんな感じで書くと思う。 でもこれ、Javascriptで書いてるとすごいダサい感じがしてくる。そこでもっとシンプルな形に変えた。

Java or Javascriptだとこの辺は直観で切替えられるが、PHPだとstrictな感じで書いた方が良いのか、lightな感じで書いた方がいいのか悩む。(特にに5)

正直、大勢より1?2人ぐらいでプログラムを作りたいので後者の方が好きだ。 下記の様なもっとlightなPHPの書き方があってもいいんじゃないか。

  • E_ALL & ~E_NOTICE前提。
    (issetとか使わない。変数を宣言しない)
  • 名前空間を平気で汚す。
    (関数を一杯定義したり)
  • 設定やデータ構造はphpのArray
    (xmlやyamlやiniじゃなく)
  • 継承を多用(5ではなるべくprotected)
    (差分プログラムのためだけにでも使う)
  • 深く考えずeval, create_functionを使う
  • preg_*を多用
  • 引数に迷ったらすぐcall_user_func_array, func_get_argsを使う

途中から単に通常やってはいけないことリストになってきた…。

ソルダム、星野金属の不渡りの影響はなし

ソルダム株式会社は22日、生産委託先である星野金属工業の事実上の倒産による対応、影響および現状などについて説明した。

な、なんだってーーー!!!

社会貢献うたうIT経営者の偽善??過労自殺が語る業界の労働事情 ビジネス-最新ニュース:IT-PLUS

 このような現状を招いている原因の一つに、日本ではシステム開発のコスト計算にいまだに人月モデルを用いていることが挙げられます。システムを開発する際に、何人で何カ月かかるかを計算し、それに単価をかける仕組みです。この方法はもともと製造業で使われていた方法でしたが、そのままソフトウエア開発にも採用されたようです。

 肉体労働の場合は確かに時間単位でこなせる作業量は人によって大差が出にくいもので、人月でコスト計算をするのはわかります。しかし、小説や映画が決まった人数と決まった時間をかければ必ず良いものができるとは限らないのと同じように、知恵とアイディアの固まりのシステムは人数と時間で評価できるわけがありません。

いつもここで議論が終わってるのはまずい!

具体的には、IT業界でかなりの割合を占めると思われる「SI向け」の「人月じゃない見積りモデル」がプロジェクト管理・開発手法と一緒に紹介されれば変わると思う。

デザインとか広告とか他業界でなんでもいいけど、「人月じゃない値段の付け方」ってどういうのがあるんだろう?

正直、それが分からないまま(というか考えるのが面倒になって)SI会社を辞めちゃった気がする。 (Webサービス屋はその問題が無いから)

gterm

Terminalでアンチエイリアスが効いてるとコロンとセミコロンの違いが分かり辛い。 が、切り方が分からない…。

昨日知った事。

var Foo = [1,2,3,];

ケツの,がFirefoxだとOK。IEだとエラー。

'onCompl<strong>a</strong>te' : function(request) {

オンコンプレイト で小2時間はまる。

世の中に対して憎しみが芽生えた。

付録 A. PHP 4 用の PHPUnit

PHP 4 用の PHPUnit には、TextUI テストランナーがありません。 PHP 4 用の PHPUnit でテストを実行する際の一般的な方法は、 テストスイートを書いた後で、それを 例 A.2 のように手動で実行することです。

高木さんの涙が出る程ありがたい翻訳マニュアル。

ところで、

「PHP4用のPHPUnitにはTextUIテストランナーがありません。」

この事実、以前辿り着くのが結構大変だった覚えがあります。ありそうなんでドキュメントやソースをかなり漁っちゃうんですよね。 車輪の再開発の嫌い過ぎも瞬発力が無くなっちゃいますね。

bookmark_rss.png

ブックマークのRSSでエントリのrdf:aboutやlink要素ってブックマーク先のURIになってるけどこれっていいのかな?(del.icio.usもはてブも) ブックマークサービス上の1ページ(こういうページ)は1個のエントリとはみなさないってこと? フィードをキャッシュしようと思った時、これがエントリのユニークなIDになるかと思ったんだけど頭にフィード自体のURI付けないと駄目か。うzzzzz

faviconのエントリはてブもらったので調べてみました。

WWW::Blog::Metadata::Icon – Extract icon (FOAF photo, favicon) from weblog – search.cpan.org

DESCRIPTION

WWW::Blog::Metadata::Icon is a plugin for WWW::Blog::Metadata that attempts to extract photos/icons for a weblog author. It looks in three places:

1. a FOAF file, from either an img or depiction element. 2. a shortcut icon in a tag in the document. 3. a HEAD check on $uri/favicon.ico.

Ben TrottのWWW::Blog::Metadata::Iconってmoduleで取れるそうです。

sub on_got_tag {
    my $class = shift;
    my($meta, $tag, $attr, $base_uri) = @_;
    if ($tag eq 'link' && $attr-&gt;{rel}) {
        my %rel = map { $_ =&gt; 1 } split /\s+/, lc $attr-&gt;{rel};
        if ($rel{icon}) {
            $meta-&gt;favicon_uri(URI-&gt;new_abs($attr-&gt;{href}, $base_uri))-&gt;as_string;
        }
    }
}

sub on_finished {
    my $class = shift;
    my($meta) = @_;
    $meta->icon_uri($meta-&gt;foaf_icon_uri || $meta-&gt;favicon_uri);
}

おお、すげー参考になる。foafのiconも見るとこがビリッとしてんなー。 これのPHP4版無いのかな。

個別の記事のページにずっとjsのエラーが出てたのを直しました。 コメント時に名前とかがCookieに保存されないのはこれかよ。 (Sleipnirだとjsエラー時に「デバッガを起動しますか?」みたいなポップアップが出るそうでかなりウザいそうです)

よく見たらMTが使うSite JavaScript(mt-site.js)が元々存在しなかった。 いつのバージョンからあったのかわからないが今さら気づいたので本家からテンプレ持ってきたら動きました。よかった。

3.2x Default Templates

Index templates