Thursday, April 30, 2009

04/30/2009


  • ひたすら D のドキュメントを修正した。

  • 自分は Microsoft Word で技術ドキュメントを作成できるほど賢くないため、別のツールを使用してドキュメントを作成しようと考えていた。

  • とりあえず、この(どの?)業界のデファクトスタンダードである DocBook に決定した。



Wednesday, April 29, 2009

04/29/2009


  • 昨夜、再配達を依頼していた荷物が午前中に配送された。

  • 起床した時刻は 16:00 すぎ。

  • blogger にて新しいテンプレートを選択した。まだ少し調整を必要とする状態だったりする。

  • tcpdump の使用についてメモしておいた。

  • BIND 9 を Ubuntu Linux にインストールして学習を開始した。


Manuplating name services with BIND 9 on Ubuntu Linux 9.04

Trying BIND 9 to understand name services in the Internet.


I'll use these software below.

Ubuntu Linux 9.04 Desktop 64-bit Edition
BIND 9


First I'll install BIND. It is a de facto standard.

# apt-get update && apt-get install bind9


"/etc/bind" directory and some files will be created.

# ls -l /etc/bind/
total 44
-rw-r--r-- 1 root root 237 2009-03-23 18:41 db.0
-rw-r--r-- 1 root root 271 2009-03-23 18:41 db.127
-rw-r--r-- 1 root root 237 2009-03-23 18:41 db.255
-rw-r--r-- 1 root root 353 2009-03-23 18:41 db.empty
-rw-r--r-- 1 root root 270 2009-03-23 18:41 db.local
-rw-r--r-- 1 root root 2878 2009-03-23 18:41 db.root
-rw-r--r-- 1 root bind 907 2009-03-23 18:41 named.conf
-rw-r--r-- 1 root bind 165 2009-03-23 18:41 named.conf.local
-rw-r--r-- 1 root bind 572 2009-03-23 18:41 named.conf.options
-rw-r----- 1 bind bind 77 2009-04-29 23:45 rndc.key
-rw-r--r-- 1 root root 1317 2009-03-23 18:41 zones.rfc1918
#


The "named.conf" is a very important file for BIND. Let's open this file. This file stores, defines each zone information.

# cat /etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local

include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

include "/etc/bind/named.conf.local";
#



// UPDATING...

Getting Started With Packet Momitoring Using tcpdump

tcpdump の使い方をメモしておく。まぁ、古き良きツールであるため、Web の情報を検索すれば Google が適切な情報を提供してくれるだろうから、このポストは自分のための備忘録でもある。古き良きツールであるが、これまで、仕事で活用している技術者を知らなかった。4 月から一緒に職場で仕事をしている達人プログラマ K さんが tcpdump を活用していたので、私も身につけようと考えた。


tcpdump を知らない人は、Google 先生に質問してくださいませ...。要約すると、あるネットワークのトラフィックを dump するコマンドだ。


tcpdump を実行する前に、まず、自分のネットワークインタフェースの IP address を確認しておく。余談だが、たとえばドキュメントを記載しているとき、IP address を意味する用語を IP と記載する人がいるが、IP はプロトコルなんだって。IP address を意味したいなら、ちゃんと IP address と記載してほしい。


$ /sbin/ifconfig eth0
eth0      Link encap:Ethernet HWaddr 00:0c:29:24:6c:5d
            inet addr:192.168.117.128 Bcast:192.168.117.255 Mask:255.255.255.0
            inet6 addr: fe80::20c:29ff:fe24:6c5d/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
            RX packets:542 errors:0 dropped:0 overruns:0 frame:0
            TX packets:342 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1000
            RX bytes:201979 (201.9 KB) TX bytes:39924 (39.9 KB)

$


ifconfig コマンドを実行した結果から、IP address を、192.168.117.128 であると特定した。続いて、tcpdump を実行する例を挙げてみよう。まず、syntax を確認しておく。これも manpage に記載されている。


SYNTAX :

tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ] [ -C file_size ] [ -F file ] [ -i interface ] [ -m module ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -E spi@ipaddr algo:secret,... ] [ -y datalinktype ] [ -Z user ] [ expression ]


あぁ...、自分が想定していたよりオプションが提供されていた。いくつか選択して例を挙げる。


Example 1 : source IP address が 192.168.117.128 であるすべてのパケットを取得する。

# tcpdump src host 192.168.117.128


