Monday, December 31, 2007

How to install VMware Server Console on Ubuntu Linux

Ubuntu Linux 7.10 Desktop Edition に VMware Server Console をインストールしてみた。パッケージは存在しないため、VMware のサイトから tarball をダウンロードしてインストールした。


まず、ここ
Download VMware Server
を表示する。

Download VMware Server (for Linux Systems)

VMware Server Linux client package.
から zip ファイルをダウンロードする。


このようなファイル名だ。56528 は revision 番号だろう。

VMware-server-linux-client-1.0.4-56528.zip


$ unzip VMware-server-linux-client-1.0.4-56528.zip
Archive: VMware-server-linux-client-1.0.4-56528.zip
inflating: VMware-VmPerlAPI-1.0.4-56528.tar.gz
inflating: VMware-server-console-1.0.4-56528.i386.rpm
inflating: VMware-server-console-1.0.4-56528.tar.gz
inflating: VMware-vix-1.0.4-56528.tar.gz
$
$ tar zxvf VMware-server-console-1.0.4-56528.tar.gz
$ cd vmware-server-console-distrib/
$ su


このあと、いくつか質問されるが、おそらくデフォルトの値を選択すれば大丈夫だ。

# ./vmware-install.pl


起動する。

# exit
$ /usr/bin/vmware-server-console

キレる

職場において、「他人にやられてキレそうになる行為」をいくつピックアップしてみる。

・食べているとカスを飛ばしてしまう例えば「せんべい」を食べながら、自分の近くでうろちょろすること!飛ぶだろ!

・指でつまんで食べていると指に油をつけてしまう、例えば「ポテトチップス」を食べた後、手を洗わずに俺のものをさわること!

・油をつけたままの手&指で、俺のキーボードをタイプすること!

・油をつけたままの指で、俺の液晶をぐりぐりすること!


たいてい我慢してしまうので、ストレスをためてしまい、モチベーションもおとしてしまう。あまりにもこのような行為をする人が、周囲に多すぎる。何も気にしない人をうらやましく感じてしまう。

Sunday, December 30, 2007

2007/12/30

午前中、髪をカットした。さっぱりした。昨日に引き続き、本日も自社で仕事をしてきた。昨夜も同様だったが、非常に眠気を感じた日だった。自社へ向かう車内で寝てしまい、久々に寝過ごしてしまった。

Monday, December 24, 2007

iPod nano

ついに、自分も iPod デビューしてしまうようだ。本日、biccamera@有楽町にて、iPod nano 4 GB を購入した。

夕食

再びかつ玄にて、'あぐー豚' のとんかつ定食をいただきました。3,500 円なり。ごちそうさまでした。

2007/12/22, 23, 24

土曜日: 自社で仕事
日曜日: 自社で仕事
月曜日: お出かけ(銀座?)

Sunday, December 23, 2007

Importing your modules in Python

If you create your Python modules, Let's enable the environment variable, 'PYTHONPATH'.

$ cd $HOME
$ mkdir Modules
$ mkdir Samples
$ vi Modules/MyModule.py
code>>> class MyModule():
code>>>     def __init__(self):
code>>>         pass

$ vi Samples/DoIt.py
code>>> #/usr/bin/env python
code>>> import Modules.MyModule
code>>> print "Imported!!"


Enable 'PYTHONPATH' environment variable.

$ export PYTHONPATH=$PYTHONPATH:$HOME/Modules


Let's run the python code!

$ python Samples/DoIt.py

Friday, December 21, 2007

Logging in Python

Python において、'logging' モジュールを import してログを生成する方法。Library Reference に記載されている例のまま。忘れないようにメモしておく。

>>> import logging
>>> logging.basicConfig(
>>> level=logging.DEBUG,
>>> format='%(asctime)s %(levelname)s %(message)s',
>>> filename='/tmp/myapp.log',
>>> filemode='w')
>>> logging.debug('A debug message')
>>> logging.info('Some information')
>>> logging.warning('A shot across the bows')

result> 2007-12-21 13:00:08,743 DEBUG A debug message
result> 2007-12-21 13:00:08,743 INFO Some information
result> 2007-12-21 13:00:08,743 WARNING A shot across the bows


--
logging -- Logging facility for Python

Apple Lucky Bag

AppleLucky Bag が速攻で完売してしまって、注文できねー!

Wednesday, December 19, 2007

Renew Domain Names

HOSTWAY にて管理している、ふたつのドメイン (gTLD) を更新(するよう手続き)した。$7.95/domain なり。

Friday, December 14, 2007

Django on Ubuntu

Django (web framework) - Wikipedia

'''Django is an open source web application framework, written in Python, which loosely follows the model-view-controller design pattern.'''


I will try to install Django (version: 0.96) on Ubuntu Linux 7.10.


$ su -
# apt-get update



Part. I - Install Django


Install Django package.

# apt-get install python-django


Create a new project.

# cd $HOME
# django-admin startproject <project_name>


Let's run the project. Deafutl port number is '8000'.

# cd ~/<project_name>

# python manage.py runserver [8000]
OR
# python manage.py runserver 9999
OR
# python manage.py runserver <IPADDRESS>:9999


You should make sure that your server is listening with the port number you specified.

# netstat -an | less


Now you can see the new project in your web browser.

http://localhost:8000/
OR
http://localhost:9999/
OR
http://IPADDRESS:9999/



Part. II - Connect to a database


Install PostgreSQL package and Python interface for PostgreSQL.


# apt-get install postgresql-8.2 postgresql-client-8.2 python-psycopg2


Create a user, database and change its password.

# su - postgres
$
$ createuser django
Shall the new role be a superuser? (y/n) y
CREATE ROLE
$
$ createdb django -O django
CREATE DATABASE
$
$ psql
postgres=# ALTER USER django WITH PASSWORD 'django';
ALTER ROLE
postgres=# \d
$ exit
#


# cd ~/<project_name>
# vi settings.py
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'django'
DATABASE_USER = 'django'
DATABASE_PASSWORD = 'django'
DATABASE_HOST = ''
DATABASE_PORT = ''


# python manage.py syncdb
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'root'):
E-mail address: satoshi.abe@example.com
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Message model
Installing index for auth.Permission model
Loading 'initial_data' fixtures...
No fixtures found.
#



Part. III - Create models


# cd ~/<project_name>


Create your application.

# python manage.py startapp polls

# ls -1 ./polls
__init__.py
models.py
views.py
#


Edit the models.py file.

# vi polls/models.py
from django.db import models

class Poll(models.Model):
question = models.CharField(maxlength=200)
pub_date = models.DateTimeField('date published')

class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice = models.CharField(maxlength=200)
votes = models.IntegerField()
:wq
#


Activate models.

# vi ~/<project_name>/settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'<project_name>.polls' ### <- add this line
)
:wq
#


SQL statements are generated.

# python manage.py sql polls
BEGIN;
CREATE TABLE "polls_poll" (
"id" serial NOT NULL PRIMARY KEY,
"question" varchar(200) NOT NULL,
"pub_date" timestamp with time zone NOT NULL
);
CREATE TABLE "polls_choice" (
"id" serial NOT NULL PRIMARY KEY,
"poll_id" integer NOT NULL REFERENCES "polls_poll" ("id") DEFERRABLE INITIALLY DEFERRED,
"choice" varchar(200) NOT NULL,
"votes" integer NOT NULL
);
COMMIT;
#


Run syncdb.

# python manage.py syncdb



Part. IV - Activate the admin site


# vi ~/<project_name>/settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'<project_name>.polls',
'django.contrib.admin'' ### <- add this line
)
:wq
#


Run syncdb.

# python manage.py syncdb


Uncomment the line below “Uncomment this for admin:”.

# vi ~/<project_name>/urls.py
(r'^admin/', include('django.contrib.admin.urls')),

:wq
#


Start the development server

# python manage.py runserver


Open your web browser and go to 'admin' directory.

http://127.0.0.1:8000/admin/

Thursday, December 13, 2007

帰宅している途中、自宅の近くで、たまに見かける黒猫と戯れてしまった。スーツでマスクしたサラリーマンが、深夜、黒猫と戯れていたなんて...。

Wednesday, December 12, 2007

限度額

クレジットカードの限度額が微妙に引き上げられていた...。

Sunday, December 09, 2007

Properties Editor with Eclipse 3.3 does NOT work on Ubuntu

Oops...

Properties Editor は、Eclipse 3.3 on Ubuntu の環境において、正常に動作しないことを確認した。

日曜日

会社で仕事をする予定だ。久々に Java でコーディングするかもしれない。

The C Programming Language

どの言語も半端に学習している状態であるが、ついに自分も真剣に C 言語を学習するときであるようだ。バイブルとして有名な The C Programming Language を購入した。もう何日かで C 実践プログラミングを読み終わりそうであるため、その次に読むことにしよう。

Saturday, December 08, 2007

MediaWiki on Ubuntu

Before installing MediaWiki, you have to install Apache HTTP Server, MySQL and PHP.

$ su -
# apt-get update


Install some packages...

# apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server


Create a database, a database user in MySQL

# mysql -u root
mysql> CREATE DATABASE mediawiki;
mysql> CREATE USER mediawiki IDENTIFIED BY 'mediawiki';
mysql> GRANT ALL PRIVILEGES ON mediawiki.* TO 'mediawiki'@'localhost' IDENTIFIED BY 'mediawiki' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;


Install 'mediawiki' package.

# apt-get install mediawiki


Create a symbolic link.

# ln -s /usr/share/mediawiki1.10 /var/www/mediawiki


Move LocalSettings.php to /etc/mediawiki1.10 directory, and change its rights.

# mv -i /var/lib/mediawiki1.10/config/LocalSettings.php /etc/mediawiki1.10/
# chmod 640 /etc/mediawiki1.10/LocalSettings.php


Now you can see a top page of MediaWiki in your Web browser.

http://localhost/mediawiki

Friday, December 07, 2007

Made a donation

I have just made a donation of $10 to the Wikimedia Foundation, Inc. They always help me!! Thank you so much!!!

Thursday, December 06, 2007

How to install memory

注文していた AP-SDX667-2G が配送されてきたので、MacBook のメモリを増設した。合計 4 GB だ。

MacBook: How to install memory

Tuesday, December 04, 2007

Macworld Conference & Expo

2008 年の Macworld Conference & Expo は、2008/01/14-18 らしい。新製品は発表されるか?

Monday, December 03, 2007

Trac on Ubuntu

Ubuntu Linux 7.10 に Trac を設定したメモ。


Trac をインストールする。

# apt-get install trac libapache2-mod-python python-setuptools


ディレクトリを作成する。

# mkdir -p /var/lib/trac


Trac 用のディレクトリを作成しておく。

# svnadmin create /var/lib/svn/bts


初期化する。途中、repository の absolute path を入力するよう要求される。先ほど作成した '/var/lib/svn/bts' を指定する。他の質問はデフォルトを選択しておけば大丈夫だ。

# trac-admin /var/lib/trac/bts initenv


Administrator となるアカウントを作成する。

# htpasswd /etc/apache2/dav_svn.passwd <name>
# trac-admin /var/lib/trac/bts permission add <name> TRAC_ADMIN


設定ファイルを編集する。

# 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>


オーナーを変更する。

# chown -R www-data:www-data /var/lib/trac


Apache HTTP Server のプロセスをリスタートする。

# /etc/init.d/apache2 restart


正常に閲覧できたら完了だ。

http://localhost/projects/bts



以上!

Sunday, December 02, 2007

WebDAV on Ubuntu

Ubuntu Linux 7.10 に WebDAV を設定してみたメモ。


$ su -
# apt-get update


Apache HTTP Server をインストールする。

# apt-get install apache2


Web ブラウザで下記 URL を閲覧し、正常に閲覧できるかを確認すること。

http://localhost/


Subversion をインストールする。

# apt-get install subversion subversion-tools


リポジトリで使用するディレクトリを /var/lib/svn とする。

# mkdir -p /var/lib/svn


リポジトリ myproject 用のディレクトリを作成する。

# mkdir -p /var/lib/svn/myproject


リポジトリ myproject を作成する。

# svnadmin create /var/lib/svn/myproject


続いて WebDAV を設定する。パッケージをインストールする。

# apt-get install libapache2-svn


設定ファイルを編集する。

# vi /etc/apache2/mods-available/dav_svn.conf
<location /svn>
DAV svn
AuthType Basic
AuthName "Subversion Repository Access"
AuthUserFile /etc/apache2/dav_svn.passwd
<limitexcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</limitexcept>
</location>


Apache HTTP Server のプロセスをリスタートする。

# /etc/init.d/apache2 restart


下記 URL を Web ブラウザで閲覧し、動作を確認する。

http://localhost/svn/myproject


アカウントを作成する。<name> にアカウントを指定すること。パスワードを要求される。-c オプションで、ファイルを作成する。

# htpasswd -c /etc/apache2/dav_svn.passwd <name>


追加する場合

# htpasswd /etc/apache2/dav_svn.passwd <name>


オーナーを変更しておく。

# chown -R www-data:www-data /var/lib/svn



以上!

AP-SDX667-2G

会社から貸与されている MacBook 用に、増設するメモリを注文した。

AP-SDX667-2G

ふたつ注文した。合計で 4 GB となる。これで、複数の VM を起動してもメモリ不足にならないだろう。

Saturday, December 01, 2007

VMware Fusion

VMware Fusion 1.1 のライセンスを ここ で購入した。$79.99 なり。使用していた評価版のライセンスが expire しそうだったため。もう VM なしの生活なんて考えられない。

Atlassian JIRA

/*
* 01/19/2009 Updated
* 国内の代理店の URL が変更されたらしく、以下の URL を参照のこと。
* http://www.team-ware.com/
*/


バグトラッキングシステムである JIRA をセットアップしたときのメモ。もともと現場においてメンバが使用する BTS をいくつか検討しており、Trac もそのうちのひとつであったが、JIRA も候補だった。評価版が存在することを確認していたためセットアップしてみることに。まず、この JIRA は、Java のアプリケーションサーバそのもの、具体的に言及すると Apache Tomcat そももの、と考えて過言でない。そのため、JIRA を動作させるため、事前に Java をインストールしておくことになる。JIRA をホストするプラットフォームとして Ubuntu Linux を選定し、Server Edition を選択した。

Java をインストールする。ライセンスの内容を確認し、同意すれば Java をインストールできる。

$ su -
# apt-get update
# apt-get install sun-java6-jdk


環境変数を設定する。

# vi /etc/bash.bashrc
export JAVA_HOME=/usr/lib/jvm/java-6-sun
export PATH=$PATH:$JAVA_HOME/bin

# source /etc/bash.bashrc


続いて、JIRA Downloads を表示し、'JIRA Edition' と 'Platform' を選択し、JIRA をダウンロードする。最新版は 3.1.1 で、ファイルサイズは約 30 MB ほどだ。

JIRA Edition = Enterprise
Platform = Unix/Linux


ダウンロードした tarball を展開する。

# tar zxvf atlassian-jira-enterprise-3.11-standalone.tar.gz
# mv atlassian-jira-enterprise-3.11-standalone /usr/local/
# cd /usr/local


シンボリックリンクを作成する。

# ln -s atlassian-jira-enterprise-3.11-standalone ./jira


JIRA を起動する。

# /usr/local/jira/bin/catalina.sh start


Web ブラウザで以下の URL を表示すると、JIRA のセットアップ画面が表示される。

http://localhost:8080/


いくつか質問に回答してセットアップする。ただし、セットアップ画面においてライセンスキーを入力しなければならない。国内の場合、評価版のライセンスキーを JIRA, CONFLUENCE - お試しライセンスの申請から申請しておくこと。そのうちライセンスキーが記載されたメールを受信するだろう。そのライセンスキーを入力してセットアップを完了できる。


利用者が新しい ISSUE を JIRA に登録したとき、JIRA は指定のメールアドレスへメールを送信したりできるが、ローカルホストのメールアプリケーションを使用する予定で、かつインストールしていないなら、インストールしておくこと。Postfix を例とする。

# apt-get install postfix


JIRA の評価版の場合、database が integrated されているため、別途、database をインストールせずにすむ。PostgreSQL や MySQL にも対応してるが、設定する手順は、JIRA Installation Guide で解説されている。試験として PostgreSQL を使用するよう設定を変更してみた。特別な設定を必要とせず、ドキュメントどおりに設定できた。Apache Tomcat と database を接続するための設定を経験している人であれば、ドキュメントのみで設定を完了できるだろう。

