for_eachに関数こさえて渡すのがめんどくさくなってlambdaとか使ってますがそこは適当にあれをそうしてください。
ちょっと前に表題の質問を受けました。更にアクセス解析を見てると同じ質問でGoogleから飛んできてる人が少なからずいたのでお答えします。
C言語なんかでプログラミングしてるとループカウンタとかでよく見る int i なんですが、回りのプログラマの皆様に聞いてみたところ、多くの人が「int の i なんじゃないの?」と返されました。なるほど確かに int の一時変数なんだから適当に int の頭文字でいいやというのもあるかもしれません。実際の由来も似たような発想なのである意味で正解でしょう。
しかし実際にはこれC言語以前に発祥が確認されてます。
今有力とされている由来としては、Fortranの整数型変数を宣言する為の規則が I で始まる識別子であることから来ています。Fortranが最もさかんに使われていた時代や環境では、長い識別子をサポートしていなかった為、識別子の長さも識別子のバリエーションを増やす為に利用されていたそうです。なのでとりあえずループカウンタに整数型が欲しいな程度の物に長い意味のある識別子を使うのはご法度だったので、ループカウンタには I を使うという慣習が出来たようです。
ちなみにこの逸話はエキスパートCプログラミングにも載っています。このトピック以外の話題も為になる本なので、興味のある方はご一読してみては如何でしょうか。
最近お仕事で数十~数百ナノセカンドの世界で戦ってます。
守秘義務があるので詳しくはいえませんが、アセンブリとにらめっこでどうやれば一命令減るか。増えても良いから重い命令減らないか。ロードの直後に参照みたいな待ちの入る処理なくならないか。そんな事考えてます。
今やっているのが組み込み機器向けの画像処理なので1クロック減るとずいぶん違うんですよね。画像のサイズが320*240だとしたら単純に1ピクセルずつコピーするだけでも76800回ループが回る訳です。組み込み機器ではPCと違ってまだ低クロックですから、割と高速で200MHzと仮定しても1クロックが2*10^-8秒。76800クロックなら384*10^-6秒。ループの中の処理が3クロック減ると1ミリセカンド速くなる計算です。
素直に組んだルーチンと比べると既に四倍以上の速度向上を果たしてるんですが、それでもまだ足りてません。もうちょっとこの苦難は続きそうです。
今週ずっとそんな感じなんですが、ひと段落したら家でVC相手に復習してわんくまの方にエントリこさえます。手動最適化に興味のある方お楽しみに。
実は数日前に参加受け付けメール着てたり、既にわんくまblogに初投稿済ませてたりするんで一部の方は知ってるかと思うのですが、わんくま同盟に参加しました。
わんくま同盟で用意してもらったblogはこちらになります。webスペースもありますが、そちらは基本的に使う気はないです。わんくまblog用の画像置き場になるでしょう。
備忘禄代わりにこれからのblogの住み分けについて書いてみます。
今後も当blogではプログラミングなトピックを扱いますが、基本的というか軽く留めて詳しい事はわんくまblogに書くスタンスになる予定です。今までもあんまり濃い話題は載せてないので基本的に変わらないともいえます。また、書籍のレビュー関連はプログラミング関係であっても大体こっちに書くつもりです。わんくまblog側で書く場合はわんくま関係者のblogと関連する時になります。
プログラミング以外のトピックに関してはこれまでどおりこちらで書きます。が、ぶっちゃけ最近プログラミング以外やってないので書く事ない気もします。
という訳で此れまで以上に放置の予感がする事態になりましたが皆様今後ともよろしうおたのもうします。
わんくま同盟勉強会大阪#6に参加してきました。
崇拝するεπιστημη (エピステーメ) さんが來阪されると事前に聞いていたのでサイン欲しさに特攻とミーハー丸出しで行って来ました。
内容的には割と知ってる事だらけだったんですが、パネルディスカッションで久しく餓えていたオブジェクト指向絡みの宗教論争が出来たのは嬉しかったです。熱くバトルしたいというのも参加動悸の一つというか大きなウェイトを占めていた部分なので非常に堪能させていただきました。
さらに、お土産じゃんけんで勝利してεπιさんの記事が丸ごと入った「まるごとεπιστημη特別編集号 (仮名)」も手に入れてきました。サイン二つ目ゲットです。本当にありがとうございました。
懇親会でも恣意のさん、THREE-ONEさんをはじめとする方々と熱の篭もったお話を出来たのはいい刺激になりました。
勉強会及び懇親会参加者の皆様お疲れ様でした。そして本当にありがとうございました。
またの機会にお会いしましょう。
久しぶりに街中へ出てジュンク堂へ。立ち読みしてきました。
とりあえず評判見て気になってた本を中心に立ち読み。その後、以前立ち読みで買うぞーと決めた本をもう一度品定め。
結果以下の本が購入リストにリストアップされました。
プログラムデザインのためのパターン言語―Pattern Languages of Program Design選集
GoF本買うときには既に目をつけていた本。
その後本のタイトルを忘れて思い出してからでいいやと放置されていたのが今回めでたく発掘されました。
ピープルウエア―働きやすい職場をつくる人間関係の極意
以前立ち読みしたときは買いだと思ってたんですが、昨日立ち読みした感じだとまだ早いって言うか優先度落としてもいいかなって感じになりました。
なのでリストには入るものの優先度低で。
プログラマの数学
お値段ゆえに買いそうになりました。
2000円台はお安いと感じるのはちょっと危険かもしれません。
達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
今長月的に二番目欲しい本。
長月の今現在の主な興味の方向であるバージョン管理、ユニットテスト、自動化が一冊に詰まってます。これでリファクタリングまで詳しく取り扱ってくれたら完璧だったんですけどね(´・ω・`)
リファクタリング―プログラムの体質改善テクニック
続いて今長月的に一番欲しい本。
評判だけで欲しくてたまらなかったんですが、立ち読みしてみてより欲しくなりました。なんか今でも勢いで発注しそうです。
ゲーム開発者のためのAI入門
残念ながら時間切れでこれまで手が回らなかったんですが、久しぶりにタイトルを見かけて「あー、やっぱりこう言う分野すきだなぁ」と再確認した次第です。
やっぱり長月はローレベル分野だいすきっこらしいです。
Code Complete第2版〈上〉―完全なプログラミングを目指して
Code Complete第2版〈下〉―完全なプログラミングを目指して
第二版が出る前から欲しかった本。
でも高いんですよね……今回二冊合計12000円超え……orz
前の版でも8000円ぐらいしてましたしね……(´・ω・`)
はじめて学ぶソフトウェアのテスト技法
最近長月大注目のテスト技法周辺です。
次のプロジェクトでは周りの誰が何を言おうとテストファースト開発をしてやる! ぐらいの勢いでテストの大切さを噛み締め中な長月なのです……orz
Google Mapsでレーシング公開! [tech.nitoyon.com]より。
長月も技術者の端くれですから、新しい技術って言うのは少なからず気になります。
その中でも流行り物だけにAjaxには注目してます。
最近世間の熱も冷めてきたかなと思っていたAjaxなんですが、ここでまた盛り上がりそうな話題です。
長月が今参加しているゲーム製作サークルでもAjaxを使おうかなんていう話になった(というか誘導した)んですが。あくまでHTTPのスタティックな遷移に縛られない為、或いはサーバサイドプロセスの負荷を軽減する為の技術としての提案でした。
でもこれはもっとインタラクティビティとダイナミックさを意識した物です。ちゃんとゲームしてると言うといいですかね。アイデアも面白い。
これに触発されてぐぐる地図を使わずにAjaxの限界を狙うような作りを目指す人も出てくるんでしょうね。
新技術ではなくなりつつあるAjaxですが、もうしばらくは面白い話題を提供してくれそうです。
VS 2005のExpress Editionは事実上,無償提供へ:IT Proより。
競合他社(某ランドとか)なんかは早々にIDEを無料にしちゃった訳ですが。EclipseやBCBX等の無料IDEに押されたのかMSもVisual Studioを無償提供する事にしたようです。
まあ良くある話で実際便利なのはIDEじゃなくて付属ライブラリなんですが、ご多分に漏れずMFCやATLはついてこないらしいです。これは仕方ないですね。
でも元々がフレームワークライブラリを使ってない長月の様な人にはこの状況は嬉しい訳です。
一応VCのコンパイラは今までにも無償配布されていたものの、nmakeもついていないぐらいで環境構築が面倒でした。それが今回のIDE無償配布のおかげで楽にMS製コンパイラを試せます。
実質使うのが特定のコンパイラだとしても、例えばライブラリなどを配布する人なら様々なコンパイラでコンパイルとリンクのテストが出来るのは大きいでしょう。
そんな訳で試しに落としてみようかなとか思ったりする訳です。
BattleProgrammer?'s blog:ぶっちゃけプログラマーって何よ?を読んで。
今まさに長月がそうですね。
GUI プログラミングって訳ではないんですが、既に用意されたコンポーネントを利用してプログラムを作るという部分では GUI が絡まなくても同じですね。
詰まり大規模なライブラリ或いはフレームワーク、もしくは過去の遺産を利用するようなプログラミングなら何でも同じって事です。
ソフトウェアが大規模化している現代では職人的 PG だけではお仕事にならないと言う事ですね。
長月も仕様確認しまくりの毎日です'`,、(´∀`)'`,、
長月はどちらかと言うと職人側なので今の状況は割といやなんですけどね……orz
ネットワークマガジン - N-log : 『Winnyの技術』の発売が決まりましたより。
これ、なんか興味引きますね。
正味基本的な構造ってのは知れてる訳ですが、具体的な部分とか、何を考えて設計したのかなんてのが読めると楽しそうです。
作った人が作った物をどう考えて作ったのか解説する本ってありそうでなかなかない物ですから、こう言う本増えて欲しいですね。
#C++の設計と進化とか見てもそう言う感じの本って面白いとおもうんだけどなぁ。
Warning: sprintf() [function.sprintf]: Too few arguments in /home/users/2/lolipop.jp-dp07042166/web/wordpress/wp-includes/widgets.php on line 1042
Click to view/hide