Programming

Google Code Jam 2009

よく覚えてないけど去年えらいひどい成績だったので、今年はちゃんとしようと思ったんですが、結局解いたのは会社で昼休みに解いた A だけでした。まだ眠気引きずってるし。スコアとかコードはたぶんこの辺。6168 位です。下層市民ですね。http://code.googl…

TopCoderはじめました

今朝のSRM(Single Round Match)で2回目になるんですが、TopCoderはじめました。2問解いて「今回こそはDIV1行ったぜ!」とか余裕こいてた結果がこれだよ!!http://www.topcoder.com/tc?module=MemberProfile&cr=22753479Ratingが1,200に達すればDivision 1…

おーぷんそーすおもしろいです

帰宅してついったのタイムラインを眺めてたら、昼間にFlashPlayer10の件で祭りになっていた様子。これリアルタイムで見てたら仕事に手が付けられなくなるところでした。危ない危ない。どうやたVectorクラスによるGenericsが使えるようになるらしく、これで可…

C/C++プログラミングの禁じ手

ついったで自動変数に対するメモリ割り当てに関する話題を耳にしたので、そんな話がC MAGAZINEの特集にあったことを思い出しました。それで検索してみたんですが、廃刊の影響かcmagazine.jpが消滅してました。こういうときはwayback machine先生に聞いてみよ…

東方の縦画面化ができるらしい

via ツブ日記で東方風神録縦画面化ツールなんてものを知りました。で、それを使って適当に遊んでみたのをWikiにまとめました。あれ?はてダの写真貼り付けインタフェースが変わってる……と、それはさておき、写真はみすちーバージョン。単なるネタです。こん…

LiveCodingで勉強したコーディングスタイル

