2009年12月27日日曜日

正月のお休み

今日からお休みです。実家への土産物を探して来ました。

今年はあっという間に過ぎ去った気がします。

来年はもうちょっとゆっくりのんびりしたいですねぇ。


2009年12月22日火曜日

NW試験落ちた

NW試験の合格発表でした。(うっかり忘れるところでした。)

うむ。予想通り不合格。

成績を見る感じでは、かろうじて午後Iはクリアしていたみたいです。
こう見てみると、ちょっとおしいな、なんて考えてしまいます。

次は合格できるようにがんばるのだぞ。(明日の自分への言葉)

というよりも、春は何を受けようか?
DBしかないじゃないか!

DBは結構苦手、というよりも、そもそも授業とかで習ったことがない。
でも仕事で使ったことある。

独学ですね。ですねー。

2009年12月21日月曜日

12月の出来事

12月入ってから2週間半ほど、大阪に出張しておりました。
月曜の朝4時起きで新幹線始発に乗り込み、金曜日は(日付が変わろうという)夜遅くに帰ってくる。土日は、ほとんど洗濯とかで終わった。

忘年会の宴会出し物係りを任されて、出張中にもかかわらず毎日夜なべをして企画したり作業したり。結果としては、まあ盛り上がったからよかったかもしれないという程度。わざわざ、これの出席のために出張日程を調整してもらったんだぜ。(えらい会社です)

ようやく自分のことをやったのは、先の土曜にプールに泳ぎに行ったことぐらい。(泳ぐことについての自分の考えは、いつかは書きたいことです。)

この調子では12月の投稿がないのでは?という危機感のもと、最近の出来事をとりあえず書いてみた。

2009年11月18日水曜日

Sun VirtualBoxを使ってみた

今日はVirtualBoxを久しぶり(Sunになる前のものを使っていた)にアップデートしてみましたが、けっこう使いやすくなっていました。会社ではVMware Workstationを使っているのですが、これだけ動くなら家で使うのに十分です。

昔みたいに、実インタフェースとブリッジしようとしてVirtualホストインタフェース増殖の罠にハマることが無くなったのが一番良いことです。(これがあったので、あんまり使いたくなくなっていたのです。)

最近は、「スナップショット」を保存できる機能を重宝していたので、家でもVMware Workstationを買おうかと考えていました。「スナップショット」も使えてしかも無料とくればVirtualBoxを使わない理由はないかも。

とりあえず、Android Live-CDを実行させてみた。
必ずVESAを選択すること。そうしないと画面が真っ黒になってしまうということがわかった。

あとは、USBデバイスの接続をもうちょっとスムーズにやって欲しいかな。

2009年11月2日月曜日

Trac Discussion Pluginでメール通知

最近はTracの管理業務(何でも屋的な業務の一環)を行っております。

さて、Discussion Pluginにて、フォーラムやトピックに更新があったときに、メールで通知を受け取る方法についてです。(私の読み方が悪いのか、どこを探しても設定の方法が見当たらなく、思いのほか時間がかかってしまいました。)

※プラグイン自体のインストールと設定についてはちょっと端折ります。
インストール
$ svn co http://trac-hacks.org/svn/discussionoplugin/0.11
$ cd 0.11
$ python setup.py bdist_egg

dist/以下に***.eggなるものができるので、それをtracプロジェクトのpluginsディレクトリに入れます。

設定(trac.ini)
[discussion]
title = Discussion
default_display = tree
forum_sort = id
forum_sort_direction = asc
topic_sort = id
topic_sort_direction = asc

[components]
tracdiscussion.* = enabled


これでOKです。
後は、
# trac-admin [tracプロジェクトのパス] upgrade
としておけば問題ないはずです。

Email通知
上記設定にて、とりあえずはEmail通知機能は有効になります。
が、さて一体どこの誰に通知が行くのでしょうか?

まず基本的には、「trac.ini」の[notification]フィールドで設定したメールサーバ(SMTP)に対してメールを送ります。(これは、wiresharkで確認しました)

続いて誰に送信するかの設定ですが、
フォーラムやトピックを開いたときにある「Subscribe」ボタン(あるいは管理者であれば「Edit Subscribers」)が設定方法になります。

