ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

2007-01-01から1年間の記事一覧

遅延静的束縛(5.3.0)

PHP

PHP 5.3.0 以降、PHP に遅延静的束縛と呼ばれる機能が搭載されます。 これを使用すると、静的継承のコンテキストで呼び出し元のクラスを参照できるようになります。 http://docs.php.net/manual/ja/language.oop5.late-static-bindings.php http://d.hatena.…

G2A, add/removePermission, バージョンコメントを追加。

溜まっていた細かい対応点を対処。 G2Aインデックス(R1Nの派生そのままなので、すぐできた。) add/removePermission バージョンコメント(Dataのテストケースの追加が大変だった) 明日からACLキャッシュに入ろう。

新規エントリの追加ってなんだろう?

というわけで試してみるテスト。 ・・・って、結局その日の日記に入るだけか。まぁ、「見かけ」上は別エントリと言うことくらいかね。

復活。

最後に日記付けたのは11/3か・・・。 実に16日間、二週間も空けてしまいました。少し・・・ええ、少し。個人的かつ家庭的な事情で忙殺されてしまい、まったくYakiBikiの方に時間を割けない状態が続いてしまいましたが、ようやく一段落しましたので。再開です…

本日ラストワン。

dao/idxのクラスファイル名の拡張子を、".class.php"から".php"に修正。クラスファイルであることは分かり切っているので。 dao関係のデータファイル名・ディレクトリ名を、$_YB['DATA_DIR']経由から、idx系で採用しはじめた$_YB['dao.directory.hoge']や$_Y…

メモ機能、完全一致検索、改行文字エンコード/デコード機能

SVNへのコミットは相前後しますが・・・ \r, \n, \t をエスケープ・アンエスケープするstaticメソッドをyb_Utilに追加。encode|decode_ctrl_char(). データ本体に対する"メモ"情報を、複数行対応で追加・削除できるようにした。 名前検索インデックスに完全…

テスト駆動開発の"テスト"ってそう言う意味だったのか・・・!!

ちょっと、10/31, 11/1, 2とあっちで人に会い、こっちで人に会い、向こうで人に会い、会社の飲み会行って、YakiBikiの進捗報告の資料作ったり、でなんだか落ち着いてプログラミング出来なかった。で。第3回 「テスト」という言葉について ── Developer Testi…

題名検索Index終了。

これはまぁ、あんまり凝ってない。ので、コピペで適当に終了。 本当は、テキスト検索なので・・・凝ろうと思えばいくらでも凝ることができるんだろうけど。あんまり今の段階でやっても、定まらないのでスルー。ワイルドカードもなし。単純に、指定された文字…

U2Aインデックスについてのあれこれと、他の機能拡張メモ。

少し落ち着いて、ACLの権限リストやpolicyの評価の仕組みについて考えてみました。結果として、ACLキャッシュという、yb直下に配置されるべきキャッシュクラスが浮かび上がりました。また、ACLキャッシュの機能や、どのタイミングでキャッシュが無効となり、…

う〜〜〜、ようやく、ソートIndexが終わった・・・。

ようやくCUD系を実装し終わった。ソートIndexの特性上、append(), delete(), exist() だけで事足りた。基本的に、レコードの更新という処理が無いので。追記するか、削除するかだけ。created_atのソートは本当にそれだけで終わる。また、updated_atの場合はd…

やっと・・・ソートの参照系が終わった。

yb_idx_Base_SL1 としてもう、抽出しちゃう。あまりにも決まり切っているので。で、1:NやN:Nについても抽出しちゃう。 で、とりあえずソートの参照系と、1:Nの抽出と、あと、A2Dを1:Nに抽出したやつの派生クラスに書き換えてテストケースが動いた段階で一旦…

Stagehand_TestRunner、1.2.0リリースですね・・・。

素早いです。1.1.0が出たのは先週とかなのですヨ。先ほど、追加された -p オプションを試してみました。例えば、testディレクトリのトップとかにこんなファイルを用意しておくのですヨ。prepare.php

PackageFileManagerのバグの件、一歩前進。

http://pear.php.net/bugs/bug.php?id=12023quipo (Lorenzo Alberton) という人から、再現確認の報告と、より簡潔にしたパッチが提供された。とりあえず動作に問題のないことを確認して、Thank you と返信。この人、PEARのBugレポートのアクティビティではか…

ソートのバグようやく修正。あと、O2Dをcommit.

そろそろリファクタリングの気配が・・・。DAOとか。IDXとか。indexとか、特に1:N, N:Nのパターンで普通にリファクタできるよな。Owner User IDから、Data IDを引っ張ってくるO2Dなんか、T2Dの完全なコピペ。コメントと変数名しかなおしてない。テストケース…

初音ミクのさらにその先を妄想して。

初音ミクがきっかけでニコニコ使い始めた。例によって時流に遅れてるけど気にしない。

C2Dの最初の実装終了、あと、テストケースのコードなどちょこちょこと修正。

