プログラミング

yaml って Makefile を書くのに向いてるんじゃないか?

設定ファイルとして、私は yaml がお気に入りです。 The Official YAML Web Site なんといっても記述量が少ない。DSL もいいですが、やっぱり特化型には敵わないと思います。また、ライブラリが豊富で主要なプログラミング言語のほとんどで使えるというのも…

GUI アプリケーションのエントリポイントを並べてみる

Delphi begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Lazarus begin {$I project1.lrs} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Qt #include <qapplication.h> #include <qpushbutton.h> i</qpushbutton.h></qapplication.h>…

GUI とマルチスレッド、GUI ツールキットの振る舞い

はじめに プラットフォームによっては、GUI のコントロールはコントロールが所属しているスレッド以外から操作することは安全ではないことが多い*1。私が Windows でこのことを知ったが、どうやら大抵のプラットフォームで同じことが言える。これはおそらく…

エラーハンドリングに関する私なりのガイドライン

いつからか、通信に関するプログラミングを行う機会が多くなった。通信が成功することは奇跡なので、様々な状況で、様々な原因により、エラーが発生し、失敗する。プログラミングにおいてエラーハンドリングは重要だが、ネットワークプログラミングでも同様…

国際化ドメイン名 ( IDN ) について

国際化ドメイン名を使うと、ドメイン名にアルファベットや数字だけでなく日本語を含む様々な文字が利用出来るようになる。自分の書いたコードを、これに対応させるにはどうすればいいか?*1これは、ドメイン名から IP アドレスを得る話なので、名前解決の話…

MD5、MD4 のメモ

MD5 も Base64 の記事で書いたライブラリが大体実装している。MD4 は時代遅れなせいか、MD5 よりも実装が少ないようだ。MD4 が使われている例としては、Active Directory で活躍する Windows 統合認証などの基礎となる NTLM 認証などがある。 MD5 RFC http:/…

Base64 って結構カオス?

Base64 のライブラリをあまり調べたことがなかったので調べてみた。 RFC http://tools.ietf.org/html/rfc4648 標準で、一番あたらしいやつ http://tools.ietf.org/html/rfc3548 標準だが、obsoleted らしい http://tools.ietf.org/html/rfc2045 MIME 用 http…

C/C++ 開発のストレスを軽減する ( 2 )

今回は、Windows + ウイルスバスター環境でコードを変更せずにビルド時間を短縮する方法。 手順は簡単、ウイルスバスターを一時的にオフにするだけ。タスクトレイのアイコンを右クリックして終了、で OK。私の環境では、Visual Studio のビルド時間が半分に…

私のネイティブアプリプログラマとしての三種の神器

三種の神器といいつつ、分類毎に分けてるので三つ以上あります。前提条件としては、マルチプラットフォームに対応したネイティブアプリケーションを開発する、という感じです。 OS Mac OS X Windows Linux 言語 C/C++ Objective-C Lua IDE Eclipse Xcode Vis…

c-ares の大雑把な機能紹介

c-ares については過去の記事で少し触れた。c-ares は以下に詳細な API リファレンスが存在するが、Web サイトトップより詳しく、API リファレンスよりも大雑把な機能紹介がないのがもったいない。というわけで、c-ares を簡単に紹介しておく。まずは Web サ…

Mac OS X で GBA ゲームを作る (3)

今回は、前回ビルドしたコードのちょっとした解説です。このコードは以下のようになっています。 #include <gba_console.h> #include <gba_video.h> #include <gba_interrupt.h> #include <gba_systemcalls.h> #include <gba_input.h> #include <stdio.h> #include <stdlib.h> //----------------------------------------------------------------------------</stdlib.h></stdio.h></gba_input.h></gba_systemcalls.h></gba_interrupt.h></gba_video.h></gba_console.h>…

Mac OS X で GBA ゲームを作る (2)

今回はソースから ROM を作ってエミュレータで実行、というところまでやります。まずは必要なファイルを準備します。一から書くのは手間なので、examples/template をベースにするのが楽です。次の一連のコマンドを実行すれば準備完了です。ちなみにコマンド…

Mac OS X で GBA ゲームを作る (1)

昔からゲームを作るには GBA が一番面白そうだなと思っていた。開発環境が無料で手に入るし、エミュレータはいろんなプラットフォームで出回っているのでマルチプラットフォームへの対応が不要といってもいいだろう。まずは開発環境を整える。以下を参考にし…

サーバアプリの書き方

サーバアプリの書き方の話。私がこれまで書いたことのあるのは以下のような物。 Linux TCP/IP のアプリケーションサーバ SSL over TCP/IP のアプリケーションサーバ Windows 標準ユーザから特権を要する操作を実行するための名前つきパイプサービス どんなサ…

C/C++ 開発のストレスを軽減する

少し前に Eclipse から NetBeans に移行したが、再度 Eclipse にもどることにした。なぜかというと、Neteans は SVN コミットで日本語コメントを入れるとエラーになったりしてストレスを感じていたのだ*1。ありえないよね、もったいない・・・。いろいろと試…

