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

プログラミング初心者は何が分からなくて詰まるのか

プログラマーは誰しも、右も左も分からないような初心者の時代を過ごして来ている。そんな頃、課題を解決している途中で詰まってしまった経験が一度はあるだろう。それは何が分からなくて詰まってしまったのだろうか。 思い返してみると、何時も入力と出力は…

薄氷のようなSDL

c

こないだ導入したruby/sdlだけど、サンプルをくるくる回しながら、ちょいとSDLのマニュアル見てみると、描画オペレーションがBitBlt系とドット打ち位しかないことに今更気付いた。ドット打ちさえあれば、直線はプレゼンハム、円はミッチェナーのアルゴリズム…

Go to give up

自分「GoのCygwinポーティング計画が面倒くさく」 相手「Cygwinステステ Cygwinポートなんて100害あって一利なし。」(中略)自分「うおー、cygwinにptraceがねぇ/(^o^)\」 相手「あ き ら め ろ」Windows APIでptraceシミュレーション等やり始めたら取り…

Go to Cygwin

ネイティブビルドは死んでも終わらなさそうだったので、仕方なく、Cygwinを狙ってみることに。 そのまま始めてみると、lib9のビルドからずっこける。こ、こいつめ…… とりあえず、lib9で問題となる点と修正は Linuxと同じくstat::st_genがないので、_p9dir.c…

Go to Plan9

最近話題になっているGo。チュートリアルを読んで使ってみたつもりになっていたけど、やはり実際に動くモノを見てみたい。インストールの項目を見てみると、どう見ても*NIXオンリーです、本当にありがとうございました。 しかしWindowsでも使ってみたいわけ…

gem版Ruby/SDLインストール

B-LOGは移動しました[www.kitcc.org]にて、SDLのRubyバインディングの存在を知った。SDLと言えばゲーム開発を想起させるが、RubyでSDLなゲーム……ってなかなか面白そうだ。 リンク先ではrubysdl-win32-binでインストールしているが、マシンのruby環境が独自ビ…

ruby 1.9.1-p243 @ Visual C++ 2008 -落とし穴 GL/LTCG Afterdeath

おそらく最初のX509_EXTENSIONSトラブルで、singleがあろうがなかろうがエラー落ちして、singleなんてなかったという間違いを犯していたと考えられる。そのトラブルを修正してもextconf.hは変わらないので、有りもしないsetメンバーを参照して死んでいたわけ…

ruby 1.9.1-p243 @ Visual C++ 2008 -落とし穴 GL/LTCG Reloaded

ruby 1.9.1-p243 @ Visual C++ 2008 -落とし穴 GL/LTCG Edition は本当に落とし穴で泣かされたが、そのままGL/LTCG無しで通すのも癪だし、再チャレンジ枠を設けることにした。 まず始めに、GL/LTCGなしで configure + nmake。msvcr90-ruby-191.libが出来た辺…

ruby 1.9.1-p243 @ Visual C++ 2008 -落とし穴 GL/LTCG Edition

何時までもp0を使うのも何だかやな感じなので、久方ぶりにrubyをビルドすることにした。 折角VC9を使うんだから、SSE2最適化や、リンク時のコード生成を付けても罰は当たらないだろうと、Makefile.subのOPTFLAGSに-GL -arch:SSE2、LDFLAGS、ARFLAGSに-LTCGの…

array_filterで配列要素のインデックスが歯抜けになる

php

急遽、rubyで言うArray#selectをphpで実現する必要が出てきた。 さらさらっと調べてみると、PHP Manualにarray_filterなる、そのものズバリな関数を見つけることが出来た。 しかし、サンプルを観てみると、どうも評価値に違和感が。 $array2 = array(6, 7, 8…

Raw InputのGetRawInputBufferの正しい(?)使い方

新しいスレッドを立てる 新しいスレッド上で不可視のウィンドウを作成する 作成したウィンドウを指定してRaw Inputデバイス登録 GetMessage/PeekMessageを「呼ばない」ポーリングループを回す GetRawInputBufferのpcbSizeが0以外を返すよ!やったね! スレッ…

DirectInput?これからはRaw Input+XInputの時代でしょう?

PCに何枚もキーボードを刺して操作できることを最近知った。それで別々のことが出来るかというと、それぞれのキーボードから入力してみると、まるで一枚のキーボードから入力したかのようになってしまう。キーボードの入力状態を操作する旧来のWindows APIは…

C言語インタプリタCINT

c c++

CINT is an interpreter for C and C++ code. http://root.cern.ch/drupal/content/cint 以前からC言語インタプリタがこの世にあることは知っていたけど、ようやく具体例を見つけた。 曰く、標準に大体従っているらしい。 移植性が素晴らしい。ライセンスも…

パスワード強度について本気出して考えてみようとしたけどやめた

ここ数年、ログイン制のサイトでパスワードを設定するときによく見かける「パスワード強度」。これは、入力したパスワードの「強度」を随時計算し、「非常に弱い」「非常に強い」と言った単純明快な言葉で、我々にパスワードの安全性を提示してくれるものだ…

DirectInputを使うソフトにキー入力情報を送信する

Windowsで、プログラムに対してキーボード入力があったと偽るには、SendMessage, PostMessageで、対象プログラムのスレッドメッセージキューにWM_KEYDOWN/WM_KEYUP等のキーボード系メッセージを積んだり、keybd_event/SendInputでキーボードインプットストリ…

