プログラミング

シンボル名の名前付けの時に

名前付けの時に、辞書でひける単語が別の意味で頻出する単語と被っちゃってて困ることはよくあるのだけど http://www.whiteknightlogic.net/kanjidb/search/kanjisearch.php ここで元の日本語の漢字の一文字を入れると、いい別の単語が見つかるかもしれない。

ThoughtWorksアンソロジーの

やっぱりちょっと傷心なのかもしれない今日。 それはいいとして、先日からオフの時に遊びで書いてるプログラムを、ThoughtWorksアンソロジーに載ってるエッセイで紹介されている "else 句を使わない" などのルールで試してるんだけど……かなり厳しいなぁ。 ち…

COBOL の条件式の不思議な記法はなんだったのか

COBOL の条件式の不思議な記法はなんだったのか。 あれを他の言語でシミュレーションできないか考えてちょっとやってみた。 久々の C++ なのでちょっとアレな部分が多いけど。 #include <stdio.h> template <typename T> class cComparationResult { private: typedef cComparatio</typename></stdio.h>…

自動ビルドの調べ物

仕事で面倒くさいビルド環境のプロジェクトの daily build 環境の構築をやってる。 VC6 のワークスペースと、既に謎のバッチファイルで駆動されるようになっている ARM コンパイラのプロジェクトを、最新のリポジトリからとってきて、外部から与えられたファ…

VBS などからメールを送信する

ちょっと VBS で書き始めたスクリプトからメールを送信する必要があったので調べてみた。 恐ろしく簡単に送れる。 Option Explicit Dim objCDOMessage Dim strSchemas strSchemas = "http://schemas.microsoft.com/cdo/configuration/" Set objCDOMessage = …

octet stream とかのアレ

"8bits" を表したいときの octet って、例えば他の n-bits の場合はどーよ? というわけで備忘録ですよ。 SINGLET DOUBLET TRIPLET QUARTET QUINTET SEXTET SEPTET OCTET NONET えと、6ビットまでしかデータを格納しない配列の名称をどうするかと思って調べ…

Windows の Alternative data stream(ADS) について

昼過ぎに起きて、何気なく NTFS の Alternative Data Stream について気になった。 そういえばどうやったら列挙できるんだろう?知らないな!知りたいな!と思ったら…いつの間にか日付が変わってた orz というわけで、休日を一日つぶした結果をここで発表。 …

例えばネオナチみたいなフィンランド人がごねるわけですよ。

Doxygen で、ソースコード内部は全部 ASCII で収めつつ、ドキュメントは(doxyfile の切り替えだけで)多言語に出力したいと思ったのだけど上手く行かない。 ソースコード内部を全部 ASCII っていう縛りを外せば doxyfile の ENABLED_SECTIONS で ENABLED_SECT…

ウィザードが吐き出すコメントの日本語

F 氏とウィザードが吐き出すコメントに日本語が含まれている事について話した。 今のプロジェクトみたいにヨーロッパ支社や韓国支社とソースを共有し続ける前提だと こういう日本語のコメントは本当に邪魔だ。 せめてウィザード中でコメントを英語で埋め込む…

自動生成する API リファレンスを多言語化したいが……

仕事での話。 「API 一覧表みたいな資料の日本語版ないの?」 という問い。 Doxygen で API リファレンスを自動生成してるんだけど、 担当してる仕事のソースコードはヨーロッパ支社で大半を開発して、 韓国支社がちょこちょこ手を入れたりしてる状況。 \if …

プリプロセッサからして違う

変換ガイド: Managed Extensions for C++ から C++/CLI へのプログラムの移行★スペース区切りキーワード スペース区切りキーワードは、コンテキスト キーワードの特殊なケースです。このキーワードは、既存のキーワードとコンテキスト修飾子を、その名のとお…

備忘録

toString() 文字列化されるときに呼び出される hasOwnProperty(arg) arg がそれ自身のプロパティかどうかを返す(Prototypeチェインをさかのぼらない)

最近物忘れがはげしい。

まだ27歳なのに。。。 単語とかことわざとかが既に "あー、あれあれ、あれ?" っていう感じで解ってるんだけど出てこない--; 今もその単語を探すのに手間取った。 Google 先生になんて尋ねればいいかも結構難しかった。 http://www.google.co.jp/search?q=ru…

定義されていないメソッドが呼ばれたときに呼ばれるメソッド

(トリビアの泉風に)Ruby には... 定義されてないメソッドが呼ばれたときに呼ばれるメソッドがある。 へぇ〜! へぇ〜!! へぇ〜!!! class HogeHoge def method_missing(methodName, *args) print("the method \"" + methodName.to_s() + "\" was called.\n"); …

継承ではなく包含でいい理由

今、あるライブラリを弄っていて "あ、こいつの OpenFile() ってファイルっていいながら Stream を返すんだなぁ" と思いながら、今では語りつくされた感の強い、継承よりもコンポジションを使え、という話についてふと考えた。 例えば、File は Stream を継…