I have been using AWK

もう、積極的に使用することもなくなってしまった AWK であるが、コマンドを実行した結果を vertical line で AWK に渡して処理することも少なくない。最近 man ページを閲覧していて気づいた機能、GAWK に限定された機能かもしれないが、Built-in Variables というカテゴリに IGNORECASE という変数が存在する。どうもこの値が 0 でない場合、文字の大小を区別しなくなるらしい。別のコマンドで実現するなら

grep -i 'abc'

のようなパターンマッチングを

awk 'BEGIN{IGNORECASE=1} /abc/'

と記述できる。AWK を使用する場合、明らかに冗長に記述することになるため、メリットを理解できないだろうが、たとえば

awk 'BEGIN{IGNORECASE=1} /abc/ && $3 == 1 {print $3, $4}'

なんて処理をしたいとき grep を使用すると、更に別のコマンドに結果を処理するよう依頼することになるはずであるから、今更ながら、私は AWK を便利だと感じている。

phpBB on Ubuntu

Ubuntu Linux 7.10 に phpBB を導入してみた。現場のコミュニケーションツールを検討しているときに候補に挙がった。正直なところ PHP という言語を好きじゃないため、PHP が採用されているアプリケーションを避けてきたが、結果的に簡単インストールで導入できたので、それはそれで満足だ。

まず、LAMP 環境を整える。

$ su -
# apt-get update
# apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server


MySQL がインストールされた後に MySQL の root ユーザのパスワードを変更したいなら、コマンドラインで以下を実行する。

# mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');


続いて phpBB をインストールする。'データベースを作成するか?' と質問されるはず。'Create' を選択する。また、MySQL の root ユーザのパスワードを入力するよう要求されるはずだ。

# apt-get install phpbb2-conf-mysql


シンボリックリンクを作成する。

# ln -s /usr/share/phpbb2/site /var/www/phpbb


Apache HTTP Server のプロセスを restart する。

# /etc/init.d/apache2 restart


Web ブラウザでページを閲覧してみる。phpBB のページが表示されるはずだ。

http://localhost/phpbb


ログインするための情報は以下のとおり。

username = admin
password = admin


正しく入力したとしても、以下のようなメッセージが表示されるはずだ。

'Sorry, but this board is currently unavailable. Please try again later.'


そのページの下に存在するリンクをクリックする。

'Go to Administration Panel'


画面はフレームで区切られ、左のページに 'General Admin' を発見できるだろう。いくつか下に表示されている 'Configuration' をクリックする。右のページ 'General Board Settings' が表示される。上から 6 つ目ほどに以下のメッセージが表示されているはずだ。この値がデフォルト 'Yes' と設定されているあるため、この値を 'No' に指定し、最下部の 'Submit' ボタンをクリックすること。

'Disable board
This will make the board unavailable to users. Administrators are able to access the Administration Panel while the board is disabled.'


ここで再びトップページを表示すれば、フォーラムが表示されるはずだ。

http://localhost/phpbb


Apache HTTP Server の設定ファイルを編集する。コメントアウトを解除するだけだ。

# vi /etc/apache2/conf.d/charset

before:
#AddDefaultCharset UTF-8

after:
AddDefaultCharset UTF-8


再び Apache HTTP Server のプロセスを restart して完了だ。

# /etc/init.d/apache2 restart

Friday, November 30, 2007

strace : a system call tracer

ある command を実行するときに使用する library を確認したかった。検索したところ Linux distribution なら strace を利用できるらしい。

実行例:

$ strace ./command | awk '/lib/'

Tuesday, November 27, 2007

ついに

このまま何もなければ、2008 年 4 月から新人が入社しそうだ。そう、新卒だ!おそらく同じ現場で業務をすることになるだろう。まず 4 月までに成長してもらわないと。

EMOBILE

ぐは、後継の機器が発表されるとは!

イー・モバイル、通信速度を 7.2 Mbps に -- 料金は据え置き (CNET Japan)

まだ、一度も接続しないうちに...。

Monday, November 26, 2007

GCC on Mac OS X Leopard

GCC is not installed on Mac OS X Leopard by default. But it is freely available in the 'Xcode' suite of development tools. You can always download and install Xcode. Before installing it, you have to register Apple ID. Then you will install GCC, it will be located at /usr/bin/gcc.

$/usr/bin/gcc -v
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5465~16/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5465)
$

Sunday, November 25, 2007

電気ケトル

簡単にお湯を利用したかったので、これを購入してみた。

T-fal 電気ケトルニューヴィテスエクスプレス

Saturday, November 24, 2007

Creating RPM Package

CentOS にて、tarball から RPM パッケージを作成したときのメモ。

まず、rpmbuild コマンドが含まれているパッケージをインストールする。

$ su -
# yum install rpm-build


続いて、対象の tarball を /usr/src/redhat/SOURCES/ ディレクトリに保存する。

# cp /path/to/something.tar.gz /usr/src/redhat/SOURCES/


SPEC ファイルを記述して、rpmbuild コマンドを実行する。

# rpmbuild -ba /path/to/something.spec


すると、RPM パッケージが生成される。



なお、SPEC ファイルに記述する内容を確認するとき、ここ
Packaging software with RPM, Part 1
を参考にした。

RPM の本家
rpm.org

Friday, November 23, 2007

Skype

SkypeSkype Credit を購入してみた。とりあえず € 10 だけ。€ は、ユーロだ。最近、この通貨について話をすることも多くなった...。

うちの会社の場合、社外や自宅で作業している社員同士が会話をしたいとき、携帯電話の他に、Skype や Google Talk を利用している。ただし、相手がログインしていない場合もある。また、昨今 IP 電話の料金も安価であるため、一般電話から一般電話へ発信するとこもある。

ただし、私の自宅の場合、固定電話から IP 電話を利用することにる&子機を利用していないため、PC から離れた場所に位置する電話機を利用せねばならない。PC の画面を確認したいときなど、致命的であった。そこで、この課題を解決できる Skype のサービスを契約していよう、と考えた。このサービスを利用すると、PC から一般電話へ発信できるのだ。数分で契約の処理を完了し、先ほど実家へ電話してみた。少し雑音が発生していたが、十分、満足できる品質だった。これ、イイ!お試しあれ。

この手段を利用する場合、うっかり海外に出張してしまったときも PC から一般電話へ発信できるため、有効だと考えられる。しばらく海外へ出張する予定なしだが...。

Sunday, November 18, 2007

MacBook

ずっと書き忘れていた...。今月 6 日から新しいマシンを利用している。それは...、

MacBook

だ。Mac OS X -Leopard- でも検証できるように、と会社の費用で購入した MacBook を利用させてもらうことにした。


2 週間ほど利用している(電源を ON しない日もある)が、やっと慣れてきたかな、と感じる。電源を OFF する手順もわからなかったし、アプリケーションをインストールする手順もわからなかった。良い点を挙げると

・日本語から英語へ言語を変更できる。
・Terminal を実行でき、bash を利用できる。
・Flash な Web ページをほぼ確実に閲覧できる。
・Skype などのアプリケーションもサポートされている。

などなど。

使い勝手に慣れるまで大変だろうが、実に楽しい。


そう、そういえば、VMware に Mac OS X 用のバージョンが存在する。名前は VMware Fusion だ。評価版をダウンロードできたので、実験的にインストールしてみたところ、VMware のインストールも、かつ VM も簡単に利用できた。とりあえず Ubuntu Linux をインストールしてみたが、普通に Mac OS X 上で Linux を利用できた。難点は、MacBook の画面が小さすぎるため、VM を GUI 環境で利用するなら、外部ディスプレイを用意するべき点だろう。メモリも 1 GB だと不足であるため、できれば 4 GB を用意するべきだ。