「Subscribe」ボタンを押すと現在のログインユーザに対してメール通知が有効になり、(「Subscribe」を押した後で)「Unsubscribe」ボタンを押すとメール通知が無効になります。
※あらかじめ「ユーザ設定」にてメールアドレスを設定しておくことを忘れずに。

管理者ユーザであれば、「Edit Subscribers」にてメール通知するメールアドレスを手で追加することができるようになっています。

ということを、Discussion Pluginのソースコードを読んで突き止めたのであった。

以上。

2009年10月18日日曜日

NW試験受けてきました

これは落ちました。


敗因はやっぱり実務経験のなさでしょうね。
ネットワーク機器を扱うことはよくやっているのですが、ネットワークの設計とか、サーバを運用したりといったことは、まあ本格的にやったことはないです。
とにかくネットワーク分野というのは、略語が多い。実際やってないと。あとネットワークといっても分野がある。Linuxでサーバを構築するのはよくやることですが、ネットワーク自体を構築したり運用したりするなんて、そうそう機会があるもんでもない。
まあ、自分で構築するというのも一つの手ですが。一体何のために一人用のネットワークを作るのかといった目的がいまいち定まらないんですよ。

とりあえず反省はこのぐらいにして、酒宴を始めます。

2009年10月17日土曜日

明日はNW試験の日

とうとう試験の前日になってしまいました。

今日は出社日だったのですが、有給を取って家で勉強です。(といいつつ、お昼まで寝ていました。)

自信の程はどうかというと、
午前は、まあ問題ないでしょう。
午後は、はっきり言ってやばい。参考書の問題が全くできません。

まあ、あとは根性と気力で乗り切るしかないでしょう。
つまりは、いつも通りということ。

無題

思ったことをとにかく言葉にして残しておくというのが、案外大切だったりするのかもしれません。

私なんか、人前でしゃべるのが苦手で、苦手で。急に何か話せなんて言われると全く一言も思いつかないなんてことが度々です。
オフィスでの電話の応対とか、あらかじめ決まっているような台詞であれば、すらすら言えるのですがね。(それでも、まあ、今でもそんなに上手いとは思っていませんが。)

私の場合は、それは『記憶』に残っているからだと思うのです。そう、台詞がそのまま『記憶』に残っていれば、ただそれをその通り再生させれば良いだけなのです。

だからこそ、今まで一度も言葉にして考えなかったことや、台詞として覚えなかったことは、とっさには出てこないのです。

『思い』や『気分』なんて、そう簡単に言葉で表せることではないし。
架空の話だってそうだ。
全くもって、言葉がなければ嘘さえつけない。

嘘をつきたいかどうかは別として、言葉はあらかじめ準備しておかなければいけないということです。

2009年9月28日月曜日

Eclipseでデバッグ時に外部ソースファイルを参照先として設定する

・Ubuntu 9.04
・Eclipse 3.5 (日本語化)

デバッグ実行(デバッグパースペクティブを開いているとき)。
「デバッグ」ビュー内で、デバッグ目的のアプリケーションを右クリック、「ソース・ルックアップの編集」をクリックする。
「追加」ボタンにて外部のソースコードを検索パスに追加する。

これで、ストップをかけたときに、アプリケーションには含まれないソース(例えば、ライブラリやフレームワークのソース)を勝手に探してきてくれます。


この前、取得・ビルドしたAndroid LiveCDとそのソースコードを使って、アプリよりも下の層まで参照できるようになりました。

2009年9月26日土曜日

UbuntuでAndroid(cupcake) x86 LiveCDをビルド

参考というより、そのまんまですが、Android LiveCDとそのソースが欲しかったので試してみました。

・Ubuntu 9.04

準備
基本的には、こちらに書いてある手順の通り環境を整えます。
私の場合は、以下で一通りインストールできました。
$ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind
$ mkdir bin
$ curl http://android.git.kernel.org/repo > bin/repo
$ chmod a+x bin/repo
$ source .profile

※Androidのページでは、「sun-java5-jdk」が推奨されています。私は、新しいもの好きなので「sun-java6-jdk」を使っています。とりあえず、今回は問題ありませんでした。


