Sunday, May 31, 2009

05/31/2009


  • 3 pm ごろに起床して昼メシを食べた。

  • ごろごろしていてら寝てしまって 6 pm 過ぎに...。

  • シャワーを浴びた後、夕メシを食べた。

  • 眠くて 10:30 pm ぐらいから寝た。


Saturday, May 30, 2009

05/30/2009


  • いつもどおり朝まで活動していて 8 am すぎに寝た。





Friday, May 29, 2009

05/29/2009


  • 自分たちは、ST 環境におけるテストを実施できないと(当日になって)認識し、テストできなかった。他の部署へ実施を依頼した。

  • 定時で仕事を終了した。

  • 月末だったので、事務的な処理を対応した。

  • 隣に座っている外国人は、しばらく帰省するらしい。


Thursday, May 28, 2009

05/28/2009


  • 開発環境におけるテストを実施した。

  • 眠すぎて、厳しい 1 日だった。




Wednesday, May 27, 2009

05/27/2009


  • 担当していたプロジェクトが流れてしまった...。

  • 7:15 pm くらいに仕事を終了し、自宅へ移動した。

  • 自宅で食事をしてシャワーを浴びた後、疲れていたのか 11:30 pm くらいまでベッドでウトウトしていた。

  • "ロイヤル英文法改訂新版" を購入した。

  • "やさしく学べる基礎数学 線形代数・微分積分" による学習を開始した。

  • 4 am までに寝室へ移動していが、無理っぽい。

Tuesday, May 26, 2009

05/26/2009


  • I 氏から、現状の業務について質問された。

  • よろしくない体調なので、早めに寝る予定だったり。

  • 今夜も数学の学習を少々...。

  • 継続させなければ。


Monday, May 25, 2009

05/25/2009

Using the EGit Eclipse Plugin with GitHub

Eclipse に EGit Plugin を適用して GitHub のリポジトリを利用してみるテスト





00. リポジトリを作成する

GitHub にリポジトリを作成する。このあたりを参考のこと。プロジェクトもインポートしておく。また、SSH の設定も完了していると想定して作業を解説する。





01. Eclipse に EGit を適用する

Eclipse を起動し "Software Updates" 機能を実行し EGit をインストールする。URL は以下のとおり。いくつかパッケージ?を選択できるが、"Integration Build" のみで大丈夫だ。適用したら Eclipse を再起動する。

http://www.jgit.org/update-site/





02. チェックアウトする

Eclipse を再起動した後、メニューの "File" ---> "Import" から "Git Repository" を選択する





情報を入力する。

git+ssh://git@github.com/satoshiabe/LaunchPad.git
# User は "git" のまま変更しない





"Next" ボタンをクリックする。





"Next" ボタンをクリックする。





"Finish" ボタンをクリックする。





プロジェクトがチェックアウトされているはずだ。






以上

Sunday, May 24, 2009

05/24/2009


  • 4 pm に起床した。

  • 7 pm から散髪してもらった。

  • 数学(高校で学習する範囲)の、ある分野を復習した。



Saturday, May 23, 2009

05/23/2009


  • went to bed at 6 am

  • woke up at 5 pm

  • make a appointment to have a haircut




Friday, May 22, 2009

05/22/2009


  • ソースを確認しつつ、設計書らを更新した。

  • コメントにリプライしておいた。




Thursday, May 21, 2009

05/21/2009


  • I さんは休暇したが、進捗について質問された。

  • 帰り前にメールを返信した。

  • 朝から、ずっと頭痛を感じていたため、何もせず寝た...。



Wednesday, May 20, 2009