いつメモリを購入しようか(経費で...

Wednesday, November 14, 2007

やさしいバグトラッキング

仕事において、

「メールしておきましたので確認して対応しておいてもらえますか?」

なんてダイレクトにメールをいただくようになると、いつのまにかメンバが把握していない仕事を増やされてしまいます。

メンバがその情報を共有していず、うっかり自分が個別の対応に時間を投入してしまうと、本来やるべき仕事をやれなくなってしまいます。このケースは、たいていの外部スタッフに該当するでしょう。なかなか許否できませんから。

そこで、Joel on Software - やさしいバグトラッキングを参考に、バグトラッキングシステムを導入することにしましょう。これ経由でのみ仕事を受け付けるようにします。

ええ、それでもメールを送信してくる人は、いるかもしれません。ただ、あなた(私を含む)は、そのメールを拒否します。実際、メールのデータを受信してしまいますが、しばらく無視しておきましょう。「どうして対応してくれないんですか?」と質問されたら、「申し訳ありませんが、メールを整理しきれませんので、例のシステムに登録してもらえますか?」と依頼しましょう。

----------

えーと、つまり現場でバグトラッキングシステムを導入してみる。いけてない Excel シートで管理するより、ずっとマシだろうから。なんて Excel 依存な仕事&人が多いことか!とりあえず Trac を調査してみることに。自宅の Ubuntu Linux にインストールしてみよう。APT を利用して必要になりそうなパッケージをインストールしたが、これにて終了。明日、続きの作業を再開する。

乗り過ごし

帰りの電車において、目を閉じ集中して 1000 時間ヒアリングマラソンを聞いていたら、降りる駅を過ぎてしまった.....。

Thursday, November 08, 2007

昨日のこと。右下の奥歯、銀色のつめものがはずれてしまった。かなりしみる。常温で水を飲めない。つらい。

Tuesday, November 06, 2007

魅力なし

NTT DoCoMo が、新シリーズの 905i を発表したそうな。私は DoCoMo ユーザだ。家族の分も含め、4 回線を契約している。が、

まったく DoCoMo の携帯電話に魅力を感じない

一点、「おサイフケータイ」だけを便利だと感じている。ま、DoCoMo じゃなくても利用できるけど。

・利用しずらいユーザインタフェース
・携帯電話からのみの利用を強制するメールサービス
・世界シェア 1 % 程度の特徴なき端末たち
・独自の HTML 言語と独自の Web ブラウザ
・長期の契約者にメリットが少ない料金プラン
・不必要サービス(ゲームや音楽)


小型化やワンセグなど、世界先端の技術を有しているのだろうが、悲しくなるほど魅力を感じない。

Monday, October 29, 2007

BTS

先週、合計で 4 つの報告を BTS に登録した。製品の不具合について先方とやりとりする方法は、BTS を使用することになっている。もちろんすべて英語で報告した。既にいくつか修正されているようだが、月曜から確認の作業を開始する予定だ。今週も電話会議をしそうな雰囲気。

Sunday, October 28, 2007

本日の夕食

ここ

かつ玄 丸の内店

の「本日の特撰かつ膳」を食べた。2,800 円なり。

Tuesday, October 23, 2007

定期(継続)

Mobile Suica を利用しているため、携帯電話のアプレットを操作するだけで、定期券(継続)を購入できた。楽。かなり楽。

教材

しばらくこの教材で十分だろう。1000 時間ヒアリングマラソンを注文した。

Monday, October 22, 2007

投石?

数日ほど前から気づいていたが、おそらく自分が住んでいる賃貸マンションの住人が、お隣の民家の屋根(相対的に民家の屋根が低い)へ物を投げつけている。だいたい午前 0 時から 2 時までの時間帯で。民家に住んでいる人も気づいているようだ、当然だが。いったい誰なんだ。ある夜、「投げられた物が屋根にあたるたびに窓を閉める音」を、自分は聞いた。上なのか下なのか、だいたい特定できているつもりだが、確信をもてないため、ここに書かないことに。

OPI - Avojuice

毎年、秋ごろから特に手が異常に乾燥するようになった。対処しないと辛い...。いろいろとケア用品を試しているが、OPIAvojuice を購入してみた。600 ml の GRAPEFRUIT JUICE と PEACH JUICE を。以前もらった Avojuice を使用していたが、いい感じだった。自分なりに Avojuice の特徴を説明するなら、
・よい香り
・早く乾く
・ベタベタしない
だろうか。特にベタベタしないことは重要で、会社で PC を操作する作業をしていても気にならない。お試しあれ。

Sunday, October 21, 2007

落札

Yahoo! オークションにおいて、ThinkPad T42 : 2373-8YJ を落札してみた。手数料も含めて 80,000 円ちょっと。安くないが、メモリが 2048 MB に増設されているらしい。Windows がインストールれているらしいが、自社において Linux 端末として使用する予定だ。会社から Let's note を貸与してもらっているが、使用していることに我慢できなくなってしまった。軽さだけ(じゃないけど)を追求している PC を使用したくない。

Sunday, October 14, 2007

VMware on Ubuntu

Ubuntu Linux 7.04 において、VMware をインストールし、VM として openSUSE をインストールしてみた。



ちなみに、正しい解像度を設定できていない。

Friday, October 05, 2007

準備

もしかしたら急に渡航するよう令を受けるかもしれなかったので、いろいろ準備をしていた。まずパスポートを発行し、受け取った。注文していたスーツケースは、この連休に配送される予定だ。また、これまで 1 枚のみクレジットカード(VISA)を利用していたが、念のため、もう 1 枚を追加で作成することにした。候補は、

MasterCard
AmericanExpress
JCB

だった。海外において JCB は強くないことが予想されたため削除し、MasterCard と AmericanExpress のどちらかを選択することで迷っていた。結論として、AmericanExpress を選択し、申し込みした。MasterCard を選択しなかった理由は、おそらく VISA を利用して決済できる店舗なら、大抵 MasterCard にも対応しているだろうと予想できたから。AmericanExpress は厳しい審査をすることが予想されたたが、審査の結果、OK となり、本日、カードが配送された。最初に窓口へ電話(カードにシールがついていて電話番号が記載されている)し、activate する?ことになった。ちなみに、先日 Yahoo! オークションにおいて落札した時計は、現地でも電波を受信し、正確な時間をきざめるはずだ。

そうそう、これまで場所を記載せずにいたが、渡航するかもしれない国は、ここだ。

IRW-M200SDJ-7JF

Yahhoo! オークションで落札した IRW-M200SDJ-7JF が配送されてきた。

レンタカー

予約してみた。

Wednesday, October 03, 2007

パスポート受け取り

出社する前、有楽町にてパスポートを受け取った。

D01HW

ビックカメラ@有楽町において、イー・モバイルD01HW を購入してみた。さて、Willcom をどうしようか。

Sunday, September 30, 2007

MOBILE SUICA

明日から新しい現場で仕事をすることになっている。これまで東京メトロのみだった通勤の路線を、東京メトロ -(乗り換え)- JR に変更する。東京メトロのみだった場合、PASMO を使用していただろう。私が所有している PASMO はクレジットカード機能を備えており、乗り越ししてしまったときなどチャージしておいた金額から自動的に差し引かれたり、改札をとおるときに自動的にチャージされたりするなど、それなりに便利だった。ひとつ不満を挙げるなら、メインで使用しているクレジットカードと別に、新しいクレジットカードをつくることになってしまったことだ。

で、このたび JR と乗り換えすることになったため、定期を MOBILE SUICA に変更することにした。これに変更する理由はひとつ、定期をクレジットカードで購入できるためだ。東京メトロにおいても定期をクレジットカードにて支払いできるが、クレジットカードが Tokyo Metro To Me CARD に限られているという、初期の JR に似たひどいサービス仕様なのだ。そのため、メインのクレジットカードを登録している MOBILE SUICA を、定期で使用することにした。MOBILE SUICA の定期を購入する場合、携帯電話のアプレットを使用して、すべての手続きを済ませられるはずだが、自分は、携帯電話のパケットフリーな契約をしていないことと、パソコンからでも予約の手続きをできることから、パソコンから予約することにした。

経路は以下のとおり。

綾瀬 -(東京メトロ)- 西日暮里 -(JR)- 品川

私は綾瀬から出発する。しかし、JR が出発駅でない場合、綾瀬→品川でなく、品川→綾瀬の定期を購入することになるらしい。JR に電話して確認したことであるから、真実である。パソコンから予約の作業を完了し、最後に決済などの作業を、携帯電話で処理する。個人的に、携帯電話で改札を通過する人をあまり見かけないが、明日から自分が携帯電話で改札を通過する人になるわけだ。

Wednesday, September 26, 2007

パスポート申請

午前に、有楽町にてパスポートを申請してきた。最短で来月 2 日に受け取れる予定だ。もともと先週の金曜日に申請する予定だった。提出する書類に、戸籍謄本(戸籍謄本)が含まれているが、自分は本籍が地元にあるため、本籍のある役所で申請せねばならなかった。両親に手続き&郵送してもらい、23 日に届いていた。10 時 30 分ごろから手続きを開始して、だいたい 11 時 30 分ごろに終了した。それほど込み合っている様子でなかったが、自分の前に 25 人ほど待っており、11 時くらいの段階で 40 人ほどの待ち行列が発生していた。午後になるとより込み合うだろうから、午前に手続きを済ませるべきだろう。必要になる書類を揃えておけば、手続き自体それほど難しくない、というか簡単であった。念のため入手した住民票は、使用されず。申請するときに支払うと思っていたが、パスポートを受け取るときに収入印紙を提出するらしい。10 年用のパスポートを選択したため、16,000 円だ。葉書が送付されてくるらしく、その葉書を提出して受け取りとなる。

Sunday, September 23, 2007

信頼される人間になりなさい

ふと、家族の他で、自分のことを本気で怒った人はいるだろうか?と考えてみた。

いる。それは、高校生活において、部活の顧問であった人だ。


私が所属していたバスケットボール部において、毎年の恒例行事となっているいくつかのイベントのひとつとして、卒業生に色紙をプレゼントしていた。学生は表に寄書きするが、最後に顧問が裏に一言を書く。私は、その恒例となっている行事を好きになれなかったため、大学生になったとき、その色紙を捨ててしまった。たいてい表に書かれるフレーズは、後輩がムリに考えたどうしようもない(と思えた)寄書きだったからだ。自分も適当に書いていたから。

信頼される人間になりなさい

これは、顧問だった人が色紙の裏に書いたフレーズである。もう色紙は存在しないため、完全に一致していないかもしれないが、この内容だったはずだ。衝撃だった。まるで私が信頼されていないかのような内容だった。だからハッキリ覚えているのだ。


今、考える。あの色紙を手にしてから 10 年も経った。私は信頼される人間になれただろうか。


冨手先生、母校の花巻北にいらっしゃるようで。今も先生はバスケットボールをおしえていますか?もう会えないかもしれませんが、もう一度、あなたが指揮するチームでバスケットをしてみたいです。

Friday, September 21, 2007

緊急指令

パスポートを取得せよ。

Wednesday, September 19, 2007

Shared Library

Linux の shared library についてメモしておく。

Linux Online - Shared Libraries
Dissecting shared libraries

Tuesday, September 18, 2007

ThinkWiki

有名なのか有名でないのか知らないが、ThinkPad で Linux を利用するとき、または Linux を利用しようとしている ThinkPad の情報を検索したい場合、まずこの Web サイトを確認するようにしている。

ThinkWiki
http://www.thinkwiki.org/

画面の左に表示されている ThinkPad models をクリックし、次の画面において、自分が情報を得たいモデル(たとえば T だとか R だとか)をクリックする。次の画面において、さらに詳しいモデル(T61 だとか R61 だとか)をクリックする。すると詳細な画面が表示されるはずだ。画面を最下部までスクロールすると、アルファベット順にページがリンクされている。たいてい問題は P のカテゴリに Problem ... と表示されているはずだから、そのあたりを確認すればよいだろう。自分は、Problem with non-ThinkPad hard disks を知らずに R52 を購入してしまったとき、かなり Web サイトの情報に助けられた。この件で貴重な時間を無駄にしてしまった。このときばかりは ThinkPad をリリースしている人たちを怨んだ。が、ThinkWiki の情報で Ultrabay adapter を利用することで問題を回避できることを知り、現在も R52 を所有している。ただし、あまり起動していないが...。

Sunday, September 16, 2007

Accordance ARAID 2000

Accordance SystemsARAID 2000 Dual Mode (882-0017) を注文した。

Ubuntu Server をインストールし Software RAID を実現する予定だったが、何度もインストールの途中で停止してしまい作業を完了できず、半年ほど放置したままだった。来月あたりに新しい Ubuntu がリリースされることもあり、この機会に実現させようと考えた。いつまでのバックアップしないままも心配だし。

また無駄な時間を消費することを避けたかったため、確実な方法を選択することに。会社でも使用している ARAID 2000 を選択した。Ubuntu の実績があることを確認できなかったが、以下のフラットフォームがサポートされているので、おそらくプラットフォーム依存を考慮せずに済みそうだ。

Windows NT/2000/2003 Server
Windows NT/2000/XP Workstation
Windows 95/95-OSR2/98/98SE/ME
DOS 6.22
Linux
SCO Open Server
BSD

最初、ぷらっとホームで注文しようかと考えたが、他に検索したところ意外にも楽天において商品を販売しているショップが存在し、クレジットカード決済も選択できたので注文することにした。在庫をきらしているようで取り寄せとなっているが、気長に待つことにしよう。

Wednesday, September 12, 2007

Configuring Network Interface In Ubuntu Linux

Ubuntu Linux において、dhcp を使用して IP Address を取得していたが、サーバ用のマシンであったため、static に変更した。変更方法をメモしておく。

IP Address というか NIC の情報は、/etc/network/interfaces ファイルに記述されている。

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp


このファイルを以下のように編集することにより、static に IP Address を設定できる。

# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
#iface eth0 inet dhcp

iface eth0 inet static
address 192.168.100.17
netmask 255.255.255.0
gateway 192.168.100.1


このファイルのより詳しい情報を

% man 5 interfaces

で確認できる。


ファイルを変更したら、以下のコマンドを root で実行する。一般ユーザなら sudo を使用すること。

# /etc/init.d/networking restart



以上

銀座

この前の日曜日の話。久々に銀座へ。JR 有楽町駅の東側?は、オープン間近らしい丸井の工事で道幅が狭かった。やけに人が多くて、かわしながら歩かないとダメな状態。疲れた...。biccamera のおいて、機種変更する携帯電話を物色。最低で 2 万円かかるなぁ、と思って退散。綾瀬に戻って、駅に近い携帯電話ショップで機種変更することにした。そういえば前もあそこで機種変更したような。やっぱ biccamera って高い。客も多すぎ。新しい iPod nano が売られていたが、購入せず。

Saturday, September 08, 2007

悔しい...。いや、むしろ幸運だったかもしれない。

昨夜、体調の悪さから久々に PC を起動せずに寝た。といっても、いつもどおり寝つけず、寝返りしながら「こんなことなら寝なければよかった」なんて考えていたが...。今日、昼ごろに目覚めて、体にダルさを感じていたため、自社に出社しないことにした。メールを確認するか、と PC の電源を ON した。IBM から優待メールを受信していた。決算キャンペーンなのか、先週から weekly キャンペーンなるセールをしているが、今週の内容も自分は満足できずに、一般の閲覧者も閲覧できるアウトレットコーナを念のため確認したところ...、

発見!!!

2623PKJ

/* 主要なスペック */
CPU : Intel Core 2 Duo T7200
Memory : 1024 MB x 1
HDD : 128 GB
Video Chip : ATI Mobility Radeon X1400
Video Memory : 128 MB
LCD : 14.1 SXGA+
Wireless Lan : abg

これで 119,910 円だ!買いだろ、これ。ちなみに kakaku.com にて最安値を検索すると、199,800 円だ!

「ついに自分も dual core 世代を経験するのか...、そうだ、SATA もだ。いまだに自宅の PC は PATA だしな。」などと考え、ドキドキしながら入念にスペックを確認していた。やっぱ買いだ。会社の人に伝えて会社の費用で購入しようか、事後の報告でもなんとかなるかもしれないと考え、数量を 2 として購入手続きへと進めたところ...、

以下の製品は完売のため、ショッピングカートに入れることができません。
2623PKJ


orz...

そりゃそうだよな...。もう 1 日くらい過ぎてるわけだし。ずっと自分みたいに狙っていた人もいるわけですよ。完売しますよ、そりゃ。ただ、これを購入してしまうと、10 月に発売される予定の Max OS X 10.5 Leopard を購入できなくなるかもしれなかったし、クレジットカードの残高も増えてしまう。もう Windows を購入しない!と誓ったということもあったし、購入しなくて lucky だったかもしれない。昨夜、この商品を発見して我慢できるかわからないし...。とりあえず今月末までの間、同じような商品がまた出現するかも、と期待しておこう。

Wednesday, September 05, 2007

Domain Name Transfer

iPowerWeb で登録していたドメイン 3 つを、HOSTWAY へ移行するよう手続きした。

satoshiabe.com
satoshiabe.net
satoshiabe.org

初めてドメインを移行する。両レジストラのランニングコストは、ほぼ等価だが、やはり一か所で管理できると楽だ。HOSTWAY のコントロールパネルが便利に作りこまれていることも大きい。今回の作業も HOSTWAY のコントロールパネルから実行できた。数日のうちに iPowerWeb が連絡してくるはず。とりあえず待ち。

Monday, September 03, 2007

デビュー

1 日、デビューた、秋葉原。IT 業界で仕事をしていて、いちおうコンピュータ好き?な人に該当するが、秋葉原デビューしていなかった。ちなみに今月 29 歳になりまふ。会社の人が秋葉原で買いものをするらしいので、この機会を逃すまいと出発。現地で合流したが少し迷った...。昼食を済ませた後、ショップを徘徊。その後、職場に移動して、来月に納品するサービスをのせるサーバを選定す。もう HP の DL145 G3 で決定していて、最適と考えられるパーツを組み合わせてみた。RAID カードの仕様を把握できず、HP の英語の Web サイトから、仕様が記載された PDF をダウンロード。必須の機能が搭載されているよう(月曜日に電話で確認する予定)で、構成をほぼ決定した。夕飯を表参道ヒルズにて。まもなく帰宅。車内で強烈な腹痛に襲われてしまい、冷汗をかきつつ我慢...。ひさびさに PC を起動せずに就寝。もらった睡眠薬を飲んだからか、そこそこ寝られたようだ。

Friday, August 31, 2007

働きマン

いつのまにか発売されていたので、帰る途中に購入。

働きマン (4)

Thursday, August 30, 2007

確定

現在の仕事(客先)を 9 月いっぱいで終了することで確定した。10 月から例のプロジェクトに合流だ。

Monday, August 27, 2007

重い...。

現在、数年前に発売された T41 2373-9FJ を + 512 MB のメモリで使用しているが、もっさり感を感じるようになった。top で load average を確認していると、だいたい 0.70 くらいで、Web を閲覧していると 1.20 くらいになる。これで Eclipse から Tomcat を起動したり、ファイルを編集したりしたら、やっぱ遅くなるわけだ。起動しているアプリケーションは以下のとおり。

Firefox
GNOME Terminal x2
Eclipse
gedit
Amarok
Skype

ああ、バックグラウンドで PostgreSQL とかも動作させているせいもあるのか...。Google Desktop も重そうだ。

別のマシンで開発の作業をすればいいのかもしれないが、幅が 1200 mm な机だから、2 台のマシンを設置すると狭くなってしまう。広い机に買いかえるという手段もあるが...。まぁ、昔 3 台のマシンを設置していたりしたが、もう無理。狭すぎる。

お台場&豊洲

この前の木曜日、お台場に出かけてきた。久々に遊ぶ目的で外出したような。目的地は「ねこたま キャッツリビン」だ。入場料を支払うと、時間制限なしで入場していられる。疲れているのか?、または昼だから(猫は夜行性らしい)、元気のない感じだった。しかし、(猫は理解しているのか)おやつタイムになると急に元気になる。おやつタイムとは、入場者が餌をあげられる時間帯で、猫が餌を食べているすきに触りたい放題!?なのだ。気になったこととして、心無い入場者によって、猫が(結果的に)いじめられていることを目の当りにしたこと。子どもが悪さをしているなら、親が注意しなければならないことは常識だと思うのだが...。つづいて、MEGA WEB において、電気自動車と試乗車に乗ってきた。電気自動車の場合、決まった道をハンドル操作せずに運転できるが、試乗車の場合、本当に運転しなければならない。前に運転してから、既に数年が経過している。エンジンをかける段階から緊張してしまっていた...。決まったコースを 2 周するが、2 周目ともなると慣れてきて、リラックスしながら運転できた。続いて、ららぽーと豊洲へ移動。もともと立ち寄る予定でなかったが、帰り道だったのでついでに。巨大で、かつ遅い時間帯に立ち寄ったので、それほど見てまわる余裕はなかった。帰りぎわにラコステで買いもの(財布+バッグ+他)をしてから帰宅した。

健康食品

現在、自分が摂取している健康食品のリストは以下のとおり。

満点野菜
満点海藻
ナチュラビオ
青汁粉末ツイントース配合
マルチビタミン
マルチミネラル
マルチアミノ酸
ピルクル
野菜生活
ブルガリアのむヨーグルト

続 : 北斗の拳

北斗の拳を 4 巻まで購入していたが、続きの 8 巻までを購入した。8 巻において、ついにケンシロウがラオウを倒すが、涙せずに読みきれない内容となっている。

感情移入しすぎ...

北斗の拳 完全版 (5)
北斗の拳 完全版 (6)
北斗の拳 完全版 (7)
北斗の拳 完全版 (8)

Sunday, August 26, 2007

カットした...。ボサボサだったので、さっぱりした...。


T's hair

Monday, August 20, 2007

おしごと

事前に連絡しておいてよかった...。今日も会社でお勉強。というか、仕事。受注した案件だし。まったく進められていなかったため、ちと心配していたが、十分だったらしい。開発環境の整備に時間を費しすぎ。続きを火曜日から。

Sunday, August 19, 2007

Python : Inheritance

Python で class を継承するサンプルを作成してみてハマったので、メモしておく。各 class は、すべて別ファイルとして作成されている。

% cat Animal.py
class Animal:
def __init__(self):
pass

def doStuff(self):
print("hoge")
$
$ cat Horse.py
import Animal

class Horse(Animal.Animal):
def __init__(self):
pass
%
% cat TestAnimals.py
#!/usr/bin/env python

import Horse

h = Horse.Horse()
h.doStuff()
%
% ./TestAnimals.py
hoge
%

Saturday, August 18, 2007

会社

誰もいない...

夏休み

今月 20 日、出社することになってしまった(休む予定だった)が、21 日から 27 日まで夏休みとする予定だ。いつもなら自宅でダラダラ過ごしてしまうところだが、今回、自社で仕事をする予定。自社で受注した Java 案件の一部を担当する。今の現場で業務をする日数は、残り 30 日もない。4 月から Java の案件に携わり、経歴書に Java の業務を経験したことを記載できるが、実際、何かをつくれるほどスキルを身につけられたわけじゃない。このままだとマズイ。かなりマズイ。何か、自分をひとつ上の段階へもっていくために、早急に何かを開始しなければ...。

Wednesday, August 15, 2007

Can't convert string from 'UTF-8' to native encoding

現場で Subversion の運用を担当しているが、「現行 repository のデータを複製して、新たに repository を作成する。」という作業をすることになった。現行 Java プログラムを流用して新たに作成するためだ。以前にも同様の作業をしていた。個人的な手順は、ざっくりと以下のとおり。

$ CurrentRepository=/var/svn/current
$ NewRepository=/var/svn/new
$ mkdir -p /var/svn/tmp/current
$ svn checkout file:///${CurrentRepository} /var/svn/tmp/current
$ svnadmin create ${NewRepository}
$ svn import -m "Importing new project" /var/svn/tmp/current file:///${NewRepository}
$ rm -fr /var/svn/tmp/

要するに、
1. テンポラリなディレクトリを作成する。
2. そのディレクトリにチェックアウトする。
3. それを新しいディレクトリにインポートする
だ。

で、チェックアウトしている途中にエラーが発生した。
<<ここから>>
svn: Can't convert string from 'UTF-8' to native encoding:
svn: tags/1.3.0/?\227?\131?\137?\227?\130?\173?\227?\131?\165?\227?\131?\161?\227?\131?\179?\227?\131?\136
<<ここまで>>

環境は Red Hat Linux Advanced Server (kernel 2.4.9) で、日本語ロケールでインストールされたようだ。自分がインストールしたマシンでないため、詳細は不明だが。環境変数 LANG に ja_JP.eucJP が設定されていたが、各コマンドの結果や man
が日本語で表示されるのを目障りに感じていたため、/etc/profile ファイルで、
export LANG=en_US
と指定していた。

どうやら、日本語を使用しているディレクトリをチェックアウトしようとしてエラーが発生したようだ。エラーメッセージをキーワードに指定し、Google から検索したところ、情報を発見。

Localization

まぁ、いつも思うことだが、ロケールの違いで問題が発生するたびに、「英語だけだったら何も問題ないのに」と思う。

解決方法は、
export LC_CTYPE=en_US.UTF-8
を実行してから、改めてチェックアウトしなおして OK だった。

Tuesday, August 14, 2007

Subversion Client

Java でアプリケーションを開発している、自分が参加している現場において、Subversion を Eclipse から使用しているが、自分は Windows 用の Subversion クライアントの TortoiseSVN も使用している。現場で使用している開発用のマシンは、旧世代のマシン(を使用せざるをえない...)であり、Eclipse のエディタを使用してファイルを編集していると、我慢できないほど動作を遅くしてしまう。そのため、基本的な構文ミスやタイプミスなどを Eclipse にチェックさせることにし、Windows 用の vim を使用して実際にファイルを編集していたりする。が、ディレクトリの階層が深いため、いろいろファイルを編集していると、いったい何のファイルを編集しているのか容易に把握できなくなる。その点、TortoiseSVN をインストールしていると、Windows の Explorer でディレクトリを表示しているときに、編集したファイルを認識して「編集したぞ」マークを表示してくれるため便利だ。そのためインストールしている。

で、Windows 用の GUI クライアントが開発されているなら、Linux 用の GUI クライアントも開発されているよな?と安易に考え、Google を表示し、

linux subversion gui

を検索したところ...、発見。

RapidSVN


Ubuntu Linux 用のパッケージも発見しますた。

# apt-get install rapidsvn

あっさりと最新版ばインストールされた。Ubuntu Linux マジ最高...。アイコンが

Applications -> Programming

に追加されている。


RapidSVN を実行し、リポジトリを追加するため、Working Copy を取得する。

Bookmarks -> Add Existing Working Copy

で、既存の Working Copy が保存されているディレクトリを指定する。もし、新たにチェックアウトするなら、

Repository -> Checkout

を実行だ。

Thursday, August 09, 2007

SVN_SSH environment variable

この svnserve, a custom server ページの ''Controlling the invoked command'' に書いてある方法で svn ユーティリティを実行するために、以下の環境変数を設定せねばならない、とのこと。

<<抜粋ここから>>
Now when your users run the Subversion client, make sure they have an SVN_SSH environment variable that "points to" the private half of their keypair, by doing something like this (for the Bourne Again shell):

SVN_SSH="ssh -i $HOME/.ssh/id_dsa.subversion"
export SVN_SSH
<<抜粋ここまで>>

Wednesday, August 08, 2007

iMac

apple が、新しい iMac を発表したようだ。最も安い選択で 159,800 円なり。製品の品質と、Mac OS X の完成度を考慮すると、決して高いと思わない。すぐにでも購入したいくらいだ...。ただ、今年 10 月に新しい OS X の発売が予定されているので、やはり待つべきだろう。

北斗の拳

購入しようと思っていてずっと忘れていた「北斗の拳」を、ついに購入した!とりあえず 4 巻まで。

北斗の拳 完全版 (1)
北斗の拳 完全版 (2)
北斗の拳 完全版 (3)
北斗の拳 完全版 (4)

「完全版」であるため、各巻のボリュームは多い。が、いっきに読みきってしまった。超おもしろい。コミックを購入するなんて、「SLAM DUNK」と「働きマン」に続いて、3 種類目。

Tuesday, August 07, 2007

Lightweight Language Spirit

4 日の土曜日、Lightweight Language Spirit に参加してきますた。去年、チケットを購入しようか迷っていたら、数日?で売り切れてしまったので、早めに購入していた。が、すっかり忘れていた。自社の人と参加。1 年前まで仕事をしていた現場の近くだったので、移動しているとき、なんとなく懐かしく思えた。

当日、乗り気じゃなかったが、実際、参加してみて正解。「世の中にこんな人いるんだ」って人たちに会えた。たまに Web で記事を見かけるくらい人が、自分の(30 m ほど)前でしゃべってるわけ。穏やかに話を進める人も多いが、彼らがやってることは非常にクリエイティブで、そのうちの一人、「まつもとゆきひろ」さんは世界で活躍している人なのさ。当然ながら興奮しますた。印象深かったトークは、意外?にも、教師をしつつ言語を開発している人のトーク。好きだから開発してる、みたいに言っていた。いろいろな開発者がいて、それぞれ楽しみながら開発している、これ最高。

来年も参加しよう。

Sunday, August 05, 2007

続き

今月 3 日(金曜日)の午前中、例の海外案件プロジェクトをしきる会社を訪れ、複数の担当者と話をしてきた。面接というか、ほぼ顔合せみたいな内容。事前に「英語で自己紹介をしてもらうかも」という情報を得ていたため、前日に簡単な内容を準備をしていたが、スピーチせずにすんだ...。9 月末日まで現在の現場において仕事を継続し、10 月からプロジェクトに参加することで、ほぼ決定した(政治的な話などに影響を受けなければ)ようだ。現状、実際に海外へ行くのか、など未決定だったりする。ただ、以前から自分が希望していたオープンソースソフトウェアの開発(というか日本国内への展開)に参加できることを楽しみにしている。いくつか事前に対応しなければならないこと(とりあえず複数のプラットフォームで実際に動作するのかを検証するようだ)が山積みされているため、自社の自分以外の人間が、9 月 1 日から作業を開始することになりそうで、自分は途中から合流する予定だ。

クーラー

暑い...。まだクーラーを ON していない今年の夏...。扇風機をとなりで稼働させているが、大量の汗が...。会社に行く予定だったが、暑すぎるので自宅で作業することに。つか、会社だとクーラーを効かせているから、ここより涼しいのか...。

Thursday, August 02, 2007

海外案件

例の「海外案件プロジェクト」を開始することが、正式に決定されたらしい。

Wednesday, August 01, 2007

Multiple repositories in Maven

Apache Maven において、pom.xml ファイルに複数の repository を記述する例。

<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>

Monday, July 30, 2007

Google Linux Software Repositories

Google が、* Linux 用に repository を公開している。

Google Linux Software Repositories

現時点において、対象 distribution は以下のとおり。

Ubuntu 7.04
Debian GNU/Linux 4.0
openSUSE 10.2
Mandrive 2007 Spring


Ubuntu Linux において、GUI から APT ラインにエントリを追加する手順が、以下のページで解説されている。なお、実際に
apt-get update
する前に、The Linux Package Signing Key のページで解説されているとおり、キーを登録すること。

GUI Configuration on Ubuntu 7.04 (Feisty)

作業を終了したら、Synaptic Package Manager を実行するか、または、コマンドラインから、いつもどおり作業すると、Google が提供する software をインストールできる。


CUI からの手順を簡単に書いておく。

$ su -
# vi /etc/apt/sources.list
##########
# Google software repository
deb http://dl.google.com/linux/deb/ stable non-free
##########
:wq
#
# wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
# apt-get update
# apt-get install picasa

Saturday, July 28, 2007

Using Apache Forrest

パブリッシングフレームワークの Apache Forrest を使用したときのメモを書いておく。作業したマシンは、Ubuntu Linux 7.04 on ThinkPad T41 なり。


------------------------------

1. Downloading Apache Forrest

http://forrest.apache.org/mirrors.cgi

27-07-2007 時点において、0.8 が最新のようだ。上記の Web ページに書いてあるとおり、Java 1.4 以上が必須とされているが、1.6 で実行すると(後ほど)エラーが発生する。


$ tar xzvf ./apache-forrest-0.8.tar.gz
$ su
# mv ./apache-forrest-0.8.tar.gz /usr/local
# cd /usr/local
# ln -s /usr/local/apache-forrest-0.8 /usr/local/apache-forrest
# vi /etc/bash.bashrc
export FORREST_HOME=/usr/local/apache-forrest
export PATH=$FORREST_HOME/bin:$PATH
:wq
#
# source /etc/bash.bashrc
# echo $FORREST_HOME
/usr/local/apache-forrest
#
# forrest -version
Apache Forrest. Run 'forrest -projecthelp' to list options

Apache Ant version 1.6.5 compiled on May 16 2006
#





2. Using Apache Forrest

動作を確認するため、ディレクトリを作成する。

# mkdir -p /var/html/forrest
# cd /var/html/forrest


続いて、forrest コマンドを実行する。エラーが表示されるようなら、内容を確認し対処すること。Java 1.6 を使用している場合、引数なしの forrest コマンド実行するとエラー発生する。

# pwd
/var/html/forrest
# forrest seed
# forrest
# forrest run
.....
.....
.....



下記 URL を Web ブラウザで表示し、正常に表示されることを確認する。

http://localhost:8888/

Friday, July 27, 2007

Using Apache Maven

Apache Maven を使用してみたときのメモを書いておく。

Ubuntu Linux 7.04 がインストールされている ThinkPad T41 を使用した。


Apache Tomcat がローカルホストに設置され、JDK も設定されていることを前提とする。

$ java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
$
$ $CATALINA_HOME/bin/catalina.sh version
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun
Server version: Apache Tomcat/6.0.13
Server built: May 5 2007 03:39:58
Server number: 6.0.13.0
OS Name: Linux
OS Version: 2.6.20-16-generic
Architecture: i386
JVM Version: 1.6.0-b105
JVM Vendor: Sun Microsystems Inc.
$


--------------------------------------------------

オフィシャルサイトからファイルをダウンロードする。

Maven - Download Maven


ファイルを展開し、適切なディレクトリへ移動する。

$ tar xzvf maven-2.0.7-bin.tar.gz
$ su
# mv ./maven-2.0.7 /usr/local/
# cd /usr/local
# chown -R root:root /usr/local/maven-2.0.7


シンボリックリンクを作成しておく。(必須でない

# ln -s /usr/local/maven-2.0.7/ /usr/local/maven


環境変数 $PATH を設定する。

# vi /etc/bash.bashrc
MAVEN_HOME=/usr/local/maven
PATH=$MAVEN_HOME/bin:$PATH
:wq
#
# source /etc/bash.bashrc
#
# mvn -version
Maven version: 2.0.7
Java version: 1.6.0
OS name: "linux" version: "2.6.20-16-generic" arch: "i386"
#


新規プロジェクトを作成する

package name : com.example
project name : app

# cd $CATALINA_HOME/webapps/
# mvn -e archetype:create -DgroupId=com.example -DartifactId=app -DarchetypeArtifactId=maven-archetype-webapp


$CATALINA_HOME/webapps/app ディレクトリが生成される。

# cd $CATALINA_HOME/webapps/app
# ls -1
pom.xml
src


デフォルトの pom.xml ファイルの内容

# cat pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>app</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>app Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>app</finalName>
</build>
</project>
#


Java ファイルを保存するディレクトリを作成する。

# mkdir $CATALINA_HOME/webapps/app/src/main/java
# mkdir -p $CATALINA_HOME/webapps/app/src/main/java/com/example


サンプルの Java プログラムを作成してみる。

# cd $CATALINA_HOME/webapps/app/src/main/java/com/example/
# vi TestDrive.java
package com.example;

public class TestDrive {
public static void main(String [] args) {
System.out.println("It's me, TestDrive.java");
}
}

:wq
#
# cd $CATALINA_HOME/webapps/app


Maven を実行する。エラーが発生した場合、出力されるエラー文字列の内容を確認し、対処すること。

# mvn -e compile
# mvn -e test
# mvn -e package

$CATALINA_HOME/webapps/app/target/app.war が生成されている。


下記のコマンドを実行すると、Web ページを生成してくれる。

# mvn -e site


Apache Tomcat を起動し、下記 URL の Web ページが正常に表示されるか、を確認する。

http://localhost:8080/app/target/site/index.html

Wednesday, July 25, 2007

2007-07-21, 22

土曜日と日曜日も出勤していた。自社へ。土曜日は、いつもどおり Java を勉強していた。日曜日は、新しい案件に関連した勉強、というか作業をしていた。そのため、休んでいないような状態。昨日、疲れたていたのか、何もせずに寝てしまった。今週の土日も出勤することになりそう。楽しいので全く問題ないが。土日も会社で勉強してしまうようなエンジニアを募集しています(リクルートかよw

異変

おかしい。半年くらい前に気づいたが、治っていない。悪化しているようにも感じる。体の一部分の感覚が、明らかに以前と異なる。やはり医師に診断してもらうべきだろうか。

Friday, July 20, 2007

チャンス

私は、そこそこ野球を好きだ。どちらかといえば、プロ野球。駆け引きを楽しめるから。最近、日本人がメジャーリーグで活躍することも多くなった。年齢は、だいたい 30 前後であり、最も活躍できる年齢なのだろう。メジャーリーグで活躍している日本人は、たいてい日本球界においても 1 年目から注目されている。例えば松井秀喜。彼は 1 年目からジャイアンツの 1 軍で試合をしてきたはずだ。ちなみに、卒業した星稜高等学校は、野球の名門校らしい。さぞ野球漬けの生活を送ってきたのだろう。おそらく学生時代にあまり勉強していなかっただろうが、もうニューヨークでの生活も慣れているだろうし、英語も流暢に話すだろう。ふと思う。私は英語の勉強を好きだ。できるならネイティブ並みに話せるようになりたいし、毎日、地味に勉強している。しかし、ビジネスレベルおろか日常会話のレベルでも、かなり危うい。そこで松井と比較してみる。彼が(本当に)英語を流暢に話せるようになっているとして、私との違いは、英語圏で生活しているかどうか、それだけじゃないのか?

現在、ある案件の話が進められている。次の現場として検討されている案件だ。私は、社会人 1 年目のときから「海外で仕事をしてみたい」という希望を抱いてきた。まさに今回、海外の案件なのだ。どのくらいの期間、現地で仕事をできるのか、そもそも自分が選出されるのか、といった課題もあるが、チャンスであることに間違いない。英語圏でないが、きっと英語を使用することになりそうだ(ただし普段の生活だと英語じゃないっぽい)。少なくとも、30 歳までに海外で仕事をできるかもしれない最後のチャンスだと思っている。案件自体が流れてしまう可能性もあるが、現在、プロジェクトをにぎっている会社で調整している段階だ。

Thursday, July 19, 2007

近況

体調は回復してきたが、いまいちだ。寝不足が影響しているかもしれない。つか、寝ようとしてベッドに横たわっても、いっこうに眠れない。数時間を経過して、やっと眠れる感じ。毎日、寝不足。疲れているのに眠れない...。

今日、自分が担当したいくつかの修正をリリースした。午前中、あるファイルにおいて修正した内容がクリアされていた!ので、かなり焦った。リリースした後、本番環境へアクセスする環境を用意できなかった(自分のせいじゃないが)ので、正常に反映されているかを確認できなかった。

だいぶ Struts を理解してきて、Tiles も基本的な設定と動作を理解できた(はず)。今日、Web の情報を参考に SOAP を実装してみたが、最後まで作業できなかった。Windows だと非常に作業しにくい。自分の試験用に Linux 端末を用意したい。無理だろうなぁ。

Monday, July 16, 2007

更新

手つかずになっていた Web サイトを更新しますた...。

トップページを更新した。今後、できれば全て英語ベースで記述してきたい。

加えて、ほぼ記述をミスっていた SSH login without password の内容を修正した。どこかの誰かが指摘してくれたように、パーミッションを設定する部分を書いていなかった。わかる人はわかるだろうが、このページを書いておきながら、自分もハマってしまっていた...orz。

ドキュメントを作成することにおいても、プロフェッショナルでありたい。

うただ

CD を購入した。宇多田ヒカル の、ちと古い Distance を。

宇多田 ヒカルは、尊敬できる、というか、なんというか、邦楽アーティストで「CD を購入して聞きたい」と思える唯一のアーティストなのだ。

先月、ULTRA BLUEDEEP RIVER を購入したが、どちらもお気に入りなり。


早く iPod を購入したいなー。Mac 本体と同時に購入する予定だから、早くて 10 月かな。

毛の塊

デニーズで夕食を済ませるため 18 時ごろ自宅を出発したところ、目的地の近くで「毛の塊」を抱いている人を発見した。よくよく確認すると、「うさぎ」だった。さわらせてもらった。かわいい...。うさぎは、室内で共存するペットとして魅力的かもしれない。猫のように「鳴かない」らしい。

明日、昼ごろから自社でお勉強の予定。

もしかすると、自社に近い Softbank Mobile ショップで、携帯電話を購入するかもしれない。自社の社員が Softbank Mobile の端末を所有するように仕向けて!?、通信費を節約しようと考えていたが、「iPhone が発売されたキャリアに NMP する。Softbank Mobile から発売されるなら考えるよ。」とのこと。がっくり。

Tuesday, July 10, 2007

久々に

ランニングしたら疲れた。眠い。

Monday, July 09, 2007

平日ずっと自社の宿題をこなしていたので、まったく書き込んでいなかったな、と。

7 日の土曜日も、また自社で Struts の勉強をしてきた。Struts 関連の情報を Web で検索していたとき「Struts を使用すると Hello World するだけでも長い」なんて書いてあったが、まさにその通りだと思った。だいぶ理解してきた、と勘違いしてみる。キーボードとチケットの費用を会社が負担してくれたので、16,600 (9,660 + 7,000) 円をゲット。

自社へ行く前に表参道の ソフトバンク原宿 に立ち寄ってみた。だいぶ前から自社において社員のコミュニケーション用に携帯電話、または PHS の導入が検討されている。個人的に、Willcom 以外にソフトバンクモバイルも検討に値するだろうと思っていたが、いまいちサービスを理解できないでいたため、直営ショップの店員に質問してみたいと思っていた。店員のおかげで(ややこしい)サービスを理解できたので、端末を確認してみたところ、シャープと東芝が大半を占めているように思えた。国外メーカの端末を利用してみたい、となると、SAMSUNG または NOKIA になるようだ。引き続き検討する予定。

帰宅するため明治神宮前の駅へ移動する途中、猫を発見した。しゃがんで呼んだら近寄ってきて、バッグにすりすり。珍しい。たいてい逃げていくのに。なでてみたらカワイイ声で「にゃー」と鳴いた。毛並が悪い。野良猫だろう。やけに人懐っこい。腹をすかしていたのか?餌をあげたかったが、何ももっていなかったので、何度か振り返りつつ、さよならした。

自宅に戻ったところ、近くで子猫が泣いている声を聞いた。ずっと鳴いているようだった...。気になって、声のする方向へ歩いていくと、近くに在る緊急病院の、ビルとビルの間から聞こえてきた。ちょうど病院のスタッフも気づいていたらしく、すき間から引っ張りだしたようだった。手の平ほどの大きさの子猫を病院のスタッフが持って来た。かなり小さい。生まれてからどれくらいだろうか。こちらがずっと見ていたところ、「(この子猫に)餌をあげた人ですか?」と質問された。「子猫が鳴く声を聞いたから来ただけ」と伝えた。自宅へ戻ったところ、もう子猫は泣いていないようだった。どうなったのだろうか。

8 日の日曜日、「病院のスタッフは近くのどこかに捨てたに違いない」と思って、クリーニングへ行くついでに遠回りしつつ、最寄りの駐車場まで足を運んだところ...、駐車しているワンボックスの下から「にゃっにゃっ」と声が...。あっさり発見。ただし、車の下に逃げ込んでしまっているため、こちらはどうしようもなかった。退散。

先ほどまで声が鳴り響いていた(近くのビルに反射しているようだ)が、もう聞こえなくなってしまった...。寝てしまったのだろうか。これから彼は無事に生きていけるだろうか?

もし、このマンションでペットの飼育が許可されていたら、間違いなく連れて帰っただろう。さっき forrent で検索してみたが、自分が希望する条件で「ペット可」としているマンションは、ないに等しい。よくて「ペット相談」だった。やはり賃貸だと難しいのか...。

それっぽい音が、すべて猫の泣き声に聞こえてしまう。
やるせない...。

Monday, July 02, 2007

課題

眠い...。

13 時 30 分ごろから自社にて、Struts 関連の技術を上司とお勉強してきた。全く関係ないこと(だが技術的なことがメイン)もしゃべっていたので、それほど進められなかったような。

明日から毎日メールで課題が送られてくるらしい...。

Friday, June 29, 2007

リリース日

延期に延期を重ねてしまった、自社(現場の会社)アプリケーションの仕様変更。28 日、自分が修正した ''いけてないコード'' が、本番環境のマシンに load された。ついにリリース...。時間をかけすぎ。

つか眠すぎ。

Thursday, June 28, 2007

キーボード

ランニングしたせいもあってか、眠い...。

会社のお金でキーボード : ThinkPlus USB トラベルキーボード ウルトラナビ付 (英語) -31P9490 を購入(注文)してみた。やっぱ ThinkPad キーボードじゃなきゃ。現場でウンコみたいなキーボード(本当だ!前使用者の手垢がネットリこびりついていたのだ!)を使用していたが、やっとリプレースできる。最初から自社のマシンを持ち込めば良かったのか...。

TracOnUbuntu - The Trac Project - Trac を斜め読みしながら、Ubuntu Linux 7.04 に Trac をインストールし、設定している。が、apache をスタートさせようとすると、設定ファイルの syntax error だとさ。引き続き作業中...。

Sunday, June 24, 2007

サプリメント

なくなってきたので、ファンケル で注文した

マルチアミノ酸
マルチビタミン
マルチミネラル

Friday, June 22, 2007

電報

いとこ(母親の妹の娘)が地元で結婚式を予定しているらしく、両親が連絡してきた。13 日の話。「出席できないなら、せめて祝電を...。」とのこと。この前の土曜日、仕事をしていたこともあって、すっかり忘れてしまっていた。26 日くらいだと勘違いしていて、「忘れないうちに手続きしておくか」と先ほど両親からのメールを確認したら、23 日だった...。地味に焦りつつ、NTT 東日本の電報サービスを申し込んだ。ログイン認証の方式が変更されていたことを認識していなかったため、なかなかログインできなかったが、なんとか作業を終了。午前中に配送されるよう指定しておいた。当人とは、だいぶ会っていないくて、記憶している時期は、おそらく自分が高校生のときだろうか。はっきり思い出せない。もう 10 年ほど昔のことだ。何歳なのかも思い出せない...。

Wednesday, June 20, 2007

リリース前日

リリース前日だというのに、リリースするために必要な準備を完了できなかった。bug をとりきれていない。つか、bug を発生させるような修正じゃないんだが。基本的に Java の知識が不足しすぎている。自分は、技術者としてビジネスに貢献できないないと感じる今日このごろ。私を管理する立場の人が、いろいろ気をつかってくれていて、なんとか私が作業を完了できるよう、客と調整してくれていることを非常に申し訳なく思う。

Monday, June 18, 2007

土曜日

16 日、14 時に自宅を出て、15 時から会社で Struts を勉強した。というか上司におしえてもらった。現場で Struts を使用しているが、自分が情報を整理する時間を確保できないままでいたところ、わざわざ上司が時間をさいてくれたわけだ。感謝。うちの会社は小さいし社員も少ないが、ヤル気さえあれば休日でも出勤して勉強する人が存在するのだ。夕食は、上司のおごりで寿司。寿司になることが多いな...。おごりとわかっているため、ちと遠慮してしまう。食べた後、いったん会社へ戻ったが、コンビニでビールとつまみを購入してもらって、23 時 30 分ごろまで会社で上司と話をしていた。自分がやりたいこと、今後の案件のこと、会社の将来について、などなど。全て満足できているわけじゃないが、今の会社へ転職して良かったと思う、本当に。客先で仕事をすることも楽しい(ときもある)が、ある程度スキルを身につけられたら、自社で開発する方が楽しそうだ。

区民税

多くね?

非常識

上の住人が、非常識にも 0 時すぎに掃除をしていて(掃除機の音により断定)、うるさいので何も集中できない。もー寝よう。ちなみに、こういうときって「管理会社に相談すれば?」的な流れになるかもしれない。ただし、実際のところ、契約書において「私たち(管理会社および大家)は、住人同士のトラブルに介入しません。」と記載されてあるのだ。つまり、住人同士で解決してくれ、ってこと。仮りに自分が騒音を発生させている住人と話をして、うっかり人間関係を悪化させてしまうと、よりややこしい問題に発展してしまうことも十分に考えられるため、なかなか言い出せなかったりする。あれこれ考えると面倒なので、いっそ引っ越しをしてしまいたい。次の住居は、最上階を必須の条件とす。少し多めに家賃を支払うことになるだろうが、また同じ状況になるくらいなら、金で解決する方が楽でいい。

Tuesday, June 12, 2007

本日のテトリス

62320 点なり。

腰痛

両腕と両足に軽い筋肉痛が発生。理由は、昨日からランニングを開始したから。3 年ほど前に運動しなくなり(と言っても運動していた期間は 9 か月くらいだが)、それから、全く運動していなかった。

去年の 10 月くらいに腰を痛めて、そのとき病院へ行き、レントゲンで問題ないことを確認し、薬で乗りきれた。それまでも稀に腰を痛めていたが、姿勢を正して座るよう意識していると、数日で治っていた。ただ、今回の痛みは、かなり続いている。1 か月をオーバーしていると思う。

コンピュータを使用して仕事をしていると、同じ姿勢でずっと座ってしまっているときもある。たいてい無理な姿勢を維持してしまうためか、真っ先に腰を痛めてしまう。定期的に姿勢を正すだけでなく、たまに席をはずして休憩すればいいが、前の現場といい今の現場といい、喫煙者の休憩場所は確保されているが、非喫煙者の休憩場所は確保されていない!のだ。休憩できない...。休憩できないため座っていると更に腰を痛めてしまうのだ。できるだけ喫煙者を理解してくれる会社で仕事をしたいところだ。つか、いまどき非喫煙者を理解してくれない会社も珍しい。

話を戻して、Web で「腰痛」の情報を収集していたところ、「運動不足がひとつの原因と考えられる」という情報を発見した。そういえば運動を再開しようと思っていて、ずっと再開できていないことを気にしていた。ランニング用のシューズを新たに用意しようと思っていたが購入していなかった。10 日、ちょうどアリオ@亀有へ出かけたため、シューズショップで 3,900 円の安いランニングシューズを購入。自宅へ戻り、自分の気持ちが冷めないうちに用意をして、さっそくランニングへ。約 15 分のコース。ランニングしはじめてから、すぐに頭痛を感じ、引き返そうかと思ったが、ペースを落としてなんとか完走した。今日も同じコース。頭痛を感じず完走できた。不安だったランニング中の腰痛は、昨日も今日も、不思議と皆無でして。

とりあえず、しばらく体を慣らす意味で無理をせず続けていこうと思う。自分的に目標を設定しないとモチベーションを下げてしまうので、何か目標を設定したいところ。ランニングが腰痛に効果ないなら、そのうちマッサージにでも通うとするか。

Saturday, June 09, 2007

英語のスキル

次の案件において、要員のスペックに「英語のスキル」なる項目が存在するようだ。レベル感は不明。ぶっちゃけビジネスレベルで要求されると、どうにもならない。外国人が業務する現場に潜り込めるなら、どうにかして潜り込みたいが...。

本日のテトリス

89120 点なり。最高得点を更新しました。

Friday, June 08, 2007

本日のテトリス

54340 点なり。

Thursday, June 07, 2007

体調

どうも風邪っぽい。

Wednesday, June 06, 2007

本日のテトリス

52780 点なり。

Tuesday, June 05, 2007

OOP

現場で導入した Python なスクリプトを OOP (Object-Oriented Programming) っぽく修正してみた。初めてクラスを意識してスクリプトを書いた。最初、手間な感じもした(特にファイルを分割して作成しているとき)が、コンストラクタに別の引数を与えて新たにインスタンスを生成し、簡単に同様の処理を実行できる点に、いまさらながら感動した。まだ多くのことを理解していないが、クラス設計を非常に重要だと感じた。

Lightweight Language Spirit

Lightweight Language Spirit のチケット 2 枚を予約した。電話で予約。会社の上司を誘ってみる予定。去年、参加できなかった(チケット売り切れ)ため、早めに予約してみた。当日を含めて 2 日以内に発見しないと無効となる、って制限は厳しいな。自宅も職場も近くにローソンが存在しないんだよね。

Monday, June 04, 2007

The Linux System Administrator's Guide

そこそこ参考になりそう。

The Linux System Administrator's Guide

本日のテトリス

45180 点なり。

故障?

会社から Let's note を借りているが、だいぶ前から Firefox を起動できない状態だった。Firefox を起動しようとすると、「既に起動しているみたいだからプロセスを kill するか、マシンをリブートしてくれ。」的なメッセージが表示される。つか、起動していないんですが。プロセスも見当たらないんですが。Internet Explorer を使用することに耐えられない私は、Opera をインストールして使用していた。最新 9.2 で導入された Speed dial ってかなり便利。プロプライエタリなソフトウェアであるが、CEO もステキで、Opera を好きになった。で、今日、ある作業をしたくてマシンを起動しようとしたら、BIOS が起動した後、画面が真っ暗で何も表示されない状態に...。HDD アクセスランプが点灯しっぱなし。HDD が故障したくさかった。いちおう会社の上司へ連絡し、保証とか復旧する方法を確認。再インストールできたら HDD は故障していないはず、と言われても、再インストールした時点でデータを復旧できなくなるため、どうしたものか。ま、少々?個人的に使用しすぎたと感じていたため、さっくり再インストールの作業をしてみることに。HDD が故障していると予想していたため、再インストールの途中でエラー(HDD を見つけられません、とか)が表示されると思っていたが、難なく完了...。マシンを復旧できたが、データは完全に失われてしまった...。

Sunday, June 03, 2007

切りました。またおかなしな髪型になってしまいました...。



--
そもそもどんな髪型も似合わないんですが

Saturday, June 02, 2007

本日のテトリス

42240 点なり。眠い。

Friday, June 01, 2007

理由

結局、自分が 4 月から参加したプロジェクトは中止されてしまったようだ。そのため、同じ目的で作業していたふたりのエンジニアが、31 日で現場を去った。まぁ、5 月で減員することは予定どおりらしいのだが。自分の契約期間は 6 月いっぱい。ありがたいことに、先方は延長してほしそうな雰囲気であるが、社内的な都合のため、どうなるかわからない。いくつか不満を感じる点を挙げられるが、もし自分が「残りたい」と思う理由が存在するなら、それは、今、自分の隣に座っている先輩エンジニアともう少し働いてみたい、スキルを奪いたい、ということだろうか。

Thursday, May 31, 2007

本日のテトリス

37540 点なり...。

あおじる

ファンケルのオンラインショップで、青汁(粉末スティック型)を注文した。

本日のテトリス

57360 点なり。

Wednesday, May 30, 2007

tips : rsync

今月、現場において Python で作成したスクリプトを導入した。Subversion のデータをバックアップするためだ。commit が発生するたびに、ローカルホストとリモートホストのデータを同期させる。現在 Subversion を稼働させているハードウェアが古くなってきているため、そのうち HDD が故障してしまうかもしれない。そのため、データをリモートホストにも保存することにした。最初、FTP を使用してファイルを転送するしくみで導入した。スクリプトは正常に動作したため、バックアップを取得していなかったころと比較して、安心できるようになった。ただし問題がひとつ。commit が発生するたびに FTP でファイルを転送するため、リモートホストにおいてファイルが増えていくのだ。リモートホストの HDD の容量は、約 130 GB で、リポジトリのファイルは大きくて 0.150 GB ほど。commit が頻繁に発生するわけでないため、さほど問題でなかった。ただ、気持ち悪かった。

最初に考えた対策、それは、覚えたいと思っていた Ruby でスクリプトを書き、リモートホストに設置して、一定の間隔で古いファイルを削除することだった。ただ、面倒だったため挫折...。かわりに rcync を使用してデータをミラーすることにした。

簡単に説明すると、以下のコマンドを書いたスクリプトを作成し、スクリプトへの path を post-commit ファイルに記述すればよい。自分は shell でなく Python で書いたが。

/* 参考 */
post-commit ファイルは、リポジトリのディレクトリに存在する hooks ディレクトリに保存されている。ただし、ファイル名が post-commit.tmpl であるため、リネームして実行権限を付与(chmod +x)しておく。すると、commit が発生するたびに pos-commit ファイルが kick される(post-commit ファイル自体は shell で記述されている)のだ。


(スクリプトの内容ここから)
#!/bin/sh
rsync -az -e ssh --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
(スクリプトの内容ここまで)


ちなみに、この 1 行は、rsync の man ページに記載されているそのまま。

これだけで、ローカルホストとリモートホストのファイルを同期できるのだ!しかも高速!別のスクリプトを書いて古いファイルを削除したりせずに済ませられる。--delete オプションを指定しているため、ローカルホストで削除されたファイル or ディレクトリは、リモートホストにおいても削除されるのだ!すばらしい。

ただし、上記 1 行を書いてスクリプトを実行すると、ssh を使用してリモートホストへ接続するため、パスワードを入力しなければならない。そのため、以下のように修正する。


(スクリプトの内容ここから)
#!/bin/sh
rsync -az -e "ssh -i /home/you/.ssh/id_rsa" --delete ~ftp/pub/samba nimbus:"~ftp/pub/tridge"
(スクリプトの内容ここまで)


ssh コマンドに -i オプションを指定して、-i オプションの引数に秘密鍵を指定する。以下に示すとおり、empty なパスフレーズを指定すれば、ssh の認証プロンプトを表示させず接続できる。


public-key と private-kye を作成する手順は、以下のとおり。

localhost$ ssh-keygen -t rsa
##### empty なパスフレーズを指定する #####
localhost$ scp ~/.ssh/id_rsa.pub remotehost:id_rsa.pub
localhost$ ssh remotehost

remotehost$ su -
remotehost# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk
remotehost# vi /etc/ssh/sshd_config
# SSH version 1
RSAAuthentication yes

# SSH version 2
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys
:wq
remotehost# /etc/init.d/ssh restart
remotehost# exit
remotehost$ mkdir ~/.ssh
remotehost$ chmod 700 ~/.ssh
remotehost$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
remotehost$ chmod 600 ~/.ssh/authorized_keys
remotehost$ exit


超便利です。

Tuesday, May 29, 2007

テトリス

最近テトリスにハマっている。毎日、練習を欠かさない。現在、86460 点が最高得点。このテトリスは、Ubuntu Linux の Gnome デスクトップにデフォルトで付属しているのゲームのひとつ。

Saturday, May 26, 2007

IDE

Python に対応している IDE を探している。Eclipse は重いしなぁ...。

PythonEditors

Thursday, May 24, 2007

日本語

Ubuntu Linux 7.04 において OperaBrowser を参考に Opera をインストールしてみた。が、日本語を入力できない。不便。localize しなくても不便じゃないが、母国語を入力できない、となると厳しいな。

Wednesday, May 23, 2007

Dell

Dell の Web サイトがリニューアルしたらしく、Internet Explorer と Netscape Navigator じゃないと購入できない、という?な制限が解除されたようだ。やはり Dell の製品は安いな。20 インチあたりの LCD を購入したい。だいたい 3 万円くらいだ。10 万円なら、LCD に加え、本体と Windows をプラスできる。なやましい。Windows を使用しないと思うが...。

Sunday, May 20, 2007

Python : Tkinter で GUI プログラミング, part.004

前回の内容を少し編集して、発生するイベントの結果を Listbox に書き込んでみる。method の結果を GUI 上に書き出せるので便利かも。

#!/usr/bin/python

from Tkinter import *
import os

class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.createWidget()

def createWidget(self):
self.quitButton = Button(self, text='Quit', command=self.quit)
self.quitButton.grid()

self.showLog = Button(self, text='ClickMe')
self.showLog.grid()
self.showLog.bind('', self.load_data)

self.listbox = Listbox(self, selectmode=SINGLE, height=30, width=30)
self.listbox.grid(columnspan=2, sticky=E+W+N+S)

def load_data(self, event=None):
self.listbox.delete(0, END)
self.items = []
for filename in os.listdir('.'):
item = filename
self.items.append(item)
self.listbox.insert('end', repr(item))


app = Application()
app.master.title('foobar')
app.mainloop()

Friday, May 18, 2007

Python : Tkinter で GUI プログラミング, part.003

Python による GUI プログラミングの続き。

イベントハンドラを使用してみる。ボタンがクリックされたとき任意のイベントを発生させるサンプル。

#!/usr/bin/python

from Tkinter import *

class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.grid()
self.createWidget()

def createWidget(self):
self.quitButton = Button(self, text='Quit', command=self.quit)
self.quitButton.grid()

self.sayHello = Button(self, text='ClickMe')
self.sayHello.grid()
self.sayHello.bind('', self.sayhello)

def sayhello(self, event=None):
print 'Hello!'

app = Application()
app.master.title('foobar')
app.mainloop()


--
24. Events: responding to stimuli

Tuesday, May 15, 2007

Python : Tkinter で GUI プログラミング, part.002

ウィンドウにボタンを作成してみるサンプル。

#!/usr/bin/python

from Tkinter import *

class App:

def __init__(self, master):

frame = Frame(master)
frame.pack()

self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
self.button.pack(side=LEFT)

self.hi_there = Button(frame, text="Hello", command=self.say_hi)
self.hi_there.pack(side=LEFT)

def say_hi(self):
print "hi there, everyone!"

root = Tk()
app = App(root)
root.mainloop()


--
Hello, Again

Monday, May 14, 2007

tips : lsof

自分のマシンに *誰かが接続している* かもしれない、それを確認する方法をひとつ。以下の例において、IP アドレスは自分のマシンに設定されている IP アドレスとする。

試験するため自分の IP アドレスに ssh で接続しておく。

$ ssh 192.168.100.21

lsof コマンドを、IP アドレスのレンジを指定して実行できる。

$ lsof -i @192.168.100.21:1-1024
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
ssh 6940 satoshi 3u IPv4 24658 TCP apple.local:54965->diablo.local:ssh (ESTABLISHED)
$

Python : Tkinter で GUI プログラミング, part.001

Python で GUI プログラミングする過程を不定期にメモ!?してみる。


$ python
>>> from Tkinter import *
>>> root = Tk()
>>> w = Label(root, text='Hello, World')
>>> w.pack()
>>> root.mainloop()


### 自分のモジュールのネームスペースに Tkinter からすべてをインポートする。
>>> from Tkinter import *

### Tkinter をイニシャライズするため、Tk root widget を生成する。
>>> root = Tk()

### Label widget 生成する。
>>> w = Label(root, text='Hello, World')
>>> w.pack()

### Tkinter イベントループへ突入する。
>>> root.mainloop()



終了。

Sunday, May 13, 2007

Python : string substitution

Python で置換してみるサンプル。普通なら、ファイルを読み込んで実行することになるだろう。

$ python
>>> import re
>>> mystr = '2007-05-13 ERROR : -----'
>>> re.sub(r'2007-[01][0-9]-[0-3][0-9] (.+)$', r'\1', mystr)
'ERROR : -----'
>>>


典型的なファイルの読み込みは、以下のとおり。

>>> read_file = '/etc/passwd'
>>> file = open(read_file, 'r')
>>> for i in file: print i,
...
root:x:0:0:root:/root:/bin/bash
...(以下つづく)...

Python : SimpleXMLRPCServer

Python で、リモートホストのメソッドを実行してみるサンプル。参考にした情報は、www.python.org の Python Library Reference に記載されている。

18.25 SimpleXMLRPCServer -- Basic XML-RPC server

サンプルコードは、公式ドキュメントのコメントを削除した内容そのまま。


### Server Program

#!/usr/bin/python

from SimpleXMLRPCServer import SimpleXMLRPCServer

server = SimpleXMLRPCServer(("localhost", 8000))
server.register_introspection_functions()

server.register_function(pow)

def adder_function(x,y):
return x + y
server.register_function(adder_function, 'add')

class MyFuncs:
def div(self, x, y):
return x // y

server.register_instance(MyFuncs())

server.serve_forever()



### Client Program

import xmlrpclib

s = xmlrpclib.Server('http://localhost:8000')
print s.pow(2,3) # Returns 2**3 = 8
print s.add(2,3) # Returns 5
print s.div(5,2) # Returns 5//2 = 2

# Print list of available methods
print s.system.listMethods()


### 実行

ふたつのターミナルを実行させ、server.py と client.py を実行する。server.py から実行しておく。

$ ./server.py

別のターミナルで。

$ ./client.py
8
5
2
['add', 'div', 'pow', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']
$


リモートホストに Python がインストールされてあり、プログラムを常駐させておかなければならないが、簡単にリモートホストのメソッドを実行できることを便利と感じた。

かなり Python 熱いっす!ついに会社で Python のスクリプトを導入してしまった、shell で書けばいいものを。自分以外の人間が保守できないから、早めに布教活動せねば。新しい言語に興味をもってくれそうな人がいない...。気分転換に Python で GUI プログラムを作成してみるか、と考えてみた土曜日。つまり今日。Tkinter モジュールでコリコリ書いてみたが...、いまいち理解できない。また挫折。

Wednesday, May 09, 2007

連休その後

まだ連休の雰囲気から脱出できていない人が存在するせいか、職場は比較的またーりしている...。

過ぎ去ったゴールデンウィークは(自分が社会人になってから)最長の連休だったに違いない。プロジェクトが暗礁に乗り上げたおかげで、5 月の 1, 2 日は休みだった。つまり 9 連休だったわけだ。ただ、先月 30 日の深夜から症状が出た風邪のため、ほとんど寝てばかりだった。とても外出できるような体調でなかったのだ。加えて、まだセキだけ続いている状態。常にセキこんでいる状態で、結構しんどい。寝ていてもセキこみ苦しいため何度も目覚めてしまう。そのため、十分な睡眠時間を確保できていない。気管支炎だろうか...。また病院へ行こう。連休中、集中的に Java を勉強するはずだったが...、連休の後半から、なぜか Python を勉強しなおしている...。

Sunday, May 06, 2007

How to connect to a MySQL database in Python

Python から MySQL へ接続してみる

----------(ここから)----------
>>>
>>> import MySQLdb
>>> con = MySQLdb.Connect(host='localhost', db='db01', user='root', passwd='')
>>> cursor = con.cursor()
>>> sqlString = 'SELECT * FROM user;'
>>> cursor.execute(sqlString)
2L
>>> results = cursor.fetchall()
>>> print results
((1L, 'satoshi', 'abe'), (2L, 'SATOSHI', 'ABE'))
>>> con.close()
>>>
----------(ここまで)----------

Friday, May 04, 2007

Python : ftp クライアント

Python で書いた ftp クライアントのサンプル

----------(ここから)----------
#!/usr/bin/python

from ftplib import FTP
import sys, getpass, os.path

host, username, localfile, remotepath = sys.argv[1:]
password = getpass.getpass("Enter password for %s on %s: " %(username, host))

f = FTP(host)
f.login(username, password)

f.cwd(remotepath)

fd = open(localfile, 'rb')
f.storbinary('STOR %s' %os.path.basename(localfile), fd)

fd.close()
f.quit()
----------(ここまで)----------


実行例

$ ./ftp_client.py localhost user_name ~/upload.file tmp

Monday, April 30, 2007

かたづけ

自分はノートパソコン派であるため、(会社からもらった 1 台を除いて)所有しているパソコンは、すべてノートパソコンだ。7 台の ThinkPad を所有している。Linux を常用するようになった初期、設定を失敗すると再インストールを繰り返していた。「一方で設定をしながら一方で再インストール」のような作業をこなすため、できるだけマシンを常に起動できる配置をしていた。ここに引っ越してきてから、机に ThinkPad T41 が 3 台、右側の本棚に ThinkPad X31 が 2 台、移動式の机に R52 が 2 台、具体的にカタカナの「コ」の字型で自分を取り囲んでいた。最近、設定なども慣れてきて、よっぽどのことでない限り、再インストールすることもなくなったため、常時、自分を取り囲むように PC を配置しておく必要もないと思っていた。加えて、常に外に出しておくと、それなりにホコリをかぶってしまっていた。「しまうと起動しなくなるから」と思っていてしまわずにいても、実際のところ頻繁に起動しないため、この際、しまうことに。すべて一通り掃除してからインナーケースにしまった。現在、この post を X31 で書いているが、久々にこのマシンを起動した。古い Ubuntu Linux がインストールされていたため、最新バージョンで再インストール。これまでメインで使用していた機種の SXGA+ と比較すると、やはり XGA を狭く感じるが、普段の勉強なら問題ない広さだ。机のスペースを活用できるため、問題集やノートを開いても問題ない。やはり作業スペースは、広ければ広いほどよい。

連休 3 日目

風邪をひいてしまった...。

Friday, April 27, 2007

Top Ten Distributions

DistroWatch.comTop Ten Distributions なるページを発見。先日、某メーリングリストにおいて distribution の話題で盛り上がっていたのを思いだした。Linux 初心者なら個人的に Ubuntu Linux を recommend する。ただし、書籍を含めて「日本語」の情報を探したいなら、別の、つまり Fedora とか OpenSUSE を選択すると better かもしれない。

authorized_keys2 is Obsolete

2001 年に OpenSSH 3.0 がリリースされたときから、だって...。知らなかった...orz

$ cat ~/.ssh/authorized_keys2 >> ~/.ssh/authorized_keys


--
OpenSSH 3.0

Monday, April 23, 2007

コンタクト

使い捨て(1 日タイプ)のコンタクトレンズを愛用している。これまで日比谷のアイシティで購入していたが、足立区へ引っ越したこともあり、近場の店舗を探していた。隣町の亀有に店舗を発見。半年ぶりに購入するため、店舗に隣接している眼科で検診。日比谷のアイシティの場合、利用者が少ないせいか、トータル 30 分ほど購入できるときもあったが、今日、3 時間くらいかかってしまった。患者が多すぎ。20 人待ちって、眼科でありない...。結膜炎かもしれないらしく、薬をもらってきた。点眼を忘れてしまっているが...。そういえば、ハードコンタクトを勧められた。やはりソフトコンタクトは目に負担をかけるらしい。目が疲れやすいから、ハードも検討すべきかもしれない。

Saturday, April 21, 2007

Ubuntu : Upgrade to 7.04 from 6.10

メインで使用している Ubuntu Linux を 6.10 から 7.04 へアップグレードした。

Upgrading your existing Ubuntu installation | Ubuntu

アップグレード作業は、非常に簡単だ。上記の手順に従うだけ。これほど簡単にアップグレードできるとは...。

Friday, April 20, 2007

キーボード

購入してみた。

ThinkPlus USB トラベルキーボード ウルトラナビ付(英語) - 31P9490 -

以前より購入したいと思っていたが、なかなか 10,000 円を下回らなかった。たまたま ThinkVantage Club において、9,660 円で販売されていたのを発見したため、16 日の夜に注文。18 日に配送された。

Happy Hacking Keyboard Lite 2 - PD-KB200B/P - も所有している。こちらも省スペースで、かつタイプ感も良好であるが、別途マウス用にスペースを確保せねばならず、その点、ThinkPlus USB トラベルキーボードが勝る。

職場でも使用したいので、経費で落とせるか確認してみようかなw

Wednesday, April 18, 2007

久々に

shell でスクリプトを作成してみた。まだプロトタイプだが。Subversion 用のスクリプト。コミットが発生したとき、このスクリプトを kick して、リポジトリの dump ファイルを生成する。保存ディレクトリに事前に指定した以上の dump ファイルが存在したら、古い dump ファイルを削除する。まだ、別のサーバへ転送する部分を書いていない。仕事だと真剣に書くから、それなりに楽しい。

Monday, April 16, 2007

自販機

Suica でコーラを購入(しばしば飲みたくなる)してみた。毎日、現場へ通勤するため大手町を経由するが、大手町の、少なくとも千代田線でかつ、自分が通り過ぎる場所に設置されている自動販売機は、すべて PASMO & SUICA に対応している。当然、定価であるため、緊急事態?を除き購入するはずもないが、ためしに購入してみたかった。で、購入してみた。違いは、通常、お金を投入してから品物ボタンを押下するところ、電子マネーの場合、まず品物ボタンを押下したあと、reader 部分にカードまたは携帯電話(モバイルスイカの場合)を近づける、ことになる。携帯電話で試したが、瞬時に終了する。小銭を財布から取り出す必要も無く、とても便利だ。

会社に財布を忘れたため、電子マネー以外の手段で購入できなかった...。

Sunday, April 15, 2007

失敗

ファイルサーバに組み込むため用意していた機器を、やっと揃えられた。昨日、実際にハードウェアを組み込む作業を終了したため、インストールから作業を開始。詳しくない RAID を Linux 上で動作させるため、まず Google で先人の足跡を探して見ることに。異なるバージョンだが、ここを発見。

RAID-1 in My Ubuntu Installation

ほぼ同じように作業を進められた。最初、「異なる ISO イメージで boot する点」を見落としてしまい、無駄な時間を消費してしまった。改めて ISO イメージをダウンロードし、CD-R に焼いてマシンを起動。パーティションを作成する段階でいくらか混乱したが、なんとかクリア。システムに必要なソフトウェアが自動的にインストールされる段階へ移ったため、そのうちインストール作業を終了することになるだろう、と思っていた...

が、ダメ。

Ubuntu Linux は Debian のインストーラと似ているが、インストールがいつくかの段階に分割されている。そのうちの「Select and install software」という段階で failed してしまう。繰り返すも失敗、失敗。

(メッセージここから)
[!!] Configuring gnome-applets
Installation step failed
An installation step failed. you can try to run the failing item again from the menu, or skip it and choose something else. The failing step is: Select and install software
(メッセージここまで)

gnome-applets の configuration で失敗している様子。ただし、Select and install を繰り返しても、やはり同様にメッセージで停止してしまう。

仕方なく、次の段階である Install the GRUB boot loader on a hard disk を選択すると、

[!!] Install the GRUB boot loader on a hard disk
The grub package failed to install into /target/. Installing GRUB as a boot loader is a required step. The install problem might however be unrelated to GRUB, so continuing the installation may be possible.
GRUB installation failed. Continue anyway?
<Go Back> <Yes> <No>

と表示される。GRUB をインストールできなかったかもしれない。<Go Back> を選択しても、どのみに失敗してしまうため、<Yes> を選択してみると...、インストール完了!!

ただし再起動した後、システムを起動している途中で停止してしまう...。


タイムリミットであるため、このあたりで終了とす。今月 19 日に Ubuntu Linux の新バージョンがリリースされる予定であるため、改めて ISO イメージのダウンロードから試験してみたい。

Saturday, April 14, 2007

電車もバスも

昨日、ポストに不在通知を発見。やっと PASMO が配送された。午前中に再配送を依頼。



これは、「記念カード」であるため、普通のデザインと異なる。明日、定期券をこの PASMO へ移行する。

現在のチャージ額は 0 円だ。最初に(乗車のため)改札を通るときにオートチャージされるようだ。


次の定期の購入も間に合わないんじゃないかと思っていたが...、とりあえずよかった。

Friday, April 13, 2007

ぼやき

先輩エンジニア@現場にて、「誰かがリポジトリのデータを更新したら、自分が update OR commit する前に確認したいんだけどなぁ」とボヤいていた。Subversion の話。何かしら通知する機能が存在したな、と思ったため、検索してみることに。あったあった。残業せずに帰宅。明日「簡単ですよ」と自慢するために、密かに試験した、その作業メモ。

マシンは、Ubuntu Linux 6.10 だ。既に Subversion パッケージがインストールされている。


hook スクリプトのディレクトリは、リポジトリのディレクトリ直下に存在する。

$ ls -1 ${repos_dir}/hooks/
post-commit.tmpl
post-lock.tmpl
post-revprop-change.tmpl
post-unlock.tmpl
pre-commit.tmpl
pre-lock.tmpl
pre-revprop-change.tmpl
pre-unlock.tmpl
start-commit.tmpl
$


念のため、オリジナルをコピーして使用する。実行権限を付与しておく。ファイル名から実行される機能を想定できる。

$ cp ${repos_dir}/hooks/post-commit.tmpl \
${repos_dir}/hooks/post-commit
$ chmod +x ${repos_dir}/hooks//hooks/post-commit


kick されるスクリプトを含むパッケージをインストールする。

$ su -
# apt-get install subversion-tools

-----(インストールされるファイルの一覧ここから)-----
/usr/bin/svn_load_dirs
/usr/lib/subversion/hook-scripts/README
/usr/lib/subversion/hook-scripts/commit-access-control.cfg.example
/usr/lib/subversion/hook-scripts/commit-access-control.pl
/usr/lib/subversion/hook-scripts/commit-email.pl
/usr/lib/subversion/hook-scripts/mailer/mailer.conf.example
/usr/lib/subversion/hook-scripts/mailer/mailer.py
/usr/lib/subversion/hook-scripts/mailer/tests/mailer-init.sh
/usr/lib/subversion/hook-scripts/mailer/tests/mailer-t1.output
/usr/lib/subversion/hook-scripts/mailer/tests/mailer-t1.sh
/usr/lib/subversion/hook-scripts/mailer/tests/mailer-tweak.py
/usr/lib/subversion/hook-scripts/propchange-email.pl
/usr/lib/subversion/hook-scripts/svnperms.conf.example
/usr/lib/subversion/hook-scripts/svnperms.py
/usr/lib/subversion/hook-scripts/verify-po.py
/usr/lib/subversion/hot-backup.py
/usr/share/doc/subversion-tools/changelog.Debian.gz
/usr/share/doc/subversion-tools/copyright
/usr/share/doc/subversion-tools/svn_load_dirs.README.gz
/usr/share/man/man1/svn_load_dirs.1.gz
-----(インストールされるファイルの一覧ここまで)-----


kick するファイルを指定するため、post-commit ファイルを編集する。

$ vi ${repos_dir}/hooks/post-commit
#!/bin/sh

# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the number of the revision just committed)
#

(.....省略.....)

REPOS="$1"
REV="$2"

#/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" commit-watchers@example.org
/usr/lib/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" you@example.com
:wq
$


サンプルのファイルを編集し、コミットしてみる。

$ vi get_monthly_log
(.....編集.....)
:wq
$
$ svn commit -m "sample commit" .
Sending get_monthly_log
Transmitting file data .
Committed revision 2.
$


-----(配送されたメールここから)-----

to you@example.com
date Apr 12, 2007 11:45 PM
subject r2 - /

--------------------------------------------------
Author: satoshi
Date: 2007-04-12 23:45:04 +0900 (Thu, 12 Apr 2007)
New Revision: 2

Modified:
get_monthly_log
Log:
sample commit

Modified: get_monthly_log
===================================================================
--- get_monthly_log 2007-04-12 14:13:30 UTC (rev 1)
+++ get_monthly_log 2007-04-12 14:45:04 UTC (rev 2)
@@ -1,6 +1,6 @@
#!/bin/sh

-#echo "hoge"
+echo "hoge"

-----(配送されたメールここまで)-----

Tuesday, April 10, 2007

Ubuntu : multimedia player and streamer

You must have `universe' repository enabled.

$ su -
# apt-get update
# apt-get install vlc
# exit
$ vlc &


--
Ubuntu -- vlc

英語

今日から、いつもより 1 時間ほど早起きすることにした。英語の勉強の時間を確保するためだ。最近、電車で移動しているとき(かつ平日)のみ勉強をしていたが、もっと量を増やさなければと思っていた。週末も集中的にリスニング練習をしたいところ。

最近、「音」を注意して聞くようにしている。特に「子音」だ。英語だと(日本語のように)ハッキリ発音されないから、なかなか聞きとれず苦戦している。

Sunday, April 08, 2007

水没

iPod nano 水没しました...orz

Saturday, April 07, 2007

Vim

もう vi なしで生きられない体と化している自分。

どうしても Windows を使用しなければならない、という過酷な状況において、Vim を使用する。ただ、デフォルト設定でダメだ。

Linux ディストリビューションを使用する場合、、${HOME}/.exrc ファイルを作成し、たとえば以下のような設定をする。

(ここから)
set exrc
set number
(ここまで)


で、Windows の場合、Linux と一緒だと考え、${HOME}/.exrc ファイルを作成したが、有効にならない。

ちなみに、Windows の場合、${HOME} は

C:\Documents and Settings\you

だ。

スペースが含まれているところが、Windows らしくて腹立たしい。


めちゃめちゃ検索しまくって、どうにか発見した。そもそも Windows 環境のこと調査するだけでモチベーションが低いため、途中、何度も諦めようと思った。

どうもファイル名が異なるようで、.exrc でなく、_vimrc らしいのだ。. じゃなく _ である理由は、おそらく Windows の場合、. から始まるファイルを作成できない(技術的な話をすると作成できる)ためだ。


ちなみに、. からはじまるファイルを作成しようとすると

「ファイル名を入力してください。」

という警告メッセージが表示される...。ださすぎ。


とりあえす Windows プラットフォームにおいての Vim のデフォルト設定を以下のように設定しておいた。

・行番号が表示される
・フォントが変更される(`MS' を全角で指定すること
・言語が日本語から英語へ戻される

(ここから)
set number
set guifont=MS_ゴシック:h8:cSHIFTJIS
set langmenu=none
(ここまで)

Thursday, April 05, 2007

3 日目

Eclipse のバグらしい現象に悩まさ、解決できなかった。再現するか?改めて確認する予定。Windows 環境に特有の配慮を必要とするため、非常に面倒。知らないし興味ない...。まるで異世界のようだ。まぁ、やるけど。以前、どこぞの面接で同席したエンジニアが何かの用事でこの現場へ訪れていた。もしかして同じ担当に?

現場のビルを出た直後、小さな犬(チワワ?)に遭遇。直視したら寄ってきて足にすりすり...。



一緒に暮らしたい...

Wednesday, April 04, 2007

2 日目

まだ大した仕事をしているわけじゃない。潔癖症な自分が満足できるきれいな環境とも言えない。本当にここでまともな仕事をできるかわからない。不安も多い。が、楽な気持ちで仕事をできている。無駄な会話も少なく、キーボードを(やや強めに)たたいている音を心地よく感じる。作業マシンは Windows がインストールされているが、リモートの検証マシンにログインして、忘れかけていたコマンドを実行したり、man を確認してみたり。Windows においてもテキストエディタは Vim だ。これじゃなきゃダメだわ。Web ブラウザは Firefox で、メールクライアントは Thunderbird だ。Internet Explorer & Outlook を強制させられたりしない。先輩エンジニアと会話しやすいことも大きい。全体的に干渉が少ない現場だ。最大のポイントは、進む方向が修正されたことだな。直接、関係ないことでも勉強になるし、勉強しようと思える。地味なドキュメント作業においてさえも。昼飯さえ改善できれば...。安いけど弁当を毎日だと厳しいかもしれない。

Tuesday, April 03, 2007

初日

新しい現場において業務の初日。寝不足だったため、一日を通して具合が悪いままだった。Red Hat Enterprise Linux において、3com の NIC を正常に認識させられない現象に悩まされたが、いつのまにか解消していた...。現象を再現できる環境をもちあわせていないため、原因を調査できない。開発環境として使用するマシンであるため、何もできないだろう。個人で使用するマシンを借り、セットアップしようと各機器を接続していたところ、ありえないほどキーボードが汚されていることを発見!!これは手垢か?と本当に疑いたくなるほど、汚れが付着していた。潔癖症の自分は耐えられなかった。こっそり掃除。ただし水で。いつものクリーナを持参し忘れてしまったのだ...。40 分ほど残業して終業。

だらだらと

勉強しても意味ないので、試験を予約した。5 月 12 日の 13:00 から。Oracle Database Bronze SQL なり。勉強する前より確実に SQL を使いこなせるようになったと実感。もっと早く勉強するんだった。これで試験に合格できなかったら笑えるな。受験料は自腹の予定だが、もしかしたら会社が...期待!現在、DBA の勉強を並行で進めている。早く Oracle 自体を終了したいところ。

Sunday, April 01, 2007

ファイルサーバの現状

注文していた HDS721616PLA380 (160G SATAII300 7200)SA-RC2-LG が配送されてきた。追加で注文した Serial ATA ケーブルはまだ配送されてきていないため、とりあえず現状の構成(シングルの Serial ATA HDD)において Ubuntu Linux が正常に動作するのか?を確かめようと考えた。普通に ISO イメージを焼いた CD-ROM をセットしてマシンを起動し、インストール作業を開始。画面が乱れるものの LCD モニタのユーティリティを実行して調整。最終的に、難なくインストール作業を完了できた。もともと、オンボードの Gigabit Ethernet を搭載している(マザーボード:i915GMm-HFS)が、なぜか PCI スロットに装着されていた Intel の NIC を使用した。3 枚の NIC が装着されていることになるが、各 NIC の設定を Gnome のユーティリティを使用して設定...。やっぱ GUI は楽だし。最新のパッチを適用してから電源を OFF したところ、モニタは OFF されるが、本体の電源は OFF されない。電源ボタンの長押しにより強制終了する以外、手段を発見できていない。尚、正常に再起動できている。

今後の作業の予定:
- Serial ATA ケーブルの到着を待つ。
- 各パーツを組み立て、改めて Ubuntu Linux をインストールする。
- RAID の動作を確認する。
- このマシンへデータを移行する。

ETC Card

無駄に ETC カードを作成してみた。レンタカーでどっかへ旅行してみる、なんていいかも。まともに運転したことなんて 5 年ほどないはずだから、標識を正しく理解できるか心配だ。

振り返って...

3 月いっぱいで、とある会社においての業務を終了した。

この 6 か月間、本当にストレスと戦いっぱなしだったように思う。自分の精神状態をコントロールできず、(自宅マンションのエレベータのような一人になれる場所で)発狂したりすることもあった。そう、精神的なコントロールが大きな負担だった。自宅で勉強すればするほど更に勉強したくなるが、現場において全く関係ないことを担当せねばならなかった。モチベーションを上げれば上げるほど、より業務とのギャップが大きくなってしまい、辛かった。暖めては冷まされ、暖めては冷まされ、を繰り返していた。結果的に、常に無気力な状態に陥った時期もあった。危険だったかもしれない。寝ることを嫌いになった。寝てしまうと簡単に朝を迎えてしまうからだ。またあそこへ出勤しなければならないのか、と思う自分を想像して、眠りたくなかった。現場においての業務は、すべて Windows であったことも強烈にストレスを生み出していた。使い慣れず、かつ使えないツール類の使用を強制されること、それがこれほどまでにストレスになるのか!と痛感させられた。周囲の人が、そのような使えないツール類を使用して平然と仕事をしていることを不思議に感じてしまった。やる気のないエンジニアもストレスを n 乗させてくれた。コマンドのオプションを質問するなら、まず man を実行してくれ。man の結果が英語で表示されたからといって、すぐに q キーを押下して、Google で検索するのもやめてくれ。Google も検索せずに、すぐ質問するのもやめてくれ。基本的な vi の操作くらい事前に身につけておいてくれ。UNIX エンジニアとして現場に存在するのだから、「俺は Windows ユーザだし」と平気で言わないでくれ。

勉強になったこともあった。やはりどこの会社または現場においても、仕事をできる人が存在する。ひとつの会社のみで業務をしていたころ、「この(仕事をできる)人のやり方は正しいのか?」という疑問を感じても答えを見出せず、目標とする人物を設定できなかった。ただし、会社や現場をこえる共通点が存在することに気づいた。

自信になったこともあった。前の会社で仕事をしていたころ、自分のスキルを信じられなかった。そのため、たとえば面接で「何をできるのか?」と聞かれたとき、「何もできません」と回答してしまう自分だった。shell スクリプトを作成するスキルを例とすれば、そこそこ作成できる、が、Linux の起動スクリプトほどの shell スクリプトを作成できるわけじゃない。また、Linux のユーザグループにおいて「神の領域で生きている」ようなエンジニアが送信したメールを読むと、自分のスキルなんて基礎中の基礎に感じられ(実際そうなんだが)、「あのような人と比較すると全くできないな」と思い込んでいた。ただ、現場において感じたことは、「できる」という言葉が定義するスキルの度合いが異なるだけだと理解した。自信になったわけじゃないが、「自分のスキルを正確に理解できる人は(なかなか)存在しない」ということを認識した。いくら説明しても理解できない人へ説明しても無駄だ。

当然、ここに書けないことも多いわけで、振り返ると「二度と戻りたくない」という状態だが、なんとか乗り切れた。「耐え続けたこと」に達成感を感じる...。先日、Java の勉強を再開した。多くのことを忘れてしまっていることに気づき、かなりガックリきている。ただし、4 月から業務で Java に関われる。実務の経験できれば、一人で勉強するよりも早くスキルアップできるだろう。Linux を使用しつづけていたことにより、コマンドライン操作を忘れずに済んだ。まぁ、もともと他の OS をメインで使用するなんて考えていないが。

Saturday, March 31, 2007

SA-RC2-LG

SA-RC2-LGSofmap.com で注文した。2 個。合計 11,960 円なり。Sofmap.com は、合計 1,000 円以上の商品を購入すると送料を無料にしてくれる。

HDS721616PLA380

より安い価格で販売しているオンラインショップが存在したが、過去に商品を購入したこともあるため、パソコン工房にて HDS721616PLA380 (160G SATAII300 7200) を注文した。1 台 6,200 円を 3 台。送料 630 円がプラスされ、合計 19,230 円なり。この HDD が配送されたら、デスクトップマシンに装着し、Ubuntu Linux をインストールして、Software RAID でバックアップ(ファイル)サーバとする予定だ。

Wednesday, March 28, 2007

体験モニター

Apple が Mac の体験モニターを募集していたので...

アップル - 「Start Mac 体験モニター」募集

応募してみた!

Mac OS X Leopard が発売されたら、Mac の購入を検討しようかと考えていたが、前倒しで Mac ユーザになれるかも!


まぁ、普通に考えて無理だな...

無駄に

昨日に続いて、また残業。+2 時間。そして、またこんな時間まで...。

Tuesday, March 27, 2007

ネクタイ&シャツ

楽天にて、ネクタイとシャツを購入してみた。ちょー安い品。どんな品質か心配でもあり楽しみでもあり...。土曜日の配送を予定。

Monday, March 26, 2007

友人からの連絡

大学時代の同級生(女性)から連絡をもらった。結婚したそうだ。5 月に出産するらしく、(おそらく近々)実家へ戻るらしい。大学や高校の多くの同級生と連絡をやりとりし続けているわけじゃないが、ぽつぽつと同様の情報を耳にする。そういう年になったんだな、と実感する。今年、自分は 29 歳になるし。もう 30 歳じゃないか。全く成長していないと反省。全てのことを中途半端に終わらせてしまっている感じ。

Sunday, March 25, 2007

iPod + iTunes

今ごろ、iPod nano を購入してみた。自分用じゃないが...。土曜日に配送れてきた。驚くほど小さく軽い。唯一の Windows マシンにおいて、古いバージョンの iTunes がインストールされていたため、iPod nano を接続したときエラーが表示されてしまった。すぐさまアップグレード。既に Apple ID を登録(クレジットカード情報を含む)していたため、簡単に購入できることを確認した。購入した曲(夏の日の 1993)を再生しようとしたそのとき、iPod nano がフリーズ!まったくキーを受け付けない状態。Web で検索し、解除の方法を発見できた。

しばらく iTunes を使用してみて、感じている不満点をいくつか。

ときどきネットワークエラーが表示される。「ネットワークに問題があるため検索できませんでした。」的なエラーが表示されるのだ。別のウィンドウで Web を正常に表示できることから、iTunes に関係した事象だと考えられるが、「こっちは問題ないよ」的なメッセージが表示されるため、いただけない。

iTunes サービスについてだが、有名なアーティストが曲を提供していないことに驚かされる。たとえば「宇多田ヒカル」の場合、ほぼ全ての曲を検索、購入できるが、「Mr.Children」の場合、ほぼ曲が提供されていないようだ。やっと(エラーが表示されず)検索できても、曲が提供されていないとなると、どうしようもない。

間違ったアーティスト情報が検索される。右上の検索ボックスにキーワード(アーティスト情報)を入力して検索すると、似ているが明らかに異なるアーティストが検索された。ちなみに検索ボックスにキーワードを入力して検索する、という操作だが、あまり検索しやすいといえない。インタフェース的な問題だろうか。


そういえば、こちらも土曜日に郵送されてきた PASTOWN カード だが、肝心の PASMO カードは、まだ郵送されてきていない。PASMO の Web サイトを確認してみたら、こんなお知らせが公開されていた。来月の定期券を PASMO 化する計画は、未遂に終わりそうだ。

Saturday, March 24, 2007

いろいろ

結局、面接の連絡なかった。帰宅して上司からのメールを確認したら、どうも月曜日まで待つようだ。うーむ。

水曜日が祝日だったためか、金曜日だと感じなかった。バタバタした時間帯もあったが、比較的あっさり終了。残すところ 5 日となった。

年度末のためか、IBM でセールしているらしく、うっかり「ぽちっとな」するところだったが、さすがに 50 万円 over の合計金額が表示されたところで、冷静に window をクローズできた...。

検証マシンで Tomcat + PostgreSQL on Ubuntu の環境を用意した。JSP/Servlet の復讐をしようとしたが、そもそも Java 言語それ自体を復讐すべきだと考えた。マジで忘れている。秋ごろ、SJC-P の取得を予定している(早く Oracle をクリアしないと...)ため、復讐しながら試験勉強をするとしよう。

Friday, March 23, 2007

Apache Tomcat and PostgreSQL

universe に存在する tomcat5.5 を使用して Tomcat から PostgreSQL へ接続しようとして、エラー発生しまくり。で、本家 tomcat.apache.org から binary distribution をダウンロードして(JDBC ドライバを配置した後)接続してみたら...、OK!!

数日も費してしまった...。

現在 `Java の学習環境を構築する' ことが優先されるため、原因を追求しないでおく。

ファンケル

なくなりかけていたサプリメントを注文した。

満点野菜 徳用タイプ
満点海藻 徳用3袋セット
満点果実 徳用3袋セット
青汁粉末ツイントース配合 徳用3個セット

案件

出社前、八重洲の喫茶店で先方と会い、案件を紹介してもらった。が...、要求スキル高くね?明らかにミスマッチに思える。金曜日にスケジュールする、という話だが、どうなることやら。

Thursday, March 22, 2007

すごい人

いるもんだ。相対的にー、すごくない人(自分)。あぁ、やっぱ気づくの遅かった、遅すぎたんだろうか、俺。

Inputting Japanese on Ubuntu 6.10

以前、Inputting Japanese on Ubuntu で書いたことを、詳細に書き残しておくことに。参照先のページが永久に存在していることを保証できないため。

NOTE: You must have universe repository enabled.

$ su -
$ apt-get update
# apt-get install uim-applet-gnome uim-xim uim-anthy uim-gtk2.0 im-switch
# exit
$ im-switch -s uim_anthy <--- エラーが発生する
$ uim-pref-gtk

Global settings -> Input method toggle -> Input method toggle key
value : "<meta>space" -> "zenkaku-hankaku"

Global settings -> Input method toggle -> Alternative input method
value : Direct -> Anthy

Anthy -> Toolbar -> Default input mode
value : Direct input -> Hiragana

インストール屋

Ubuntu 6.10 において、Tomcat 上の JSP から PostgreSQL へ接続しようとしているが、接続できない。パッケージを管理する手間を省略するため、すべて Ubuntu のパッケージをインストールしている(つまり apt-get だ)が、ダメだ。Web を探しまくった(当然のことながら日本語の情報は皆無だ)ら JDBC ドライバもパッケージが存在するようで、libpg-java パッケージをインストールした。が、ダメ。昔、「楽勝」とか思ったこともあったが、勘違いしていたことに今さら気づいた。単なるインストール屋だった。基本を正確に理解していなかったため、少し状況が変化すると全く応用できない。アホすぎる。

便利な世の中

亀有へ行ってきた。行きは電車で、帰りはバス。Suica を使用してバスの料金を支払いした。タッチだけで終了。ちょー便利。既に Mobile Suica を設定しているため、現在チャージされている金額が少なくなったところで解約する予定。なんでも携帯で済ませられる便利な世の中だなー、と感じた今日。

Wednesday, March 21, 2007

ついに

最後の FreeBSD マシンが Ubuntu Linux マシンへ replace されてしまった。

木曜日

22 日の木曜日、出社前に案件を紹介していただくことになった。場所は東京駅。もしかして、そっちになる?かも。いまのところ案件の詳細は不明だが...。

そういえば昨日の面接(クライアント)は、10 分ほどで簡単に終了した。ほんと顔合せだけ。全く問題なかった。

Monday, March 19, 2007

PASTOWN CARD

来月からの定期で利用しようと思い、今月 14 日に PASTOWN カード をオンラインから申し込んでいた。ようやく審査 OK の連絡をメールでいただいた。今週中に郵送されてくるだろう。

あれこれ

ややハードな週末だった。ハードにしてしまった理由は、風邪をひいてしまったからなんだが。最近まともに寝てなかったからなー。

16 日(金)の時点で既に風邪の症状が出ていた。おそらく熱もあって、なかなか寝つけずに朝を迎えてしまった。土曜日、夕方から高校時代の友人と会う約束をしていたため、どうしても体調を復活させたくて、9 時ごろ、近くの病院へ。風邪で病院へ行った記憶は、大学生が最後だ。「花粉症のせいかもしれませんね。」なんて想定外のこと言われてしまって(体もダルイし明らかに違う症状だったが...)、薬をもらってきて終了。とりあえず飲んでまた寝た。15 時ごろ起きて、あまり回復していなかったが、どうしようもないため出発。途中、北千住に立ち寄り、(ネクタイ)と同一の製品を購入。結局、コーヒーをこぼしてしまったネクタイは、1 度だけ(そしてコーヒーをこぼした)身につけて捨ててしまった。遅刻することを連絡しておきつつ、明治神宮前で降りて自社へ立ち寄った。ネックストラップを持ち帰る予定だったが発見できず。電話が鳴り、どうやら友人も近くにいたるようであったため原宿駅でおちあった。話をしながら移動して飲み屋へ。ノドも痛かったし、そもそも風邪のときにアルコールを飲んじゃダメだべ、という気持ちだったが、いつもより飲んでしまった!18 時ごろ入店したと思うが、出た時刻は 23 時を過ぎていた。終電の時間を把握していなかったため、とりあえず小走りで明治神宮前へ戻った。あまり人があるいていなかったため、間に合うか心配だったが、結局、間に合った。

日曜日、14 時ごろまで寝て、ある程度まで回復。電気ストーブで右手の小指をヤケドしてしまった。30 分後くらいに左手の小指もヤケドしてしまった。痛い...。探しもののついでに片付けをしていたら、この際、不要な物を捨てようと作業しまくり。最終的に、すごい量となった。まだ若干、整理できていないため、次の週末に続けて掃除する予定。明日の面接のことで自社の人から電話をもらった。どうやら、まだ流動的らしい。

Friday, March 16, 2007

風邪

ひいてしまったかも。のど痛いし。

カウントダウン : 10

現場の業務は、残り 10 日となりました。

How to share files using Samba on Ubuntu 6.10

##################################################
How to install Samba Server for files/directories sharing service
##################################################

$ sudo apt-get install samba smbfs

or

$ su -
# apt-get install samba smbfs



##################################################
How to add/edit/delete network users
##################################################

# smbpasswd -a system_username
New SMB password:
Retype new SMB password:
#
# vi /etc/samba/smbusers
system_username = "network username"


### like this
# smbpasswd -a satoshi
New SMB password: my_password
Retype new SMB password: my_password
#
# vi /etc/samba/smbusers
satoshi = satopy



##################################################
How to share home folders with read only permission (Authentication=Yes)
##################################################

### backup the original configration file
# cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
# vi /etc/samba/smb.conf

### Find this line
...
; security = user
...

### Replace with the following lines
security = user
username map = /etc/samba/smbusers


### Uncomment the following lines:
;[homes]
;comment = Home Directories
;browseable = no
;valid users = %S
;writable = yes


### Save the edited file
# testparm
# /etc/init.d/samba restart



##################################################
How to share home folders with read/write permissions (Authentication=Yes)
##################################################

### Find this section
# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = no

### Replace with the following lines
# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = yes


### Save the edited file
# testparm
# /etc/init.d/samba restart

Thursday, March 15, 2007

BH-200 and E61

今月 9 日に注文した BH-200 が、やっと配送されてきた。



E61 のときと同様、紙袋だ。




本体の箱。この箱は、緩衝材 (プチプチつぶせる緩衝材) でつつまれていた。




中身。紙は説明書。本体と充電器。左の紙が日本語で右が他の言語の説明書だ。




本体の表側。NOKIA ロゴの上に存在する縦のラインを押せる。着信の応答と終了で使用する。本体の左側にポチっと出ている突起物は電源ボタンだ。




本体の裏側。耳の穴にハマる部分のすぐ上にランプが位置している。充電しているときなど、点灯または点滅する。



続けて設定。BH-200 の説明書を読めば、すぐに理解できる内容だ。数分で完了できるだろう。BH-200 の設定は、電源を ON するだけ。続けて携帯電話 (Nokia E61) 側で設定。説明書を読まずに Bluetooth の設定を完了できた。

Wednesday, March 14, 2007

また

こんな時間に...。(問題集しかこなせなかった


明日も同じ状況なら最低 5 時まで勉強しよう。

Backup Plan

自宅においてのバックアップについて考えてみたので、情報をまとめておく。


####################
まえがき
####################

現在、自宅のデータは 1 台の ThinkPad T41 に保存されている。FreeBSD や Vine Linux で保存していたデータが別 HDD に保存されていたが、先日すべてのデータを Ubuntu Linux へ移行した。この ThikPad の HDD が逝ってしまうと厳しいため、データをバックアップしよう、と考えた。


####################
実現したいこと
####################

低コストにおさえられるソリューションを選択すること。
HDD が逝っても最悪 1 日前のデータに復旧できること。
楽な運用で対応できること。


####################
検討結果
####################

大量に I/O が発生する場合、ノート PC は様々な点で不利である。2.5 インチの HDD の性能は、3.5 インチの HDD の性能より劣る。熱の影響も大きい。そのため、デスクトップ PC を用意し、そちらに保存するデータをマスターとする。

冗長性を考慮し、RAID を導入する。レベル 1 とするため、2 台の HDD でデータをミラーリングする。ちなみに NAS も検討していたが、イニシャルコストが大きいため却下。余っている(会社からもらってきた)デスクトップ PC に、3.5 インチの HDD を装着して、Linux でソフトウェア RAID を導入する。distribution は Ubuntu Linux で。さらに冗長性を考慮し、RAID でミラーリングしているデータを、定期的に外部媒体(Removable HDD)へ保存する。スクリプトを作成し、電源を OFF する前、手動でスクリプトを kick し、バックアップ対象のファイル群を Removable HDD へ転送する。対象のデータすべてを tar でアーカイブすると、HDD への負担が大きいため、rsync を使用して差分を転送しようと考えている。


####################
今後の手順
####################

1.
3 台の HDD を購入(1 台はスペア用)する。容量は 100 GB くらいで間に合う。既に所有している、Removable HDD として使用する予定の HDD が 250 GB であるため、この容量で 3 台の HDD を新たに購入する。だいたい 8,000 円/台。Parallel か Serial のどちらの HDD を使用するのか Mother board の情報から確認しておくこと。

2.
デスクトップマシンに 2 台の HDD をセットする。

3.
Ubuntu Linux をインストールし、ソフトウェア RAID の設定をする。初めて RAID を設定する。もし Ubuntu Linux で不測の事態が発生するようなら、別の distribution を検討することも考慮しておく。

4.
ThinkPad T41 から Ubuntu Linux へデータを転送する。

5.
Ubuntu Linux での運用(ミラーリング)を開始する。

6.
rsync で Removable HDD へデータを転送するスクリプトを作成する。

7.
定常運用を開始する。


####################
メモ
####################

HDD の helth チェックなどを定期的に実行したいため、情報を収集すること。しばらく大丈夫だと思うが、HDD の容量をチェックするスクリプトを作成することにしよう。閾値を超過するとメールが送信される機能を実装しておけば十分だが、別の機会に改めて仕様を考えることに。ケースのフタを開けずに HDD を交換できるよう、Removable ケースを使用する。

参考商品:
SATA リムーバブルケース SA-RC1-LGX