エンジニアの技能レベル ~ドレイファスモデル~ 書籍「リファクタリング・ウェットウェア」から 1970年代のドレイファス兄弟による人間の技能の習得・極める過程についての研究結果 研究対象は、民間航空会社のパイロット、チェスの名人などのある分野の技術にきわめて高いレベルの習熟度を示した人々 技能ごとに評価するので、個人の生来持つ特性・才能ではない 5段階でモデル化
[ C++で開発 ] シリアル通信プログラム(POSIX編) UNIX系OSでは、POSIX規格によりおおよそシリアル通信のシステムコール等が標準化されています。(POSIX.1-2001らしい) シリアル通信の設定に関するメモ シリアル通信(RS-232C)での設定について、最低限前提となる知識を整理します。 調歩同期式(無手順) スタートビッド、ストップビット キャラクタ(1文字)の前後に、文字を識別できるように必ず付けるのがスタートビットおよびストップビットです。スタートビットは1ビットですが、ストップビットは1ビット・1.5ビット・2ビットがあります。 パリティビット EVEN(偶数)、ODD(奇数)、なし、の3つから選択します。EVENまたはODDのときは、データビットとパリティビットの中でビットが1となる数をEVENまたはODDになるよう調整します。 ビットレート RTS Re
UDP通信のプログラミング 概要 UDPとは UDPはUser Datagram Protocolの頭字語です。ソケットという用語を使っていますが、コネクションレスのプロトコルです。TCPに比べてオーバーヘッドが少なく効率のよい通信ですが、送信できるサイズに制約があり、トラフィック状況に合わせた送信調整や順序化、再送といった制御がありません。 JavaでUDPを扱うAPI Javaでは、UDP特有のAPIとしてjava.netパッケージで提供されるもの、java.nioパッケージで提供されるものと大きく2種類があります。 基本は、Javaの当初のバージョンから提供されているjava.netパッケージです。世の中の大半のソケット・プログラミングの解説もこちらのパッケージについてがほとんどです。 java.netパッケージでは、以下のクラスが提供されています。 java.net.Datagra
javax.swing.Timer Swingのクラスライブラリの1つとして提供されている。一定時間後にイベントを実行することができる。これは、Swingのイベントスレッドで実行されるので、描画に関わる処理を記述していてもSwingスレッドと干渉しないで済むのがメリット。実行はSwingのイベントキューに載せられるため、正確性には欠ける。 java.util.Timer 汎用のタイマとして提供されている。処理を周期的に実行したり、一定時間経過後に実行したり、指定した日時に実行したりと多彩な機能を持つ。Swingとは無関係なので、ヘッドレス(GUIが無い環境)でも使用できる。Timer専用スレッドで管理され、正確性もjavax.swing.Timerよりは高い。しかし、java.util.Timerの実装上欠点がいくつかある。まず、スケジューリングにシステムクロックを使用するので、システムク
[ C++で開発 ] [ Boostを使うメモ ] コマンドライン引数の解析 コマンドラインから実行するプログラムでは、コマンドライン引数に指定した内容を取り込む処理を記述することが多いです。引数の数が数個と少ない場合は、大抵その場限りのコーディングでお茶を濁しますが、ちょっと複雑なコマンドラインとなると、やはりライブラリの出番となります。 昔はCの非標準ライブラリ getopt の出番だったのですが、最近ではBoostに含まれる program_options を使用します。 boost::program_options 簡単なサンプルを示します。 コマンドラインで、以下3つのオプションを指定可能なプログラム mcast_send があったとします。 アドレスを表す文字列。プログラム中で取り込む型はstd::string。指定は必須。 ポート番号を表す文字列。プログラム中で取り込む型はi
[ Topページへ戻る ] Mercurialでバージョン管理 概要 「分散リポジトリ方式」なる言葉によって興味をひかれたバージョン管理ツールがこのMercurialです。 今までのバージョン管理ツールへの不満 オフラインでもバージョン管理したい いままで、職場や自宅において、CVSやSubversionを使うときは、1台のマシン上にリポジトリを置き、そのリポジトリに対してチェックアウトやコミットといった変更の払い出し・登録を行っています。 したがって、リポジトリのあるマシンと作業マシンがネットワークで接続できないときは、チェックアウトした作業ディレクトリの変更をコミットできませんし、過去の変更履歴も調べられません。ネットワークに接続できない期間が短時間ならいいのですが、長期間になるとこれはバージョン管理ができないに等しい状態です。 気軽なリポジトリ作成ができたらいい ちょっと作ったプログ
[ C++で開発 ] 書籍「C++ Coding Standards: 101 Rules, Guidelines, And Best Practices」 のサマリのサマリの日本語訳 Herb Sutter、Andrei Alexandrescu両氏によるコーディング標準本のルール名を列挙します。 ルール名 組織およびポリシー関連 0. ささいなことを気にかけるな(標準化すべきではないものを知れ) 1. コンパイラの警告を最大レベルにして、すべての警告を取り除け 2. ビルドを自動化せよ 3. バージョン管理システムを使え 4. コードレビューに投資せよ 設計様式 5. ひとつの要素にはひとつの責務 6. 正確性、簡潔性、明りょう性がまず最初 7. いつどのようにコードにスケーラビリティを持たせるかを知れ 8. 時期尚早に最適化しない 9. 最初から悲観的にならない 10. 大域データ、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く