Schi Heil と叫ぶために

hiroakiuno's blog

ソフトウェア

金のバグと銀のバグ

ある時ソフトウェアの不具合が2件発生しました。ブクブクブク… 神さま: あなたに関係があるのはこの金の不具合ですか?それともこの銀の不具合ですか? 嘘つき: 金は私とは関係がないです。銀はログもないのでわかりません。 神さま: あなたは嘘つきです。罰…

DirectFB とウィンドウシステムの関係を整理してみよう

組み込み GUI 環境の設計と実装という本を読み始めた。 組み込みGUI(ウィンドウ・システム)環境の設計と実装作者: 四ノ宮力,石川毅,桑原裕二出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/07/07メディア: 単行本(ソフトカバー)購入: 4人 クリッ…

コーデック(codec) って何の略か知っていますか?

答えは二つ。一つは coder-decoder の略で、もう一つは compressor-decompressor の略。どっちをとっても codec というのがよくできている。日本語だと符号化と復号化、あるいは圧縮と伸張(解凍)になってしまう。 Insider's Computer Dictionary [codec] − …

グラフと木の違いを一言で言えますか?

最近 DirectShow や GStreamer などのマルチメディアフレームワークを勉強している。これらの特徴を表すキーワードとして pipe-and-filter とか graph-based とか filter chains とかいろいろ出てくるのだが、どうやら filter graph という用語が一般的のよ…

Geekなページの DirectShowプログラミング で学習を始めるための2009年2月時点の環境構築メモ

単なるインストールメモですが何かの役に立てば。超特急で DirectShow の雰囲気をつかみたいという要求にドンピシャで答えてくれた 403 Forbidden。骨組みだけを抽出したシンプルなサンプルコードが非常に分かり易くありがたかった。ただ、最初の環境構築が…

コードレビューの心がけ (その2)

その1 を書いてから随分時間が経ってしまった。次はどうなったというツッコミはもちろん無いが、気分新たにその2である。前回は人のコードを読むと必ず出てくる「気に入らない部分」に対してどう対応するかというのをテーマに挙げ、「自分の癖は押し付けない…

コードレビューの心がけ (その1)

最近、仕事でほぼ毎日コードレビューをしている。チームの中で行っていることなので対象は高々数人の書いたコードだが、それでも自分以外の人のコードを読んで意見を交換するという経験をこれほど続けたのは初めてのことで、そこで分かってきたことや改めて…

プログラムの共通部分を上から下にくくりだすの歌

構造化プログラミングとオブジェクト指向プログラミングを比較したとき、コードの共通部分を上か下のどちらの方向にもっていくのかという違いがある。前者では共通部分をサブルーチンとして下へくくりだす。後者では共通の属性をスーパークラスやインターフ…

改行コードと TeraTerm の関係を整理してみよう

改行コード (newline) はテキストの行末を表す文字コードの一つで、一般に1個または2個の制御文字 (Control Character) で表現される。一般的なテキストエディタ上で Enter を押したときのいわゆる改行は、厳密には復帰 (CR:Carriage Return) + 改行 (LF:Lin…

Becky! から Thunderbird にメールリーダーを変更してみた

プライベートのメール環境はすっかり Gmail に移行したが、会社のメールはさすがに Gmail に転送するわけにいかないので、入社して Windows を本格的に使うようになってからずっと Becky! を使い続けてきた。今でも Becky! は非常によく出来たソフトだと思う…

お笑いデザインパターンと反復型モデル

昨日のエントリ の続きで、笑いを作るためのパターンをデザインパターンとして集めたら面白いのではないかと考えたら、やはり既に同じことを考えている人がいた。 Yahoo!¥¸¥ª¥·¥Æ¥£¡¼¥º プロともなるとパターンに当てはめるだけではだめでプラス何かが必要だ…

念のためという名のおまじない

プログラムの本や解説を読んでいると出くわす嫌いな言葉に「おまじない」がある。 #include はおまじないです。 using namespace std; もおまじないです。 #!/bin/sh もおまじないっす。 初学者が最初から枝葉にとらわれないようにという配慮だと思うが、実…

ソフトウェアアップデートを意識させるか否か

先月リリースされた debian etch で導入された update manager を体験した。思わずすげーと思った。すげーというのは linux のデスクトップ環境もここまで来たかという意味で、アップデートが非常に簡単になった、もっと言えば windows update と変わらない…

なぜ gcc はファイルの最後に改行がないと警告を出すのか?

gcc が出す以下の警告。消すのは簡単で EOF に改行を一つ入れれば良い。でもこれ何が悪いのか分からなかった。 warning: no newline at end of file コンパイラが出す警告だから絶対に何か意味があるはず。調べてみると意外にもテキストファイルの定義にたど…

OS と家電の異文化比較

先日のエントリ で参照した本の著者の方がトラバをくださった。 しかし,組込みソフトウェア技術者として各種OSを比較理解しようと思うのであれば,プロセスやスレッドを定義済み語として扱うアプローチは,本当はあまりよくないです.基準が特定のOSに縛ら…

ミューテックス、セマフォ、条件変数、違いを整理してみよう

前回のエントリ でプロセス、スレッド、ファイバ、タスク、ジョブの違いを整理してみたところ、toshi さんから次のお題 をいただいたので、調子に乗って今回はミューテックス、セマフォ、条件変数の違いについて整理してみる。なお私がグダグダしているうち…

プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう

まずは分かりやすいプロセスとスレッドから。 Windows や Linux などの汎用 OS 上のアプリケーションは一般にプロセスとして動作している。プロセスはプログラムの実行単位である。プロセスは1つ以上のスレッドと、ファイル、ヒープメモリなどのリソースで構…

Strategy パターン と IfNecessary

今日覚えたことを今日使ってみた。 「もし必要なら」という場面はプログラミングをする上で頻繁に発生します。「もし必要なら〜する」という関数を作るときには DoSomethingIfNecessary() あるいは MaybeDoSomething() と命名するという慣習が広く見られます…

ルーターを超えてラララ英語のお勉強

NOVAで試しにレンタルしてみたお茶の間留学セット。その設定が意外にもネットワークの勉強になったのでメモ。念のため言っておくが、機器自体はDHCP対応なので(グローバルIPアドレスが割り振られる環境では)何も考えずLANケーブルを刺すだけで使えます。た…

科学の基本は分類である。プログラミングも科学である。故に…

「私って、プログラマに向いていませんね…」 と職場の後輩が嘆いていた。自分の設計をレビューで指摘された際の返し文句でもちろん冗談。でもプログラマに向いているとか向いていないとかってやっぱあるんでしょうかね?今日はその辺を考えてみる。とは言う…

タイマーというアクター

仕事柄 UML を使って物事を考えることが多い。UMLがあれば全て事足りるというわけではないが、いろんなモノの見方が最初から用意されているという点で、あるいは図形や矢印の定義をいちいち考えたり説明する必要がないという点で、人(将来の自分も含む)と…

気になっているが読めていない技術系の本

最近やりたいことが多くて発散してしまい本を読めていない。一般のジャンルの本もそうだが、社会人になってから特に技術系の本があまり読めてなくて、ちょっとまずいかなとは思っている。昨日書いたエントリーではないが、ブログに書くことで頭を整理でき、…

C++ヘッダファイルのパターン

C++ Header File Include Patterns ふと見つけたC++のヘッダファイルに関するページ。パターンというほど体系的なものではないかもしれないが、せっかくなのでメモしておこう。 A header file should be included only when a forward declaration would not…