PHPに触れて早3ヶ月

アセンブリに比べたら革新的な書きやすさ、とか思ってたけど、いい加減うんざりしてきたね。要所要所にいらっとくるのだよ。javascriptのようなサーバーサイドらしからぬ不安定感もあるし。だいたい他のメンバーが触れるようにってことでこうなったのに俺し…

Zend_Filter_Input で filter に複数の field を渡す

ZendFramework 1.7.5 value } の連想配列を渡す protected function _filterRule(array $filterRule) { $fields = $filterRule[self::FIELDS]; if (!is_array($fields)) return paren…

Zend_Filter_Input で重複のチェック

php

unique なカラムのチェックをバリデート時に行いたい。Table scheme CREATE TABLE `page` ( `id` int PRIMARY KEY, `user_id` int, `url` varchar(255), UNIQUE (`user_id`, `url`) ); My/Validate/Unique.php

組み込み関数の引数の順序を全く覚えられない

PHP

関数名にも一貫性がないけど、頻繁に使うものなら名前くらいは覚えられる。が引数の順序の一貫性のなさにはまいるね。

event を変数として受け渡す

C#

public void AddEventHandler(object target, string eventName) { EventInfo e = target.GetType().GetEvent(eventName); EventHandler handler = (sender, args) => {}; e.AddEventHandler(target, handler); } リフレクションを使えばとりあえずできるが…

コルーチン

ゲーム開発でありがちな、フレームごとに呼び出して順次状態が変わっていくような処理を書く時は、処理を任意の位置で中断できるコルーチンというのを使うとよかったりするらしい。C# だと yield。なるほどねー。もっとまわりくどく書いてたよ。

コンストラクタが継承されないのでサブクラスで全部書き並べる必要がありめんどい

C#

解決策がなさそうなので面倒にならないようにうまいことやれ、くらいか

event の null チェックめんどい

C#

public class EventTestClass { public event EventHandler NewEvent = delegate { }; protected void OnNewEvent() { NewEvent(this, EventArgs.Empty); } } http://www.dailycoding.com/Posts/avoiding_event__null_check.aspx ふむふむ(あとで確かめる)

ファミコンとはいったい・・・うごごご

nes

さてそろそろオリジナルのゲームをつくろうかなと思ったところで、ファミコンで作ろうとすると並大抵でなく苦労するであろうことに気付いてしまった

VBlank中に描け

nes

VRAMのアクセスはVBlank中にしなくてはいけない。VBlank中かどうかを確認できたらいいと思うんだけど、そういうことはできるのだろうか。 renderLoop: ; VRAM に書き込むコード lda $2002 bmi renderLoop ; VBlank 中は $2002 の 7bit on のようにしたいのだ…

乱数生成

nes

手軽に8bitの乱数っぽいものを作りたい。 N := (N xor $AA) + 73; http://www.programmersheaven.com/mb/Console/100277/100277/nes-random-numbers/ 試す。 irb(main):001:0> hash = {}; (0..0x100).inject(0) {|rnd, i| print rnd, ' '; print "\n#{i} / c…

MMC3(マッパー4)でラスタスクロール

nes

ギコ猫でもわかるファミコンプログラミング - ラスタースクロール を MMC3 で書き換えたもの。画面走査のタイミングのプログラムだなんて、ファミコンはおっかない世界だねぇ。 参考文書 http://bobrost.com/nes/files/mmc3irqs.txt http://www.media.imit.ch…

へやわけ

nes

回答のチェックなどはなく、ただ操作できるってだけだけど。ファミコンむずかしすぎ

ファミコン

nes

数字をカウントするだけ。プログラムの雛形にと思ってメモ。わけもわからず書いている部分が減ってきてよい感じです。 ;;; 秒数をカウントして表示 .inesprg 1 ; プログラムバンク数 .ineschr 1 ; CHR データバンク数 .inesmir 0 ; 水平ミラーリング .inesma…

ファミコン

nes

カーソルを動かせるようになった。それだけなのに大変なの ;;; use nesasm ;;; カーソルを動かしてひらがなを指すだけのプログラム .inesprg 1 ; プログラムに使うバンクの数 .ineschr 1 ; bg, sprite データに使うバンクの数 .inesmir 0 ; 水平ミラーリング…

ファミコンプログラミング

nes

アセンブラがことのほか難しい ;;; use nesasm ;;; http://alohakun.blog7.fc2.com/blog-entry-909.html を下地に作成 .inesprg 1 ; プログラムに使うバンクの数 .ineschr 1 ; CHR データに使うバンクの数 .inesmir 0 ; 水平ミラーリング .inesmap 0 ; マッ…

__END__ 以下の文字列を取得、みたいなのは PHP でどうやるの?

PHP

plain text とやるのが定石なのかな?ファイル末尾にはできないけど...ヒアドキュメントでいいか...

Objective-C から C++ の仮想関数を呼ぶ

仮想メンバ関数がある場合、当該C++クラスはObjective-Cのインスタンス変数として機能しません。 #import <Cocoa/Cocoa.h> struct Class0 { void foo(); }; struct Class1 { virtual void foo(); }; struct Class2 { Class2(int i, int j); }; @interface Foo :NSObject { C</cocoa/cocoa.h>…

URLエンコードのデコード

Java 1.5.0 http://blog.zakura.jp/cal/2008/04/javaurldecoder.html修正したバージョンをあげている人が見つからなかったので書いた。 import java.io.*; import java.util.*; public class URLDecoder { public static String decode(String s) throws Uns…

Java からちょろっと SQL を触りたいのですが、手軽な OR マッパはありませんか?

素直に Hibernate を使っとけ。アノテーションを使えばそれほど設定は面倒でない -> http://www.fk.urban.ne.jp/home/kishida/kouza/hibernateanno.html。多少の冗長さは我慢(Java を使っているあなたなら、この程度の冗長さを”多少”と呼べる心の広さを持ち…

Objective-C ( というより C ) を書くのが面倒すぎる

例えば、今コーディングしている状況はですね、次のような user defaults があって Root: PaletteWindows: - PaletteNames: - Inspector - Navigator パレットウィンドウがいくつかあって、そのウィンドウの中にまたいくつかパレットが入っている、photoshop…

NSTableView 内の NSTextFieldCell が勝手に toolTip を出して困っています

OS X 10.5.4 cell のサブクラスを作って expansionFrameWithFrame:inView: で NSZeroRect を返せ

NSTableView 内の NSButtonCell を押しても row が選択されないようにする

OS X 10.5.4 NSTableView のリファレンスを見るとそのものずばりの事が書いてある tableView:shouldTrackCell:forTableColumn:row: For example, this allows you to have an NSButtonCell in a table which does not change the selection, but can still b…

custom view の binding を Interface Builder から設定するには Interface Builder Plug-in を書かないといけないらしい

OS X 10.5.4 http://developer.apple.com/documentation/DeveloperTools/Conceptual/IBPlugInGuide/Introduction/chapter_1_section_1.html そんなばかな

フローティングパレット(2)

OS X 10.5.4 パレット内にtextfieldを置くなどしてキーイベントをとりたいときは、windowのcanBecomeKeyWindowでYESを返し、パレット内のサブビューでacceptsFirstMouse:がYESを返すようにする。ボタンなど組み込みのUIは最初からacceptsFirstMouse:がYESの…

Binding ようやく理解してきた

OS X 10.5.4 たとえば次のようによぶと [view bind:@"value" toObject:model withKeyPath:@"name" options:nil]; 陰でNSBinderなどが働いて、model の name に変化がないか監視しはじめる。model の setName: などが呼ばれると、監視している人は view の va…

生の画像データを表示する

OS X 10.5.4 方法(1) CGBitmapContextCreate() で作った CGContext から CGImage を作って表示 CGContextRef bitmapContext = CGBitmapContextCreate(buffer, ... ); CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext] graphicsPor…

isFlipped が YES の時の CGContextDrawImage が上下反転

OS X 10.5.4 かわりに HIViewDrawCGImage を使う。 #include <Carbon/Carbon.h> して Carbon.framework をプロジェクトに追加すると使える。よくわからないけど。</carbon/carbon.h>

それで結局Bindingを実装するにはどうするのがいいの

OS X 10.5.4 http://www.stripe-net.jp/cocoa/program/blog20080208.html?page=comments コメントも参照。これでインスタンス変数を追加したりしなくても双方向に通知がいく、と思われる

フローティングパレットを作る

OS X 10.5.4 Interface Builder 3.1 NSPanelのサブクラスを作って以下のメソッドを上書き。 - (BOOL)canBecomeKeyWindow { return NO; } - (BOOL)canBecomeMainWindow { return NO; } Interface Builder で Panel を作って、今作ったクラスにして、Utility …