Example 2 : 上記の例の場合、大量の情報が出力されるだろうから、ある程度、自分が取得したい情報のみを出力させる。source IP address が 192.168.117.128 であり、かつ port 80 へ通信するすべてのパケットを取得する。例を確認すれば理解できるが、"and" 条件を指定できる。

# tcpdump src host 192.168.117.128 and port 80


Example 3 : "and" 条件を指定し、さらに destination を指定する例。

# tcpdump src host 192.168.117.128 and port 80 and dst www.google.com


Example 4 : オプション -X を指定し、パケットごとに hex と ASCII によりデータを STDOUT へ書き込む。

# tcpdump src host 192.168.117.128 and port 80 and dst www.google.com -X


以下に Example 4 を実行したときの結果を記載する。66.249.89.99 は、www.google.com の IP address だ。検索キーワードに "tcpdump" して GET を実行している情報も確認できる。

# tcpdump src host 192.168.117.128 and port 80 and dst 66.249.89.99 -X
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:08:23.207249 IP localhost.satoshiabe.jp.40115 > www.google.com.www: P 882706955:882707730(775) ack 1110509045 win 23360
0x0000: 4500 032f a3dd 4000 4006 c166 c0a8 7580 E../..@.@..f..u.
0x0010: 42f9 5963 9cb3 0050 349d 0a0b 4231 05f5 B.Yc...P4...B1..
0x0020: 5018 5b40 d5a6 0000 4745 5420 2f73 6561 P.[@....GET./sea
0x0030: 7263 683f 686c 3d65 6e26 713d 7463 7064 rch?hl=en&q=tcpd
0x0040: 756d 7026 6274 6e47 3d47 6f6f ump&btnG=Goo
23:08:23.256567 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 1461 win 26280
0x0000: 4500 0028 a3de 4000 4006 c46c c0a8 7580 E..(..@.@..l..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 0ba9 B.Yc...P4...B1..
0x0020: 5010 66a8 4a1a 0000 P.f.J...
23:08:23.256630 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 2921 win 29200
0x0000: 4500 0028 a3df 4000 4006 c46b c0a8 7580 E..(..@.@..k..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 115d B.Yc...P4...B1.]
0x0020: 5010 7210 38fe 0000 P.r.8...
23:08:23.256669 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 3240 win 32120
0x0000: 4500 0028 a3e0 4000 4006 c46a c0a8 7580 E..(..@.@..j..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 129c B.Yc...P4...B1..
0x0020: 5010 7d78 2c57 0000 P.}x,W..
23:08:23.308818 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 4642 win 35040
0x0000: 4500 0028 a3e1 4000 4006 c469 c0a8 7580 E..(..@.@..i..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 1816 B.Yc...P4...B1..
0x0020: 5010 88e0 1b75 0000 P....u..
23:08:23.309069 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 6044 win 37854
0x0000: 4500 0028 a3e2 4000 4006 c468 c0a8 7580 E..(..@.@..h..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 1d90 B.Yc...P4...B1..
0x0020: 5010 93de 0afd 0000 P.......
23:08:23.309075 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 6890 win 40658
0x0000: 4500 0028 a3e3 4000 4006 c467 c0a8 7580 E..(..@.@..g..u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 20de B.Yc...P4...B1..
0x0020: 5010 9ed2 fcba 0000 P.......
23:08:23.652310 IP localhost.satoshiabe.jp.40115 > www.google.com.www: P 775:1615(840) ack 6890 win 40658
0x0000: 4500 0370 a3e4 4000 4006 c11e c0a8 7580 E..p..@.@.....u.
0x0010: 42f9 5963 9cb3 0050 349d 0d12 4231 20de B.Yc...P4...B1..
0x0020: 5018 9ed2 d5e7 0000 4745 5420 2f63 7369 P.......GET./csi
0x0030: 3f76 3d33 2673 3d77 6562 2661 6374 696f ?v=3&s=web&actio
0x0040: 6e3d 2673 7274 3d32 3439 2674 n=&srt=249&t
23:08:23.652310 IP localhost.satoshiabe.jp.40115 > www.google.com.www: . ack 7105 win 43462
0x0000: 4500 0028 a3e5 4000 4006 c465 c0a8 7580 E..(..@.@..e..u.
0x0010: 42f9 5963 9cb3 0050 349d 105a 4231 21b5 B.Yc...P4..ZB1!.
0x0020: 5010 a9c6 eda7 0000 P.......
^C
9 packets captured
9 packets received by filter
0 packets dropped by kernel
#

Tuesday, April 28, 2009

04/28/2009


  • 開発サーバをセットアップする件で、多いに突っ込まれた。

  • 彼が言った「便利な機能を知っていたら提案してもいいんですよ」という部分を聞き逃さなかった。

  • ここ 1 年ほど Java 屋さんで食べてきたので、ほとんど操作する機会を得られなかったサーバアプリケーション、たとえば Apache HTTP Server の機能を集中的に学習するチャンスだと判断した。



Setting up IP Aliasing on Ubuntu Linux

This is a mini recipe on how to set up and run IP aliasing on Ubuntu Linux.


# ifconfig
eth0   Link encap:Ethernet HWaddr 00:0c:29:24:6c:5d
          inet addr:192.168.117.128 Bcast:192.168.117.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe24:6c5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:833 errors:0 dropped:0 overruns:0 frame:0
          TX packets:493 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:80107 (80.1 KB) TX bytes:66192 (66.1 KB)

lo       Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1840 (1.8 KB) TX bytes:1840 (1.8 KB)




Creating an alias eth0:0 with IP address 192.168.117.200
Type the following command:


# ifconfig eth0:0 192.168.117.200 up




Verifying that alias is up and running.


# ifconfig
eth0   Link encap:Ethernet HWaddr 00:0c:29:24:6c:5d
          inet addr:192.168.117.128 Bcast:192.168.117.255 Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe24:6c5d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
          RX packets:961 errors:0 dropped:0 overruns:0 frame:0
          TX packets:557 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:91524 (91.5 KB) TX bytes:74860 (74.8 KB)

eth0:0 Link encap:Ethernet HWaddr 00:0c:29:24:6c:5d
          inet addr:192.168.117.200 Bcast:192.168.117.255 Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

lo       Link encap:Local Loopback
          inet addr:127.0.0.1 Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MTU:16436 Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1840 (1.8 KB) TX bytes:1840 (1.8 KB)

#




If you want to use that alias permanently, write these lines in "/etc/network/interfaces"


auto eth0:0
iface eth0:0 inet static
name Ethernet alias LAN card
address 192.168.117.200
netmask 255.255.255.0
broadcast 192.168.117.255
network 192.168.117.0

Monday, April 27, 2009

04/27/2009


  • 昨夜ほとんど眠れなかったせいか、日中、ずっとクラクラしていた。

  • ただし、それなりに集中力を保ちつつ作業した。

  • Apache HTTP Server の Virtual Hosts の設定メモを更新した。



Sunday, April 26, 2009

04/26/2009


  • 結局、今日も Git 勉強会を未遂のまま。もっと詳細に計画すべきだと思った。

  • 次の水曜日に、カーネル読書会がスケジュールされていたが気づいていなかったので予約したが、定員オーバーだった。キャンセル待ち。

  • 電子工作の件で tweep に相談してアドバイスをもらった。

  • 学習キットを注文した。

  • BlackBerry Bold で i-mode メールを読めるよう imode.net の設定をしていて、面倒で作業を途中でやめた。

  • Name-based な Virtual Hosts を設定していてハマった。

Configuring Virtual Hosts with Apache HTTP Server 2.2 on Ubuntu Linux 9.04

// TODO : もう少し丁寧に情報を記載する


最新の Apache HTTP Server を使用し、Apache HTTP Server が提供する Virtual Hosts の機能を確認する。

Apache Virtual Host documentation - Apache HTTP Server



環境を記載しておく。マシンは MacBook だ。4 GB のメモリを搭載させている。このマシンにインストールした VMware Fusion に VM を作成し、04/23/2009 にリリースされたばかりの Ubuntu 9.04 Desktop の 64-bit 版をインストールした。ここまでの作業を省略し、次の作業から記載する。



いつもの決まりだが、用語を正確に記載する。本ポストにおいて、"Apache" は "Apache Software Foundation" の総称を意味し、"Apache HTTP Server" を意味しない。





00. Before you go...


まず、GCC をインストールしておく。

% sudo apt-get install build-essential





01. Installing Apache HTTP Server


まず、Apache HTTP Server の本体をインストールする。ディストリビューターが用意するパッケージ、つまり deb パッケージを使用せず、本家から tar ボールをダウンロードしてインストールする。


Download - The Apache HTTP Server Project


2.2 系の最新をダウンロードする。ダウンロードしたファイル名は以下の例のとおりだ。つまり 2.2.11 が最新の stable だった。

% tar xzvf httpd-2.2.11.tar.gz
% cd httpd-2.2.11/
% ./configure --prefix=/usr/local/httpd-2.2.11 --enable-so
% make
% su
# make install


最低限の動作を確認するため、設定ファイルを編集しプロセスを起動する。メインの設定ファイルである httpd.conf において、ServerName ディレクティブに IP address を指定する。このホストに DNS サービスを提供するサーバが存在せず、/etc/hosts も編集していないからだ。下記の 192.168.117.128 という IP address は、VMware が、動的に、つまり DHCP で配布した IP address である。本来なら static に設定すべきだろう。

# cp /usr/local/httpd-2.2.11/conf/httpd.conf /usr/local/httpd-2.2.11/conf/httpd.conf.bk
# vi /usr/local/httpd-2.2.11/conf/httpd.conf


// httpd.conf ファイル
#ServerName www.example.com:80
ServerName 192.168.117.128:80


設定ファイルの syntax を確認する。

# /usr/local/httpd-2.2.11/bin/apachectl configtest
Syntax OK
#


起動する。

# /usr/local/httpd-2.2.11/bin/apachectl start


プロセスの存在を確認する。

# ps -ef | grep 'httpd'


ポートが LISTEN されているかを確認する。

# netstat -an | grep '80'


Web ブラウザで表示する。"It works!" と表示されたら正常に動作している。本来はログも確認すべきだが。

http://192.168.117.128/



ここまでで、Apache HTTP Server の基本的な設定を終了する。続いて、Virtual Hosts を設定する。





02. About virtual Hosts


他の Web サイトでも解説されているとおり、Apache HTTP Server の Virtual Host に、

- Name-based Virtual Hosts

- IP-based Virtual Hosts

が存在する。今回、前者の Name-based Virtual Hosts を設定する。


ここで、Virtual Hosts を設定するために必要となる FQDN を定義する。以下を /etc/hosts に記述しておく。

# vi /etc/hosts

192.168.117.128 site000.satoshiabe.jp
192.168.117.128 site001.satoshiabe.jp





03. Configuring Name-based Virtual Hosts


上記で /etc/hosts に定義した FQDN が使用する DocumentRoot を作成しておく。

# mkdir /usr/local/httpd-2.2.11/htdocs/site000
# mkdir /usr/local/httpd-2.2.11/htdocs/site001


それぞれの html フィアルを作成する。

# echo "index.html at site000.satoshiabe.jp" > /usr/local/httpd-2.2.11/htdocs/site000/index.html
# echo "index.html at site001.satoshiabe.jp" > /usr/local/httpd-2.2.11/htdocs/site001/index.html



Ubuntu Linux の場合、Web サービスを提供する一般ユーザが、OS と同時に作成されるようだ。そのユーザで Apache HTTP Server のプロセスを起動するよう設定する。

# chmod -R www-data:www-data /usr/local/httpd-2.2.11



httpd.conf を編集する。

# vi /usr/local/httpd-2.2.11/conf/httpd.conf

NameVirtualHost 192.168.117.128:80

<VirtualHost 192.168.117.128:80>
    DocumentRoot    /usr/local/httpd-2.2.11/htdocs/site000
    ServerName        site000.satoshiabe.jp
    ErrorLog             /usr/local/httpd-2.2.11/logs/site000.log
</VirtualHost>

<VirtualHost 192.168.117.128:80>
    DocumentRoot    /usr/local/httpd-2.2.11/htdocs/site001
    ServerName        site001.satoshiabe.jp
    ErrorLog             /usr/local/httpd-2.2.11/logs/site001.log
</VirtualHost>



# 起動するユーザとグループを指定する

#User daemon
#Group daemon
User www-data
Group www-data



VirtualHost ディレクティブの外に位置する ServerName と DocumentRoot をコメントアウトすること。



以上だ。プロセスを起動してみよう。

# /usr/local/httpd-2.2.11/bin/apachectl start



Web ブラウザで以下の URL を閲覧し、画面が表示されるかを確認する。なお、VMware Fusion をホストしている Mac OS X において /etc/hosts を編集していないため、以下の URL を Ubuntu Linux 上の Firefox で確認した。先ほど作成した index.html ファイルを閲覧できれば正常に動作している。

http://site000.satoshiabe.jp/
http://site001.satoshiabe.jp/

Saturday, April 25, 2009

04/25/2009


  • 14:30 ごろ起床した。

  • 雨だった。

  • Git 勉強会を未遂で。



Installing Ubuntu Linux 9.04 on ThinkPad X31

Coming Soon !!

# ThinkPad X31 に Ubuntu Linux 9.04 をインストールした記録を紹介します。

Friday, April 24, 2009

04/24/2009


  • 新宿で飲み会だった。

  • 24:30 ごろ自宅に到着した。

  • Git 勉強会ネタに tweet したら @goyoki さんが反応してくれた!

  • 会場を確保できるか?


Thursday, April 23, 2009

04/23/2009


  • IIJ 本社@神保町で開催された Debug Hacks Conference 2009 に参加した。

  • やはり、Java より C で仕事をしたいと改めて実感した。

  • 計画を前倒したい。

  • 25 日に神保町で開催される Git 勉強会を発見したが、完全に出遅れてしまった。とりあえずキャンセル待ちで...。


Wednesday, April 22, 2009

04/22/2009

Tuesday, April 21, 2009

04/21/2009


  • 自分の仕事の状況を正確に把握していず、やんわりと指摘された。

  • 例の女性は、今月末で退社することが確定していることを本人から聞いた。

  • 確定しているなら、もう少し早く伝えてほしかった...。

  • とある tweet に数名からリプライをいただいた。

  • 速攻で返信できず、自分の英語力の低さを痛感した。

Monday, April 20, 2009

04/20/2009


  • ひたすらドキュメントを作成していた。

  • PostgreSQL の設定を、だいたい理解した。




Sunday, April 19, 2009

04/19/2009


  • 14:00 すぎに起床した。

  • 簡単に部屋を片付けした。

  • シャワーってるときにクロネコが。

  • ASPIRE ONE で DH-KONE/U2V 動作させられなかった。


Saturday, April 18, 2009

04/18/2009


  • 13:30 ごろ起床した。

  • ソフトバンクショップにて支払いのクレジットカードを変更した。

  • 自宅に近い携帯電話ショップで店員とゴニョゴニョした。

  • いったん自宅に戻った。

  • 再度、先ほどの携帯電話ショップで L-02A を購入した。

  • 引き取りに 1 時間くらいかかるとのことで、いったん自宅に戻った。

  • L-02A は、Linux や BSD で利用しにくい、という情報を入手していたため、Yahoo! オークションで A2502 を落札した。本体 5,000 円と送料 500 円なり。

  • 19:00 すぎにショップに出向き、商品とマシンを引き取り。

  • そう、100 円で ACER の PC を購入できますよ、って言われたから購入した。

  • マシンをセットアップした。

  • L-02A 経由で MacBook からインターネット接続にハマったが、最終的に接続できた。

  • NTT docomo の FOMA サービスは、エリア的に完璧なので、どこへ移動しても安心だ。

Friday, April 17, 2009

04/17/2009


  • また社長が来て、書類を記載するハメに。

  • メインは、それじゃなく?、同僚の状況がヤバかったから、だったからかもしれない。

  • 愛想ない人、と指摘された。

  • こっちが何を考えているのか、まったく聞く気なし。

  • どうでもいいよ。

Thursday, April 16, 2009

04/16/2009


  • 午前中から予定されていた?レビューは、実行されなかったようだ。

  • 明日な予感...。




Wednesday, April 15, 2009

04/15/2009


  • 昨日、終業のタイムカードをおしていないことに気づいた。

  • 21:00 まで残業した。




Writing scripts with utf-8 in Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-

Tuesday, April 14, 2009

Monday, April 13, 2009

04/13/2009


  • 今日までファイルを更新する作業だった。

  • 明日から開発用サーバを設定する予定だった。

  • 19 時ごろに I さんから作業の指示をもらった。

  • 16 日の朝まで提出なので、つまり 15 日中にまとめなければ。


Sunday, April 12, 2009

04/12/2009


  • BlackBerry Bold を購入するため有楽町の biccamera へ。

  • 在庫をきらしていた...。別館(無印良品な方)も在庫なし。

  • しばらく悩んだ後、在庫を確保していそうなショップに電話をかけてみることにした。

  • 新橋のドコモショップが在庫を確保していることを確認し、新橋へ移動して機種を変更した。


draft : workshop.sh#001

shell についての勉強会を計画しています!



目的 :

日頃、Unix や Linux や Mac を操作している技術者は、shell を起動して何かしらのコマンドを実行したりしているはずです。この shell は、多くの機能を実装していますが、必ずしもすべての技術者がすべての機能を理解していないはずです。

もし、普段の作業を格段に効率よく実行できる機能を shell が実装しているとしたら、技術者は、それらの機能を知りたいはずです。今回、shell に興味をもっている技術者が交流する場を用意し、知識を共有したり、新しい知識を発見する機会にしたいと考えています。



私は誰 :

私は @satoshiabe といいます。プログラマで、Java による Web アプリケーション開発を主に担当しています。ただし、ごく最近になって開発の仕事をはじめたため、正直なところ初心者です。

私は、ThinkPad ユーザです。所有している PC の構成は、1 台の MacBook White を除いて、すべて ThinkPad です。R52 x 2, T41 x 3, T42 x 1, T60 x 1, X31 x 4, X60 x 1 と合計で 12 台の ThinkPad を所有しています。通常、1 回目の起動で Windows を削除し、Linux または BSD な OS をインストールします。主に Ubuntu Linux を利用していますが、その前は FreeBSD だったり、openSUSE だったり Debian GNU/Linux だったり、Vine Linux などなどを主に利用していました。自宅で Windows を利用しなくなってから 4 年ほどが経過したと思います。

shell は、Unix または Linux の操作で最初の壁であると考えています。同様に、私も最初まともに操作できませんでした。ただし、しばらくの間、以下の本を読んで、shell の理解を深めた - ほんの少しだけ - ところ、ある程度、効率的に操作できるまでに成長しました。

入門 bash
入門 UNIX シェルプログラミング

私も、ある程度しか shell を理解していません。そのため、今回のような workshop を企画し、自分の知識を充実させる機会にしたいとも考えています。



勉強会の内容 :

決定していません。すべて候補です。

・shell の入門的な内容
・shell の入門レベルの次のレベルな内容



対象の技術者 :

普段 Unix や Linux や Mac を利用していて、かつ、以下に該当する人。

・shell の操作を学びたい人
・shell の操作の学び方を知りたい人
・shell scripting を学びたい人



対象となる shell の種類 :

bash
zsh も?



人数 :

最大 20 名を想定



会場 :

都内です。
実際に勉強会が開催されるなら会場を確保します。



課題など :

・勉強会を開催について告知する方法
・本当に人が集まるか

Saturday, April 11, 2009

04/11/2009


  • ネコ充

  • また BlackBerry Bold を買えず




Friday, April 10, 2009

04/10/2009


  • ほぼ 19:00 で終業した。

  • 急ぎ足で綾瀬へ。

  • エトセトラの携帯電話ショップは、BlackBerry Bold の在庫をもっていなかった。

  • 駅前のドコモショップは 20:00 で終了していた...。


Thursday, April 09, 2009

04/09/2009


  • それほど良い体調でなかったが出社できたので仕事をした。

  • 省エネモードで。

  • 終業な時刻あたりに体調が悪化していることに気づいた。

  • なんとか帰宅した。

  • TL を眺めながら将来について考えていた。

Wednesday, April 08, 2009

04/08/2009


  • 悪すぎた体調

  • 初台へ移動していつ途中、湯島で下車して吐いた。

  • 休憩してから自宅へ戻り、休暇をもらう連絡をした。

  • 18 時ごろまで寝ていた。


Tuesday, April 07, 2009

04/07/2009


  • 今日の作業は SoftBank 端末における受け入れテストの実践だった。

  • 機種やキャリアが異なると操作も異なるから困る。




Monday, April 06, 2009

04/06/2009


  • ほとんど眠れなかったようで、かなり寝不足だったようだ。

  • 顔色が悪いと指摘された。

  • 聞き慣れた指摘だが...。

  • 私服で出社したら軽く注目された。


Sunday, April 05, 2009

04/05/2009


  • 13:30 ごろに起床した。

  • 五反野まで散歩した。

  • 北千住で買い物をした。



Saturday, April 04, 2009

04/04/2009


  • 13:30 ごろに起床した。

  • 特別、何もせずダラダラと...。




Friday, April 03, 2009

04/03/2009


  • Vim 勉強会 に参加した。





Thursday, April 02, 2009

04/02/2009


  • 今日もスーツで出社した。

  • デスクとデスクの隙間にタイムカードを落としてしまい困った。

  • つか、コンテンツはエロぱかりなんですけど。

  • 帰り道、途中までジャケットの裾をベルトにインしてしまっていた。。。

  • FreeBSD 7.1 on ThinkPad X31 を Apple AirPort に接続する方法を確認した。

Wednesday, April 01, 2009

04/01/2009


  • 本日から初台の現場で業務を開始する予定

  • なぜか 13:00 からの開始

  • 集合の時間は 12:50