ソース取得
リリース版をGetします。
$repo init -u git://git.android-x86.org/platform/manifest.git -b android-x86-v0.9
$repo sync

ビルド
$ make -j1 iso_img TARGET_PRODUCT=eeepc
※ 『-j1』の数字部分をCPUのコア数に合わせるとビルドが早くなるらしい。例えばDual Coreなら『-j2』、Quad Coreなら『-j4』。

out/target/product/eeepc/eeepc.iso
が出来上がります。

以上。

2009年9月22日火曜日

美術館、図書館、いつもの散歩のこと。

西洋美術館に行く。わりと好きな美術館だ。
HASHIの「未来の原風景」も好きです。

それから図書館に行き、ギリシア神話とローマ神話について本を読んだ。ついでにエジプト神話についても。そうそう、昨日は旧約聖書と新約聖書についても読んでたっけ。

こういうのは、予備知識があるのとないのとでは、楽しみの感じ方が変わってくるのだろう。
まあ、どっちが良いとは言わないけど。

興味があれば調べる。
これだけです。

2009年9月18日金曜日

DebianでEclipseを使うときに"Unpack facility not configured"とか"Cannot connect to KeyStore"とか出る場合の対処法

・Debian 5.0.3
問題編
sun-javaパッケージがデフォルトでは見つからなかったので、SunのサイトからJDK6をダウンロードしてインストールする。
それでもって、Eclipse 3.5(GALILEO)をダウンロードしてきて起動。これは、すんなり成功。
しかし、プラグインを追加しようと思って、「新規ソフトウェアのインストール」をやってみたところ、
"Unpack facility not configured"
とエラーが発生して、上手くプラグインをインストールできない。
それではと、デフォルトで見つかるOpenJDKを入れてみたけれど、OpenJDKではEclipseすら起動しない。

そこで、「contrib」と「non-free」を有効にすればsun-javaが見つかるようになることがわかったので、sun-java6-jdkをインストールしてみる。
Eclipseは、まあ普通に起動する。
しかし、プラグインを追加しようとすると、またしても
"Cannot connect to KeyStore"
とエラーが発生して、やっぱりインストールに失敗する。

解決編
(1)Synapticパッケージ・マネージャを起動する。
(2)「設定」→「リポジトリ」を開く。
(3)(contrib)と(non-free)にチェックを入れる。
(4)再読込
(5)「openjdk-6-jre」と「sun-java6-jdk」をインストール。
   Synapticは終了
(6)Root Terminalにて、以下のコマンドを入力。
 # update-java-alternatives -s java-6-sun

以上で普通に使えるようになる(はず)

2009年9月17日木曜日

DebianでGtk版WebKitをビルド

WebKitのビルドに挑戦してみました。
  • Debian 5.0.3 (netinstall CDでインストールしました。)
準備
以下のパッケージを「(ルートターミナルで)apt-get」あるいは「Synaptic パッケージ・マネージャ」からインストールします。
・subversion
・build-essential
・libxml2-dev
・libxslt1-dev
・libsqlite3-dev
・bison
・flex
・gperf
・autoconf
・libtool
・libgtk2.0-dev
・gtk-doc-tools
・libicu-dev
・libenchant-dev
・libgail-dev
・libsoup2.4-dev
・libXt-dev
・libgstreamer-plugins-base0.10-dev

実験版・不安定版パッケージにアップグレード
WebKitは現状の最新安定版だけではビルドできません。いくつかのパッケージは、より新しいexperimental(実験版)、unstable(不安定版)にアップグレードする必要があります。

ルートターミナル(もしくはsu)にて、/etc/apt/source.listを編集します。
# gedit /etc/apt/source.list
以下のような2行をコピー&ペーストし、

 deb http://ミラーサーバ/debian/ lenny main
 deb-src http://ミラーサーバ/debian/ lenny main

下記4行に書き換えます。

 deb http://ミラーサーバ/debian/ unstable main
 deb-src http://ミラーサーバ/debian/ unstable main
 deb http://ミラーサーバ/debian/ experimental main
 deb-src http://ミラーサーバ/debian/ experimental main

