Welcome to Rio's Laboratory

○ はじめに

ソフトウェア開発に興味を持っている方々のお手伝いをすべく、筆者が興味を持っている分野についてですが、ソフトウェア開発の技術情報を提供しています。どんどん充実させていきますので、みなさんの貴重なご意見やご感想をいただけます様よろしくお願いします。

【デバイスドライバ/組み込み系】

Android SDK programming (Android 4.2)
Google Android SDK によるアプリケーション作成方法について書いています。対象とするプラットフォームは、Android 4.2 です。

Linux Kernel Module programming (Kernel 2.4, デバイスドライバ)
Linux Kernel 2.4 でのカーネルモジュール作成方法について書いています。カーネルモジュールによって、デバイスドライバや独自機能を簡単にカーネルに組み込むことが出来ます。

AVR (ATmega8535) programming (C言語)
Atmel 社の AVR というマイコンの制御プログラミングについて書いています。ボリュームや加速度センサの値を読んだり、サーボモータを動かしたりといろいろやってます。AVR の中でも ATmega8535 というマイコンを使用しています。

【UI/サウンド】

Xlib Programming Lectures
X Window System における Xlib を使用した GUI プログラミングについて書いています。書いてみたいことはまだあるのですが、時間がなかなか…

Linux Sound programming with OSS API
Linux 上で OSS API を使ったサウンドの入出力やエフェクト処理プログラミングについて書いています。

【Java】

Java LDAP client programming
JLDAP というクラスライブラリを使用した Java 言語による LDAP クライアント作成方法について書いてみました。

【公開ソフトウェア】

Space Maze (Shooting Game for Linux)
宇宙空間に広がる迷宮を舞台にしたシューティングゲームです。最凶の宇宙生命体 Fortress の支配から、あなたの手で全宇宙を救って下さい!

Port Viewer (TCP/UDPポート一覧チェックツール for Windows)
Windows Vista/XP/2003R2 上(動作確認済み OS)で使用中の TCP/UDP ポート番号一覧を表示し、そのポートを使用しているプロセス情報も表示することができるツールです。Windows XP/2003R2 では、.NET Framework 2.0 以上が必要です。

【その他】

Rio's Laboratory 関連リンク集
本サイトで参考にさせていただいた/利用させていただいたウェブサイトやリソースを集めました。

ご意見やご質問、ご感想をどうぞ
ご意見やご質問、ご感想等ありましたら、ここから著者宛にどしどしお送り下さい。返信が必要な場合は、返信先メールアドレスをしっかり入力していただきます様、お願いします。空欄だったり間違っていたりで、返信したくてもできない場合が何度かありましたので…

○ 免責事項

本サイトで公開している内容については可能な限り正確を期する様に心掛けていますが、著者の知識不足から技術的な誤りもしくは不適切な表現や誤植を含む可能性があります。これらの内容を使用することによって生じる可能性のあるいかなる被害/損害に対して、著者は一切の責任を負えません。よって、ご利用になられる際はみなさん各自の責任で内容確認/動作確認を行って下さい。

また、各コンテンツにおいて個別に免責事項を記載している場合は、そちらに従って下さい。

○ 商標

  • Linux は Linus Torvalds 氏の日本及びその他の国における登録商標または商標です。
  • UNIX は The Open Group の米国及びその他の国における登録商標です。
  • その他、本サイトの文書中に記載されている会社名や製品名は、一般に各社の商標または登録商標です。
  • なお、本サイトの文書中では基本的に TM および R マークを明記していませんが、権利を侵害する意思や目的等は一切ありません。

