プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 このページをアンテナに追加 RSSフィード

 iTunes Music Store(Japan) なかのひと あわせて読みたいブログパーツ
|

0001 | 00 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2008 | 01 | 02 | 03 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 |
2010 | 03 | 04 | 06 | 07 | 09 | 10 | 11 |
2011 | 01 | 02 | 10 |
2012 | 04 |
2013 | 01 | 05 | 06 | 07 | 08 | 10 |
2014 | 02 | 03 | 05 | 09 |
2015 | 04 |
2016 | 09 | 11 | 12 |
はてな一覧
アンテナに追加
私のアンテナ
私のダイアリー
私のアーカイブ
私のアイデア
私のブックマーク
私のグループ
私のキーワード
ニュース系、今まで続いているシリーズモノの読み物
dKingyo Utility Toolkit Projectのリリース情報
やっぱり暗号化は大人の味(笑)
プログラムのパッキング方法を調べよ
ココが厳しいよMinGW
ライブラリアン通信
ゲームプログラミングどうしよう
CRCについて
ビット演算練習
d金魚の今更Ajax
Windows Tips
VC6 Tips
Win32 WTL Tips
Ruby for C++ User
Ruby Tips
今日のRubyで嵌った事
正規表現PIECE
書きかけ
続く・・・

私のダイアリーの人気記事
新しくブックマークされた記事


あまり、役に立たなそうな個人的に調べた情報や妄想に耽った事、今 勉強している事ヒソヒソと公開していたりします。 | 登録してくれている方々 | d金魚にメール | 当サイトは640x480の画面解像度に対応しています。
日記へのリンク、アンリンクはフリーですが、selfタグのついている部分のコンテンツの引用はご遠慮願います。ご協力よろしくお願いします。


 | 

2006-01-31 デバッグ脳

[][][]d金魚の頭の中のデバッグ回路 d金魚の頭の中のデバッグ回路を含むブックマーク d金魚の頭の中のデバッグ回路のブックマークコメント

http://d.hatena.ne.jp/xor/20060204/p3

より、

どこでエラーが発生しているのか頭の中で解きなさいとの事。

なるなる。

どれどれ、フローチャートは以下のような感じだ。

  • 見た感じ、割り算を使っているので多分0除算、よって除算部を念頭に頭に状態遷移を作りつつ見ていく。
  • 着目したのが以下の行
    6  b := (a+c)/b;
    9  b := (a/b)+c;
    11 a := (a+2)/(b-3);
    12 b := (b-1)/a;
    17 a := (c+5)/(a-2);
    18 b := (a+c)/b;
    19 c := (c/b)+1;
    20 a := c/a;
    
  • まじめに計算して考えていくと7番目くらいで記憶破壊。別のアプローチを考える。
  • 4行目のa = a + b ということだから5行目はc = c+b-(a+b)みたいに、足したりひいたりを頭の中でやりやすいように持っていく。 それを頭の中でVisualizeする。*1
  • 前の行の計算結果が次の計算式に入り込んでいることが多い。これから割る数が0になる可能性のある状態を直感で予測しておく。
  • ゴメン、IQ人並み以下*2のうちには無理だったわ・・・9行目あたりで記憶破壊が起きる。

ってか、私はライブラリばっかり作成する方なのでこのようなプログラムの組み方はなかなかしないのだ。

というより、意図的にこのような状態のプログラムになるのを避けている気がする。

つか、眠い!!!寝かせて!!!

(はい、見苦しい言い訳でした・・・)

ちなみに0で割ることについて熱く書いているサイトを発見http://www.uja.jp/contents/math/divbyzero.html

*1:いま、ちょっと思ったが、この頭の中でVisualizeする技能って関数型プログラミングに必要な気がしてならない。

*2http://d.hatena.ne.jp/studiokingyo/20041103

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060131

2006-01-30 デースケドガーな時には自己診断 part20

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060130

2006-01-29 ライブラリアン通信 VOL.6

studiokingyo2006-01-29

[][]VC6 Tips / fatal error C1076: コンパイラの制限 VC6 Tips / fatal error C1076: コンパイラの制限を含むブックマーク VC6 Tips / fatal error C1076: コンパイラの制限のブックマークコメント

boost::spiritでini parserを作っていたら

fatal error C1076: コンパイラの制限 : ヒープの領域を使い果たしました; 上限を設定するために /Zm オプションを使用してください。

yaneSDK2ndか3rdとかでよく出ていた。このエラー

ここ数年、比較的そういう風にライブラリは組んでいなかったので久々に見たのでメモってみた。

で、対処法はこのようにする。(VC6の場合)

http://f.hatena.ne.jp/studiokingyo/20060129081508

[][]C言語汎用ライブラリ C言語汎用ライブラリを含むブックマーク C言語汎用ライブラリのブックマークコメント

http://www.ne.jp/asahi/ajara/kojara/

にてダウンロードできるC言語汎用ライブラリってすごいなぁ〜と思う。

なんか見た感じライブラリ本体がすごく丁寧に作られている。

また、ドキュメントや資料もしっかりしていてすばらしい。

後でいじくりまわしてみる予定。

だけど・・・ちょっとライセンスが見当たらないです。え、どういう条件で使用すればいいんだろうか?日本人的良心って奴ですか?

[][][][][]VC6 Tips / VC6でfor内の一時変数を有効にするマクロ VC6 Tips / VC6でfor内の一時変数を有効にするマクロを含むブックマーク VC6 Tips / VC6でfor内の一時変数を有効にするマクロのブックマークコメント

旧:プログラムを学ぶ上でソースコードがすべての真実である


http://d.hatena.ne.jp/janus_wel/20060126#1138251848

にて