追加したら、上書きして閉じます。

以下のコマンドにて、experimental版を優先にしてアップグレードします。
# apt-get update
# apt-get -t experimental upgrade
# apt-get -t experimental install libgtk2.0-dev
# apt-get -t experimental install libsoup2.4-dev
※何やら聞かれる場合がありますが、基本的にはデフォルトのまま「OK」でよいです。
ビルドに必要なパッケージをもうひとつインストールします。

# apt-get install libgeoclue-dev

WebKitソースコードの入手
以下のコマンドを入力し、SVNリポジトリより最新版をチェックアウトします。
$ svn co http://svn.webkit.org/repository/webkit/trunk


Gtk版WebKitのビルド
$ cd trunk
$ WebKitTools/Scripts/update-webkit
$ WebKitTools/Scripts/set-webkit-configuration --release
$ WebKitTools/Scripts/build-webkit --gtk


GTK版WebKitの実行
$ WebKitBuild/Release/Programs/GtkLancher

以上。(けっこう試行錯誤しました。)

2009年9月8日火曜日

UbuntuでOpenfire(グループチャットサーバ)構築

XMPP対応のグループチャットサーバを構築します。
  • Ubuntu 9.04
  • openfire 3.6.4
Openfireインストール
javaのランタイムが必要なので、インストールしていない場合は、以下のコマンドによりインストールします。
sudo apt-get instal sun-java6-jre
テンポラリなディレクトリを作成します。
mkdir temp/openfire
cd temp/openfire
以下のコマンドを入力し、Openfireパッケージのダウンロードとインストールを行います。
wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3.6.4_all.deb
sudo dpkg -i openfire_3.6.4_all.deb
※改行されていますが、2つのコマンドです。

