Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2005-07-01から1ヶ月間の記事一覧

テクスチャ初体験

ビットマップ扱いだったのをテクスチャに変更。貼付ける画像に(0, 0) 〜 (1, 1)の座標を付け、ポリゴンの各頂点にglTexCoord2f()でその座標をセットし、それ以外のポリゴンの面上の点では補完された座標を使うと言う原理。 初めてテクスチャマッピングと言う…

DBD

DBIばかりに目がいくと、DBDの存在を忘れてしまいがちになる。DBD::mysqlの$dbh->{'mysql_insertid'}とか、 DBD::Oracleの$sth->bind_param($field_num, $lob_value, { ora_type => ORA_CLOB })など、便利な物がたくさんある。 元は利用するRDBMSが変わって…

例外が投げれてなかった

Cocoaの例外発生で、ミスってた。NSExceptionの exceptionWithName: だけ呼んで例外飛ばした気満々だったんだけど、raise なんてメッセージがあったのだね。迂闊。。。

static

C言語で外部変数にstaticを付けると、ファイル内だけで有効になるのだね。知らんかった。てっきり、全ての変数が全開でグローバルなもんだと・・・。局所的なstaticなら知ってたんだけど。 ・・・ド素人でごめんなさい。

descriptionとstringWithFormat:

今日は時間があまりなかったのでデバグな部分を固めて終了。 オブジェクトの情報を NSLog(@"@%", obj); でログに吐くには、 - (NSString *)description を実装すれば完了。関連クラスの description を呼びつつNSStringの stringWithFormat: で合体させてret…

NSThreadの罠

NSThreadで作ったスレッドから、WebViewにURLをロードさせようとしたのだが、うまく行かない。恐らく、ロード〜画面生成時の処理と、メインスレッドのイベントループ(NSRunLoop)が深く関わってるんだろうと予測。 一日中悩んでたどり着いたのが、NSObject。…

NSArrayにnilが入らない・・・

NSMutableArrayにnilを入れたかったのに、保持できない仕様らしい。 仕方が無いので、代わりに@"NULL"なんて文字を放り込んでおいたんだけど、これって常套手段? 他に回避策有り?

NSImage→OpenGLの座標系修正

先のOpenGL化で、y座標をひっくり返すコードもついでにメモ。 int w = (int) [bitmap size].width; int h = (int) [bitmap size].height; unsigned char* byte_image = [bitmap bitmapData]; GLubyte* reverse_image; int i, j, b; int block = [bitmap hasA…

WebViewのWebFrameからリンクの一覧を抜く

表題の通りの内容なんだけど、なにせサンプルもドキュメントもほとんどない(探し方悪いだけ?)。DOMに関してはW3C見ろってことか。結局は、ヘッダファイルからインタフェースを探して組んで見たら、こんな感じ。 DOMDocument *document; DOMHTMLCollection…

オラわくわくすっぞ!(5)

とりあえず、WebViewに関する部分を別のクラスに隠蔽。慣れない言語だと、クラス作るだけでもめんどいなー(楽しいけど)。今日のノルマはこれで完了。 次はスレッディングだな。でも、その前に、デリゲート用の非公式プロトコルを用意しないとwarningが消せん…

ウィンドウの再利用

XCODEで、ソースのウィンドウが再利用されるようになってしまった。ソースを並べてチェックしたいときにエラく不便だったので、時間を割いて調査。 どうやら、エディタの右上にちょびっとついてる、グループ化の設定が原因のようだ。ソースをグループ化して…

オラわくわくすっぞ!(4)

OpenGLの世界に画像を移動。座標系が逆なので、逆さになってるけど、ひとまず成功。 NSBitmapImageRep* bitmap = [[NSBitmapImageRep alloc] initWithData : [image TIFFRepresentation]]; glDrawPixels( (int) [bitmap size].width, (int) [bitmap size].he…

オラわくわくすっぞ!(3)

わくわくの果てに相当ハマった・・・。 前述の自分でallocしたWebViewに、何度かURLを食わせていると、なぜか落ちる。6時間ハマって、結論としては、所属するNSWindowが居ないと動きが安定しないっぽい。安定しないってだけで、一見動いてしまうのが罠チック…

オラわくわくすっぞ!(2)

引き続きCocoaでURLを画像化する方法のお勉強中。結局、WebViewをinitWithFrame:で自分で作って、画像化が済んだらぽいっと捨てるのがお手軽ってことでそこに落ち着いたのだが。 早速問題が三つ。まず、背景画像が欠けてところどころ出ない部分があって気持…

データベースから手探りで探す

アプリの挙動が変わることからDBのデータを推測していく、Blind SQL Injectionと言う手法。いやはや、色んな手法を思いつくモンだなあ〜。 過去に自分が作ったWEBアプリにセキュリティホールが発見されたとき、ショックを受けるだろうか? 自分はそれよりも…

オラわくわくすっぞ!

さらに調子に乗って、WebViewを画像化できないかなーと頑張る。Viewから画像を作るのは、こげな感じ。 NSData *img_data = [wv dataWithPDFInsideRect: [wv bounds]]; NSImage *img = [[NSImage alloc] initWithData: img_data]; この後、忘れずreleaseね。…

WebView

調子にのってCocoaでWebViewを呼び出そうとしたら、cannot decode object of class (WebView)と怒られた。 フレームワークの追加は、お忘れなく(笑)。

デメテルの法則

Law of Demeterはクラス間の不要な依存を取り払うために良いと言う話を聞いていたんだけど、実際にこの手法に従ってやってみると、遠くのクラスにメッセージを送るためのラッパーメソッドが至る所に量産されてしまう。そのため、新しいメソッドを追加したい…

細々と過ごす休日

こんな感じにウィンドウを散らかして、細々とコーディングしてみる。judeでUML書いて、miでperlのコードを書いて、ターミナルでデバグ。Test.pmでテストスクリプトを書いて、クラスを実装後、proveコマンドでテスト。そんな繰り返し。 設計の「〜すべき論」…

オブジェクト指向(2)

オブジェクト指向がわかりにくい例をもう一つ。主語の選択は適切でも、主語の振る舞いや主語と主語の間の関係が極端に不自然な場合がある。 「彼」が「宝くじ」を引いて、「宝くじ」が「彼」の過去の当選履歴を調べる こう書くと、そんな設計しないよって思…

オブジェクト指向(1)

なぜ、オブジェクト指向なんだろう? オブジェクト指向はいいと刷り込まれ、なんでもオブジェクト指向にしている今日この頃ではあるが、普通に手続き指向で書いた方が処理の流れが分かりやすいと言う例に何度も遭遇した。そこで、オブジェクト指向にする意味…