Monday, June 30, 2008

2008-06-29 の記録

コンタクトレンズを購入する予定だったが、次の土曜日に購入する予定に変更した。いずれにしても、歯を治療しに日比谷へ出かけなければならない。ついでに、以前、通っていた日比谷のアイシティで、コンタクトレンズを購入しよう。

Sunday, June 29, 2008

Cannot Install SynchroTime on S11HT without Windows XP

あぁ、かなり面倒だった。S11HT に SynchroTime をインストールした。そもそも、Windows Mobile に時刻同期の機能が搭載されていれば、こんな無駄な時間を費やさずに済ませられたのに。またひとつ、Windows Mobile のことを嫌いになった。SynchroTime は exe ファイルで提供されているため、Windows 環境を用意しない場合、exe ファイルから cab ファイルを抽出し、その cab ファイルを Windows Mobile において実行してやらなければならなかったようだ。そこで、いろいろ調査してみたが、Linux や Mac の環境において、どうしても cab ファイルを抽出できなかった。もう、かなり時間を費やしていたので、X31 にインストールされている Windows XP を起動し、調査し、ActiveSync なるソフトウェアをインストールし、S11HT と X31 を USB ケーブルで接続し、ActiveSync を実行し、Windows XP からインストールを実行した!つか、Windows 環境、つまり、XP とか Viata とか用意しないとインストールできないわけ?ありえないだろ、アホか。つーか、まず時刻同期する機能を実装しとけよ。ほかの機能もイマイチなくせに!そうそう、肝心の SynchroTime だが、時刻を同期してくれるが、同期する NTP サーバを追加できないようだ。つまり、既に設定されている NTP サーバ以外、選択できないわけ。どうも US な NTP サーバらしく、ネットワーク的に遠い、確実に。まぁ、同期できるだけでも、だいぶ状況を改善できたが。

IT 勉強会カレンダー

勉強会スキスキ人間な私だったが、存在をしらなかった...。

IT 勉強会カレンダー

Firefox + Google Toolbar + Google Bookmarks

Centralizing Bookmarks with Google Bookmarks において、


"""ちと利便性は低いかもしれない。"""


と書いたが、間違っていた。Firefox に Google Toolbar をインストールしておき、Google Toolbar において Google Account でログインすると、Google Bookmarks で保存したデータ(つまりブックマークの情報)を参照できる。

つまり、各マシンの Firefox に Google Toolbar をインストールしておけば、ブックマークの情報を同期できる。便利すぎる。

Installing MacPorts on MacBook

MacPorts をインストールしてみた。

http://www.macports.org/



dmg ファイルをダウンロードし、インストールする。インストールした後、環境変数を設定する。

% vi ~/.bashrc

export PATH=/opt/local/bin:/opt/local/sbin/:$PATH
export MANPATH=/opt/local/man:$MANPATH



続けて、実行する。

% sudo port -d selfupdate
% sudo port -d sync



ローカルに保持されているソフトウェアの情報を、最新の情報へアップデートする。定期的に実行する。

% sudo port sync



パッケージを検索する。

% port search ${packageName}



パッケージをインストールする。

% sudo port install ${packageName}



パッケージの追加機能を確認する。

% port variants ${packageName}



パッケージをアップグレードする。

% sudo port upgrade ${packageName}



パッケージをアンインストールする。

% sudo port uninstall ${packageName}

Charging S11HT battery from USB computer connection

S11HT に付属している USB ケーブルで、本体を充電できることを知らなかった...。

2008-06-28 の記録

午前中、部屋の防火設備を点検するため、業者の人が訪問してきた。

Saturday, June 28, 2008

住民税

昨年度と比較して、倍の金額になってた...。

2008-06-27 の記録

20 時まで残業した。帰宅した後、自社の上司へメールを送信した。

Friday, June 27, 2008

2008-06-26 の記録

残業して、そのまま飲み屋@恵比寿へ。北千住を通過する日比谷線の最終電車に間に合った。北千住で乗り換えしたが、トイレに立ち寄っていたら乗り換えの改札を停止されてしまって、いったん、改札を出てから、改めて千代田線に乗り換えた。北千住からの最終電車は、松戸が終点らしく、1:04 の発車だった。綾瀬でほとんどの人が下車したようだった。

Thursday, June 26, 2008

2008-06-25 の記録

ネクタイをせずに出勤した。

審査の結果は、OK だった。

ミニストップで購入する昼飯に飽きた。

20 時まで残業した。