初期設定
管理Webページ(http://localhost:9090)にアクセスし、初期設定を行います。
全てデフォルトで良いです。管理Webページへのパスワードを決める必要があるので、考えておきましょう。
「Setup Complete!」の画面まで進めば初期設定は完了ですが、そのまま進んでも管理Webページにログインできない(バグと思われる)ので、以下のコマンドを入力し、一度Openfireを再起動させます。
sudo /etc/init.d/openfire restart
再起動確認後、再度管理Webページへアクセスします。
ユーザは『admin』で、パスワードは初期設定で入力したパスワードを入れます。

使い方(最低限)
まずは、ユーザアカウントを作成しましょう。管理Webページの「Users/Groups」→「Users」→「Create New User」にてユーザアカウントを作成できます。

クライアントについては、Openfireと相性の良いSparkを使うのが良いでしょう。
XMPPに対応したソフトであれば、大抵簡単に接続できるはずです。

プラグインを入れれば、もっと色々な使い方ができるかもしれません。が、また今度。

以上です。

2009年9月7日月曜日

UbuntuでDarwin Streaming Server(動画ストリーミングサーバ)の構築

RTSPサーバであるDarwin Streaming Serverを構築し、動画をストリーミング再生して遊んでみます。
  • Ubuntu 9.04
  • Darwin Streaming Server 6.0.3
Darwin Streaming Serverのインストール
適当なテンポラリディレクトリを作ります。
mkdir temp/dss
cd temp/dss
以下のコマンドを入力し、インストールパッケージのダウンロードとインストールを行います。
wget http://static.lstoll.net/dss/DarwinStreamingSrvr6.0.3-Linux.deb.gz
gzip -d DarwinStreamingSrvr6.0.3-Linux.deb.gz
sudo dpkg -i DarwinStreamingSrvr6.0.3-Linux.deb
この方法でインストールを行った場合、Web管理画面のユーザ名とパスワードは『admin』に設定されます。

管理画面(http://localhost:1220)にアクセスし、初期設定を行います。
基本的には全てデフォルトのままで良いです。(自分で考えるのはMP3ストリーミングのパスワードぐらいです)

デフォルトの設定であれば、/usr/local/movies/ディレクトリにストリーミング用のメディアファイルを置くように設定されます。(後で、管理画面から設定変更も可能です)

動作確認
/usr/local/movies/ディレクトリ以下にサンプルの動画が格納されていますので、RTSPストリーミング再生機能を持つQuickTime PlayerやVLC Media Palyerで再生確認を行います。
(※Darwin Streaming Serverは自動起動するように設定されます。)

VLC Media Player1.0.1の場合は、「メディア」→「ネットワークストリームを開く」をクリックし、ダイアログにて「プロトコル」に『RTSP』、「アドレス」に『【サーバのIPアドレス】/【ファイル名】』(例えば、192.168.0.2/sample_h264_300kbit.mp4)を入力して「再生」します。


RTSP用コンテンツ作成方法
Windows上で、お手持ちの動画ファイルをRTSP用にエンコードする方法についてです。
RTSP用のコンテンツは、hint付きMP4(H.264,AAC)にエンコードして作成する必要があります。方法としては、とりあえず2パターンを紹介します。
(※『hint』情報というのは、 ストリーミング再生を行うためにプリロードされるインデックスみたいな情報だと思います。違うかも。)
(1)MediaCoderを使用してhint付きMP4にエンコードする。
(2)MP4ファイルにMP4Box.exeを使用してhint情報を付加する。(他のエンコードツールを使ってエンコードした場合など)
どちらの場合でもMediaCoderをインストールすれば、ほぼ事足ります。

(1)MP4Box.exeによるHint情報付加
MP4Box.exeは、MediaCoderのインストールフォルダ下のtoolsフォルダにあります。
コマンドプロンプトで以下のようなコマンドを入力して利用します。(input.mp4にhintを付けてoutput.mp4という名前で出力する例です。)
MP4Box.exe -hint -add input.mp4 -new output.mp4
(実際には、それぞれ絶対パスあるいは相対パスで指定する必要があります。)

(2)MediaCoderによるhint付きMP4作成
大雑把な設定内容ですが、「Video」を『H.264』、「Audio」を『FAAC』、「Container」を『MP4』を選択します。
さらに「MP4Box」タブの「Advanced」をクリックし、「Hint the file for RTP/RTSP」を『true』にし、エンコードを行います。

出来上がったファイルを/usr/local/movies/に置いて、準備完了です。

かなり手抜きになりましたが、以上です。

2009年9月4日金曜日

UbuntuでEclipseによるOpenGLプログラム開発環境の構築

Ubuntu上でOpenGL(GLUT)プログラムをコンパイル・実行できる環境の構築と、Eclipse上でのGLUTプログラム開発環境の構築についてです。
  • Ubuntu 9.04
  • sun-java6-jdk
  • eclipse 3.5
OpenGL(GLUT)のインストール
端末を開き、apt-getコマンドでGLUT関連パッケージをインストールします。
sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev
あるいは、「システム」→「システム管理」→「Synapticパッケージ・マネージャ」より、
クイック検索に『glut』と入力してパッケージを探す。

GLUTプログラムのコンパイル方法
例えば、program.cをコンパイルする場合は、以下のようにリンカーオプションを付けてをコンパイルする。
gcc -lglut -lGLU -lGL program.c
ひとまず、以下で公開されているサンプルプログラムがコンパイルできることを確認します。

Eclipse環境の準備
jdkをインストールします。
sudo apt-get install sun-java6-jdk
eclipse.org(http://www.eclipse.org/)より、eclipse SDKをダウンロードします。
「Download Eclipse」というリンクより、(私の場合は)『eclipse classic 3.5.0』をダウンロードしました。

(何となく慣例で)/usr/local以下に展開します。
sudo tar xvzf eclipse-SDK-3.5-linux-gtk.tar.gz -C /usr/local/
自分の所有にパーミッションを変更します。※96inuというユーザであったとします。
sudo chown -R 96inu:96inu /usr/local/eclipse
eclipseを起動させます。
/usr/local/eclipse/eclipse
まずやることは、eclipseへのプラグインインストールです。
eclilpseのメニューの「Help」→「Install New Software...」より、
「Programming Languages」の「Eclipse C/C++ Development Tools」をインストールします。
一旦eclipseを閉じます。

日本語化のために、http://mergedoc.sourceforge.jp/より、peiadesの最新版をダウンロードする。
peliadesをeclispeディレクトリに解凍する
unzip pleiades.zip -d /usr/loca/eclipse/
eclipse設定ファイルを開く
gedit /usr/loca/eclipse/eclipse.ini
最後に行を加えて、下記内容を入力し、上書き保存。
-javaagent:/usr/local/eclipse/plugins/jp.sourceforge.mergedoc.pleiades.jar
再びelipseを起動
/usr/local/eclipse/eclipse
EclipseでGLUTプログラミング
新規プロジェクトの作成にて、「C プロジェクト」を選び、「実行可能」→「Hello World ANSI C プロジェクト」を作成する。
自動生成されたソースを編集し、GLUTなプログラムに書き換える。

ビルドを行う前に、プロジェクトのプロパティを開きます。(作成したプロジェクトを右クリックして「プロパティ」をクリック)
「C/C++ビルド」→「設定」を開き、「GCC C Linker」の「ライブラリー」に
glut
GLU
GL
を追加します。
これで、GLUTプログラムのビルド・実行ができます。

以上です。

2009年8月1日土曜日

TOEIC、花火大会、そして酒

TOEICの結果が返ってきた。予想通り微妙な得点であった。

どうも疲れ果てていたようで夕方まで昼寝をしてしまった。

さて今日は近くで花火大会があった。
これは屋外で酒を飲む口実のようなもの。

2009年7月19日日曜日

横浜散歩。あるいは非エンジニアライフ。

今日は横浜を散歩。
気まぐれで横浜美術館に行きたくなったからです。
開国博のスタンプラリーを拾い。特に他に目的もなかったので、それに便乗して回ってみようかと。
みなとみらいから赤レンガ、大さん橋を巡り、山下公園、元町・中華街へ。
中華街で肉まんと紹興酒を買い、なぜか彷徨って横浜スタジアムの前を通り、もう一回赤レンガへ。
どうしてもビールが飲みたかったのだ。

それから帰って飲み直す。

今日は全くエンジニアライフでない一日を過ごしましたとさ。
スタンプ集まったけど、どうしよう。

2009年7月3日金曜日

NW試験学習計画

試験日が10月18日なので、残り17週間。
参考書の分量は、約500ページ+模擬試験。
3週間ぐらいを模擬試験と予備(重点対策)の期間と見積もって、1週間に約36ページ進めれば良いということになる。
ただし、実働2日(土日の休日のみ)だから、1日約13ページ読むということ。

だが、これまでに学習してきた予備知識があるので、負荷率は50%としよう。
すると、1日の負担は7ページ程度と考えることができるだろう。
これなら達成可能だと判断できる。

とまあ、記憶するのが面倒なので書いてみました。そうそう上手く進むわけないのだが。
振り返って見るために残す。

2009年6月30日火曜日

ES試験合格しました

今日は情報処理試験の合格発表ということで、朝から気持ちが落ち着かなかったんだが、いざ合格しているのを見つけると安心したというか、あまり驚きはなかった。
まあ、多めに見積もって合格は5分5分かなとは思っていましたが。成績の方は5分5分という予想通り、かなりぎりぎりのライン。

昼休みに自分の席で、一人ニヤリと。誰か声をかけてくれないかなと、ちらりと思いましたが、結局誰にも言わずじまいです。
うちの会社は、これで昇級とかボーナス増額とかありませんからね。一人でこっそり受けに行ったわけです。

でもまあ、純粋に自分のためにやったんだぞという、そういう気持ちの良さは残るかな。

2009年6月28日日曜日

5年ぶりにTOEIC

5年ぶりにTOEICを受けに行ってきました。
勉強本は買っていたのですが、1桁程度開いたところでさっぱり読むのをやめてしまいました。
だってつまらないんですもの。
日常業務上で英語のドキュメントを読むのは問題ないのですが、リスニングやライティングの試験となると話は別ですな。
さて、5年間でどの程度、英語力が落ちていることやら。きっと1ヶ月後の僕は、英語の勉強に身が入ることでしょう。

と、思いつつ、帰りにネットワークスペシャリストの参考書を買いました。
やっぱ、こっちの方が面白そう。

ブログの方向性を考えつつ、とりあえずは日記を書いてみました。