C2Dを実装しました。また、Acl/Thread/Group/User/Categoryについては、テストケースを修正し、CUD系のテストが終われば使用していたテンポラリファイルを削除するようにしました。 Dataについては、専用の空ディレクトリを用意していたのですが・・・PEARの…

カテゴリIDから、所属するデータIDを引っ張ってくるINDEX(C2D)のテストケース。

がとりあえず終了。うーん、用法としては多分本来の使い方ではないのだろうけれども、テストケースを先に書くのは、こうした、未経験レイヤーのI/Fを作るときの「ラフスケッチ」として結構有効。実装を先に書いちゃうと、どうしてもI/Fを直すのが億劫になっ…

MTAの切り替えについて。

VMware上ではデフォルトはsendmailになっている。一応postfixのパッケージも入ってはいるが・・・。実運用環境はpostfixになっていた。既に。 イカン。切り替えないと。 で、Google先生に聞いてみると結構ヒットしたのだが・・・。念のため、 http://www.cen…

yumの定時アップデート処理について。

さて、開発用・・・とはいえど。本番用もあるわけで。で、調べなくちゃ行けないのがパッケージのアップデート処理。というわけで、まずはさくっとyumパッケージ自体の中身を見てみます。

VMwareToolsのインストール

別件でちょっと、VMware上にCentOSの4(最新だと4.5か)を作りました。で、その時のVMwareToolsのインストールメモ。というか。 まぁいいや。参考リンク: http://wiki.centos.org/TipsAndTricks/YumAndRPM http://wiki.centos.org/HowTos/I_need_the_Kernel_S…

A2D, T2Dも実装終了。

基本コピペだったので。 これで次の3つは終了。 ACL ID から、そのACLで登録されているデータID群を取得するためのINDEX Thread ID から、そのThreadに登録されているデータID群を取得するためのINDEX Category ID から、そのCategoryに結びついているデータ…

Threadクラスも実装終了。

Groupとかからのコピペであっという間に終了。 で、ずっと気になってたんだけどSimpleTestの弱みって setUp()/tearDown()が、test****メソッド「毎に」呼ばれてしまうのだ。 つまり、ある FooBar_TestCase クラス全体の、始まりと終わりで何か処理をさせたい…

ソートのロジックで致命的なミスしてた・・・。

ownerなどでのソート。あれ、ヤヴァイ。アホだ。 えーっと、つまり、一意でない値が入ってくるようなフィールドのソート処理全部。ええ。もう、察しの良い方はとっくに嗤っているかと。 // find系でファイルから読んだデータ($_els)を一行ずつarrayにバラし…

Dataクラス、最初の実装。

やっとSVNにコミットできた。長かった。 後はThreadのdaoを用意して、それが終われば実際のドメイン・・・というかトランザクション処理?相当のレイヤーを実装しよう。 トランザクションと言ってもrollbackができる訳じゃないけど。まぁ要するに、複数のdao…

ニコニコと2chに最大級の感謝を。

正直、舐めてたわ。今まで。2chとニコニコを。でも、初音ミクの件でAce combat6の宣伝動画と組み合わせたMADを見て、改めて思った。 http://www.nicovideo.jp/watch/sm1318819こーゆーのを許容できる場所があるのって、凄い。しかもそのミームの広がる速度も…

変な癖。

道ばたを歩いているときに、自分の前後1つから2つの範囲で、地面に「線」を意識してしまう。 前後1つから2つの範囲で電柱や壁・塀の端があれば、左右のそうした端点間で地面に「線」が引かれているように感じる。 で、その線を思いっきり踏み抜くか、跨…

やっと・・・Dataのテストケースが終わった。

すげー長い。1800行強。"assert"でgrepしたら 804個も出てきた。そんなにコピペしたのか。 うーん・・・なにしろ、あるプロパティや本体データのバージョン変更時に、「影響ない部分は前のデータと比べて変更されていないこと」を確認する為に相当量コピペし…

Dataクラスでバージョンを操作するときのコンセプトを修正予定に。

さっきお風呂入ってて思ったのですが、お風呂はいる前までは、current_versionも同時に変更できるようにしていたのです。 データの更新については大まかに以下の種類があります。 名前やACLなど「属性値」の更新 現在バージョンの変更 データ本体の変更(以下…

Dataクラスの実装途中でお休み。

find_by_id()とcreate()まで終わって、update()の途中。あれ・・・、データ本体のバージョンアップ「だけ」の場合、属性の方のupdated_by/atってそのままだっけ。自分でテストケース書いててずれてるかも・・・。 というわけで、まだSVNにはコミットせず。

Dataオブジェクトのテストケースがまとまらないっっ・・・!!

うううぅぅ・・・まとまらないよぅ。何がまとまらないかって、閲覧時の処理をどうするかがまとまらない。 少なくとも次のフィールドは、ソートあるいはフィルタ対象になる。 owner, acl, thread, category, modified_at, created_at, name このうち、acl/thr…