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

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

YakiBiki

versionコマンドとりあえず実装

バージョン履歴 現在バージョンの変更 バージョンの削除 を、以下のURL形式より実行できるようにしました。 http://hogehoge/?id=xxxxx/version ^^^^^^^只、例により権限管理を一切すっ飛ばしている為誰でも制御出来てしまいます。やばいなさすがに。 ただ、…

メニューリンクを整理すると共に、アイコンを使ってみた。

そろそろWikiとしてのメニュー構成が頭の中で仕上がってきたので、ヘッダー部分にまとめなおした。まだグループやACL、Thread管理など未作成のメニューもあるが、大分「それっぽく」なってきた。まぁまだぼろぼろなんだけどね。メニューの表示権限の管理とか…

WikiにはCSRFは要らない?

というのをどこかで目にしました。 つまり、Wikiの本文編集に限定すると、バージョン管理されているのだからCSRFされても「巻き戻せる」。CSRFは回復できない一方通行の破壊的操作を行う処理の場合には対策が必須だが、以前の状態に巻き戻すことが出来るWiki…

編集画面でのTicketの導入について再考。

というか初めて考えているわけですが。 YakiBikiの記事の編集画面は、Xhwlayが当初予定しているよりも単純で、それ故にXhwlayが適用できない形になった。 えっと、Xhwlayが「向いている」のはこんな画面フローです。 (1) 詳細 --> (eventA) --> (2) 更新フォ…

本体データ編集機能「とりあえず」実装。

ぎりぎり日が変わってしまったけど、とにかくこれが無いと履歴画面や差分表示画面などなどを作り、確認する為のデータ作りが出来ないので。とりあえずこんな感じのURLで本体データの編集画面が表示されます。 http://hogehoge/?id=xxxx/edit ^^^^データIDの…

Rawモード、Viewモードとりあえず実装。

Rawモードというのは、いわばデータをDLする為の、HTTP_Downloadを用いたデータDLモード。imageの場合は素直にデータを送信するだけだけど。 http://hogehoge/?id=xxxx.rawで発動。"raw"という拡張子は実は大した意味が無くて、要は"ピリオド+英文字1文字以…

大体・・・復活。あと、CookieのSessionを使った認証について覚え書き。

お腹の調子も、回復傾向。もとより喉には症状が出ない体質である為、端から見れば仮病にしか見えない程度のだるさ加減。 そんでもって、そんなわけなので、なんの因果かこれから某PRJの緊急のお手伝いに出掛けなければなりませぬ。一日だけのお手伝い。むぅ…

新規登録モジュール、「とりあえず動作確認」レベル実装。

土曜日はなんか、データ登録や編集周りの画面系をうだうだ考えてて終わった。というか、なんかやる気が出なくて死んでた。日曜日、昼間、お気に入りの「ピッコロ レガーロ」(http://r.gnavi.co.jp/a277100/)に久しぶりに行き、それでようやく復調。基本的に…

今後の流れ

本来であれば今月中にACL周りのtxも込みでベース部分を完成させる予定だったが、やはり2週間削られたのはあまりにも痛かった。 間に合わない。100%。ということで、予定変更します。Groupの管理機能とACLを後回しにします。 ・・・いえ、そのですね。 とに…

Category管理画面を追加した。

ふぃー。これ、listの一画面だけなんで、一つのpage(*)しかなくって、そのpageが同時に"bookmark"が"last"にもなっているみょーなFlowになった。で、デバッグしてて気づいたんだけど。"*"がFlow終端になっていると、そのページを表示→Bookmarkがlastなので、…

Category用のトランザクションを追加した。

画面フローの作成へ続行。結局、categoryのdaoに用意したfind_by_ownerは今暫くは使わないっぽい・・・。うーん、ここら辺のポリシーってかなりビミョーだからな・・・。 まぁいいや。

User Manager, とりあえず動くようになった。

エラー処理全く入れてない。多言語化も対応してない。そもそも日本語いれてまだ動かしてない。 が、とりあえず、User管理ができるようになった。このまま前進。

login, logout動くようになった・・・。

結局、Login/Logout作る為には、ユーザーを登録できないと確認できない。 ユーザーを登録するには、CLIで作ってもあんまり手間は変わらなさそう。というわけでHTMLで作ってしまった。 で、Login/Logoutが動くようになりました・・・。といっても本当、HTMLの…

SmartyのYakiBiki用Renderer, Themeの移植その他諸々。

いろいろあちこち触りまくってて、どうなってるのか分からなくなってきてますが。 とりあえず、デフォルト画面と、アカウント新規作成部分の「HTML」だけ、作れました。中身や妥当性チェックはまだ全然。また、セッションの使用パターンもまだまだこれからな…

Smarty周りの移植

memories(YakiBikiの前身で数回実地で使われてぽしゃったやつ)からSmartyのRendererと、ついでなのでTheme用のコードを移植する。 で、ついでにSmartyの2.6.18のライブラリのコアをlibs/以下に加えた。 あと、GIJOE先生のprotector.phpを追加。(http://www.p…

ACLキャッシュの名前、結局U2Aに。

まぁなんだかんだ言ってUserIDからACL-IDを引っ張ってくる一種のINDEXであるのに変わりはないわけで。というわけで、yb_idx_U2Aとして実装終了。 ・・・早いな。 というか、U2A自体はキャッシュとなるデータがどこかで作り終わっていることを前提に、単にそ…

$_YBと_YB()について。

昨晩、ラストワンとして色々直しておいてあれなんだけど。今朝起きがけに思いついたこと。 今まで、configで設定可能な値は $_YB['hoge.bohe.moge'] = "abc";みたいな感じで、グローバルな$_YB連想配列に持たせようと思っていた。なんだけど、昨日実は某NPO…

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

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

本日ラストワン。

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(). データ本体に対する"メモ"情報を、複数行対応で追加・削除できるようにした。 名前検索インデックスに完全…

題名検索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に抽出したやつの派生クラスに書き換えてテストケースが動いた段階で一旦…

ソートのバグようやく修正。あと、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を直すのが億劫になっ…

A2D, T2Dも実装終了。

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

Threadクラスも実装終了。

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