How to reboot android phones programmatically

Android 端末をプログラムで再起動させる方法について。まず、プログラムでということに関わらず Android 端末を再起動させる方法はいくつかあります。 HOME + CALL + POWER キーを同時に押下する ボタンの三つ同時押しですね。Xperia ( SO-01B )、Nexus One…

boost::mem_fnでハマった

コールバック関数のインスタンスメソッドを使いたい、ってのはよくあることだと思う。その方法として、boost::mem_fnをよく使っている。コールバック関数のUserParamに、インスタンスのポインタをvoid**にキャストして登録、 コールバック関数では、それをイ…

コーディングガイドラインとコーディングの面倒くささとタイピング速度

この本を読んでいる。組込み現場の「C」プログラミング 標準コーディングガイドライン作者: 福岡知的クラスタ(第1期)組込みソフト開発プロジェクト,福田晃出版社/メーカー: 技術評論社発売日: 2007/10/27メディア: 単行本(ソフトカバー)購入: 3人 クリック…

C/C++ on Flash

次世代Flash Playerバージョン10、コードネームAstorでよく見かける「C/C++ on Flash」というキーワードが気になる。 http://labs.unoh.net/2007/10/adobe_max_flash.html 気になるのは以下の通り。 * C/C++で書いた機能をどうやって使えるようにするのか * …

ActionScript 3.0でコルーチン、coroutine

いやー、やってる人はやってますねー(しかもかなり昔から!!)。 http://www.be-interactive.org/index.php?itemid=6onEnterFrameのVirtualMachineのexecuteメソッドを呼び出して、プログラムカウンタを増加させていくわけですか・・・。 なるほどなるほど…

ActionScript 3.0でデストラクタがないこととFlexでGCが呼び出せないことについて

少し見ただけだが、見あたらない。 ActionScript 3.0にはデストラクタがない FlexにはGCを明示的に呼び出せない せめてGCは呼びたい。情報が公開されていないだけで、実は存在するのだろうか?でも、AIRだとこうはいかないはずだ。 どういうAPIが提供されて…

Ruby

プログラムのビルドやデプロイ用のスクリプトを書く言語について検討中。Rubyをちょっとだけさわってみた。 Dir::globと配列を使うようなコードを少し書いてみたが、 この言語は、一時変数が嫌いなのか?と感じた。一時変数をつかおうとすると、途端にコード…

曖昧さの解決

Flexでコードを書いていてはまったときのメモ。 package info.o440 { class Shape { public function area() : Number { throw IllegalOperationError("..."); } } class Circle extends Shape { public override function area(): Number { ... } } class S…

WebKitをビルドしようとして失敗したときのメモ

開発環境はCygwin 提示されたCygwinを使う QT(キュート)を使っている SkypeもQTだったっけ? コードはSubversionで管理 ダウンロードできるコードもSVN管理用データ入り 200MBオーバー 解凍に一時間以上かかった(MacBook) こんな巨大なコードをこうして手に…

WebKitのビルドの続き

update-webkitしたらビルドに成功 run-safariしたらSafariが落ちる 他に目に見えて動かせそうなものを探す 見つからない QTを使った何かがあることを知る QTをダウンロード中・・・ 早く動くところまで持って行きたい。 SwiftはQTWebKit.dllを使っているけど…

多態性

多態性について、他人に説明する機会があったけど、まったくうまく説明できなくて困った。 むしろちゃんと理解できてないだけじゃないか?とも思ってしまったので、勉強しなおそう・・・。

親愛なる開発者へのプチ・リバースエンジニアリング

http://satoshi.blogs.com/life/2007/05/ui.html これを見て、どうやって作るんだろう?と思う人は多いはず。 残念ながら、このページからは検索結果に直結するキーワードがない。 唯一「google:flock」というキーワードが与えられているが、 これはこの実装…

xtalが気になる

「xtal」というスクリプト言語が気になっています。 Luaよりも、プログラマ向け言語色が強い気がする*1。 ゲーム組込用途っぽく、余分な機能がいっさいないのがよさげ。個人的な希望としては、 バイトコンパイルしたい デバッガがほしい IDEがほしい 前から…

開発環境と言語の選択

ここんところDelphiとは全く縁のない生活をしていて、C++でコードを書いている。昔Delphiで書いていたときの苦い思い出として、メモリリークを修正するのにすごく時間がかかった*1、ということがあった。それ以来ぼくはポインタが嫌いになり、メモリリークチ…

Mysaifu JVMに興味を持つ

軽量のJavaVMがあれば、それも面白そうだなと思って探してみたら、幸運にも日本人が作っているのがあった。 Mysaifu JVM - Windows Mobile用Java仮想マシンソースコードを落としてビルドしてみたら、Releaseビルドは259,072バイト、253KBだった。 UPXで固め…