program

プログラミングF#

プログラミングF#、欲しいなーってこのブログに書いたらサンタさんがオライリーの編集の人が献本してくださいました。 F#は、 1) OOPが出来る 2) NET Frameworkが呼び出せる 3) C#やVB.NETと相互運用が出来る 4) Visual Studio 2010から正式サポートされるよ…

スプラッシュとかいまどき流行んねーんだよ!!

なんかさ、起動時にプラグインとかいっぱい読み込むアプリあるじゃん。draw系とかDAWとか3D系のソフトとかでさ。 たいていその手のアプリって起動中であることを表現するのにスプラッシュが出るんだけど、そのスプラッシュがまた、Windowメッセージを処理し…

ベーマガ3.0

ベーマガの同人誌がWebで読めるらしい。 https://sites.google.com/site/basicmagazine30/home ともかく、クオリティが高すぎる。もう懐かしくって懐かしくって。当時知らなかったこともいろいろ書いてあって、妙に感心してしまった。松原拓也さん(id:nicota…

Google IMEの予測変換はかな入力を考慮すべき

かな入力だと、「ば」と言う文字を書きたい場合、「は」+「゛」なのですよ。 つまり、「は」まで入力されていれば、それはユーザーが書こうとしている文字は「ば」や「ぱ」である可能性は十分ある。まあ、それが統計上、どれくらいの確率なのかは知らんけど…

エンジニアに英語力は必要か?

たいていのビジネスアプリを作るのにプログラミングの知識ってたいして必要ではなくて、英語がわからなくてもほとんど問題とならない。 いまや主要なプログラミング書籍は日本語訳されているし、中身の無い駄目な本まで含めて過剰に翻訳されているのが実情だ…

邪悪なC形式のキャスト

邪悪なC形式のキャストにしかできないこと http://cpplover.blogspot.com/2010/07/c.html を読んでて思ったのだけど、一般論としてアクセス制御無視でアクセスできるのは、UnitTestのようなメタ的な操作が必要になるときには使えることがあるような気はする…

レベル255のプログラマになる方法

KLab×はてな エンジニア応援ブログコンテストというのをやっているらしいので、私もちょっとした小話を書いてみる。 もうかれこれ10年近く前の話なのだが、そのことはいまでも鮮明に覚えている。 私は当時学生だったA君に、とあるプログラムの修正の仕事をお…

CSV形式の悲劇

2次元のリレーショナルデータと言えば、いまだにCSV形式が主流である。これは、読み込みが楽だというのが主な理由だ。Excelのbookだと読み込みが一筋縄ではいかない。 ところで、このCSV形式、encodingは言うまでもなくshift-jisである。いまさらunicodeに変…

例外は名前が悪すぎる件

そもそも、C#やJavaのようないまどきの言語で使う「例外」って言うのも一般人には理解不能である。名前からすると稀にしか発生しないような発生してはならないようなものに聞こえる。 ところがGCのある言語では例外を扱うコストは比較的に小さいので、大域ジ…

そのまま使えるiPhoneアプリプログラム

SeasonsさんがiPhoneのプログラミング本を書かれたようです。「そのまま使えるiPhoneアプリプログラム」本日発売!! by 著者より http://d.hatena.ne.jp/Seasons/20100525/1274749528 そのまま使える iPhoneアプリプログラムposted with amazlet at 10.05.31…

ポップアップ抑制

とあるゲームでボスに挑んでいるときにiTuneのupdateとかウイルスバスターのupdateとかのポップアップが本当にうざすぎる。何のためのタスクバーの通知領域だと思ってやがるんだ。 ポップアップを抑制して通知領域からバルーンで出てくるようにするソフトと…

25年前のテキストエディタの設計技法

テキストエディタなので行の挿入・削除などが頻繁に行われるわけだが、行の挿入や削除によって大きなメモリブロックのコピーをするわけにはいかない。ゆえに、各行を双方向linked listで持っておいて削除・挿入時にメモリブロックのコピーは極力発生しないよ…

25年前のテキストエディタ

もうかれこれ25年ぐらい前になるが、当時のパソコンでもテキストエディタをきちんと作るのは大変だった。オールアセンブラで書かなければならないということに加えてターゲットがZ80 4MHzとかなので無駄なメモリコピーなどを限りなく省略しなければならない…

TabとSpaceの混在は駄目だろjk

ネタ元 : http://www.emacswiki.org/emacs/SmartTabs

tabは仮想化されるべき

まあ、2tabでも4tabでも良いのだが、これがソースファイル上のメタデータとして付与されていないので、開いてみないとわからないし、開いて違和感があれば2tabにしたり4tabにしたりするというのが実情である。 自分は4tabが好みだとしても2tabで書かれたファ…

インデント不要論

