programming

Windowsでduコマンドっぽいスクリプトを作った

widowsにはdu(directory usage?)がない。リソースキットをインストールすればdiruse.exeとか入るみたいだけどこの程度の作業にいちいちインストールとかめんどくさい。 TreeSizeFreeは便利だが結果をデータに落とせない。仕方がないからvbscriptで作ってみた…

Zend_Captchaは便利だがデコレータが糞(あえて。)なのでこんなことをした。

デザインの都合上Zend_Captchaの画像部分と入力部分を分離してrender()したいが、なんかどうにもならない予感がするのでこんな風にしてみた form class Hoge_Form extends Zend_Form{ public function init(){ $this->captcha = new Zend_Form_Element_Captc…

ちょっと長めの文字のテストデータ。

あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよわをん Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis n…

jQuery.extendでオブジェクトを拡張する

基本 オブジェクト設定のデフォルトを定義しておき、後から設定されるオプションを上書きする場合。 var defaultValue = { value1: "default1",value2: "default2"}; var option = { value1:"vallue1"}; var extended = jQuery.extend(defaultValue,option);…

jQuery.extendを使ってjsdoc用のコメントを書く

必要にせまられてjQuery.extendを使うことになった。けど単純にdocコメント埋めてもうまくオーバーライドメンバーのドキュメントを出力できない。このように書く。 (function($){ /** * 親クラス * @class * @constructor */ var Parent = function(){}; Par…

jQueryプラグインを書くためのテンプレ

jQuery.fn.pluginName = function(options) { var options = jQuery.extend( { },options); return this.each(function(){ }); };

allegro続き

パッケージ構成の続き。 allegro acl AccessControl AclRole AclResource AclRule auth AuthProviderFactory AuthProvider AuthStorage Identity cache Cache config Config ConfigManager data Context ContextManager Query QueryResult RowSet Command Pa…

LDAP検索式の構築(式ツリーを拡張)

前のロジックは「全ての関係式は2項式」って前提で書いたけど、一般的な数式のBNFみたいに「ANDが連続するならterm,ORが連続するならexpression」って思えば各ノードに2個以上の条件式を追加することができる。 括弧を単体の構造で表すのは面倒(beginParenth…

LDAP検索式の構築(式ツリーを使う場合)

前に書いたやつは中置式の構造を作ってLL解析させてたけど、なんか無駄っぽい気がするので最初から式ツリーを構築してその上で検索式を文字列化するようにしてみた。 基本、条件を後から追加する場合前の式の右に位置するように追加して行き、OR直後にANDが…

PHPでannotation切り出し(超お気楽版)

$classInfo = new ReflectionClass("Meta2User"); $doc = $classInfo->getDocComment(); $doc = mb_ereg_replace("(\*|\/|\r|\n)", "", $doc); $anno = array(); mb_ereg_search_init($doc); $pos= mb_ereg_search_pos("@\w"); if($pos ===false){ echo "no …

1対nのアグリゲーションをマップする

ただしA --* B --* C のように1対nのペアだけで構成される場合のみ。 1対1あるいはn対1はいくらあっても良い。 また、双方向関連はまだ。 class RowSet{ var $data; var $position; var $rowCount; public function __construct($data){ $this->data = $data…

TreeNodeっぽいデータ構造からpathを指定して対象ノードを探す

クラス名は仮。本来TreeNodeって付けたいけどそうするとSystem.Windows.Controls.TreeNodeとかぶって面倒。 public class ComplexSelectItem { public string id; public string text; public List<ComplexSelectItem> subItems; public ComplexSelectItem() { text = ""; subIt</complexselectitem>…

Filter式の作成(LDAP検索式)

class Composer2{ var $text; var $values; public function __construct(){ $this->text = ""; $this->values = array(); } public function composeCompare($compare){ $this->text = "(" . $compare->field . "=" . $compare->value . ")"; } public func…

Filter式の生成

class Composer{ var $text; var $values; public function __construct(){ $this->text = ""; $this->values = array(); } public function composeCompare($compare){ $this->text = "(" . $compare->field . " = " . $compare->value . ")"; } public fun…

パッケージ構成

Expressionがなんか冗長っぽい。allegro/data Query QueryResult BatchQuery DataContext DataContextManager DataStore DataCommand RowSet allegro/data/expressions Expression Filter Operator ExpressionFactory ComplexFilter CompareFilter RangeFilt…

コメントアウトの有用性

「そのコメントアウト、消そうよ」っていったら「いつか必要になるかも知れないから」って返ってきた。その時が来たのを見たことないんだけど。

プログラミングの常識、ウソホント

コメントは残すべき ウソ。コメントを書かないべき、なのではなくコメントを書かなくても分かるように書くべき。 良く使う機能は共通化すべき ウソ。特にありがちなのは「何でもかんでも一緒くたにして破綻する」パターン。 Pointクラスにextendメソッドなど…

jQuery全盛の今こそYUI

猫も杓子もjQuery。いささかうんざりしてる。 まあYUI3になってYUI2のコンポーネントを捨てる気なのかまだ作る気があるのかギャラリーだけで対応しろってことなのかよくわからんのとCDN半強制はちょっといただけないが、現在のところYUI2で欲しいコンポーネ…

epsファイルをまとめてjpgにするVBスクリプト

必要に迫られて作った。ImageMagickが必要で、インストール時に"ImageMagick Com Component"だか何だかを追加してインストールする必要がある。 Dim WshShell, oExec Set WshShell = CreateObject("WScript.Shell") Dim fs Set fs = CreateObject("Scripting…

allegro filter展開機能

criteriaはやめてfilterにする。 class Expression{ var $text; var $parameters; public function __construct($text,$parameter = array()){ $this->text = $text; $this->parameters = $parameters; } } class ExpressionFactory{ var $ctx; public funct…

Allegro設計続き

名前付けとか散々悩んで、とりあえず「まあこれでいいか」レベルにまで考えた。 allegro\data 主にデータ層。Repositoryは本来models\Repositoryなどとするべきなのだろうが、そうするとmodels以下には他に何もない状態になるしどうせRepositoryにはCRUD処理…

Allegroという名のライブラリ

ゲーム用フレームワークにはあるみたいだがPHP+MVCなフレームワークにはないのでとりあえず仮称。文句が来たら考える。多分音楽用語で固める。 今のところデータ部分(モデル - インフラあたり)の仕様考え中 /* * allegro * allegro\data * allegro\data\Data…

前のやり方がダサいのでもう少し

こうする。 class Repository{ override protected void connect(){ if(!externalConnection){ connection = getConnection(); connection.connect(); } } override protected void disconnect(){ if(!externalConnection){ connection.disconnect(); } } } …

モデルの中でのデータベース

たとえばモデル(リポジトリとかテーブルモジュールとか)を構築したらデータベースを勝手に開くとする。 //UI void save_proc(){ var productRepository = new ProductRepository(); productRepository.save(product); } //repository class ProductRepositor…