05/20/2009


  • 眠すぎて夕方から何も作業できなかった(に等しい

  • C 版の extendable array を記述した(書き写しただけ

  • 睡眠不足で体調が最悪なので、2 am までに寝たい。



Tuesday, May 19, 2009

05/19/2009


  • 今日も L チームのテストを実施した。

  • 明日で完了できるか?

  • あのドキュメントを木曜日に作成し終えて、内部レビューしてほしい、かも。

  • つか、それほどドキュメント作成の業務を経験していないため、どのように作成したらよいのやら...。

  • 久々に寝すごしそうになった...。

  • 平日の睡眠時間は、平均 3 時間くらい。

  • 今朝 5 時まで頑張ってみた Gentoo Linux においての日本語を入力する環境の整備を、とりあえず中止する。週末に再チャレンジだ。

  • DNSstuff.com のマネージャが親切に対応してくれて、料金を refund してくれた。

  • http://www.javari.jp/ で注文したバッグが配送されたが、残念ながら返品する予定だ。

Monday, May 18, 2009

05/18/2009


  • 新しい仕事を依頼されてしまった...。

  • 例の仕事を、ほとんど進められず。

  • 22:00 まで仕事をしていたが、最後の数名になってしまったため、焦って退出するハメに。

  • DNSstuff.com へ質問メールを送信した。

  • Gentoo にて日本語を入力する環境を構築しようとして、現在 04:15 am なり...。まだコンパイルが完了しない。

Sunday, May 17, 2009

05/17/2009


  • 8 am すぎに寝た。

  • 17 pm すぎに起きた。

  • 基礎的な部分の数学を復習した。

  • Gentoo をインストールした。


Saturday, May 16, 2009

05/16/2009


  • 8 am ごろに寝て、1 pm すぎに目覚めた。

  • マツモトキヨシで買い物したが、ひとつの商品がつめ忘れられていた。

  • Gentoo Linux の ISO イメージをダウンロードした。



Gentoo Linux Installation Notes

Gentoo Linux を VMware Fusion にインストールしてみるテスト



01. ISO イメージをダウンロードする

Gentoo Linux -- Where to Get Gentoo Linux を確認し、適切な ISO イメージをダウンロードする。自分は、"livecd-amd64-installer-2008.0-r1.iso" をダウンロードした。





02. 起動

ISO イメージを指定し、VM を起動する。Xfce が起動されるはずだ。デスクトップにインストーラが存在する。自分は、"Gentoo Linux Installer (GTK+)" をクリックしてインストールを開始した。





03. インストール

基本的に、画面にて質問される内容に回答し続けて作業する。一般ユーザを追加する画面にて、ユーザを "wheel" グループに追加しておく。追加しないと、su で root にスイッチできない。

Friday, May 15, 2009

05/15/2009


  • 22:00 まで残業した...。

  • 05:00 に寝たわりに、あまり眠くなかった。

  • D23HWDebian で動作したという情報を発見した。Ubuntu でも大丈夫だろうから、自分も契約しようかな。



Thursday, May 14, 2009

05/14/2009


  • 今日から L チームの業務を...。

  • とりあえずテストを実施したが、なにぶん、よく理解していないので、ほとんど進められなかった。

  • Ubuntu Linux 9.04 と FreeBSD 7.2 の i386 および amd64 の ISO イメージを burn した。



Learning LaTeX

LaTeX を勉強するので、このポストに記載していく。参考にする書籍は、Safari Books Online に存在する Guide to LaTeX, Fourth Edition だ。

// UPDATING...

Wednesday, May 13, 2009

05/13/2009


  • 眠すぎて体調がヤバい。

  • 昨夜 01:30 に寝たが、なぜか 05:00 に目覚めてしまった。

  • 結果的に、いつもどおりの睡眠時間だ。

  • 昼過ぎから強烈に眠くなる。


Vim on Windows

以下の内容を ${HOME}/.vimrc ファイルに記載する。

----- ( ここから ) -----
set gfn=MS_ゴシック:h8:cSHIFTJIS
set iminsert=0
set imsearch=-1
----- ( ここまで ) -----

Tuesday, May 12, 2009

05/12/2009


  • 十分に睡眠していないせいか、常に眠くて何も手につかない状態だった。

  • bitbucket.org の接続を SSH へ変更した。




Using OpenSSH with bitbucket.org

OpenSSH キーのペアを作成する。

% cd ~/.ssh
% ssh-keygen -t rsa



http://bitbucket.org/account/ において、public-key を cat した内容をペースした後 "Add key" ボタンをクリックする。これで準備を完了したに等しい。



config ファイルを編集する。ユーザに必ず "hg" を指定する。自分のアカウントを指定しないこと。

% vi ~/.ssh/config
Host bb
  Compression yes
  HostName bitbucket.org
  User hg



.hgrc ファイルを編集する。圧縮を有効に設定する。

% vi ~/.hgrc

[ui]
ssh = ssh -C



チェックアウトする。

% hg clone ssh://hg@bitbucket.org/${YOUR_USED_ID}/${YOUR_REPOSITORY_NAME}





以上!

Migrating my Subversion repository to the bitbucket.org

Read these instructions below :

Help/FAQ / ConvertingFromSubversionCVSgit — bitbucket.org

ConvertExtension - Mercurial



Now I will show you how I migrate my Subversion repository to the bitbucket.org :



First of all, enabling the "convert" command.

% vi ~/.hgrc
[extensions]
hgext.convert =



Checking it out from bitbucket.org.

% mkdir ~/repositories
% cd ~/repositories
% hg clone http://bitbucket.org/satoshiabe/${REPOSITORY_NAME}/



Converting the Subversion repository to the Mercurial repository.

% hg convert ${YOUR_WORKING_COPY_OF_THE SUBVERSION} ~/repositories/${REPOSITORY_NAME}



Uploading to bitbucket.org.

% hg push http://bitbucket.org/satoshiabe/${REPOSITORY_NAME}/



That's all.

Monday, May 11, 2009

05/11/2009


  • やはり月曜日の体調は最悪だった。

  • 3 つの説明会に参加して疲れた。

  • なぜか?となりのチームのメーリングリストに追加された。

  • 19:30 で仕事を終了した。

  • bitbucket.org の有料プランを申し込んだ。支払いは PayPal で。

  • HTML ファイルで作成して Subversion で管理していたファイルを、Mercurial フォーマットにコンバートして bitbucket.org にインポートした。

Sunday, May 10, 2009

05/10/2009


  • WN-G54/DCR を注文した。

  • WN-G54/DCR が配送された。

  • やっと、Ubuntu Linux 8.10 で A2502 を利用できた...。

  • Poken をセットアップした。


Using A2502 on Ubuntu Linux 8.10

Ubuntu Linux 8.10 にて、NTT docomo の FOMA A2502 HIGH-SPEED を利用するための作業メモを記載しておく。



目的 :

Ubuntu Linux 8.10 or later にて、FOMA 3G によるインターネット接続を利用する。





結果 :

接続できた。





前提 :

先日、Yahoo! オークションにて、この A2502 の本体のみを購入した。いわゆる "白ロム" だ。SIM カードを契約したときの本体は、L-02A だ。

経緯を簡単に復習しておく。まず、Ubuntu で動作が確認されている FOMA 3G のデータ通信カードの情報は、L-02A と比較すると、やはり A2502 の方が多かった。L-02A は、最近に発売された機種だ、という事情もある。そのため、私は A2502 を契約するつもりで携帯電話ショップに足を運んだ。

ショップの店員に契約したい旨を伝えると、どうやら L-02A なら A2502 より、約 1,000/月ほどお得なプランに加入できるらしかった。ただし、本体のスペックに大きな違い - つまり上りと下りのスピードの違い - は、ないらしかった。本体価格は、L-02A が 5,000 円ほどで、A2502 は 1 円だったかな。つまり 6 か月の契約を予定しているなら、L-02A を契約すべきだった。2 年縛りの契約を予定していたので L-02A を契約すべきだろう。ただし、契約しようと考えていた時点で、私は L-02A による接続に自信をもてなかった。Web を検索すると、私が L-02A を契約したくなかった - つまり A2502 を契約したかった - 理由を特定できだろう。

先に記載したとおり A2502 の方が、いわゆる * 枯れている * 端末であるため、動作させやすいだろうと考えた。そのため、とりあえず L-02A を契約しておき、SIM のみを A2502 に装着すればよいだろうと考えた。Yahoo! オークションに約 5,000 円で新品の A2502 が出品されていたので、それほど出費せずに落札できた。





装着 :

Ubuntu Linux 8.10 on ThinkPad X31 に、A2502 を装着したときの dmesg は以下のとおり。ちなみに、事前に Mac OS X にて A2502 が動作することを確認していた。

---( ここから )---
May 10 17:39:23 apple kernel: [ 5054.096067] usb 3-2: new full speed USB device using uhci_hcd and address 2
May 10 17:39:23 apple kernel: [ 5054.291093] usb 3-2: configuration #1 chosen from 1 choice
May 10 17:39:23 apple kernel: [ 5054.622479] usbcore: registered new interface driver usbserial
May 10 17:39:23 apple kernel: [ 5054.623071] usbserial: USB Serial support registered for generic
May 10 17:39:23 apple kernel: [ 5054.623610] usbcore: registered new interface driver usbserial_generic
May 10 17:39:23 apple kernel: [ 5054.623615] usbserial: USB Serial Driver core
May 10 17:39:23 apple kernel: [ 5054.636569] usbserial: USB Serial support registered for GSM modem (1-port)
May 10 17:39:23 apple kernel: [ 5054.637267] option 3-2:1.0: GSM modem (1-port) converter detected
May 10 17:39:23 apple kernel: [ 5054.638075] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB0
May 10 17:39:23 apple kernel: [ 5054.638599] option 3-2:1.1: GSM modem (1-port) converter detected
May 10 17:39:23 apple kernel: [ 5054.639154] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB1
May 10 17:39:23 apple kernel: [ 5054.639678] option 3-2:1.2: GSM modem (1-port) converter detected
May 10 17:39:23 apple kernel: [ 5054.640567] usb 3-2: GSM modem (1-port) converter now attached to ttyUSB2
May 10 17:39:23 apple kernel: [ 5054.641178] usbcore: registered new interface driver option
May 10 17:39:23 apple kernel: [ 5054.641182] option: USB Driver for GSM modems: v0.7.2
---( ここまで )---



uname の情報も記載しておく。

% uname -a
Linux apple 2.6.27-11-generic #1 SMP Wed Apr 1 20:57:48 UTC 2009 i686 GNU/Linux
%


Web の情報を検索すると、"modprobe を実行しろ" とか記載されているが、最新の kernel なら "modprobe" を実行しなくても大丈夫なようだ。ちなみに A2502 を PC に接続した後、A2502 本体のランプが、2 つのランプが点灯していることを確認すること。緑と赤は、どちらも「待ち受け中」の状態を意味している。





設定 :

続いて、設定を開始する。まず...、車輪を再開発するな的に、Google 様に先人の偉業を指示してもらう。

検索キーワード :
"A2502 Ubuntu OR Debian"


接続に pppconfig を使用した。もしインストールしていない場合、以下のコマンドでインストールできるはず。

% sudo apt-get install ppconfig



ファイルを作成する。ファイル名を任意に指定できる。${YOUR_ID} と ${YOUR_PASSWORD} に、自身が契約している ISP の ID と PASSWORD を指定する。接続先の電話番号は、もしかしたら異なるかもしれないので注意すること。ちなみに契約している ISP は IIJmio だ。

% sudo vi /etc/ppp/peers/nttdocomo_a2502

--- ( ここから ) ---
user "${YOUR_ID}"
password "${YOUR_PASSWORD}"
connect "/usr/sbin/chat -v -f /etc/chatscripts/pap -T *99***8#"
/dev/ttyUSB0
460800

noipdefault
usepeerdns
defaultroute
persist
noauth
--- ( ここまで ) ---



上記のファイルを保存した後、以下のコマンドを実行する。引数は、上記のファイル名だ。ps コマンドで daemon の起動を確認できるはず。

% su -
# pon nttdocomo_a2502



エラーが表示されなければ A2502 本体のランプを確認してみよう。緑のランプが、青の点滅の後、青の点灯へと変化すれば、正常に接続できているはず。接続できたら ifconfig コマンドで IP address を取得しているか確認してみる。interface は ppp0 だ。

% /sbin/ifconfig ppp0
ppp0   Link encap:Point-to-Point Protocol
           inet addr:210.130.31.122 P-t-P:210.130.5.145 Mask:255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
           RX packets:4 errors:0 dropped:0 overruns:0 frame:0
           TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:3
           RX bytes:64 (64.0 B) TX bytes:97 (97.0 B)


Global な IP address を取得していたら、続いて、Web ブラウザなどで外部のサイトにアクセスしてみること。



切断したい場合、以下のコマンドを実行する。

# poff





以上!

Manipulating text files with AWK

久々に AWK と shell で書いたスクリプトを記載しておく。見てのとおり、キレイじゃない。一回だけ実行する予定だったので、コマンドラインのみで作成した。だからキレイじゃなくても気にしない。

% for i in *.html ; do awk 'BEGIN{MY_STRING=""; while("/bin/cat google.txt" | getline){MY_STRING = MY_STRING$0}}{if($1 ~ /<\/head>/){print MY_STRING"\n</head>"}else{print $0}}' $i > $i.tmp && mv $i.tmp $i ; done
%

shell が AWK に ( 意図したとおり ) 引数を指定して実行してくれるか、だけ心配していたが、正常に実行してくれた。約 60 ファイルを 1 second かからないくらいで処理を完了した。予想していたより早く終了したから、何か間違ったか?と心配してしまったほど。

Windows 好き好きな人は、こういう処理をしたいとき、どう対応するんだろう?パっとできないでしょ?Unix や Linux または Mac OS を利用していると、簡単に実行できちゃうのよねぇ。あー、テキストを扱う文化じゃないかもね。

Saturday, May 09, 2009

05/09/2009


  • 08:00 am くらいに寝てしまった。

  • 起床した時刻は 15:00 くらい。

  • emobile のデータ通信カードを新規に契約する予定をキャンセルした。

  • しばらく D01HW を prepaid な契約で利用してみる。

  • Ubuntu Linux 8.10 で D01HW を動作させるまで、すごく時間を必要とした。とりあえず接続できたが。

  • ただし、外出しているときの短い時間だといえ、Global IP address を取得すると攻撃の的になるので、できれば Private IP address な環境で作業したい。

Using D01HW on Ubuntu Linux 8.10

D01HW を Ubuntu Linux 8.10 on ThinkPad X31 で利用するときに作業した内容をメモしておく。



まず、D01HW を X31 に装着したときの dmesg をメモしておく。ちなみに、Ubuntu Linux のカーネルは、

% uname -a
Linux apple 2.6.27-11-generic #1 SMP Wed Apr 1 20:57:48 UTC 2009 i686 GNU/Linux
%

だった。ちなみに、以下の出力において "apple" という文字列が存在する理由は、X31 のホストネームだから。

----- ( ここから ) -----
May 9 18:56:09 apple kernel: [ 8054.524070] usb 2-1: new full speed USB device using uhci_hcd and address 2
May 9 18:56:09 apple kernel: [ 8054.741924] usb 2-1: configuration #1 chosen from 1 choice
May 9 18:56:09 apple kernel: [ 8055.054158] usbcore: registered new interface driver libusual
May 9 18:56:09 apple kernel: [ 8055.127065] usbcore: registered new interface driver usbserial
May 9 18:56:09 apple kernel: [ 8055.136364] usbserial: USB Serial support registered for generic
May 9 18:56:09 apple kernel: [ 8055.136638] usbcore: registered new interface driver usbserial_generic
May 9 18:56:09 apple kernel: [ 8055.136643] usbserial: USB Serial Driver core
May 9 18:56:09 apple kernel: [ 8055.144179] Initializing USB Mass Storage driver...
May 9 18:56:09 apple kernel: [ 8055.147250] usb-storage: probe of 2-1:1.0 failed with error -5
May 9 18:56:09 apple kernel: [ 8055.148051] usb-storage: probe of 2-1:1.1 failed with error -5
May 9 18:56:09 apple kernel: [ 8055.149140] usbcore: registered new interface driver usb-storage
May 9 18:56:09 apple kernel: [ 8055.149650] USB Mass Storage support registered.
May 9 18:56:09 apple kernel: [ 8055.162977] usbserial: USB Serial support registered for GSM modem (1-port)
May 9 18:56:09 apple kernel: [ 8055.163716] option 2-1:1.0: GSM modem (1-port) converter detected
May 9 18:56:09 apple kernel: [ 8055.164924] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
May 9 18:56:09 apple kernel: [ 8055.165486] option 2-1:1.1: GSM modem (1-port) converter detected
May 9 18:56:09 apple kernel: [ 8055.166136] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
May 9 18:56:09 apple kernel: [ 8055.166697] usbcore: registered new interface driver option
May 9 18:56:09 apple kernel: [ 8055.166702] option: USB Driver for GSM modems: v0.7.2
----- ( ここまで ) -----



参考までに GNOME-PPP の画像を掲載しておく。自分は、以下の画像のように設定し、D01HW による接続を実現できた。注意点として、GNOME PPP を sudo で実行する点を忘れずに。


00 : GNOME PPP

Username : em
Password : em
Phone number : *99***1#





01 : Modem

Device : /dev/ttyUSB0
Type : Analog Modem
Speed : 460800
Phone Line : Tone





02 : Networking

IP : Dynamic IP address
DNS : Manual DNS ---> 208.67.222.222 | 208.67.220.220 # OpenDNS の IP address を指定した





03 : Options

このタブのオプションはデフォルトで大丈夫だが、自分の場合 Desktop Integration の Dock in notificatioin area にチェックしておいた。






以上!

Trying the Mercurial with Bitbucket

Mercurial の操作を学習しておこうかと考えた。ローカルのマシンに設定したりリポジトリを作成したりして学習できるが、日常的に自分は複数のマシンを起動するので、やはり GitHub のように、外部の * 誰か * がサービスを提供してくれると助かる。また、安定して満足できるサービスを利用できるなら有料でも気にしないので、プランを選択させてくれる業者のサービスを利用したかった。それほど入念に検索していないが、どうやら GitHub に似たサービスを提供している Bitbucket.org を発見した。


とりあえず、アカウントのみ作成した。続いて、プロジェクトを作成する。プロジェクトを作成すると、次の作業が画面に表示される。それは、以下のような作業だ。

% mkdir ~/bitbucket
% cd ~/bitbucket
% hg clone http://bitbucket.org/satoshiabe/sandbox/
% cd sandbox/
% echo "ReadMe" > README
% hg add README
% hg commit -m "first commit"
% hg push

これまでバージョン管理システムを利用した経験を有していれば、上記のコマンドが何を意味しているか理解できるだろう。次回、もう少しつっこんで利用してみる。

Friday, May 08, 2009

05/08/2009


  • ドキュメントを更新した。

  • 仕事を早退して Git workshop に参加した。

  • 飲み会に参加した。



Enabling the Apache MPM with Apache HTTP Server 2.2

Apache MPM について調査した。最近まで、そもそも PMP という単語さえ認識していなかった。より正確な情報を確認したいなら Google で別の Web サイトを検索してくだされ。


そもそも MPM って何ぞや?という状態であったため、まず official な Web サイトの情報を確認した。

Multi-Processing Modules (MPMs) - Apache HTTP Server

つまり、

Apache 2.0 extends this modular design to the most basic functions of a web server. The server ships with a selection of Multi-Processing Modules (MPMs) which are responsible for binding to network ports on the machine, accepting requests, and dispatching children to handle the requests.

だそうだ。



どうやら、Apache HTTP Server を configure するときに MPM を enable してあげるらしい。以前 configure したとき指定していなかったので、改めて configure する。

% ./configure --prefix=/usr/local/httpd-2.2.11 --enable-so --with-mpm=${MPM}


${MPM} に、以下の値をひとつ指定する。ちなみに configure - Configure the source tree - Apache HTTP Server で解説されている。

beos
mpmt_os2
prefork
worker


次のとおり実行した。

% cd ~/httpd-2.2.11
% ./configure --prefix=/usr/local/httpd-2.2.11 --enable-so --with-mpm=prefork
% make
% su
% make install

確認したところ、既存の httpd.conf は overwrite されなかった。



configure スクリプトを実行するとき、MPM の値に prefork を指定した。この特徴は、以下のように解説されている。

This Multi-Processing Module (MPM) implements a non-threaded, pre-forking web server that handles requests in a manner similar to Apache 1.3. It is appropriate for sites that need to avoid threading for compatibility with non-thread-safe libraries. It is also the best MPM for isolating each request, so that a problem with a single request will not affect any other.

だそうだ。


設定できる directive は、少なく、先に示したページで解説されている dirctive は、たったふたつだった。 ページの右側に示されている directive の数は 19 だった。

続いて具体的な設定してみる。


// 続く

Thursday, May 07, 2009

05/07/2009


  • ひたすらドキュメントを更新した。

  • Apache MPM について自宅で確認した(途中まで

  • Python Hack-a-thon にエントリーした。



Wednesday, May 06, 2009

05/06/2009


  • 09:00 am に寝て、二度寝してしまった。起床した時刻は 05:00 pm だったかな。

  • C 言語を学習していて、初歩的なミスでハマってしまった。解決したが、まる 1 日ほど費やしてしまった。




Monday, May 04, 2009

05/04/2009


  • 14:00 時に起床した。明日の目標は、午前中に起床すること。

  • VMware Fusion にインストールしていた FreeBSD 7.1 を 7.2 へ upgrade した。

  • GCC を使用して C のプログラムをコンパイルをする部分でハマっていたが、やっと解決したかもしれない。

  • blog のテンプレートを何度か変更した後、Google Analytics を設定し忘れていた...。

  • Google App Engine のアカウントを sign up した。

  • Evernote のアカウントを作成した。

Upgrading FreeBSD from 7.1-RELEASE to 7.2-RELEASE

いつのまにか FreeBSD 7.2-RELEASE がリリースされていたので、FreeBSD 7.1-RELEASE からアップグレードしてみた。FreeBSD をアップグレードさせる作業を、非常に面倒だったと記憶していた。FreeBSD をメインで利用していた数年ほど前、ほとんどの英文ドキュメントを理解できなかったし。ただ、だいぶ英文ドキュメントにも慣れたし、どうやら、最近の FreeBSD の場合、簡単にアップグレードできるらしい。FreeBSD 7.2-RELEASE Announcement のページにて、手順が解説されている。コマンドだけ記載する。

Systems running 7.0-RELEASE, 7.1-RELEASE, 7.2-BETA, 7.2-RC1, or 7.2-RC2 can upgrade as follows:

% uname -a
% su -
# freebsd-update upgrade -r 7.2-RELEASE
# freebsd-update install
# shutdown -r now
# freebsd-update install
# shutdown -r now
% uname -a



以上!

Trying GNU make

GCC を使用して make の手順を学習する。言語は C だ。

簡単な C のプログラム --- "Hello, World" を出力する--- を作成する。コマンドラインから実行する例:


% cat hello_world.c
#include <stdio.h>

int main()
{
          printf("Hello, World\n");

          return(0);
}
%
% gcc -g -Wall hello_world.c -o hello_world
% ./hello_world
Hello, World
%





Example 1: Makefile を作成してコンパイルする


上記の例を、Makefile を作成して作業してみる。

% rm ./hello_world
% cat Makefile
hello_world: hello_world.c # tab に注意
          gcc hello_world.c -o hello_world # tab に注意
% make
gcc hello_world.c -o hello_world
% ./hello_world
Hello, World
%


以上、基本的な使用について言及した。続いて、dependency な記述についても言及する。





Example 2: 他のファイルで定義した関数を利用する


% cat main.c
#include <stdio.h>

#include "libs.h"

int main()
{
        do_something();
        return(0);
}

%
% cat libs.c
#include <stdio.h>

#include "libs.h"

void do_something()
{
        printf("do_something() in libs.c\n");
}

%
% cat lib.h
extern void do_something();
%
% cat Makefile
main: main.o libs.o # tab に注意
          gcc main.o libs.o -o main # tab に注意

main.o: libs.h main.c # tab に注意
          gcc -c main.c # tab に注意

libs.o: libs.h libs.c # tab に注意
          gcc -c libs.c # tab に注意

clean:
          $(RM) *.o main # tab に注意
%
% make
%
% ./main
do_something() in libs.c
%





Example 3: マクロを活用する


// マクロ

Sunday, May 03, 2009

05/03/2009


  • GCC と make にハマった...。

  • 数年ほど前に USA へ移住した知人へメールした。




Saturday, May 02, 2009

05/02/2009


  • 16:00 ごろに起床...。昨夜 05:00 ごろに就寝したから。少し寝すぎか。

  • DocBook を使用し、日本語を含んだ PDF ファイルを作成すると文字化けが発生する件、先人たちも困っているようだ。

  • Eclipse を使用する手段も存在するようだが、できるだけコマンドラインのみで作業を完結させたい。

  • もうすぐ 04:00 AM だ。はらへった...。


Friday, May 01, 2009

05/01/2009


  • 「私はあなたの管理者じゃない」ですか、そうですね。

  • キャリア D のドキュメントを更新し終わった。

  • キャリア A のドキュメントも更新したかったが、時間外に想定外のコンディションで作業できなかった。

  • 構築ドキュメントを、やっと更新できそうな予感。

  • DocBook で PDF を作成すると日本語が文字化けてしまう。

Getting Started With DocBook On Ubuntu Linux 9.04

ドキュメンテーション用のツールとして、DocBook を評価する。最終的に職場において DocBook でドキュメントを作成したり管理したりしたいと考えている。ただし、そうでなくても自分に役立つだろうと考え、まず評価してみる。

環境は、いつもの Ubuntu 9.04 in VMware Fusion on MacBook だ。以下のとおりパッケージをインストールする。いくつかのコマンドが command search path にインストールされるはずだ。

% sudo apt-get install docbook docbook-utils



頻繁に実行しそうなコマンドをいくつか記載しておく。いずれも JF の文書から転記した。

db2html - DocBook から HTML に変換
db2dvi - DocBook から DVI に変換
db2pdf - DocBook から PDF に変換
db2ps - DocBook から PS に変換
db2rtf - DocBook から RTF に変換



以下のように実行するらしい。

% db2html my-document.sgml


つまり SGML 形式のファイルを作成しろ、という意味であるため、ファイルを作成する。

% cat sample.txt
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article>

   <artheader>
      <title>これは文章の題名です</title>
   </artheader>

   <sect1>
      <title>これはレベル 1 の章の題名です</title>
      <para>
      これは最初の段落です.
      </para>
      <para>
      これは 2 番目の段落です.
      </para>
   </sect1>

</article>
%


このファイルを以下のように実行すると、いろいろ STDOUT へ出力されつつ、ファイルが生成される。

% db2html sample.sgml
output is sample
Using catalogs: /etc/sgml/catalog
Using stylesheet: /usr/share/docbook-utils/docbook-utils.dsl#html
Working on: /home/satoshiabe/docbook/sample.sgml
openjade:/home/satoshiabe/docbook/sample.sgml:5:14:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:5:15:E: non SGML character number 147
openjade:/home/satoshiabe/docbook/sample.sgml:5:17:E: non SGML character number 130
openjade:/home/satoshiabe/docbook/sample.sgml:5:18:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:5:20:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:5:23:E: non SGML character number 150
openjade:/home/satoshiabe/docbook/sample.sgml:5:24:E: non SGML character number 135
openjade:/home/satoshiabe/docbook/sample.sgml:5:29:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:5:33:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:5:35:E: non SGML character number 144
openjade:/home/satoshiabe/docbook/sample.sgml:5:36:E: non SGML character number 141
openjade:/home/satoshiabe/docbook/sample.sgml:5:38:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:5:41:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:5:42:E: non SGML character number 153
openjade:/home/satoshiabe/docbook/sample.sgml:9:14:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:15:E: non SGML character number 147
openjade:/home/satoshiabe/docbook/sample.sgml:9:17:E: non SGML character number 130
openjade:/home/satoshiabe/docbook/sample.sgml:9:18:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:9:20:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:23:E: non SGML character number 131
openjade:/home/satoshiabe/docbook/sample.sgml:9:26:E: non SGML character number 131
openjade:/home/satoshiabe/docbook/sample.sgml:9:27:E: non SGML character number 153
openjade:/home/satoshiabe/docbook/sample.sgml:9:29:E: non SGML character number 131
openjade:/home/satoshiabe/docbook/sample.sgml:9:35:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:41:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:45:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:9:47:E: non SGML character number 144
openjade:/home/satoshiabe/docbook/sample.sgml:9:48:E: non SGML character number 141
openjade:/home/satoshiabe/docbook/sample.sgml:9:50:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:53:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:9:54:E: non SGML character number 153
openjade:/home/satoshiabe/docbook/sample.sgml:11:7:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:11:8:E: non SGML character number 147
openjade:/home/satoshiabe/docbook/sample.sgml:11:10:E: non SGML character number 130
openjade:/home/satoshiabe/docbook/sample.sgml:11:11:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:11:13:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:11:16:E: non SGML character number 156
openjade:/home/satoshiabe/docbook/sample.sgml:11:17:E: non SGML character number 128
openjade:/home/satoshiabe/docbook/sample.sgml:11:19:E: non SGML character number 136
openjade:/home/satoshiabe/docbook/sample.sgml:11:20:E: non SGML character number 157
openjade:/home/satoshiabe/docbook/sample.sgml:11:22:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:11:28:E: non SGML character number 144
openjade:/home/satoshiabe/docbook/sample.sgml:11:31:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:11:34:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:11:35:E: non SGML character number 153
openjade:/home/satoshiabe/docbook/sample.sgml:11:38:E: non SGML character number 142
openjade:/home/satoshiabe/docbook/sample.sgml:14:7:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:14:8:E: non SGML character number 147
openjade:/home/satoshiabe/docbook/sample.sgml:14:10:E: non SGML character number 130
openjade:/home/satoshiabe/docbook/sample.sgml:14:11:E: non SGML character number 140
openjade:/home/satoshiabe/docbook/sample.sgml:14:13:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:14:19:E: non SGML character number 149
openjade:/home/satoshiabe/docbook/sample.sgml:14:22:E: non SGML character number 155
openjade:/home/satoshiabe/docbook/sample.sgml:14:25:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:14:31:E: non SGML character number 144
openjade:/home/satoshiabe/docbook/sample.sgml:14:34:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:14:37:E: non SGML character number 129
openjade:/home/satoshiabe/docbook/sample.sgml:14:38:E: non SGML character number 153
openjade:/home/satoshiabe/docbook/sample.sgml:14:41:E: non SGML character number 142
%


ファイルと同名のディレクトリが作成されるはず。そのディレクトリに、ファイル index.html が作成されるはず。

% ls -1F
sample/
sample.sgml
%
% ls -1F ./sample
index.html
%


以下の内容でファイルが生成された。

% cat ./sample/index.html 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>これは文章の題名です</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
><BODY
CLASS="ARTICLE"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="ARTICLE"
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="TITLE"
><A
NAME="AEN2"
>これは文章の題名です</A
></H1
><HR></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>Table of Contents</B
></DT
><DT
>1. <A
HREF="index.html#AEN4"
>これはレベル 1 の章の題名です</A
></DT
></DL
></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="AEN4"
>1. これはレベル 1 の章の題名です</A
></H1
><P
>      これは最初の段落です.
      </P
><P
>      これは 2 番目の段落です.
      </P
></DIV
></DIV
></BODY
></HTML
%



以上、基本的な使用について実践した。続いて、PDF ファイルを生成させる。以下のように 3 種類のコマンドを順に実行する。

まずSGML ファイルを引数に指定し db2pdf コマンドに 実行する。

% db2pdf sample.sgml


上記のコマンドを実行した結果 tex ファイルが生成される。この tex ファイルを引数に jadetex コマンドを実行する。

% jadetex sample.tex


上記のコマンドを実行した結果 dvi ファイルが生成される。この dvi ファイルを引数に dvipdf コマンドを実行する。

% dvipdf sample.dvi


どうだろうか。PDF ファイルが生成されたはずだ。PDF Viewer で表示してみよう...。そうだ!文字化けしているはずだ!どうも、通常の手順どおりに実行すると、日本語を含んだ文字は文字化けしてしまうようだ。このツールでも悩まされなければならないようだ...。






// UPDATING