package { import flash.display.Sprite; public class がんばった私へのご褒美 extends Sprite { public function がんばった私へのご褒美():void { var 笑:String = "笑"; がんばった私へのご褒美.スイーツ(笑); } public static function スイーツ(笑:Str…

あっぷるわいやれすきーぼーど

使いたいプログラムがオープンソースだと楽ですね。何かしら不具合があったときに自分で原因が突き止められるので。まぁそんなわけで Apple Wireless Keyboard Helper の力によって、お蔵入りの危機に瀕していたあっぷるさんのキーボードが使えるようになり…

少しずつ LL

サーバの用途が Wiki ぐらいしかなくて暇そうだったので、少しずつサービス作りながら LL の勉強でもしようかなぁと思ってます。手始めに風神録リプレイを読み込んでスコアとかを表示するプログラムを PHP で書いてみたんですが、そういうアップローダってす…

オブジェクト指向に縛られる

C/C++ や Java とかで忌み嫌われる実装継承が多発される Javascript は、なんとなく居心地が悪い気がします。あれです、prototype ベースってやつ。 Derived.prototype = Base.prototype もともと言語上で継承というものがないので、is-a の関係が成り立たず…

なんかあほらしくなるソースコードとか

var elems = document.getElementsByTagName('A');あと、行末で小指の勢いがよくて hoge();pってなると何か馬鹿にされた気分になります。

Flexリファレンスよみよみ、3 次元リスト

Flex のリファレンス、今まではもっぱら flash 名前空間ばっかり相手にしてましたが、mx も眺めることにしました。設計思想について、なかなか勉強になります。プログラムを書いててメソッド名が思い浮かばなかったのでリファレンス流し読みしてたら、ListBa…

仮想機械ちゃん

なんかこの VM って言葉は紛らわしいですね。 VM という言葉は、言語処理系のためのソフトウェアという意味で使われる以上に、VMWare などのもっとローレベルな計算機の仮想化をさすことがあります。むしろ、一言 VM と言った場合、後者を指すことが多いよう…

svk を使い出す

小刻みコミットしたいけど、リビジョン番号の増加が気になる人のための(?)svk を昨日から使い始めています。リファクタリングするときはこういうのあったほうがいいですね。作業ログとか、コードのフラグメントとか、ちまちましたのを書くために MUDAI 設…

ドキュメント、ドキュメント

Rhino on Rails via オレンジニュース 大変勇気付けられる記事でした。そもそもなんで自分がこんなタイトルの記事を読んだかっていうと、オレンジニュースで『Googleで働くことが好きな理由「コードベースがきれい」「新しいアプローチを実験できる大きな自…

クルクル typedef

typedef T<A> T; 何か変な顔文字に見えますが、これって出来るのか……知らなかった。MSDN に下のようなことが書いてあるから問題ないはず。 typedef union REGS // OK: name REGS redeclared { // by typedef name with the struct wordregs x; // same meaning.</a>…

canvas 速度比較(Firefox、Opera、Safari)

何の意味があるか分かりませんが、ちょっと気になったので canvas の描画速度を比べてみました。1 ms 置きに再描画をかけまくってるのですが、もしかしたら canvas の速度ではなくて setInterval の性能が影響しているかも知れません。スタート!手動でスタ…

気がつけばすくりぷた - DOM と innerHTML

いつの間にか、C/C++よりも、C#よりも、ActionScriptよりも、JavaScriptに触れている時間のほうが長くなりました。型付けガチガチ、コンパイル時妥当性検証な精神がやられつつあります。型?あぁ、prototypeですか?みたいな。$ 関数しか使ってなかった Prot…

物欲のターン

今週発注したもの。IIDX GOLDサントラ + dj TAKA アルバム、NyaRuRuさんの日記で言及されてたデバッグ本、ソフトウェアテスト関連の本、空の軌跡 3rd、花詠束。とりあえず Firefox でホワキャンの花詠束特設ページ見ると Disc 1 から 3 まで勝手に同時再生さ…

理想にはやや距離がある lazy initialization

すっかり lazy initialization に毒されて、そこらじゅうで活躍しているわけですが、C++ では const 制限に引っかかることがあり、大変残念です。以下サンプル。 class C { Window* window; public: Window* getWindow() { if (window == NULL) window = new…

MTASC があるじゃないか

昨日はインターネットチャンネル用 Flash 開発がもうできないよと絶望的な気分だったのですが、今日になってふと思い出しました。FlashDevelop は ActionScript 2 の開発もできたんだっけ。たしか mtasc っていうコンパイラを使ってどうのこうのとか……、じゃ…

ようわからん……

めがね会にめがね買いに行ってきました。来週中にはできるはず。もう以前のめがね買ったときの記憶がさっぱりないんですが、測定で赤と緑の絵を見させられるんですね。色弱補正でもかかるのかと思って聞いてみたんですが、そういう意味ではないらしいです。 …

徐々にノウハウを積み重ねる

すっかり単体テストにはまってしまったわけですが、しばらくテストコードの置き場所に困っていました。./trunk/classes/mylib/ というディレクトリにライブラリをためているとした場合、./trunk/classes/mylib/test にテストコードを置く、というのが今まで…

FlexUnit で単体テスト

いや、もう何年前に流行ったかも忘れましたが、テスト駆動開発(TDD)なんてものをしてみました。お世話になったのは FlexUnit。こちらの記事を参考に使ってみました。記事のタイトルだけ見ると FlexBuilder 2 でしか使えないように見えますが、そんなことは…

少しでも文字数をケチりたい

まぁ題名の通りです。対象は以下のようなコード。プログラムのどこが重いかを検証するために埋め込んだものです。 g_pProfiler[ "kokokanaa" ] = timeGetTime(); TottemoOmoiKansuuDesuuuuuu(); g_pProfiler[ "kokokanaa" ] = timeGetTime() - g_pProfiler[ …

Visual Studio 2005、ml.exe、zlib

某プロジェクトが急にビルドできなくなって、原因を探ってみたら、zlib をビルドするときに使う ml.exe が存在しないことが原因の様子。今までは普通にビルドできてたんだけどなぁ、なんだろう。もちろん、今までもずっと zlib のビルド構成は LIB ASM Relea…

ぬるぽキラー aka Lazy Initialization

Lazy Initializationは主にJavaの世界で使われる用語だと思うのですが、最近C++でこれが必要になってきました。この方法を最初に知ったのは、EclipseのVisual Editorを使ってたときです。本来、Lazy Initializationは「必要になるまでオブジェクトを生成しな…

ここらでVS2005SP1再頒布問題をまとめておきたい

2月14日のMicrosoft Updateで、Visual Studio 2005 Service Pack 1の適用がありました。SP1自体は去年からあったのですが、何か色々とあるようで(3時間半かかる、VistaでのUAC)インストールを控えてました。しかしMicrosoft Updateに入ったということで渋…

そしてMSDNから死の宣告

Note that normal allocators, such as malloc, C++ operator new, and the Win32 allocators return memory that will most likely not be sufficiently aligned for __declspec(align(#)) structures or arrays of structures. 要するに,mallocとかnewし…

SSEバグ

SSEを使ってプログラムの最適化をしていたんですが,ある変数の値を読むときに不定期にアクセス違反が発生するという問題が起きてました.それで6時間ぐらい悩まされ続けた結果,ようやく結論を発見. Visual Studio 2005のTeamSuiteとExpressバージョンのC+…

気になるコンテスト

そらみブログさんより,携帯電話のアプリコンテスト2つの紹介.1つはFOMA D800iDS 2画面iアプリコンテスト. 応募資格 募集するiアプリの制作が独力でできる個人もしくはグループの代表者の方で、現在FOMAを既に契約されている方(貸し出しするD800iDSをお使…