○ 更新履歴

  • 2013/08/25
    Android SDK programming (Android 4.2)
    • 「LECTURE 6 キー入力を検出する」を追加しました。
    • 「LECTURE 7 UI のレイアウト」を追加しました。
  • 2013/08/18
    Android SDK programming (Android 4.2)
    • 「LECTURE 4 UI 描画を担当する View クラス」を追加しました。
    • 「LECTURE 5 画像を描画する View を作る」を追加しました。
  • 2013/08/05
    Android SDK programming (Android 4.2)
    • 「LECTURE 2 文字表示だけのアプリケーション(Activity/TextView)」を追加しました。
    • 「LECTURE 3 リソースについて」を追加しました。
  • 2013/07/27
    Android SDK programming (Android 4.2) を公開しました。
  • 2012/04/02
    AVR (ATmega8535) programming (C言語) の「LECTURE 4 A/D 変換でボリューム(可変抵抗)値を読む」でadc_wait()マクロの説明中ADIFを間違ってAFIFと記載していたので修正しました。
  • 2010/07/18
    Port Viewer を Visual Studio 2010 でリビルドしたので 2.0.0.1 にマイナーバージョンアップしました。また、Windows 7 でも動作確認しました。
  • 2009/08/21(雑誌は2009/7/9発行です。遅くなってごめんなさい。)
    Port Viewer が Windows FreeSoft パーフェクトに掲載されました!
  • 2009/05/06
    Android SDK programming の公開を停止しました。更新の時間が確保できず、SDKのアップデートに即応できなくなってしまったためです。期待して下さっていた方々、ごめんなさい。
  • 2009/01/07(雑誌に掲載されたのは2008/12です)
    Port Viewer が PC Japan 2009年1月号に掲載されました!「特集1 ネットワークの基礎知識2009」のPart4にて、簡単な使い方まで書いてご紹介頂いてます(44-45ページ)。
  • 2008/08/11
    Linux Kernel Module Programming ( Kernel 2.4 ) の「LECTURE 8 I/O ポートの制御」「LECTURE 9 簡単な割り込みハンドラ」に、パラレルポートの割り込みに関して追記しました。
    割り込みが発生するたびにステータスポートのビット 2 -IRQ Status が 0 になるらしく、ステータスポートの読み込みによってそれを 1 に設定しないと、以降の割り込みが保留されるという情報を追記しました。
    木原さん、ありがとうございました。
  • 2008/06/02
    Xlib Programming Lectures 「LECTURE 13 ウィンドウマネージャとのやりとり」で、XWMHints 構造体の input メンバに対する設定値の肝心な部分の記述が不足していたため、追記しました。
  • 2008/05/30
    Android SDK programming「LECTURE 16 SD カードの使い方」を追加しました。
  • 2008/05/26
    AVR (ATmega8535) programming (C言語) で↓の修正が間違っていたので元に戻しました。ご迷惑をおかけしました…
  • 2008/05/25
    AVR (ATmega8535) programming (C言語) でヒューズビットの設定が誤っていたので修正しました。
  • 2008/03/16
    Android SDK programming を SDK バージョン m5-rc14 での API 変更等に対応させました。
  • 2008/01/27
    Android SDK programming
    • 「LECTURE 12 Google Map を表示してみよう (MapView)」を追加しました。
    • 「LECTURE 13 GPS 機能で自分の座標を知る」を追加しました。
    • 「LECTURE 14 複数の Activity で一つのアプリケーションを作る」を追加しました。
    • 「LECTURE 15 リソースとして用意したサウンドを再生する」を追加しました。
  • 2008/01/17
    Android SDK programming
    • 「Google Android SDK programming」から「Android SDK programming」に変更しました。
    • 「LECTURE 8 Worker スレッドの処理終了を UI スレッドに通知する (Handler)」を追加しました。
    • 「LECTURE 9 Handler を使って画面を定期的に描画しなおす 」を追加しました。
    • 「LECTURE 10 Activity のライフサイクル」を追加しました。
    • 「LECTURE 11 SurfaceView を使って画面を描きかえる」を追加しました。
  • 2008/01/09
    Google Android SDK programming「LECTURE 7 UI のレイアウト」を追加しました。
  • 2008/01/07
    Google Android SDK programming「LECTURE 6 キー入力を検出する」を追加しました。
  • 2008/01/06
    Google Android SDK programming を公開しました。
  • 2007/12/25
    Space Maze バージョン 1.1.2 をリリースしました。X が標準ディレクトリにインストールされている場合に configure が失敗する場合がある問題に対処しました。
  • 2007/12/03
    Linux Sound programming with OSS API 「LECTURE 2 まずは音を出してみよう」および「LECTURE 4 マイク入力をスピーカーに出力する」のサンプルプログラムにて、音声格納用のバッファ確保時のバッファサイズが間違っていたので修正しました。堀さん、ご指摘ありがとうございました!
  • 2007/11/05
    Xlib Programming Lectures 「LECTURE 19 X の歴史」に追記しました。
  • 2007/08/18
    AVR (ATmega8535) programming (C言語)を公開しました。
  • 2007/07/06
    Xlib Programming Lectures "黒、白以外の色を使う" の XAllocColor 使用に関する記述を修正しました。
    通りすがりさん、ありがとうございました。
  • 2007/04/16
    Xlib Programming Lectures 「LECTURE 22 フェードイン/フェードアウト」を追加しました。
  • 2007/03/07
    Port Viewer のバージョン 2.0.0.0 をリリースしました。更新内容は以下の通りです。
    • Windows Server 2003 R2、Windows Vista での動作対応
    • Windows XP におけるスタイル有効化
    • ニーモニックやキーボードショートカットを追加
    • ポート一覧表示画面
      • キーボードでの Enter 入力によるプロセス情報の表示対応
      • キーボードやマウスで選択した情報のコピー対応
      • 全情報の CSV ファイル出力対応(Shift JIS)
    • プロセス情報表示画面
      • プロセス終了機能対応
      • キーボードやマウスで選択した情報のコピー対応
      • 全情報の CSV ファイル出力対応(Shift JIS)
  • 2007/03/03
    • Linux Sound programming with OSS API
      • 「LECTURE 13 左右の音量のバランスを変える」を追加しました。
      • 全体的にサンプルコードを修正しました(整形程度)。
    • Linux Kernel Module Programming ( Kernel 2.4 )
      • 「LECTURE 1 カーネルモジュールを作る」に「module_init / module_exit マクロについて」という項目を追加しました。
  • 2007/02/23
    • Xlib Programming Lectures
      • 「LECTURE 5 グラフィックスを描画する」サンプルを修正しました。
      • 「LECTURE 12 日本語入力」を「XIM による日本語入力」とタイトル変更しコメントを追記しました。
      • 「LECTURE 13 ウィンドウマネージャとのやりとり」の xwm_mb.c に setlocale() の呼び出しを追加しました。
      • 「LECTURE 16 ブリンク処理」サンプルのイベントループを修正しました。
      • 「LECTURE 20 Imlib を使った画像表示」サンプルを修正しました。
      • 「LECTURE 21 画像のグレースケール/ネガティブ/エッジ検出処理」を追加しました。
      • 「Appendix(付録)」コード例を修正しました。
      • その他あらためて見直すと、各サンプルがコンパイル時に警告が出る様な代物でしたので、ちょこちょこと修正しました。
    • Java LDAP client programming
      • 「LECTURE 4 ディレクトリエントリの検索」サンプルの LDAPEntry 表示ロジックを、別メソッドとして書き直しました。
      • その他サンプルをちょこちょこと修正しました(整形程度)。
  • 2007/01/28
    • Xlib Programming Lectures 「LECTURE 20 Imlib を使った画像表示」を追加しました。
    • Linux Sound programming with OSS API 「LECTURE 12 複数の音を足す単純ミキサ」を追加しました。
  • 2007/01/20
    メニュー等のレイアウトを若干変更しました。
  • 2006/12/25
    Port Viewer のバージョン 1.1.0.0 をリリースしました。ポート一覧表示のソート機能を実装しました。また、ポート一覧表示画面のタイトルバーにバージョン番号を表示する様にしました。
  • 2006/12/17
    Xlib Programming Lectures 「FAQ」を追加しました。
  • 2006/12/10
    Port Viewer のバージョン 1.0.2.0 をリリースしました。ポート一覧表示/プロセス情報表示の失敗時に、エラーダイアログを表示して例外内容を表示する様にしました。
  • 2006/12/07
    • Port Viewer に「お知らせ」を追加しました。
    • Port Viewer の「環境条件/制限事項」に追記しました。
  • 2006/11/23
    Port Viewer のバージョン 1.0.1.0 をリリースしました。バージョン情報ダイアログで URL をクリックした際に落ちてしまう場合がある不具合に対処しました(エラー情報ダイアログを表示)。
  • 2006/11/18
    Port Viewer (TCP/UDPポート一覧チェックツール) を追加しました。
  • 2006/11/12
    • Xlib Programming Lectures 「LECTURE 19 X の歴史」を追加しました。
    • Xlib Programming Lectures トップページの「参考情報(文献、リンク)」に X.Org Foundation および The XFree86 Project, Inc. を追加しました。
  • 2006/10/10
    • Space Maze バージョン 1.1.0 以降、効果音のフォーマット変更の関係で リトルエンディアンの CPU でのみ効果音が正常に再生できるという制限が発生したため、 マニュアルページにコメントを追記しました。
    • Space Maze の環境条件に libpng が必要であると追記しました。
  • 2006/10/09
    Space Maze で使用している効果音を全て自作し、完全に GPL v2 準拠としました。
  • 2006/8/19
    各ドキュメントダウンロード版の index.htm(もしくは index.html)が @nifty へのリンクになっていたため、ローカルで動く様に書き換えました。
  • 2006/7/30
    宇宙空間に広がる迷宮を舞台にしたシューティングゲーム Space Maze を公開しました。
  • 2006/6/11
    全体的にフレームの使用をやめて CSS レイアウトに変更しました。ついでに 各ページ上部の画像を自分家の車の写真に変えてみました。
  • 2006/5/6
    • 連絡先アドレスを変更しました。
    • Xlib Programming Lectures 「LECTURE 4 イベント処理」に、 MappingNotify イベントに関する内容を追記。
  • 2006/1/27
    Linux Kernel Module Programming ( Kernel 2.4 ) トップページの免責事項の記述を修正しました。 サンプルプログラムは GNU General Public License (GPL) に従うこととしました。
  • 2006/1/14
    Linux Kernel Module Programming ( Kernel 2.4 ) のトップページと LECTURE 1 の記述を少し修正しました。 カーネルモジュールは、デバイスドライバのみではなく独自機能をカーネルに 動的に組み込むためにも使えるということを意識した記述にしました。
  • 2005/9/26
    • Xlib Programming Lectures 「LECTURE 6 グラフィックスコンテキスト」の「GCに設定される描画属性」に、 GraphicsExpose/NoExpose イベント生成設定に関する内容を追記。 また、クリッピングに関する内容は「LECTURE 7 Expose イベント」にて説明と明記
    • Xlib Programming Lectures 「LECTURE 10 キーボード入力処理の方法」に、 「オートリピート」に関する内容を追記
    • Xlib Programming Lectures 「LECTURE 13 ウィンドウマネージャとのやりとり」に、「タイトル文字列の設定/取得」、 「アイコン表示時のタイトル文字列の設定/取得」、「ノーマルヒントの設定/取得」、 「クラスヒントの設定/取得」に関する内容を追記
  • 2005/8/26
    連絡先アドレスを変更しました。
  • 2005/6/23
    商標に関する内容を追記しました。
  • 2005/5/8
    Linux Kernel Module programming ( Kernel 2.4 ) を公開しました。
  • 2005/2/13
    Xlib Programming Lectures "DIB の表示" の XCreateImage 使用に関する記述を修正しました。
    陸さん、ありがとうございました。
  • 2004/2/2
    Linux Sound programming with OSS API を更新しました。
  • 2004/1/30
    メールアドレスを変更しました。
    Linux Sound programming with OSS API を更新しました。
  • 2004/1/21
    プログラミングに関する文書以外の公開を止めました。
  • 2003/5/7
    [ Linux で CD-R を利用する ] の cdrecord の配付元リンクを更新。
    また、CD-R 書き込み用の自作スクリプトを掲載
  • 2003/5/3
    Xlib Programming Lectures に "矩形でないウィンドウの表示" を追加
  • 2003/2/17
    Linux Sound programming with OSS API を公開 ( 書きかけですが。。。)
  • 2002/8/3
    [ Linux で CD-R を利用する ] の "cdrecord による書き込み" にコメントを追加
  • 2002/7/28
    全体構成の見直し
  • 2002/3/29
    [ Java LDAP client programming ] を追加
  • 2002/3/1
    [ Linux で CD-R を利用する ] を更新
  • 2002/3/9
    本サイト立ち上げ