私も同じような経験があった。ドキュメント自体にはエラーチェック機能がないのでバグ*1が起こってもそれ自体に気づかないことが多い。私は経験上、やっぱり慣れてきたらソースコードから学び取るのが一番効率がいいと感じる。*2

すなわち、プログラムを学ぶ上でソースコードがすべての真実である」と感じている次第である。*3ちなみにプログラムを組む上でそのコンパイラインタプリタ欠陥があったとしてもすべて真実だ!ということである。(そんなコンパイラの為にSTLPortソースコードは回りくどい素晴らしいことをしてくれていたりするのである)

例:

VC6の場合

for(int i=0;;){
}
for(int i=0;;){
}

変数再定義とされてコンパイルできない。*4 そんな時に使うマクロが以下のような感じのもの。

#define for if(0){}else for

以上、VC6によるバッドノウハウでした^^;

*1:ここでの意味は誤字脱字、事実無根

*2http://d.hatena.ne.jp/studiokingyo/20060112#p2

*3:完成されたソースコード(有名なライブラリ(zlib,glib)等)を読んで学んでみるのがいいと感じる

*4C++の規格としては文法的に合っているはずなのだが

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060129

2006-01-28 std::copy_if

[][]std::copy_ifが標準に入っていないので自分で実装しよう! std::copy_ifが標準に入っていないので自分で実装しよう!を含むブックマーク std::copy_ifが標準に入っていないので自分で実装しよう!のブックマークコメント

http://d.hatena.ne.jp/parasporospa/20060129/1138487309

より。

http://d.hatena.ne.jp/a_little_bit/20050911#c

にて私も気づいた。あまりstd::copyやらstd::swapやらstd::for_eachやらをあまり使わない派だったりするので気づくのは遅かった^^;

ちなみにdKingyo Utility Toolkitのhelperには以下のソースが同梱されている。*1

続きを読む

*1:まだリリースしてはいないが・・・^^;

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060128

2006-01-27 このコードの書き方はアリか?

[][][][]このコードの書き方はアリか? このコードの書き方はアリか?を含むブックマーク このコードの書き方はアリか?のブックマークコメント