ゲッターとセッターの定義用の構文

これは ECMA-Script 的に決まった構文なんだろうか? cSomeClass.prototype = { m_Name:"", get name() { return this.m_Name; }, set name(value) { this.m_Name = value; }, m_Name2:"de", get name2() { return this.m_Name2; }, set name2(value) { this…

ECMA-Script ではメソッド名とかストリップできないわけ

Java-Script/Action-Script あたりでシンボル名をストリップして小さくできないか?と聞かれたので答えたのです。 function cHogeObject() { this.DoHoge = function(msg) { alert("hoge-" + msg); }; } function OnLoad() { var obj = new cHogeObject(); o…

今更 MFC をはじめなきゃいけない男

仕事で MFC で書かれたツールをメンテすることになった。 いつも Win32 の API を直に使っていたので実は MFC をまともに使ったことが *一度も* 無かった。 そんな感じなのにいきなり イベント伝播で問題があるっぽい。 という面倒くさい状況に。 さっそくメ…

Algol-60 の GPS(GeneralProblem Solver)

C++ の template や Java/C#/D あたりの Generics の祖先は Fortran と並んで最古の高級言語と言われる Algol-60 の時点で実在したようだ。 Call by name という引数渡しの方式なのだけど、Cプリプロセッサのマクロの引数みたいに 仮引数が実引数そのままの…

Ruby のブーリアン演算子の結合規則って?

ちょっとハマった。 result = Alphabet?(ch) or Digit?(ch); こういうソースで Alphabet?(ch) が false を返し、Digit?(ch) が true を返す場合、result には何が入るか? true を期待してたんだけど……結果は false だった。 result = (Alphabet?(ch) or Dig…

リンカはオブジェクトファイル単位でしか要らないものを捨ててくれない

リンカはオブジェクトファイル単位でしか要らないものを捨ててくれないのだと知った。 少なくとも GCC とか VC6 での実験結果はそうだった。 てっきりシンボル単位でやってくれるものだと思ってた。 スタートアップルーチンから到達可能かどうかを調べるのが…

0xEFBBBF

「このゴミに見えるEFBBBFって何だ?」 メモリに読み込まれたテキストファイルの内容を見ながら思った。 これは……UTF-8のBOMの模様。UnicodeにするとFEFFとなるそうな。 っていうかUTF-8ならBOM付けるなよって気がする。8bitデータならエンディアン関係ねー…

sprintfの出力がおかしい…という時

今、何気にデバッグ表示の為に使ってるsprintfの表示がおかしいことに気付いた。 おや?と思って調べてみたら…引数に64bit整数を指定してた(32bitアーキテクチャ上で)。 あぁ、stdargって全部intとして渡すのが前提なんだっけ。 intの2倍のサイズの変数が混…

ファニョン2号に…

ファニョン2号ことビョンリョル(やっと名前覚えた--;)が 「演算子オーバーロードってヤツは使ってるのか?」 というので、説明の為に書いた。 class AValueClassExample { private: int m_MemberVar; public: AValueClassExpample() : m_MemberVar(0) { } pu…

C++でポリモーフィックなクラスのコピーコンストラクタや代入演算子をprivateにしておくべき理由

趣味で書いてるプログラムの構造を考えていた時に ふと「あれ?なんでポリモーフィックなクラスって値型にしちゃいけないんだっけ?」 って思い出せなかった(老化、ボケ)ので、備忘録として書いておく。 つーか自分の中であまりにも定石と化してしまって、 …

better-C

というわけで強制労働させられているわけだが、 先に似た作業をしていた、もう一人のプログラマことnetcrawlerから ターゲット環境用だと何故かC++の仮想関数が正しく動かないという情報を かなり前の時点で得ていた。 恐らくグローバルコンストラクタが動い…

こんな警告初めてみたシリーズ

で、VSExpressなんですが、日本語フォントだけがカラム位置がずれてやんの…… そんなわけでVC6使ってますよ--; そしてこんな警告 warning C4269: '$S4' : コンパイラが生成したデフォルト コンストラクタでの 'const' 自動データ初期化は信頼性のない結果を生じます。 意味が解…

VC++2005 ExpressでWin32アプリケーション作成

Platform SDKもインストールしろという話なのですが http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/ ここ見ながらやったらちょっとハマった。 英語版の記事 http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default…

MSへ誤植の報告ってどうするんだろうね?

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdllpro/html/_win32_interlockedexchange.aspこの変数がしれまで保持していた値が戻り値として返ります。 「しれまで」?

VC++6でboost::shared_ptrを使ったとき……

スマートポインタの真似事のソースを書いていて別の型で展開した場合にprivateなメンバ変数にアクセスできなくて、はてと思ってboostのsmart_ptr.hppを参考にしようと見てみたら………BOOST_NO_MEMBER_TEMPLATE_FRIENDSが定義されている場合(VC++6.0はこっち)だ…