そもそもインデントは必要なのだろうか? 昨日、ちょっとしたスクリプト言語を作っていたのだが、(C#で言うところの)Mainメソッドしかないので、インデント不要なのである。それほどプログラムが長くなるわけでもないのでプログラムは行の左詰めで全然問題が…

時代は2tabへと

その昔「4tab邪道:p」とか言われることがよくあった。tabは8tab(= 半角スペース8個)と相場が決まっていて、4tabでプログラムを書いていると普通の環境(8tab)で見るとレイアウトが崩れて見えるからだ。 それがいまや4tabでもインデントが深くなると画面右まで…

美しいループ記法求む!

いま私は速度的に特化したプログラムを書かなくてはいけない。1%でも速いほうが望ましい。必然的に言語はC/C++となる。しかし、いまさらC/C++なんか使いたくない。もう少し洗練された記法が使える言語が好ましい。 なければ作ればいいやと思い、丸一日かけて…

降順insertion sortについて

昨日の記事で、世間で広く知られているinsertion sortのコードがいかにひどいかについて書いた。 私の提案したコードをWikipediaにも掲載(注記としてだろう)したほうがいいのではという意見をいくつか頂戴した。 Yuichirou 2009/11/26 02:03 私はyaneuraoさ…

広く知られているinsertion sortのコードは駄目すぎる

insertion sortは「挿入ソート」と訳される。(Wikipedia→ http://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%BD%E3%83%BC%E3%83%88 ) ■ 日本語版 Wikipediaの日本語のページのコードを引用すると次のようになっている。 for (i = 1; i < n; i++) { tmp…

RAMディスクでVisual Studioはどこまで速くなるのか?

私の普段使っているマシンはメモリを4GB載せているので、32bit版のVistaのだと1GB丸々眠っている。 これを有効活用しようと、「いまさらRAMDISK」(→ http://d.hatena.ne.jp/yaneurao/20090704 )で書いたようにRamPhantom3 LEを導入してみたのだが、Visual St…

そろそろLISPブームが再来する

思うに、LISPには名著が多い。100年に一度の名著であるSICP本*1は言うに及ばず、 ハッカーと画家 コンピュータ時代の創造者たちで有名なPaul Graham氏のOn Lisp。 あと、日本のLispハッカーとして名高い竹内郁雄先生の初めての人のためのLISP (ソフトウェア…

実践デバッグ技法

実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギングが6月8日に発売される。 「ひなた先生が教えるデバッグが256倍速くなるテクニック」(→ http://d.hatena.ne.jp/yaneurao/20081114 )というデバッグ本を書いているよしみで、オライリーの編集の人から…

Hangoverふたたび

POJの1003番の問題、Hangover。 http://acm.pku.edu.cn/JudgeOnline/problem?id=1003 テーブルの上に、カードを少しずつずらして重ねていく。カードが崩れないようにするには、枚数が増えるごとにずらす長さを短くしなければならない。 最短コード88B(Cozy O…

近代的タスクシステムの構築(2)

近代的タスクシステムの構築 http://d.hatena.ne.jp/yaneurao/20090203 を書いたのだけど、なんだか周囲の反応が、私が想定していた反応と全然違うような気がする。 現代的なゲームにおいて、タスクシステムがいるのか/いらないのか、もしいるとしたらどうし…

近代的タスクシステムの構築

いつか本に書こうと思っていたが、多忙につき、本を書くどころではない状況なので、内容が風化する前に誰かの参考になればと要点だけでも書き残しておく。 いまの視点(2009年)で見たときに拙著(ASIN:4798006033)にて不足している部分を補足するためのもので…

C++ template地獄

私は、大晦日からお正月の4日間、まるごと使ってC++のtemplateを駆使して書かれたプログラムをいじり倒していただけという、とんでもないお正月だった。気がついたら4日が過ぎていた。 そのソースを書いたのは東大の人で、凄く洗練された素晴らしいプログラ…

最初に1になっているビットを探す

「下位ビットから最初に1になっているビットを探していくプログラムを書くだけの簡単なお仕事です」っていうアルバイトをする初夢を見た。 「うわーん、それ全然簡単じゃないよー!!」って下のプログラム書きながら叫んだところで目が覚めた。まさに悪夢で…

いまさらC++

私は最近はもっぱらC#なのでC++で書かなければならないシーンはめっきり減った。私がC++で書かなければならない部分はスピードが重視される部分のみなので、templateやインラインアセンブラを駆使したりはするが、その部分でそれほど込み入った設計が必要に…

実例で学ぶゲーム3D数学

O'Reillyの人から「実例で学ぶゲーム3D数学」を献本していただいた。 この本は、「ゲームプログラミングのための3Dグラフィックス数学」と同じような範囲をカバーしている。「実例で学ぶ」だけあって、C++のサンプルコードがところどころ出てくるところが違…