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