2 AM ごろから勉強を開始した...(さっきじゃねーか

Wednesday, June 25, 2008

The Power Of Skype

たしかに問題点も存在するが、私が考える最強の組み合わせ、それは

Windows Mobile + Skype

だ。

iPhone + Softbank

なんて相手にならない。Softbank のユーザは、約 19,000,000 人だが、Skype のユーザは、約 100,000,000 人だ。桁が異なる。もし、あなたが Windows Mobile を搭載した携帯電話に Skype をインストールしたら、約 1 億の人と無料で通話できる。

確かに忘れていない。外出先でも Skype で通話したいなら、Wireless LAN または 3 G のインターネット接続環境を必要とするだろう。常時接続のプランを選択するなら、安くても 5,000 円/月くらい追加で必要だ。Softbank なら 980 円/月で通話のみを済ませられるかもしれない、時間が限定されているが。だが、あなたは携帯電話でインターネットを閲覧するでしょ?つまり、いずれにしてもパケット料金を支払うだろう。それなら、結果的に同じくらいの金額を支払うはず。また、Softbank が提供するフルブラウザと、Internet Explorer を比較して、どちらに対応した Web サイトが多いだろうか?考えるまでもない。

一般的な通話も比較してみよう。もし、あなたが少しだけの additional コストを許容できるなら、Skype Subscriptions を検討してみるべきだ。たった $5.95/month で、10,000 分も固定電話と通話できる。

しかも、もっとも安価な subscription であっても、日本国内の場合、050-xxxx-xxxx な電話番号を保持できる。つまり、相手が、携帯電話から発信しようと固定電話から発信しようと、あなたがオンラインなら、あなたがどこにいても、つまり海外にいても、電話を受信できる!

iPhone に Skype をインストールできない今、Windows Mobile と Skype の組み合わせは、あたなの携帯電話ライフを、大きく変化させる影響力を秘めている。

An Explicit Constructor Invocation

I am too tired to learn computer languages in Japanese. If I learn a computer language in English, I don't need to memory unnecessary keywords in Japanese. Now I am reading the Java tutorial at sun.com, it is very clearly, fun, informative. Today I found an explanation of a keyword, `this()' in that tutorial, I copied the explanation down from the tutorial. I haven't seen an explanation in Japanese, especially like this:

"""From within a constructor, you can also use the this keyword to call another constructor in the same class. Doing so is called an explicit constructor invocation."""


see:
Using the this Keyword (The Java™ Tutorials > Learning the Java Language > Classes and Objects)

An Anonymous Array in Java

An anonymous array in Java:

// example
String yourName = new String [] {'Bob', 'Satoshi', 'Mike'} [1];

Google Services for Windows Mobile

Google services for Windows Mobile

さきほど気づいたが、今月、ThinkPad X61 を購入したので


Eco も選べる Think プレゼント・キャンペーン


に応募する予定だったが、完全に忘れてしまっていた。かつ、期限切れ...。ふぅ...。

Disconnected from the Internet

当然、客先の名前を公開しないが、私が今月 20 日から業務に参加している、とある会社の場合、社外の人間に PC を貸与するが、その PC は disconnected from the Internet である。これまで私が経験した客先の業務において、完全に隔離された環境を使用しなければならない制度を、初めて体験した。まったく何も調査できない。

2008-06-24 の記録

30 日からの業務を前倒しで開始した。

Tuesday, June 24, 2008

2008-06-23 の記録

8:18 発の電車に座って移動するために、8:00 前から待たなければならなかった。実際、電車は 8:25 ごろ到着した。綾瀬 --- ( 千代田線 ) ---> 日比谷は、28 分らしいので、乗っている時間だけ待っていたということになるか。アホらしい。客先のビルを出て、小雨だったが、立ち寄った無印良品にて折りたたみの傘を購入した。バッグにしまっておこうと思って。と、日比谷線の入り口へ向かったら、豪快に雨が降っていた。さっそく活躍の機会を得た。帰宅した後、トナーが絡み合っていたが、例の件で FAX を送信した。Java の学習を再開した。毎日、少しでも進めておこう。

Sunday, June 22, 2008

Can not synchronize clock in Windows Mobile

Windows Mobile は、時刻同期の機能を実装していないのか...。いつの時代の OS なんだ...。

また無駄に調査しなければならなかった日本語の用語に対応する英語の用語

まぁ、`exists' は英単語であるが...。


- 相関サブクエリー:

Correlated subqueries


- 階層問い合わせ:

hierarchical queries


- EXISTS:

`EXISTS' はキーワードで、かつ clause だった。

Changing language in Windows Mobile on S11HT

ある人が


不定期雑記: イーモバイル端末は英語表示不可能 ?


にてレポートしてくれているように、S11HT の表示を日本語から英語へ変更できないようだ。正直、日本語の表示をウザイと感じている私は、私個人が使用する OS やらアプリケーションやらを、ことごとく英語の表示へと変更している。しかし、対応していないとなると、どうしようもない...。


日本語うざー!

S11HT and BH-200

S11HT と BH-200 を接続させた。正常に認識された。だが...


Skype for Windows Mobile で、Bluetooth の headset を使用できない!


らしい。付属の USB な headset を使用しろ、ということか...。


--
関連情報

BH-200 User Guide

BH-200 の説明を紛失したようで。

Nokia Bluetooth Headset BH-200 User Guide (PDF)

Installing Minimo on S11HT

I have been using Windows Mobile for several days but I don't like Windows and Internet Explorer. So I decided to install another Web browser. At first, I found Opera. Well..., I like Opera but I wanted to use Firefox. Because I have been using Firefox for a long time. Unfortunately, Mozilla does not release Firefox for Windows Mobile. But They have been developing Minimo, it is a Web browser for Windows Mobile. So I downloaded a `cab' file, then installed it. Now I am using Minimo! If you are interested in Minimo, and want to install it, see this instruction page.

2008-06-21 の記録

10 時から歯科にて前歯の治療をした。4 発も麻酔された。次の治療は来月の 5 日。有楽町の biccamera へ移動して S11HT を契約した。13 時に引き取った。かなり眠かったので、21 時に寝た...。

Saturday, June 21, 2008

Installing Skype for Windows Mobile on S11HT

購入した S11HT に Skype をインストールした。このページを

Skype 2.2 for Windows Mobile

表示し、`Skype 2.2 for Windows Mobile' の `.cab' ファイルをダウンロードし、実行するだけ。

ファイル名:
SkypeForPocketPC.CAB

インストールした後、起動してログインすれば、いつものように利用できる。

S11HT

有楽町の biccamera にて、S11HT を購入した。外出先においてもインターネットに接続できる環境を用意したい、かつ、Skype も利用したいため、だ。キャンペーンを適用し、19,800 円で購入できた。ぶっちゃけ Windows な携帯電話を購入したくなかったが、docomo のような、


使わないサービス満載 + それらに対応した本体と UI


な携帯電話を利用するより、はるかにマシと判断した。

2008-06-20 の記録

客先の初日。30 分前に恵比寿に到着した。毎日 10 時から朝会が開催されているようだ。メンバーとして参加している技術者たちは、希薄な関係であるように見えた。業務をするために提供された端末は、インターネットに接続していないようだ。メールも外部と送受信できないようで。インターネットを利用したい場合、共有の端末にてインターネットを利用してください、とのこと。簡単な検索すら実行できないらしい。まったく聞いていなかったが、キックオフということで飲み会だった。店舗の選択は...、失敗だったと思う。なぜか 2 次会まで参加し、かつ、はじけすぎてしまった。

Thursday, June 19, 2008

2008-06-18 の記録

10 時から恵比寿にて面接をした。私が希望する業務と異なっていた。結局、昨日の 16 時から面接をしてもらった企業でお願いすることにした。この企業は、最も高いスキルを要求しているようで、ダメだと思っていたが。

Wednesday, June 18, 2008

2008-06-17 の記録

2 社と面接した。

Tuesday, June 17, 2008

2008-06-16 の記録

午前中、歯科にて治療をした。やや遅めに明治神宮前へ移動したら、電車が表参道に到着したところで上司が電話をしてきて「17 時から面接だからスーツに着替えてきて」と指示された...。綾瀬まで戻り、昼食を済ませ、改めて明治神宮前へ移動した。表参道の SUBWAY にて、顔合わせした。狭すぎ。

Invoking A Superclass Constructor In Java

If a constructor does not explicitly invoke a superclass constructor, the Java compiler automatically inserts a call to the no-argument constructor of the superclass.

Using the Keyword super at java.sun.com



/* Example */

class OperatingSystem extends Object {
    OperatingSystem() {
        super();
        System.out.println("OperatingSystem()");
    }
}

class Apple extends OperatingSystem {
    Apple() {
        super();
        System.out.println("Apple()");
    }
}

class Leopard extends Apple {
    Leopard() {
        super();
        System.out.println("Leopard()");
    }

    public static void main (String [] args) {
        Leopard leopard = new Leopard();
    }
}

Centralizing Bookmarks with Google Bookmarks

Firefox 3 の bookmark 機能を、非常に便利だと感じている - やみつきになるほど! - が、ブックマークを Google Bookmarks で管理しようと思う。複数の PC でブックマークを同期させるため。ちと利便性は低いかもしれない。

Anonymous Array and Anonymous Hash in Perl

These examples show how you define an anonymous array and an anonymous hash in Perl.

my $array_ref = [
    'aaa',
    'bbb',
    'ccc'
];

my $hash_ref = {
    'aaa' => 'AAA',
    'bbb' => 'BBB',
    'ccc' => 'CCC'
};

Monday, June 16, 2008

金欠

使いすぎ...。

2008-06-15 の記録

髪を切った。予約していた時間に開始してもらえず、50 分くらい待たされた。

Sunday, June 15, 2008

2008-06-14 の記録

実家に日本酒が配送されたようだ。

実家は東北 ( 岩手県の沿岸 ) だが、今回の地震は、そこそこ大きかったようだ。余震も多いらしい。実家で暮らしていたころ、どちらかというと地震より津波を心配しなければならなかった。当時、地震が発生すると、必ずテレビの放送を確認した。津波警報が発令されたら、父親は公務員であるから町民を誘導せねばならず、私は母親と兄と 3 人で行動していた。たとえ、厳寒の冬の真夜中であっても。

X61 が配送されてきた。キーボードとメモリを購入するまで、しばらく放置する予定だ。

とりあえず、そろそろ寝よう。Perl のコーディングに集中しすぎた。なかなか楽しい。

Saturday, June 14, 2008

Installing Epiphany Web Browser On Ubuntu 8.04

% sudo apt-get install epiphany-browser

Epiphany: The web browser for the GNOME desktop

References In Perl

Perl において、リファレンス - ポインタ - を使用した例を、備忘録として記載しておく。


#!/usr/bin/perl

use strict;
use warnings;

my @a = ('bbb', 'BBB');
my $a_ref = \@a;

my @array = (
    'aaa',
    $a_ref,
    'ccc'
);

print $array[0] . "\n";
print ${$array[1]}[0] . "\n";
print ${$array[1]}[1] . "\n";
print $array[2] . "\n";

Friday, June 13, 2008

ThinkPad X61 Shipped

注文を確定できたのか疑問だった ThinkPad X61 が発送された、というメールを受信した...。


注文できていたんだ...

How to open a file and handle an error

open (FILE, "/home/you/data.txt") ||
    &error ("Could not open file /home/you/data.txt");
  .
  .
  .
sub error {
    local ($message) = @_;
    print "Content-type: text/html", "\n";
    print "Status: 500 CGI Error", "\n\n";
    print "<TITLE>CGI Error </TITLE>", "\n";
    print "<h1>Oops! Error <h1>", "\n";
    print "<hr>", $message, "</hr>", "\n";
}

About One Of Cheap Hosting Services I used

昔々、たしか 1 年間、Lunarpages.com のサービスを利用していた。たまたま Web サイトを閲覧したので、チラっとサービスを確認してみた。長期プラン - a 24 month plan - を選択すると激安だ。サービスの内容も豊富だし。サービスを解約したくなったら、メールでやりとりすれば解約できるし、おすすめだ。ただし、単に、自分が所有するドメインでメールをやりとりしたいのみなら、Google Apps を選択すれば得だ。ドメイン料金のみで Gmail の他に、各種 Google サービスも利用できる。

原書

私が購入する書籍の出版社は、たいてい O'Reilly だ。"表紙の動物を好きだから" という理由でなく、別の理由が存在する...。


つづく

It's not too late...

モチベーションを上げてくれる、ある人のブログの記事。

Creating Passionate Users: It's not too late to be a genius

Sold Out

ThinkPad X61 - 7675A24 - が、激安で販売されていたので、注文しようと思った。だが、最後の画面を表示し、20 分ほど悩んでしまった。結局、注文を確定するボタンをクリックしたが、注文した商品の数量を示す部分が、

"""完売"""

と表示されていた。


クレジットカードの与信枠は、既に確保されているようだが...、どうなる?。

Covariant Return Type in Java

Java に限定した場合、

"""共変戻り値"""

という用語が存在し、どうやら英語の場合、

"""Covariant Return Type"""

と表現するらしい。


調べている時間は、かなり無駄だった。基本的に私は英語のリファレンスを参照するため、このように、日本語の用語から英語の用語を連想できない場合、

1. まず日本語の用語に対応する英語の用語を調査し
2. 特定した英語の用語で情報を検索する

という流れになる。`1' のステップは、ほぼ完全に無駄だ。プログラミングを勉強すらなら英語だけで覚えればよい、と私が考えてしまう理由のひとつだ。

途中経過

2007-12-16 - 2008-06-13




現在1,502,919
ランクV2 確定
V3 まで残り1,497,081


--
前回の途中経過

2008-06-12 の記録

小さな Web サイトを構築していた、携帯電話の Web ブラウザ用に。私より豊富な Perl の経験をもった上司に指導してもらいながら、ペアプログラミングで。オレオレソースコード - と命名した - に苦しんだが、慣れた。あれを自社のコーディング規則とか主張してほしくないが、私の意見を聞いてくれなかった。他人がメンテナンスするかもしれないなら、そして自社のコーディング規則とするなら、尚更、一般的な規則でソースコードで記述するべきだろう。私は間違っているのか。

Installing Trac 0.11rc2 on Ubuntu 8.04

以前、Trac on Ubuntu を記載した。現在、Ubuntu Linux 8.04 に提供されている Trac のバージョンは 0.10.4-2 であるが、本家において 0.11rc2 がリリースされているので、最新の Trac を Ubuntu Linux 8.04 にインストールしてみた。会社でインストールしたときのメモを書き写しているので、何か記載し忘れているかもしれない。


基本的に、TracInstall – The Trac Project – Trac を参考に作業すれば、正常にインストールできるはずだ。


必要なパッケージをインストールしておく。関連するパッケージもインストールされるはず。

% sudo apt-get update

% sudo apt-get install apache2 libapache2-mod-python subversion



`EasyInstall' をダウンロードし、インストールする。

% cd
% wget http://peak.telecommunity.com/dist/ez_setup.py

% sudo python ez_setup.py



`Genchi' をインストールする。

% sudo easy_install Genshi



Trac をインストールする。

% sudo easy_install Trac==0.11rc2



Trac が使用するディレクトリを作成する。

% sudo mkdir -p /var/lib/trac



Subversion が使用するディレクトリ - repository - を作成する。

% sudo mkdir -p /var/lib/svn/bts

% sudo svnadmin create /var/lib/svn/bts



プロジェクトを初期化する。

% sudo trac-admin /var/lib/trac/bts initenv



認証 ( ログイン ) に使用するアカウントを作成し、権限 : `TRAC_ADMIN' を付与する。

% sudo htpasswd -c /etc/apache2/dav_svn.passwd satoshiabe

% sudo trac-admin /var/lib/trac/bts permission add satoshiabe TRAC_ADMIN



Apache HTTP Server の設定を変更する。`</VirtualHost>' タグの直前に、以下のコードを記述した。

% sudo vi /etc/apache2/sites-available/default

<location /projects>
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/lib/trac
    PythonOption TracUriRoot /projects
</location>

<locationmatch "/projects/[^/]+/login">
    AuthType Basic
    AuthName "Trac Authentication"
    AuthUserFile /etc/apache2/dav_svn.passwd
    Require valid-user
</locationmatch>



ディレクトリのオーナーを変更する。

% sudo chown -R www-data:www-data /var/lib/trac



Apache HTTP Server のプロセスを再起動する。

% sudo /etc/init.d/apache2 restart



正常に表示されるか確認し、ログインしてみる。

http://localhost/projects/bts



おわり

Thursday, June 12, 2008

2008-06-11 の記録

既に年内の学習スケジュールを確定していたが、会社からの命令で、基本情報技術者試験を受験しなければならなくなった...。私のスケジュールは無視されてしまったようで...。前向きに考えるとして、amazon.co.jp にて 2 冊のテキストを注文した。

X61

おそらく今月中に新しい製品群が発表される ThinkPad シリーズだが、発売されてからしばらく、いつもどおり高価すぎて購入できないだろう。そこで、かなり安くなってしまった X61 あたりを購入し、1 年くらい頑張ってもらおうかな、とも思っている。ちなみに、このポストを X31 で記述しているが、十分なスペックであるような気もしている...。SPARCO.COM のリストを検索してみた。

ThinkPad X61 76758PU

ギリギリ 12 万円、確実に 13 万円で間に合いそうだ。ただし、国内で X61 の最安値は 114,870 円であり、プロセッサも高速だ。うーむ...。lenovo Japan が、英語キーボードなモデルを選択できるよう、オプションを提供してさえくれれば...。

Synchronizing Bookmarks

複数のマシンを稼働させていると、ブックマークを管理、いや、ブックマークを共有したくなる。クライアントは Firefox であるが、Web 上にブックマークのデータを保存できたら便利そうだ。iGoogle を RSS リーダとして使用するようになったが、かなり便利だ。このサービスと同様にブックマークを管理できるようなオンラインソフトウェアは...、ある?


発見したっ!

Google Browser Sync

が、まだ Firefox 3.x に対応していなかった...。

Father's Day

父の日か...、"八海山" を選択した。前は "十四代" を選択して驚かせてしまったようなので、今回ちと安価な日本酒を選択してみた。

Wednesday, June 11, 2008

Getting Posted Arguments in Perl

#!/usr/bin/perl -T

use strict;
use warnings;

my %postFields = ();
read( STDIN, my $tmpStr, $ENV{ "CONTENT_LENGTH" } );
my @parts = split( /\&/, $tmpStr );
foreach my $part (@parts) {
    my ( $name, $value ) = split( /\=/, $part );
    $value =~ ( s/%23/\#/g );
    $value =~ ( s/%2F/\//g );
    $postFields{ "$name" } = $value;
}

print "Content-type:text/html\n\n";

print "<html>";
print "<head><title>hoge</title></head>";
print "<body>";
print $postFields{"first_name"} . "<br/>";
print "</body>";
print "</html>";

use CGI in Perl

#!/usr/bin/perl -T

use strict;
use warnings;

use CGI qw(:standard);

my $q = new CGI;

print
    $q->header(
        -type=>"text/html",
        -charset=>"UTF-8"),
    $q->start_html(
        -title=>"Here Is Your Title",
        -encoding=>"UTF-8",
        -lang=>"ja"),
    $q->p("done"),
    $q->end_html;

Connection To A MySQL Database In Perl

#!/usr/bin/perl

use strict;
use warnings;

use DBI;

my $dbh = DBI->connect('DBI:mysql:dbName', 'dbUserName', 'dbUserPassword')
    or die 'Cannot connect to MySQL Database.' . $DBI::errstr;

my $sql = "select * from tableName";

my $sth = $dbh->prepare($sql)
    or die 'Cannot prepare: ' . $dbh->errstr();

$sth->execute()
    or die 'Cannot execute: ' . $sth->errstr();

while (my @row = $sth->fetchrow_array()) {
    foreach (@row) {
        print $_ . "\t";
    }
    print "\n";
}

$dbh->disconnect();

Showing the values of Variables

#!/usr/bin/perl -T

use strict;
use warnings;

print "Content-type:text/html\n\n";

foreach my $key (sort keys(%ENV)) {
    print "$key = $ENV{$key}<br/>";
}

How To Enable Perl CGIs In Apache HTTP Server On Ubuntu 8.04

Modifying `/etc/apache2/sites-available/default' file.

BEFORE:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>


AFTER:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    AddHandler cgi-script .cgi
    Order allow,deny
    Allow from all
</Directory>



Restarting the httpd process:

% sudo /etc/init.d/apache2 restart



Creating a CGI file:

% sudo vi /usr/lib/cgi-bin/sample.cgi
#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "Your cgi script works!";



Changing its permission and owner:

% sudo chmod +x /usr/lib/cgi-bin/sample.cgi

% sudo chown www-data:www-data /usr/lib/cgi-bin/sample.cgi



You can see this?

http://localhost/cgi-bin/sample.cgi

Useless use of sort in void context at...

備忘録:

( ここから )
#!/usr/bin/perl

use strict;
use warnings;

my @myList = ('c', 'b', 'a');

#sort(@myList);
@myList = sort(@myList);

print @myList, "\n";
( ここまで )

`sort' function を実行している行において、function を実行した結果を変数に代入 - すぐ上の行のように - したりしないと、以下のような警告メッセージが表示される。ただし、スクリプトは正常に実行される。

"""Useless use of sort in void context at ./sample01.perl line 8."""

Perl の情報 ( syntax とか metacharacter とか ) を思い出そうとして、プログラミング Perl VOLUME 1 を自宅から持参したが...、Safari を契約していたんだった。オンラインで簡単に検索できるから、便利だなぁ。

We are Japanese, so...

うちの会社のルールとしたい、私の要望は:

"""正しい日本語を使用する"""

だったりする。

Tuesday, June 10, 2008

2008-06-10 の記録

09:30 に自社に到着したが、やはりシャッターが閉まったままだった。自分が貸与されているキーは、あのシャッターに対応しておらず、10:00 まで待ってみたが誰も開けようとしないので、上司に電話したところ、私がキーを貸与されていることを認識していなかった。そして、別の拠点で業務を開始していたようで、

"""11:00 まで近くのマクドナルドとかで時間をつぶしてください"""

とのことだった...。予定外の時間をゲットしたので、マクドナルドにて試験の勉強をした。コーヒーのみ注文したが、あのマクドナルドのコーヒーって、なかなかウマイし、飲みやすくてイイ感じだ。明日も立ち寄るかもしれない。

例の会社から連絡をもらい、案件を紹介してもらった。Perl を使用した携帯電話サイトの改変らしい。Java でなかったので、一瞬、ためらってしまったが、Perl を嫌っているわけじゃないし、この言語で開発を経験しても悪くないかもしれないと思い、顔合わせを依頼してもらった。すぐ来てほしいようで、もしかしたら来週から客先かもしれない。つか、久々すぎて、ほとんど Perl を忘れているようだ、復習せねば。

クレジットカードの明細をオンラインで確認していたら、急に利用可能額が増加されていた。よくよく確認してみたら、限度額の上限が引き上げられていた。カードの規定を超過した限度額が設定されているようだが、もしかしてミスじゃね?

小さい会社なので

ある程度、柔軟な勤務時間を認めてほしいが、ダメらしい。

Sunday, June 08, 2008

技術評論社の Web サイト

現在の技術評論社の Web サイトは、昔 ( 書籍だけを紹介していたころ ) の Web サイトと異なり、情報を発信していてイケてますねぇ。

Saturday, June 07, 2008

Wanna Be An Open Source Engineer

ふと日付を確認してみた。あと 3 か月で、私は 30 歳になってしまう。大学を卒業し、仕事をするようになって、ある知り合いの 30 歳の人は「気持ちは大学生」みたいなことを言っていた。「何を言ってるんですか」とバカにしたように記憶しているが、まさに自分が同様の状況であるとは...。今日、とある会社の人と打ち合わせをしてきた。こちらは仕事をいただく立場だった。改めて自分のスキル不足を痛感した。「これをやりたい」を言い放っても構わないが、30 歳を目前として「勉強させてください」は、ないだろう。ありえない話だ。客観的に判断して、完全にキャリアプランの構築と実践を失敗している。まぁ、自分がやりたいことを本当に意識しはじめて時期が遅かったから、仕方ないのかもしれないが。

さて、自分がやりたいことを改めて確認してみる。私は、今どきの表現で「オープンソースエンジニア」になりたい。非常に抽象的な表現だ。単にオープンソースソフトウェアを扱う仕事なら、現時点でクリアしている。違うな。私は、プログラミングをするようになってから、自分でオープンソースソフトウェアを開発したい、と思うようになった。せっかくだから理想的な状況を想像すると、100 % でなくて構わないので、仕事でもオープンソースソフトウェアの開発をしたい。無理だわ、現状のプログラミングスキルじゃ。ただし、彼はこのように主張していた。今から約 5 年も前に。

( 引用ここから )

最後に、これがオープンソースエンジニアとして一般にイメージされるものだろうが、自分が好きで始めたプロジェクトが認められ、その開発だけで給料をもらい、生活を維持するエンジニアがいる。しかし、正直なところ、このタイプのエンジニアは非常に少ない。日本でも数人しかいないんじゃないかな。

このようなエンジニアになるためには

* 自分の時間と熱意をつぎ込んでオープンソースソフトウェアを独力で開発し、
* そのソフトウェアが世間で認められ、
* そのソフトウェア ( と開発者であるあなた ) の価値を認める企業に出会う

必要がある。これは大変な時間と熱意と幸運が必要だ。もっとも、状況は 10 年前よりは確実によくなっている。5 年後にはもっと良いだろう。問題は「あなた」がそれだけの時間と熱意をかけられるか、オープンソースエンジニアになるためのアクションを取れるか、という点にある。

今のままの生活を取るか、夢 ( と理想の生活 ) を取るか。no pain, no gain.

( 引用ここまで )


オープンソースエンジニアへの道

Friday, June 06, 2008

Google Checkout

Google Checkout にアカウントを登録 ( 既存のアカウントをひもづけ ) してみた。どのショップが対応しているのかしら...。

2008-06-05 の記録

予定どおり 10:00 から歯を治療した。金曜日の治療を予約できず、土曜日の 10:00 から治療する予約をした。眠い。昨夜、寝た時刻は 04:00 を過ぎていたし、今週、あまり寝ていない。この blog に、Google AdSense の広告を表示できた。Blogger から設定するだけ ( 設定している途中で AdSense のアカウントとパスワードを入力する ) で表示できるようだ...。飛び込み的に電話をしてもらった。明日の 13:00 から築地で打ち合わせをする予定だが、どうなることやら。

Thursday, June 05, 2008

タイピング

その癖のあるタイピングは完全に無駄な動作です。なぜ正しくタイプしようと練習しないのか理解できません。

Google AdSense Displayed

Google AdSense を表示できた。以下のページを参照して、簡単に広告を表示できた...。

How do I put AdSense on my blog (using Layouts)?

2008-06-04 の記録

今日も 9:30 から治療だった。明日の治療を 9:30 に予約できなかったので、10:00 から治療してもらうよう予約した。この blog に Google AdSense を表示させてみようと申請していた。承認されたことを伝えるメールを受信したので、さっそく設置してみたが...、表示されない。なぜ?48 時間ほど待ってみろ、との FAQ を発見したため、とりあえず待ってみることにした。会社の blog に Amazon Associates も表示させてみようと申請したら、同日中に承認されてしまった。明日、設置してみる。左の肩コリが激しい...。

Wednesday, June 04, 2008

Zenkaku Hankaku

全角と半角を区別して入力しましょうよ、素人ですか?

moneybookers.com

moneybookers.com のアカウントを登録してみた。Skype の料金をチャージするとき、ここを選択できるらしい。私は PayPal で支払いしているが、会社の人が銀行振込したいらしくて。

2008-06-03 の記録

日比谷の歯科にて、9:30 から治療をした。神経をとった。

会社の blog に Google AdSense を組み込んでみた。ドメインを取得して別のサイトで運営する予定らしい。

Mercurial について調査してみた。自宅のマシンに設定してみた。設定だけなら簡単だ。Subversion からの移行ツールが存在するなら、Mercurial をメインで使用してみてもよいかも。

How To Install Mercurial On 64-bit Ubuntu Linux 8.04

私は、この blog において技術メモ(またはそれ以下の記事)を公開する前、www.satoshiabe.jp において情報を公開していた。ほとんど HTML ファイルで構成されており、そのファイルを更新するたびに、ローカルホストにインストールさている Subversion に登録していた。いまのところ Subversion に不満を感じていない。確実に言えることは、今更 Version Control System なしで生きられない、ということだ。小さなプロジェクトを作成して運用するときでも、ほぼ確実に Subversion にファイルを管理させる。Subversion に管理させていないと、修正するたびに「戻せなくなるかもしれない」と余計な心配が頭をよぎり、作業に集中できないからだ。ところで、先日、slashdot.jp において、このような記事 :

Linus 曰く「Subversion は史上最も無意味なプロジェクト」

を発見した。どのように Linus が主張しようと関係ないが、Subversion 以外にも有名な Version Control System が存在し、かつ、大規模な OSS プロジェクトにおいて採用されている(採用されはじめている)ことに驚いた。正直、Subversion の一人勝ちだと思っていたから。

どれかひとつ、試してみようと思った。私は Linux つまり Kernel を開発しているわけじゃないので、Git でなくても構わなかった。むしろ、Mozilla も移行した Mercurial に興味を感じた。

さて、それでは Mercurial を試してみよう。ローカルホストのみで作業してみる。OS は、いつもどおり Ubuntu Linux 8.04 だ。



Mercurial をインストールする:

`Synaptic Package Manager' を実行して検索してみたところ、Mercurial のパッケージが提供されていた。ただし、バージョンは `0.9.5-3' であり、やや古い。オフィシャルの stable バージョンは、2008-05-22 にリリースされた `1.0.1' のようだ。そこで、ここ BinaryPackages - Mercurial で説明されているとおりに作業してみる。非常に簡単だ。


事前に必要とされるパッケージをインストールしておく。

% sudo apt-get update
% sudo apt-get install build-essential python-dev


`Easy Install' をインストールする。ファイルを適当なディレクトリに配置するだけだ。

% wget http://peak.telecommunity.com/dist/ez_setup.py


最後、Mercurial をインストールする。

% sudo python ez_setup.py -U mercurial
Searching for mercurial
Reading http://pypi.python.org/simple/mercurial/
Couldn't find index page for 'mercurial' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple/
Reading http://pypi.python.org/simple/Mercurial/
Reading http://www.selenic.com/mercurial
Best match: mercurial 1.0.1
Downloading http://www.selenic.com/mercurial/release/mercurial-1.0.1.tar.gz
Processing mercurial-1.0.1.tar.gz
Running mercurial-1.0.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tOIich/mercurial-1.0.1/egg-dist-tmp-8uZuU8
zip_safe flag not set; analyzing archive contents...
mercurial.lsprof: module references __file__
mercurial.templater: module references __file__
mercurial.version: module references __file__
Adding mercurial 1.0.1 to easy-install.pth file
Installing hg script to /usr/bin

Installed /usr/lib/python2.5/site-packages/mercurial-1.0.1-py2.5-linux-x86_64.egg
Processing dependencies for mercurial
Finished processing dependencies for mercurial
%



リポジトリを作成する:

% hg init



登録を予約する:

% hg add helloWorld.py



ステータスを確認する:

% hg status



コミットする:

% hg commit -m "added helloWorld.py" helloWorld.py



まとめ:

以上だ。ほとんど Subversion と同様に操作できる。日を改めて Subversion との違いを追求してみたいと思う。後半をかなり省略しているので、そのうち追記する。

Tuesday, June 03, 2008

再開

SJC-P の勉強を再開す。目標は、満点で合格だ!会社で Java に関われないなら、自宅で勉強してやる!

2008-06-02 の記録

9:30 から、いつもの歯科で治療した。最近、電車が遅延するので、12 分ほどの余裕を考慮しているはずが、3 分くらいしかなく、電車が日比谷に到着してから大和生命ビルまでダッシュしている。唯一の信号にひっかかると、間に合わないくらいだ。かなり息切れしてしまう。最も進行してしまった虫歯を削りまくり。あまりの黒さに手鏡で部位を見せてもらった。見るポイントを間違えていて、しばらく「どこだよ?」と思っていたが、発見した直後、「本当に黒いですね」と笑ってしまった。マジ黒かった。神経をとらずに明日も引き続き治療する予定だ。抜歯した付近の歯肉は、だいぶ炎症がおさまってきたようだ。ただ、まだ様子を見るとのこと。自社に到着してから仕事を開始した。なぜか私が自社の blog を作成している。情報公開の時代ですか、そうですか。Blogger で作成してみたところ、初ポストした直後に lock されてしまって、そのまま。unlock の申請をしたが、今のところ音沙汰なし...。自社のサーバに、すすめてもらった Nucleus という CMS をインストールして使用してみたが、Blogger の方を使いやすいと感じる。やはり Google のソフトウェアは、かなり細部まで作り込まれているんだろう。テキストベースで構わないなら、Apache Forrest にリプレースしちゃおうかしら。

Monday, June 02, 2008

自分が担当している業務に満足できなくて、悲しくなってきた...。これも自分のせいなのか。

2008-06-01 の記録

目を覚ましたら 13 時を過ぎていた...。デニーズにて少し遅いランチを食べた。X31 のメモリを増設した。Windows XP がインストールされた、もともとの HDD がセットされていたので、リカバリして SP3 までパッチを適用してみた。いずれにしても、HDD を交換して、Linux なり BSD なりをインストールする予定だ。先日、FreeBSD の ISO イメージを焼いたので、久々に FreeBSD でもインストールしてみたい気もしている。この T61 のみ英語キーボードであるため、日本語キーボードの ThinkPad と交互に操作していると、タイプミスしやすい。早く英語キーボードのみに統一したい...。

Sunday, June 01, 2008

2008-05-31 の記録

久々に風邪をひいてしまった。昨夜、寒気を感じていたが、やはり風邪だったのか。18 時ごろまで、ずっと寝ていた。軽く夕食を食べ、天才!志村どうぶつ園 を見て和んだ。23 時ごろ、近くのラーメン屋でラーメンを食べてしまった。帰宅した後、ThinkPad X31 のメモリを 1024 MB から 2048 MB へ増設した。Ubuntu Linux 8.04 にて快適に動作している。明日、別の X31 もメモリを 2048 MB へ増設する予定だ。会社の blog を開設しようと、外部の blog サービスを利用したら、初ポストで、いきなり利用規約違反と表示され、かつ lock されてしまった。つか、何も悪い内容を記述していないが...。とりあえず、unlock するよう申請しておいた。