いちいちエラー表示関数を書きたくないし、下にthrough out したいときだった。

  {
    //文字列を取得
    CEdit edit = mEdit;
    std::string str;
    std::string aout;
    {
      if(false==GetWindowTextEdit(edit,str)){
        goto ERR;
      }
      if(false==GetWindowTextEdit(mOutputEdit,aout)){
        goto ERR;
      }
      goto END;
ERR:
      dODS("GetWindowTextEdit() error");
      return 0;
END:;
    }

ちなみに最後の終了目印はEND:でいいはずなのだがEND:;としないとVC6ではコンパイルが通らない。何故だろう?

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060127

2006-01-26 2006年1月の最高の画像 + KbMediaPlayerの最高のエコー

studiokingyo2006-01-26

[]さすがにjokeだろうけどorzってなっちまう写真 さすがにjokeだろうけどorzってなっちまう写真を含むブックマーク さすがにjokeだろうけどorzってなっちまう写真のブックマークコメント

http://f.hatena.ne.jp/takuya7216/20060126065333

すばらしいセンスだ!nice joke!!!*1

受験生よ!受験は時の運だよ。そんなに重く考えなくてよし。

そしてご家族の皆さんもそんなにプレッシャーかけなくてよし。

さらに先輩から聞いた話、高望みする奴は浪人しても伸びないそうだ。現状満足で行くべし!なのかな?

まぁ、堅くならないで肩の力を抜いて自然体でがんばって^^

[][][]KbMediaPlayerでの最高のエフェクトエコーの設定 KbMediaPlayerでの最高のエフェクトエコーの設定を含むブックマーク KbMediaPlayerでの最高のエフェクトエコーの設定のブックマークコメント

私はKbMediaPlayerでは画像のように「時間:200」「強さ:35」が一番気に入っている。

皆さんはどうだろうか?

*1:だが、この人が本気でこれを掲げたのならば私はドン引きである。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060126

2006-01-25 目標達成に対する事

[][]目標達成に対する自己をみつめる。 目標達成に対する自己をみつめる。を含むブックマーク 目標達成に対する自己をみつめる。のブックマークコメント

  • 達成欲求の高い人は 成功した時には、能力・努力にのおかげだと思う。 失敗した時には努力が足りなかったと思う。
  • 達成欲求の低い人は 成功した時には運や課題が簡単だったからと思う。 失敗した時は能力のせいだと思う。

私は達成欲求が低いものになっている気がした。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060125

2006-01-24 ライブラリアン通信 VOL.5

[][][]LuaにしようかPAWN (Small)にしようか・・・ LuaにしようかPAWN (Small)にしようか・・・を含むブックマーク LuaにしようかPAWN (Small)にしようか・・・のブックマークコメント

コンフィグファイルは皆さんどうやっていますか?part3

Small

Small is a simple, C-like, language. だそうです。初心者にも優しい言語ということで設計されたようですね。中間コードに1回コンパイルしてから実行するので高速、ということだそうです。ただ、いろいろな feature を見る限りでは組み込み python で十分では、という感触が。特定業界では日本でも一気にメジャーになりつつありそうな感触も得つつ。表には全く出てきませんが(^^;

最近名前が↓に変わりました。


PAWN

もともと SMALL と呼ばれていたスクリプト言語です。Where is PAWN used? を見ると、PS2, Xbox, GCゲーム中に組み込まれていたり、iPod の中に組み込まれていたりしているようです。実績があるというのはすばらしいことです。

関連研究メモ

ソフトウェアを外部から制御するスクリプト。これはアプリケーションプログラマの夢みたいなものであったと感じる。*1


昔々、(2003〜4年頃だと思った)BulletMLLuaで拡張されたり、様様な所でLuaが話題になっていた時期があった。*2

その時に私はLuaを使おうと思ったがC言語と文法がかぶらないので躊躇していた。

そこで見つけたのがSmall*3であった。


C-likeと公式サイトに書かれていたのでこれはすばらしいなと思っていた。

だが、ライブラリ製作に熱中していること+受験期というのも重なって結局どっちも資料を見るだけで触らなかったのだが、なんか実績がある!と言われると最近までLua派だったのがPAWNもおいいなぁと思ったり^^;*4


ちなみに最近までLua派だった理由はid:gamesyokunin氏が

http://d.hatena.ne.jp/gamesyokunin/20050307#p1

http://d.hatena.ne.jp/gamesyokunin/searchdiary?word=small

最終的にLuaに乗り換えてしまった事が原因だったりする。

私の知る限り日本で唯一のSmall情報を発信するユーザーだったのだが・・・これではサラバSmall!って感じでだった^^;


さて・・・ぶっちゃけ今の所どっちでもイイのだが・・・実際使ってみないとレポートできませんよ。と・・・

[]プログラマな学生の本棚はどこも変わらないようで^^; プログラマな学生の本棚はどこも変わらないようで^^;を含むブックマーク プログラマな学生の本棚はどこも変わらないようで^^;のブックマークコメント

http://d.hatena.ne.jp/zukkun/20060124#p1

より。ちょっと親近感。

[][]プログラマ専門用語 サニタイズ プログラマ専門用語 サニタイズを含むブックマーク プログラマ専門用語 サニタイズのブックマークコメント

関数内に流れてくるデータに関してフィルタをかけることをサニタイズというらしい。

なーる。私は概念しかわからなかったから普通に「フィルタかける」って言っていたよ。*5

[][]数学できる人はすばらしい! 数学できる人はすばらしい!を含むブックマーク 数学できる人はすばらしい!のブックマークコメント

http://science4.2ch.net/test/read.cgi/math/1099669156/

via http://d.hatena.ne.jp/kmt-t/20060125#1138178053

私もそう思います。ってか真に数学やっている人はすばらしいよ。泣けちゃうほどに。

*1http://d.hatena.ne.jp/studiokingyo/20051231

*2:ちなみにそんな中libBulletMLの作者id:shinichiro_h氏はIoという言語に目を付けていた。http://d.hatena.ne.jp/shinichiro_h/20040731#p1

*3:当時の名前

*4:ってかPAWNってPWANって間違いません!?

*5http://d.hatena.ne.jp/studiokingyo/20050307

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060124

2006-01-23 ソフトウェア製作初仕事也!

studiokingyo2006-01-23

[][][]テーブルアートやカラーコードを出力するソフト テーブルアートやカラーコードを出力するソフトを含むブックマーク テーブルアートやカラーコードを出力するソフトのブックマークコメント

作ってみました。

もう少しでソース付きでアップロードする予定。もうちと待ちーね。

ちなみに出力結果。(ちょっと重い)

続きを読む

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060123

2006-01-22 ライブラリアン通信 VOL.4

[][]Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。 Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。を含むブックマーク Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。のブックマークコメント

http://d.hatena.ne.jp/higepon/20051229/1135837892

via http://d.hatena.ne.jp/toge/20060118#1137603775

なーる。でも見た感じ・・・Win32じゃないのね・・・・゚・(ノД`)・゚・。

[]充電電池の充電の仕方 充電電池の充電の仕方を含むブックマーク 充電電池の充電の仕方のブックマークコメント

http://raevatain.blog9.fc2.com/blog-entry-187.html

より

携帯電話は電池を使い切ってからが定石だったらしい。

ニッケル水素電池は使い切ってからだがリチウムイオン電池は使い切らなくてOKらしい。

で、最近携帯電話ニッケル水素なんてのは使っていないらしいので別に気にしなくていいらしい。なーる。

関連:google:AVL木 C言語な方へ・・・もうちょっと待ってや・・・

[][]最近発見したライブラリアンなら見よう!なサイト part2 最近発見したライブラリアンなら見よう!なサイト part2を含むブックマーク 最近発見したライブラリアンなら見よう!なサイト part2のブックマークコメント

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060122

2006-01-21 デースケドガーな時には自己診断 part19

studiokingyo2006-01-21

[]マウス検定してみた part2 逆襲のマウス検定 マウス検定してみた part2 逆襲のマウス検定を含むブックマーク マウス検定してみた part2 逆襲のマウス検定のブックマークコメント

前回の記事:(http://d.hatena.ne.jp/studiokingyo/20060118

よっしゃ!二級ゲッツ

・・・

・・

なにやっているんだろう 私・・・おrz!!

[][][]最近興味あるもの「殿様商売」「マルチコア」 最近興味あるもの「殿様商売」「マルチコア」を含むブックマーク 最近興味あるもの「殿様商売」「マルチコア」のブックマークコメント

買いたくてもなかなか買わせてくれない、殿様商売的なECサイトを教えてください

http://www.hatena.ne.jp/1137745229

ソフトウェアの並列化に関する勉強をしたい*1

http://www.hatena.ne.jp/1137708903

日本人の開発したCGIフリーソフトは、なぜいつまでたってもEUCやShift-JISに固執し、Unicodeベースに作成しないのでしょうか。

http://www.hatena.ne.jp/1105667960

*1:のっかりたいけど100ポイントしか持ってないから乗っかれなかったよ。おrz!!

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060121

2006-01-20 External library 投下!

[][][]External library投下! External library投下!を含むブックマーク External library投下!のブックマークコメント

dKingyo Utility Toolkit Projectが使用している外部ライブラリを公開します。

  • zlib 1.2.3
  • libpng1.2.8
  • libmng 1.0.9
  • libjpeg 6b
  • libungif
  • libtiff-3.8.0
  • Little cms 1.15
  • Developer's Image Library 1.6.7
  • libogg-1.1.3
  • libvorbis-1.1.2
  • Open Dynamics Engine 0.5
  • Fluid Studios Color Picker 2.4
  • expat-1.95.8
  • sol2000

等が入っています。

VC6にてコンパイル済みのパッケージソース込みのパッケージを公開します。それでは、良いソフトウェア製作を

http://sourceforge.jp/projects/dkingyoutility/files/?release_id=18563#18563

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060120

2006-01-19 dKingyo Mersenne Twister Library 投下!

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060119

2006-01-18 デースケドガーな時には自己診断 part18

studiokingyo2006-01-18

[]マウス検定してみた。 マウス検定してみた。を含むブックマーク マウス検定してみた。のブックマークコメント

http://portal.nifty.com/special05/02/05/

via http://d.hatena.ne.jp/softether/20060114#p1


どーれどれ^^

右のとおり・・・おrz!!

マウスは操作慣れてないようです。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060118

2006-01-17 AVL木 part2

[][]AVL木 一年立った今ようやく作り終わってないことに気づく AVL木 一年立った今ようやく作り終わってないことに気づくを含むブックマーク AVL木 一年立った今ようやく作り終わってないことに気づくのブックマークコメント

前回の記事:(http://d.hatena.ne.jp/studiokingyo/20041213

HDをいじっていたらAVL木のソースが出てきて

そういえば実装記っぽいのを書いていた記憶があったので過去ログをあさっていたら出てきた。

そうだったよ、頑張っていたけどメモリリークととある条件によるエラーが発生してしまっていたのでいじっていなかった。

でも、まぁ、資料は集めに集めていたわけだからぽこっと作ってみる予定。

実装し終わったらRed Black Treeと戦わせて遊んでみる予定(なんか、表現が稚拙だなぁ)

関連:

http://d.hatena.ne.jp/studiokingyo/20050216

http://d.hatena.ne.jp/studiokingyo/searchdiary?word=%a5%cb%ca%ac%cc%da%a4%cf%a4%c9%a4%ce%a4%e8%a4%a6%a4%cb%c1%c8%a4%df%a4%de%a4%b9%a4%ab%a1%a9

[][]AVL木をlibdsの力を借りて移植 AVL木をlibdsの力を借りて移植を含むブックマーク AVL木をlibdsの力を借りて移植のブックマークコメント

前回の記事でも紹介したが、

LibDS: A Generic Data Structures Library

http://libds.sourceforge.net/

のavltree.cを移植してキーのコンペア部をunsigned int限定にして高速化して移植してみた。

さてさて、実力の程は?

続く・・・

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060117

2006-01-16 dkutil_c 0.210 投下完了!!!

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060116

2006-01-15 ライブラリアン通信 VOL.3

[][][][]FSMの記述の仕方 FSMの記述の仕方を含むブックマーク FSMの記述の仕方のブックマークコメント

最近Visual Studio 2005のサイトなんか見に行ったりしてちょっと注目の記事があったので載せてみようと思う。

http://www.microsoft.com/japan/msdn/net/aspnet/aspnet-finitestatemachines.asp

見事にFSMをVisualize(視覚化)しているじゃないか!すばらしい!

昔からこういう機能は欲しかった。

いわいる状態遷移の穴が無いものが作れるわけだらこれは全ライブラリアンの夢だと思う。

で、その夢をかなえてくれるツールがずーっとまえから存在していたりする。

前にも紹介したが(http://d.hatena.ne.jp/studiokingyo/20050916)それが

State map compiler:

http://www.s34.co.jp/cpptechdoc/misc/smc/

http://www.s34.co.jp/cpptechdoc/misc/smc/smc_j.html

で、最近、それっぽいのはどうなっているんだろうと思って調べたら

http://smc.sourceforge.net/

なんか、すんばらすぃ〜感じなのがあるじゃありませんか!!


これさえあればTCPみたいな状態遷移の激しい機構も穴なしで実装できるんじゃないかなと思う。

いつかレポートしてみたい。(この「いつか」が曲者で既に「いつか」発言をしてから1年経過している記事もあったりする・・・おrz!!)


追記:なんか探していたら説明している日本語サイトと見つけました。

http://www.radiumsoftware.com/0401.html#040130

http://www.radiumsoftware.com/0401.html#040131

http://www.radiumsoftware.com/0402.html#040202

この考察は感慨深い。

私はバグを出さない=状態遷移の穴を出さない」を信条としているので「マッピングを自動化することにメリットを見出せるのならば」に該当する。

皆さんはどうなのだろうか?


関連

http://ja.wikipedia.org/wiki/%E6%9C%89%E9%99%90%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3

[][][]最近発見したライブラリアンなら見よう!なサイト part2 最近発見したライブラリアンなら見よう!なサイト part2を含むブックマーク 最近発見したライブラリアンなら見よう!なサイト part2のブックマークコメント

2006-01-14 d金魚は100円を手に入れた。

[]PHPのRAND関数乱数の精度について調べてみた。 PHPのRAND関数の乱数の精度について調べてみた。を含むブックマーク PHPのRAND関数の乱数の精度について調べてみた。のブックマークコメント

ちょうど、Mersennue Twisterについていろいろ調べていること*1があって

http://www.hatena.ne.jp/1137333023

のような質問が出てきたのでバサッと一刀両断してみた。(いや、詳しいサイトを運営しているかたがたのおかげですけどね・・・)

なんか、100ポインタをいただいちゃったよ:−) あざっす 恐縮です♪ヽ(・_・)ゞ

これでやっとはてなサービスのうちの有料オプションの一つを1ヶ月くらい利用できそうです。

あんな感じの質問だったら私にも答えられるかもしれないんで人力検索先のURLコメントにでも書いてくれれば私でよかったら飛んでいきますよ^^


と、まぁ、ちょっと100ポインタは個人的にうれしかった。*2


どうでもいいことだけど、はてなポイントって変動相場制に何でしないんだろう?(てか危険だね・・・)変動相場制だったら超〜〜〜!!!!!面白くなりそう!?そう思いません?

*1http://d.hatena.ne.jp/studiokingyo/20060107

*2:これをオフセットに加えたらfree時にエラー吐いちゃうよ(笑)と、Cgengerにしか分からんオタクなボケをかましたトコロで・・・

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060114

2006-01-13 stdoutとstderrの出力を両方リダイレクトする。

[][]stdoutとstderrの出力を両方リダイレクトしたい! stdoutとstderrの出力を両方リダイレクトしたい!を含むブックマーク stdoutとstderrの出力を両方リダイレクトしたい!のブックマークコメント

実は普通にリダイレクトすると

doxygen_out.bat > output.log

stderrに出力されたものがoutput.logに記録されない。

出来ればstdoutとstderr両方をログに出力したいのだがどうにかならないものだろうか?

と感じる。

解決:hoshu氏*1がリダイレクトについての詳細な情報をコメントしてくださいました。

続きを読む

hoshuhoshu 2006/01/16 00:13 この例ですと、まとめて出すなら、
doxygen_out.bat > output.log 1>&2
でlogに標準出力と標準エラーの内容が書き込まれます。
分けて出すなら、
doxygen_out.bat > output.log 2> output.err
で、logに標準出力、errに標準エラーの内容が書き込まれます。

あと、ここにリダイレクションについて詳しく書かれています。
http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/ja-jp/redirection.asp

studiokingyostudiokingyo 2006/01/16 00:46 返信ありがとうございます。リダイレクトにそのような方法があるのをはじめて知りました。その方法で大量に吐かれるdoxygenのwarningメッセージをつぶしていけそうです。では^^

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060113

2006-01-12 ライブラリアン通信 VOL.2

[][][]std::dequeの実装が気になっています。 std::dequeの実装が気になっています。を含むブックマーク std::dequeの実装が気になっています。のブックマークコメント

前略

実は高校生の間ずーっとstd::dequeの実装が気になっていたんです。(はーと)

ってか最近になってcircular queueとして実装されていることを知った。*1

http://d.hatena.ne.jp/Cryolite/20040712#p3

より。

氏のサイトの結果を見るとどうも実装によってはvectorとあまり大差ないと書いていた。

そうだったのか おrz!!

が、実装によりマチマチだと思うのでこの際、私が独自のC++版dequeを作ろうと思った。

さっそくだが、

データ構造詳細

typedef std::list<static_container::vector<v> > deque_base;


また、static_containerは

google:static_contaierは、動的確保を一切行わず、静的確保によって STL 互換コンテナを実現することを目的としている。 static_container doxygen説明書


といったC++によるテンプレートライブラリである。

ちなみにこれと同じ感じ。

typedef std::list<boost::array<T> > deque_base;


完成したらそれをC言語移植すればOKかなと。でも、なんか、面倒なので気が向いたらって方針で・・・(結局いつもと変わらないノリで・・・)

草々

[][]C MAGAZINEが2006年3月号で休刊!? C MAGAZINEが2006年3月号で休刊!?を含むブックマーク C MAGAZINEが2006年3月号で休刊!?のブックマークコメント

「 C MAGAZINE 」が3月売で休刊。
....
'89年の創刊以来18年。
3月売で通巻199号の「 C MAGAZINE 」がこのまま消えるのは誠に惜しい。
アルゴリズムやゲームプログラミングのコアな記事が載る雑誌はコレだけだ。
誰かが作った道具を使う事や使わせられる事ばかりで、 自らが創る事や考える事が必要の無い便利な世の中では有りますが、 それだと脳ミソが退化するばかりですな。
書籍やWebサイトに「 C MAGAZINE 」ブランドが残る可能性は高いし、 「雑誌 C MAGAZINE 刊行継続の可能性もゼロではない」とだけお伝えしておこう。

http://www.fx-it.com/kihon/top.html

なーる。確かに「誰かが作った道具を使う事や使わせられる事ばかり」な記事が多い雑誌が多いのは大いに納得。だから私はここ数年コンピュータ系の雑誌を買ったことがない。直にソースコードを読んだり、いじったり、移植したり、インターネット上の論文や資料を使ったほうが勉強になっているからだ。


だけど・・・どうもなぁ。さびしいねぇ。なんか、愛着があったんだけどな。

つっても予算の都合により1回しか買ったことないのは秘密である。

[][]最近発見したライブラリアンなら見よう!なサイト part1 最近発見したライブラリアンなら見よう!なサイト part1を含むブックマーク 最近発見したライブラリアンなら見よう!なサイト part1のブックマークコメント

[]google:VC++ メモリリーク arrayで検索している人へ google:VC++ メモリリーク arrayで検索している人へを含むブックマーク google:VC++ メモリリーク arrayで検索している人へのブックマークコメント

google:boost::arrayはstaticなのでメモリリークしませんよと・・・

って違いますよね。(多分)

VC++でのメモリリーク検出方法は

http://studiokingyo.fc2web.com/dxlib/tutorial/index.html#crtdbg

です。がんば!

*1:どうでもいいことだけど、circlarってcirculerとかcirculorとかに間違えたりしません!?

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060112

2006-01-11 Mersenne Twister Optimized in ... part3

[][][]Mersenne Twisterのライブラリ作ってたんだけどな・・・ Mersenne Twisterのライブラリ作ってたんだけどな・・・を含むブックマーク Mersenne Twisterのライブラリ作ってたんだけどな・・・のブックマークコメント

Mersenne Twister のライブラリ作っていたのに知らぬ間にRed Black Treeのライブラリを作っていました。

なぜか!?

それはSSEを使うためのmallocで確保したmemoryを16byteにalignするライブラリを作ろうとしていた。

offset計算でインクリメントとかされて汚されてしまったポインタでも上手く開放できるようにするライブラリを作るためでその為にはすでにmalloc済みのメモリの保存領域とその他の情報を保存するコンテナ機構が必要だった。*1

なのでここは一つSTLPortにも採用されているRed Black Tree*2をC言語で自分好みに実装して見ようと思った次第だ。

で、どうにかこうにか移植が完了したのでちょっと性能テストしてみた。

続きを読む

*1:いまさらながらこれは無駄な機構だと思える。

*2http://d.hatena.ne.jp/studiokingyo/20051206

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060111

2006-01-10 CRCについて part3

[][]CRC64?crc-64bit versionってとこか? CRC64?crc-64bit versionってとこか?を含むブックマーク CRC64?crc-64bit versionってとこか?のブックマークコメント

[][]I'm looking for fastist crc implementation in 32/64bit I'm looking for fastist crc implementation in 32/64bitを含むブックマーク I'm looking for fastist crc implementation in 32/64bitのブックマークコメント

実は、Win32/Win64環境での最速のcrcソースを探している。

アセンブラでローテクガシガシな世界最速のcrcソースコードだ。

出来れば様々なバージョンが欲しい。

ご存知の方は是非コメント情報を寄せてくれると非常に嬉しい。

[][][]How to Polynomials to decimal number How to Polynomials to decimal numberを含むブックマーク How to Polynomials to decimal numberのブックマークコメント

そう!数学が至極苦手な私は多項式から10進数に変換する方法がわからなかったりする。

X^16+X^12+X^5+1が何故4129になるのかさっぱり分からない・・・おrz!!

どちら様か参考サイトキーワードを教えていただけないでしょうか。

追記:スマン、4129はX^12+X^5+1の計算結果だった。多分16bit内に収めるためだと思われる。はて、ソースコードにはこの値が使われてる。うーむ。もう少し詰めてみる必要がありそうだ。

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060110

2006-01-09 ライブラリアン通信 VOL.1

[][][]標準STLとはなんぞや? 標準STLとはなんぞや?を含むブックマーク 標準STLとはなんぞや?のブックマークコメント

http://d.hatena.ne.jp/keyword/STLport

の説明にて

標準STLより読みやすく

・・・

いや、ソースコードが読みやすいって事だと思うのですが、そうかな?

と疑問に思った次第。(もしかしたら読みやすいバージョンSTLPortがあるのかもしれない!?)

私が知る限りSTLPortソースコードは非常に読みにくい部類に入る。*1

じゃぁ、ここで問われている標準STLって実際どのようなソースコードなんだろうと思ったりする。

実は標準STLをしらなかったりする。いったいどのSTL*2の事なのだろうか・・・ご存知の方はコメントをくれると嬉しい。

VC6付属STLソースの方が格段に読みやすかったが・・・*3

[][]id:Cryolite氏のダイアリーにて id:Cryolite氏のダイアリーにてを含むブックマーク id:Cryolite氏のダイアリーにてのブックマークコメント

http://d.hatena.ne.jp/Cryolite/20050205#p1

より。

なんで、もっと速く読まなかったんだろうと後悔 おrz!!

ちなみにd:id:Cryolite氏のダイアリーではライブラリアンな人にはぐっとくる話題を中心に執筆されている。

当初、(というか今でも)氏の話題には奥が深すぎてがんばってついていくのがせいっぱいだったりする。

*1:それぞれ読みやすさや読みにくさに感じ方の違いはあると思うけど。

*2:どの実装

*3:ちなみにVC6付属STLバグ持ちで有名 http://www.nantekotta.com/stl.html が詳しい

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060109

2006-01-08 Mersenne Twister Optimized in ... part2

[][][]Pentium4最適化されたMersenne Twisterソースコードを読む! Pentium4に最適化されたMersenne Twister のソースコードを読む!を含むブックマーク Pentium4に最適化されたMersenne Twister のソースコードを読む!のブックマークコメント

私が知る限り国内最速の実装と思われる*1MT乱数ソースコードを見てみた。(確か最終更新日2002年度だったのでSSE3は使ってなさそうな気がする。)

http://homepage1.nifty.com/herumi/

にてダウンロードできるPentium4最適化されたMT乱数成ルーチンの一部に

私にとっては珍しいコードがあった。

char *mallocPtr;
myMT_t *mt;
const int alignMask = 15;  /* = 2^n - 1 */
int unit;

mallocPtr = (char *)malloc(sizeof(myMT_t) + alignMask);
if (mallocPtr == NULL) return NULL;

mt = (myMT_t *)( ( (int)mallocPtr + alignMask) & ~alignMask);
mt->mallocPtr = mallocPtr;

何故こんなことをやっているのだろう?

続きを読む

[][][][]16byte align technic for SSE 16byte align technic for SSEを含むブックマーク 16byte align technic for SSEのブックマークコメント

ちなみにこのテクニックを紹介されているサイトも見つけた。

http://yosirin9.hp.infoseek.co.jp/ より

http://yosirin9.hp.infoseek.co.jp/tips/no5/malloc.pdf

*1:もっと速い方法のサイトを知っている方がいらっしゃいましたら是非連絡ください

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060108

2006-01-07 Mersenne Twister Optimized in ... part1

[][][]d金魚 世界Mersenne Twisterに挑戦する! d金魚 世界のMersenne Twisterに挑戦する!を含むブックマーク d金魚 世界のMersenne Twisterに挑戦する!のブックマークコメント

前回の敗北(http://d.hatena.ne.jp/studiokingyo/20051229)を喫し全く懲りない私は新しいターゲットを探していた。その一つに世界Mersenne Twisterが上がった。

そう、Mersenne Twisterメルセンヌツイスター)はlibrarian(ライブラリアン)なd金魚がdkutil_cに実装していない数少ないメジャーアルゴリズムがあったりする。

いろんなサイトに飛んでいくと、よく、高速化研究や安全性研究*1をされていて

データ構造的なソースコードより多いんじゃないかな?と思ってしまうほどだ。

なのであえて組む必要はないと思っていたが、なんか、他意はないが無駄なことがしたくなったため行おうと思う。*2

あえて目指すならば・・・最強*3メルセンヌツイスターライブラリ


さて!早速勝負するならば*4資料集めなり!

これらのデータから分かったことでライブラリアンとしての所感はメルセンヌツイスターには様々なバージョンがあるということだった。

続きを読む

*1:さっぱり意味がわからないが・・・

*2:ほんっと時間の無駄だと痛感しているがやめられないのがライブラリアンたる所以

*3:・・・!?まんまじゃ意味がわからないけど・・・最速って読み替えて^^;

*4:てか勝手に勝負するなよ!って感じですけど・・・許して(^人^)

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060107

2006-01-06 ライブラリアン所感 無駄なライブラリ? part3

[][][]夢の中からサラバ・・・ 夢の中からサラバ・・・を含むブックマーク 夢の中からサラバ・・・のブックマークコメント

前回の記事(http://d.hatena.ne.jp/studiokingyo/20050902

なんか、ライブラリアンな私って自分の事は自分で!見たいな意識が強くて

なんだか、プログラミングでもそれが出ていて必要な機能は徹底的に詰めるような性質が色濃く出ていることを自覚している。

今の時勢、時間というものが非常に貴重なのにライブラリ製作にうちこんでいるのは

どうも病的な気がしなくは無いのだが、なんとなく最近そう思っていることが多い。

そう!つまり自分の事は自分で!が強いのだがこれはなんとなく現実的ではないので夢の中の理想のような気がする。

そう!つまり私はプロコンの為にプログラミングしている。

そう!つまりプロコンで入賞することは夢だった!これは最近思い出してきていることである。

そう!つまり将来の為に!のうちの一つの目的ではなかったのだ!

そう!つまり一つの通過点として捉えていたのではなく終着点だったのだ!

そう!つまり人生の計画を立てる上での目標設定としては破綻していたのだ!


だけど、やっぱりライブラリ製作ってたのしぃ!!!

あれ?

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060106

2006-01-05 ハッカーの楽しみは買いだ!

[][]ところで、「HACKMEM」ってなんですか? ところで、「HACKMEM」ってなんですか? を含むブックマーク ところで、「HACKMEM」ってなんですか? のブックマークコメント

http://pc8.2ch.net/test/read.cgi/tech/1037458703/

より。

343 :デフォルトの名無しさん :03/10/13 09:17

Xサーバーのソースで見つけたコレ。数学も大切だなぁ、と思った一品。

ところで、「HACKMEM」ってなんですか?

static unsigned int Ones(mask) /* HACKMEM 169 */ 
unsigned long mask; 
{ 
register unsigned long y; 

y = (mask >> 1) &033333333333; 
y = mask - y - ((y >>1) & 033333333333); 
return ( (unsigned int) ( ( (y + (y >> 3) ) & 030707070707) % 077) ); 
} 

このソースコードに感動したら、HACKMEMが知りたかったら、「ハッカーの楽しみ」*1を読んでみよう!

[][][][]Windows NT,2000,XPが一つのファイルに使えるサイズは? Windows NT,2000,XPが一つのファイルに使えるサイズは?を含むブックマーク Windows NT,2000,XPが一つのファイルに使えるサイズは?のブックマークコメント

18446744073709551614 byteまでである。

[][]パーシャルレジスタストール? パーシャルレジスタストール?を含むブックマーク パーシャルレジスタストール?のブックマークコメント

google:パーシャルレジスタストールなる言葉を知った。だが、意味は知らない・・・orz

[][]8086 によるJIS-SJIS変換最短アルゴリズム 8086 によるJIS-SJIS変換最短アルゴリズムを含むブックマーク 8086 によるJIS-SJIS変換最短アルゴリズムのブックマークコメント

http://openlab.jp/k16/jissjis.html

すっげー!!

bake_3572bake_3572 2006/01/13 22:31 Intel Pentium系プロセッサにおいて、
32bitレジスタの一部である8,16bitのレジスタに内容を書き込み、あるクロック数以内に、そのレジスタを32bitで読み出した時に生じるストール。時代が上がる程にストール時間が延びている。
主な回避法としては(PentiumPro,Pentium蕎霾)、32bitレジスタを0クリアした後ならば、上記の事を行ってもストールは生じない。
ストール条件がIntel日本語ドキュメントだとハッキリしないので、少々の間違いがあるかもしれません。

bake_3572bake_3572 2006/01/13 22:56 随分、条件がややこしいようです。特に部分レジスタの内、8-16bitの○Hレジスタに書き込み後、16bit,32bitで読み出す事は0クリアでは解決できないみたいです。
また、0クリアもxorクリアを使わないといけないみたいで、ややこしくて仕方がありません。

studiokingyostudiokingyo 2006/01/14 01:33 なるほど。どんな時でも32bitレジスタ使わないと遅くなるよ みたいな事ですね。と、言う事は8-16bitレジスタを使ってswap処理するとかはあまり良くないと・・・

とあるサイトでパーシャルレジスタとレジスタストール?って単語だよ見たいな事が書いていたので私のgoogle検索ではひっかからなかったのかもしれません。別の資料も探してみます。

コメントにより疑問が解決して安心しました。コメントに感謝します。では^^

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060105

2006-01-04 ドラゴン桜とプロコン

[][][][][][]ドラゴン桜とプロコン ドラゴン桜とプロコンを含むブックマーク ドラゴン桜とプロコンのブックマークコメント

http://d.hatena.ne.jp/higayasuo/20060102#1136190200

より、なるほど。

私はオープンソースを読み込む時には

・お前らごちゃごちゃ言わずにdoxygenかけろ。

・そしてソースをVCデバッガで動かしてサブルーチンをレゴブロックのようにとっかえひっかえして構造を覚えろ。

私もプロコン*1に応募しようとどうにかこうにかしようとしていて今までの経験から思ったこと。*2

桜木ならプロコンについてこういうかも!?

・お前らごちゃごちゃ言わずに英語を読めるようになれ。

・そしてソースを書くより言語仕様ライブラリに頼れ。

・成功したければソフトウェアの詳細な設計をしろ。

理由は

英語を読めるようになって海外の資料を読み込めるようにする

・自分でプログラムを組むのに貴重な青春時代に使うにはコストが高い。既に出回っているライブラリを利用して自分の実現したい機能を実現したほうがコストは安い。また、優良なライブラリは大体が海外製なのでこの時に英語力が必要になる。*3

・詳細な設計(フローチャート、および仕様変更時の対応の想定等)なしで頑張ると最後にはいじるのが困難なソースコードが生成される。

多分、思っているのは私だけ!?

*1:U20プログラミングコンテスト

*2:いや、かすりもしない私が言うのもナンナンデスケドネ・・・

*3:なので私みたいにC/C++プログラムを組むのは不利のような気もしなくは無い

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060104

2006-01-03 桃栗三年柿八年プログラマ十年

studiokingyo2006-01-03

[][][]プログラミングを学ぶには10年かかる プログラミングを学ぶには10年かかる を含むブックマーク プログラミングを学ぶには10年かかる のブックマークコメント

http://www.yamdas.org/column/technique/21-daysj.htmlより

via http://d.hatena.ne.jp/tailliar/20051229#p2

via http://d.hatena.ne.jp/ryoko_komachi/20051226/1135824272

プログラミングを学ぶには10年かかる

・・・らしいよ。10年だって。桃栗柿に負けちゃっているじゃないか!

(確か、この記事を見た当時は書きたいこと沢山会ったんだけど思い出せないからつらつらとーー)

確かに・・・、否定はしない。

てか、そんなに沢山の種類のプログラミング言語学んでないよ・・・C/C++くらいか?

後はC/C++に含んでいる概念を使っているプログラムの本を読めばその言語も使えるようになるかも?レベル!?

学んでいない概念存在するプログラムとしては

関数抽象をサポートするもの(例えば LispML)、

一つは構文抽象をサポートするもの(例えば Lisp)、

一つは coroutine をサポートするもの(Icon や Scheme)、

そして一つは並列処理をサポートするもの(例えば Sisal)であること。

てか、coroutine(コルーチン)ってなに?って事で調べたら、

http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%AB%E3%83%BC%E3%83%81%E3%83%B3

microthread(マイクロスレッド)の事だよね。Win32API的にいうとfiber(ファイバー?)だよね。なーる。ね。確か、WindowsXPSP2になってからだとメモリ上のコードを実行できなくなってしまったので(なんか、ユーザーに変なダイアログ表示させると怪しまれるしね。)yaneSDK3rd付属のmicrothreadはOSチェックをしてfiberのWin32APIと変えれるようにライブラリ組みたいと思っていました。

ちなみにfiber話はhttp://d.hatena.ne.jp/shinichiro_h/20040106#p1が非常に詳しい。

閑話休題


どこかでHaskellバグがおきにくくてイイよ〜とか見た記事があったはず・・・。

(追記:2004年度ICFPにて上位を総なめ(参考)したすごい言語。)(keyword:Haskellにて)

関数がどうたらこうたらとか・・・

(追記:高階関数のことを言いたかったらしい。)

確かにライブラリ組むにはこっちの方がイイかも。

(追記:C++にもHaskell概念を実現するライブラリがあったりするが至極面倒なのでいじっていない。boost::lambdaとか?)

Haskellコンパイラとか作ってこっち形式でライブラリを組む・・・のを夢にしちゃったり!?(笑)

どうでもいいことだけどHaskellってHaskwellって書いちゃいたりしませんか?

ああ、もう、睡眠不足で支離滅裂御免ですよ。眠ります。おやすみ

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060103

2006-01-02 あけおめことよろ part2

studiokingyo2006-01-02

[][]あけおめことよろ part2は・・・ あけおめことよろ part2は・・・を含むブックマーク あけおめことよろ part2は・・・のブックマークコメント

日記の日付は2日だが実際はぎりぎり1月1日に書いている。はやくはてなに日付指定更新機能*2がつかないかなぁ〜

*1あけましておめでとうございます。ことしもよろしくおねがいします。

*2http://i.hatena.ne.jp/idea/5784

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060102

2006-01-01 2006年度1月用備忘録

studiokingyo2006-01-01

[][][][]2006/01用備忘録 2006/01用備忘録を含むブックマーク 2006/01用備忘録のブックマークコメント

あけましておめでとうじゃなくて今年は新年早々備忘録だったりする。(しかも12月29日にこの記事書いているし・・・)

トラックバック - http://d.hatena.ne.jp/studiokingyo/20060101
 | 
Program | Debug | dKingyo Utility Toolkit | library | D言語 | 御本とか | 備忘録 | テクニック | WayBack | 格言 | 英語 | 他力本願 | news | software |

デースケドガー