x86アセンブリニーモニックを機械語にアセンブルするプラグイン

ATOKダイレクトでASがサポートされないから無視するなんていうのは、宝の持ち腐れにも程があるってもので、何か作ってみることにした。 しかし、作るからには誰ともかぶってなくて、ありそうでないようなものが作りたい。小一時間思案に耽ってみたところ、「…

unofficial ActiveScriptRuby 1.9.1.0

エイプリルフールなのは知っていたけど、別にネタを仕込むほどでもなかった。http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/で公開されているActiveScriptRubyのunofficial版を作ってみた。 公式版との違いは、 ruby 1.9.1-p0 Visual C++ 20…

ATOKダイレクトでActiveScriptを動かしたい?

ATOK2009を手に入れたので、試したくてたまらなかったATOKダイレクトプラグインであるATOKダイレクト Social IME変換プラグイン公開 - t_daichoの日記(ruby 1.9.1での実行はruby 1.9 でATOKダイレクトを使う - p-araiの日記にある対策が必要)を導入してみた…

JScriptでGrass処理系書け・・・てなかった (2)

詳細にトレースしたりして必死にデバッグしてたら,Absの部分適用でLの引数に配列じゃない物を記述していることに気づいてしまった.こ,これは恥ずかしすぎる…… wwWWwWWWwvwWWwwWwwwWwwwwwWwwwwwwww T = λfx.f(fx) λx.(T T T) Out w ==> wwwwwwwwwwwwwwww …

Grassスクリプトを実行できる(?)LimeChatスクリプト「Grass.js」

本当に出来ているのかどうか怪しいんだけど,Grass処理系(?)をLimeChatスクリプトとして使えるようにしてみた. function grass(code, inputHandler, outputHandler){ // List function N(v, n) { this.n = n; this.v = v; } N.prototype.i = function(s)…

JScriptでGrass処理系書け・・・てなかった

ちょこっとGrassが話題になったので,ふと,JScriptで実装してみたら面白くね?と思った.しかし,それが泥沼の始まりだった…… 最適化とか考えずにガリガリ書き進んでいった結果, function grass(code){ // List function N(v, n) { this.n = n; this.v = v…

LimeChatを携帯電話から操作するスクリプト「keitairc.js」

前に上げたスクリプトは POE 1.0003 を想定したワークアラウンドを入れることで,上手く動くようにしていた.今日,久方振りにActivePerlを新調したところ,POE 1.0002に下げられてしまった.CPANで無理に入れた物体なので,下げられるのは仕方ない.まあ,k…

Orthoclaseでkeitaircを動かしたい

LimeChatとkeitaircで接続を共有するために,LimeChat->IRC ProxyIRC Proxy経由で接続しなければならないのがうっとうしい.そこで,折角Orthoclaseでperlが動くんだから,keitaircをLimeChatに寄生させればいいんじゃないかと思った. 早速ちょこちょことポ…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」(4) + keitairc.js

http://d.hatena.ne.jp/anon_193/20090301/1235886634の続き. Download (from Mediafire) keitaircをポーティングするために新たな拡張を施した.どんなのかは前のエントリーの通り. あと,今回作った keitairc.js 0.01 for LimeChat. Download (from Med…

until修飾子と変数定義の関係

ary = [ "aaa{{bbb}}ccc" * 5] ary += str.partition(/\{\{.+?\}\}/) until (str = ary.pop).empty? p ary みたいに書いたらest.rb:11:in `': undefined local variable or method `str' for main:Object (NameError)て怒られた。 http://d.hatena.ne.jp/dic…

MoniterMixinのちょっとしたバグ

久方振りにnadokaを使おうと思ったら,1.9.1で文字列の扱いが変わったおかげで,そのままではまったく動かないようになっていた.エラーが一個出るたびにencodeか,force_encodingで置き換えていく簡単な作業です・・・どう考えても修正箇所多すぎで死亡フラ…

RubyScriptをOrthoclaseで使えるようにしたい (2)

RubyScriptをOrthoclaseで動かしたいので,もっともっとがんばってみた. イベントの接続は@LimeExt.ConnectObject(@event, "event_")で接続すればいいことに気付いたけど,今度はRubyScriptのディスパッチャが転けた. デバッガで原因を探ってみると,どう…

LimeChatスクリプトを拡張するライブラリ 「Orthoclase」(3)

http://d.hatena.ne.jp/anon_193/20090227/1235708463の続き. Download (from Mediafire) 今度はPHPScriptに暫定対応した.Microsoft製以外のスクリプトエンジンは,どいつもこいつもバグワールドで挙動がおかしいので,JScript/VBScript以外を使う場合,最…

PHPScriptをOrthoclaseで使えるようにしたい

PHPScriptをどうしても動かしたいので,もっとがんばってみた. デバッグデータベースを置いてちょこちょこデバッグしてみると,案の定、GlobalInterfaceTableをScriptSiteのスレッド間共有に使っていて死んでいた.RubyScriptと同じ原因だ・・・ ここで詰ん…

RubyScriptをOrthoclaseで使えるようにしたい

結論・・・イベント周りがIEべったりすぎて嘆くしかなかった.AddScriptlet呼び出し前提のイベント登録とかどういうことなの・・・ParseScriptTextだけだとイベント発火が門前払いという素敵仕様.これをどうにかするには,RubyScriptのソースコードそのもの…