があるんですけど、だいぶ前から府大の情報工の第3講座の人達がかかってるみたい。

こんなの↓
virus_messemger.bmp

だいぶ前から、友達にウィルス感染してるよー、って言ったんだけど気付いてないようだ。

3ヶ月前から、未だに第3講座のM2からウィルスURLのメッセージが来るんで、気付いた方は伝えてあげて下さいな。

いきなりURLだけ貼ったメッセージが来て、相手は知っていてもすでにログアウトしてるような状態だったら、そのURLは決して踏まないように。

踏んじゃったら、「メッセンジャー ウィルス URL」あたりでググって下さい。

こんな感じの人は要注意↓

ircdを自分だけが使用し、大量に書き込みが許される状況では、ircdのExcess Floodの機能が非常に邪魔だ。

数キロバイトのテキストがircdに貯まるだけで、Excess Floodが発動し、強制ログアウトさせられる。

configで機能を削除する方法もあったが、とりあえずソースを弄って、Excess Floodの機能を削除した。

Excess Floodとmsg_readyエラーを削除する必要がある。


以下にソースを弄ったログを。
簡易コンパイラのコード生成処理のルーチン。

スタック内での動きを記述。

これで、様々な四則演算をコンピュータにコードで教えることができる。


ソースは↓

前にバイト先でとっておもお世話になった方から、心やさしい報告をしてもらった。

「コメントかけない」

あら、本当に書けない。

は、個人的には必要以上に言えば言うほど、恥ずかしいことだと思っている。

確かに、素直にしんどいときはしんどいといえばいい。

しかし、ただ、自分がやっていることを他人に認めてもらうために発する「しんどい」という言葉。


自分だけがしんどいのか?

自分よりも努力している人がいるのではないか?

もっとしんどい思いをしている人がいるのではないか?


そういう可能性があるということを、是非もっと考えてもらいたい。

IMG_3050.JPG

英国のクロケットとは、当然のごとく「クロケット&ジョーンズ」である。

様々なOEMを手掛け、陰の実力者として君臨し続けている。

では、イタリアのクロケットとはなんなのか。


それは、ずばり「サントーニ(Santoni)」である。


イタリアでも、最高級の靴を製作している最高峰の靴メーカーであり、数々のOEMも手掛けている。

そんな、それぞれの国で同じような立場としてやってきた、クロケット&ジョーンズとサントーニの靴を並べてみた。

価格対は同じで、高級ラインの靴である。

■ジャケット
・ISAIA
・Ermenegildo Zegna
・Cesare Attolini
・KITON
・RING JACKET
・Raffaele Caruso
・BOGLIOLI
・Belvest
■シャツ
・FRAY
・BORRELLI
・BARBA
・GUY ROVER
・Charvet
■意外と作りの良いものを売っている
・TOMORROWLAND

と、書くと、すごく批判的な感じに見えてしまうが、そういうわけではない。

小さいころに、多くの人が想像して楽しんでいたSFのような世界が、今ここで実現しているわけだから。


人々が想像したり、「こうだとおもしろいなー」と思うようなことを、いとも簡単に実世界に実現してしまうGoogleとMac。


本当に強烈な才能を感じる。

しかし、今回僕が思ったのは、みなが批判的に言っている「見える」ということに対してではないのだ。

本当にこれから、ストリートビューのような機能が進歩し、地球のすみずみまで見ることができるようになったとき、本当に懸念すべき点は、「見えない」ということなのだと思う。

さてさて、構文解析1メモにおいてコーディングした構文解析部の残りのルーチン3つを今回は記載。

おさらいとして、以下のように解析の流れを構造化しておく。
/*

E → TE'
E' → +T[+}E'|ε
E' → -T[-}E'|ε
T → FT'
T' → *F[*]T'|ε
T' → /F[/]T'|ε
F → (E)|i[i]|num[num]

*/

/*
E'がsyntactic_analysis_2()関数に対応
T'がsyntactic_analysis_3()関数に対応
F がsyntactic_analysis_4()関数に対応
*/

では、残りのコードを以下に示す。↓

IMG_3057.JPG

僕は基本的に、ファッションに関して、流行に対する興味などはほとんど無い。
そんな感じなので、最近のお洒落や流行の服装といったものはほとんど知らない。

しかし、そんな僕が興味を持っているのは(服装に関わらず全てに対して言えることだが)、昔からの伝統的かつ普遍的なファッションであり、長期間の着用に耐えうる頑丈さを持っていて、これからも永遠に無くなることがないであろうファッションには、非常に興味がある。

人生の相棒となり得るファッション。

そして、今日、僕のその興味にぴったりあてはまるシャツをついに購入したのだ。

それが、ブルックス・ブラザーズのポロカラーシャツ(Traditional Fit)である。

こんなのでできてしまう。

ircdのソースを参考にコーディング。
# cat c/os_chk.c
#include<stdio.h>

int main()
{

#if(defined(__NetBSD__))
{
        printf("NetBSD\n");
}
#elif(defined(linux))
{
        printf("linux\n");
}
#elif(defined(__FreeBSD__))
{
        printf("FreeBSD\n");
}
#else
        printf("error\n");
#endif
        return 0;
}
どうも、この書き方が苦手だ。
$file = `cat hoge.txt`;

かなり多様されてはいるものの、やはりできるだけ使用言語によるコーディングを心がけたい。

しかし、確かに、open→while→closeと段階を踏んで記述するのも、面倒と言う気持ちも分かる。

というわけで、サブルーチンにファイルオープン処理を記述してやると、多少便利だと思った。
sub get_text_file
{
         open my $FILE_HANDLE , $_[0] || die("File Opne Error.");
         local $/;
         <$FILE_HANDLE>
}
これでだいぶ手間が省ける。
↓コーディング例
# cat test.pl
#!/usr/bin/perl

my $file = &get_text_file($ARGV[0]);
print $file;

sub get_text_file
{
        open my $HANDLE , $_[0] || die("File Opne Error.");
        local $/;
        <$HANDLE>
}

# cat hoge.txt
frpijfweroi
fdrfefwfewef
fuok

# ./test.pl hoge.txt
frpijfweroi
fdrfefwfewef
fuok

変なことを言うなと思う人もいるかもしれない。

昔から、生命科学において説明が難しいとされている、人間の「意思」。


世界が、人間をミクロレベルから人工的に作り上げるほどの技術力に至ったとしても、そこに人としての「意思」は宿らないと言われている。

「迷い、気まぐれ、なんとなくの行動」

ここには全て、人間の意思が働いている。


しかし、近頃コンピュータに「意識」というか、「人間らしさ」を感じることがある。

結構使えて、意外と忘れてしまうmysqlのコマンドをメモっとこう。

・数字を大小でソート(数字の桁数をそろえてソートすればおk)。 10桁にそろえて、降順でソート。
mysql> select * from テーブル where カラム like "%ワード%" order by LPAD(size, 10, '0') DESC;
その他色々↓
構文解析のアルゴリズムはこんな感じ。
/*

E → TE'
E' → +T[+}E'|ε
E' → -T[-}E'|ε
T → FT'
T' → *F[*]T'|ε
T' → /F[/]T'|ε
F → (E)|i[i]|num[num]

*/

/*
E'がsyntactic_analysis_2()関数に対応
T'がsyntactic_analysis_3()関数に対応
F がsyntactic_analysis_4()関数に対応
*/
コード↓
四則演算の字句解析を実装してみる。 コード↓
作業前はとりあえずダンプ。
# mysqldump -u root -p mt_db > mt.db

適当にupdateしてみる。
mysql> select * from mt_log where log_id='1301';
+--------+---------------+-------------+--------------+-------------+--------------+
| log_id | log_author_id | log_blog_id | log_category | log_class | log_ip      |
+--------+---------------+-------------+--------------+-------------+--------------+
|   1301 |             1 |           0 | NULL         | system    | 192.168.0.5 | 
+--------+---------------+-------------+--------------+-------------+--------------+

mysql> update mt_log set log_ip='192.168.0.3' where log_id='1301';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from mt_log where log_id='1301';
+--------+---------------+-------------+--------------+-------------+--------------+
| log_id | log_author_id | log_blog_id | log_category | log_class | log_ip      |
+--------+---------------+-------------+--------------+-------------+--------------+
|   1301 |             1 |           0 | NULL         | system    | 192.168.0.3 | 
+--------+---------------+-------------+--------------+-------------+--------------+
1 row in set (0.00 sec)
サーバーの俺俺証明書の更新期限が来たので、更新してみる。

前回は真剣に作ったが、所詮俺俺証明書なので、今回は適当に10年分くらいの証明書を作ってみた。

以下にそのログをば。
# openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
......................++++++
.......................++++++
e is 65537 (0x10001)
Enter pass phrase for server.key:
Verifying - Enter pass phrase for server.key:

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key:
writing RSA key

# openssl req -new -key server.key -x509 -days 4000 -out server.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:ore
Locality Name (eg, city) [Newbury]:ore
Organization Name (eg, company) [My Company Ltd]:ore
Organizational Unit Name (eg, section) []:ore
Common Name (eg, your name or your server's hostname) []:oreore
Email Address []:

# locate server.key
/etc/httpd/ssl.key/server.key

# locate server.crt
/etc/httpd/ssl.crt/server.crt

# mv /etc/httpd/ssl.key/server.key /etc/httpd/ssl.key/server.key.old
# mv /etc/httpd/ssl.crt/server.crt /etc/httpd/ssl.crt/server.crt.old
# mv server.key /etc/httpd/ssl.key/
# mv server.crt /etc/httpd/ssl.crt/
# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

mysqlでよく用いられるinnoDBテーブルのデータ構造は、木の葉のようになっている。

データをinsertしていくと、まず一枚の葉にデータがinsertされていく。

そして、ある数までデータが挿入されると、新規の葉を作成し、インデックスをつけて、新たにそっちの葉にデータを挿入していく。

このようなinnoDBテーブルの構造上、面白い現象が生じる。

CentOsにhping3を導入する際に、やった作業をメモ。

# wget http://www.hping.org/hping3-20051105.tar.gz
# tar zxvf hping3-20051105.tar.gz
# yum install libpcap-devel
# ln -s /usr/include/pcap-bpf.h /usr/include/net/bpf.h
# ./configure
# make
# make install

libpcapdevelをインストールしておくことと、pcap-bpf.hをnet/bpf.hへリンクを貼っておくのが肝。
コンソール系ショートカットを色々研究してみた。

よく分からないのとかも色々あったが、適当にメモ。
Ctrl:C- とする。

C-w:カーソル位置から左のスペースまで後ろから切り取り、順番に保存
C-u:カーソル位置から行頭まで全て切り取り
C-y:直前までの溜まった切り取り(C-wとかC-u)を貼り付け
C-k:カーソル位置から文末までを切り取り

C-f:右へ移動
C-b:左へ移動
C-a:行頭へ移動
C-e:行末へ移動

C-p:コマンド履歴を過去に戻る
C-n:コマンド履歴を現在に進む

C-i:TABと一緒
C-o:コマンド実行後、1つ前のコマンドを保存表示?
C-j:コマンド実行
C-m:コマンド実行

C-d:Delete(NULLで行うとexit)
C-h:Backspace

C-r:入力文字列に一致するコマンド検索(再押下で別の候補を表示)

C-t:2文字前と1文字前を入れ替え

C-l:clearコマンドと一緒

C-s:コンソールロック
C-q:コンソール解除

C-c:コマンドラインキャンセル
C-z:プロセスを途中で殺す

C-v:押下後C-*でコントロール文字を標準出力

C-x:2度押しでカーソルの移動、現在地と行き先をCtrlを離した時点で記憶?

「The Hacker Ethic」という本を読了した。

ハッカー達の労働倫理とは、金銭自体が価値のあるものだとせずに、自分の活動自体が社会に及ぼす影響、また、自分達が持つ情熱を共有し、共有したもの同士から認められたいと思う、そこに価値があるということだ。

これはもう興奮せざるを得ない。

ある程度期待はしていたが、ここまで素晴らしい商品が届くとは思っていなかった。
前回のシングル天ファスナーが届いた時以上の感動だ。

万双は、本当にいい意味で期待を裏切ってくれる。
これからも、ここの鞄を買い、そして使い続けたいと思う。

本当に満足だ。

ではお待ちかねの写真をどうぞー。

※あえて写真は続きに貼った。全部で15枚近くあるよ。

IMG_3026.JPG

クロケット&ジョーンズのハンドグレードラインの靴は、本当に素晴らしいと思う。
確かに、昔のようなコストパフォーマンスは無いが、ハンドメイドを各所で用いた作りの良さは、やはり履き心地のよさに直結している気がする。

上の写真は、ALBANYと呼ばれる337ラストのDウィズのハンドグレードラインのものだ。
この、ぷるるんとした肉厚のあるしっとりとした皮が見てわかるだろうか。

今回は、ハンドグレードラインの337ラストの7ハーフのDウィズと7ハーフのEウィズを写真で比較したいと思う。

同サイズで違うウィズを買ったのは、自分の足の形とか、それなりの理由があるが、今回はそれ気にしないということで・・・

IMG_3021.JPG

値段的には、本格靴のエントリーモデルといわれるようなもの(4万くらい)でも、その靴を大事にしてきちんと付き合っていけば、美しく育っていく。

それが、革靴のいいところだ。

今日は、ストラスブルゴというお店にエドワードグリーンの靴とベルトを見に行った。
そこのグリーンを履いた定員さんに、「靴綺麗ですねぇ、きちんと手入れしてますね。どこの靴ですか?」と聞かれたとき、やはり単純にうれしくなった。

基本的には自己満足の世界だが、靴のことを分かっている人に認められるようなことを言われた時は、さらにうれしい瞬間でもある。

今日は、ジョンストン&マーフィーの靴を履いていった。

その写真を載せようと思う。

前々から欲しいと思っていた万双のショルダーバッグを予約した。

万双:ショルダーバッグ

来週には届くようだ。

何色にするかすごく迷っていたのだが、家族や友人の意見を全て考慮に入れた上で、自分の服装の色合いとの兼ね合いから、キャメルを選択した。

個人的にも、キャメルの革鞄がすごく好きだ。

また届きしだいレポしようと思う。


最近注目している革鞄は、Flathority by Le Bonheurで、ここのボストンバッグが最近見た中では、一番魅力的だ。

機能性にすごくこだわっているのにも関わらず、外見の魅力も素晴らしい。
オールレザーであることも魅力だ。

参考:ミネルバボックスで作ったフラボナ・ボストン

ボストンを買う時は、おそらくこのボストンになるだろうな・・・。

IMG_3020.JPG

ということで、靴をきっちり磨いてみた。

というのも、つま先部分を油性クリームでコーティングしていなかったため、革にダイレクトに傷がついてしまったためだ。

結構ショックを受けたが、磨いてみるとほぼわからなくなった。

やっぱり、傷防止の意味で、つま先をポリッシュで磨いておくことは必須のように感じた。

綺麗に磨けたので、今日磨いたスコッチのオデッサと、クロケットのオードリーを写真でとってみた。

昔は思いもしなかったけど、本は本当にすばらしい。

確かに、読者と著者の主張の双方向性(インターネットの特徴とされている)は無いが、一人の人間の思考の芸術や意見・主張を、ここまで詳細に理解でき、述べたれているものはない気がする。

人間の考えの一部を理解するだけでも、やっぱり400ページ近くの文章になる。

やっぱり、人間の思考って、そう簡単なものじゃない。

人間の芸術作品の筆頭ではないだろうか。

で、

とりあえず現在読んでいる本のリスト
・CODE
・The future of ideas
・The World is Flat
・The Hacker Ethic
・The Search

まだ、読んでいない本も他にあるので読まなきゃ・・・

僕がよく科学や哲学、ネットワークやサーバのことなどを調べたり、それに関する専門書を読んでいたりすると、友人や知人から、「よく勉強するなぁ」と言われる。

普通はこれをなんとも思わないかもしれないが、僕はいつもひっかかってしまうのだ。

今回は、psコマンドなどでPIDを調べてkillするのが面倒な場合などに便利なスクリプトを紹介しようと思う。

例えば、killしたいプロセスの名前がある程度分かっている場合などで便利だ。

まずは、実行結果を簡単に説明していこう。

基本的には、

検索→マッチしたプロセスを全て消すか選択して消すか→繰り返し・・・→終了

といったように、対話的に実行していく。
$ ./process_search_kill.pl
Argv error.
$ ./process_search_kill.pl irc

PID     Deny(*) (PROCESS INFO)
=========================
3756    *       (root      3756  0.0  0.4   .* ircd -c)
6870    *       (root      6870  0.0  0.9   .* ./irc_write_httpd.pl)
8111            (500       8111  0.0  0.9   .* ./irc_write_message.pl)
8112            (500       8112  0.0  0.9   .* ./irc_write_secure.pl)
8942    *       (root      8942  0.0  0.9   .* ./irc_write_httpd.pl)
8943    *       (root      8943  0.0  0.9   .* ./irc_write_httpd.pl)
=========================
( * :Permission deny or killing now)

PID is accessible:      8111 8112
PID is not accessible:  3756 6870 8942 8943

kill above all/select process except * ?[all/select/finish]:select
Select[finish/PID is alive].
[8111 8112 finish]:8111
kill 8111

PID     Deny(*) (PROCESS INFO)
=========================
3756    *       (root      3756  0.0  0.4   .* ircd -c)
6870    *       (root      6870  0.0  0.9   .* ./irc_write_httpd.pl)
8112            (500       8112  0.0  0.9   .* ./irc_write_secure.pl)
8942    *       (root      8942  0.0  0.9   .* ./irc_write_httpd.pl)
8943    *       (root      8943  0.0  0.9   .* ./irc_write_httpd.pl)
=========================
( * :Permission deny or killing now)

PID is accessible:      8112
PID is not accessible:  3756 6870 8942 8943

Select[finish/PID is alive].
[8112 finish]:finish

$

このように、第一引数に検索文字列を指定し、実行すると、文字列に一致するプロセス一覧が表示される。

そして、実行したユーザーがアクセス不可なプロセスには「*」が付けられる。

これで、「all」によって、アクセス可能なプロセスを全てkillするか、「select」によってプロセスを選択しながらkillしていくことができる。

最後は「finish」で終了する。

結構単純なスクリプトだが、意外と便利だ。

以下にソースを示す。

The Hacker Ethic and the Spirit of the Information Ageを読んだ。

プロテスタント以前の労働倫理である「人生は日曜日」、またプロテスタント以降宗教革命以後の労働倫理である「人生は金曜日」。

そして、未だに根強くはびこっていることプロテスタント的労働倫理。

このことに対して、「なぜ?」と疑問を抱ける人間と共に仕事をしていきたいと思う。

自分にとっての仕事、それが、

自分にとっての娯楽、しかし、それは真剣な娯楽なんだ。
それが最高なんだよ。

と、Linusは言った。

あらゆる分野のハッカーである限り、この気持ちを忘れてはいけないと思う。

前回の記事で、apacheのログ出力をスクリプトに渡すには、httpd.confのCustomLogの部分をパイプを使って書けばいいだけでした。

しかし、syslogの場合は、syslog.confに同様の記述をすると、スクリプトのソース内にログを出力してしまいます。

そのため、syslogの出力をスクリプトに渡すには少し工夫がいるわけです。

今回はその手順を簡単に説明します。
自宅サーバーでも日常的にapacheのログを監視したいけど、いちいちサーバーに入ってコマンドたたいて・・・っていうのが面倒だと思います。
そこで、ircサーバーを使って、apacheのログ監視をする方法があります。
ircサーバーのチャンネルにapacheのアクセスログを出力することで、リアルタイムでアクセスがあればircのクライアントに表示されるという仕組みです。
アクセスログをircサーバーに書き込むスクリプトをperlを使って書いてみました。

apacheのhttpd.confに以下のように追記するだけで、スクリプトを経由してリアルタイムでircに出力してくれます。
CustomLog "|/root/src/irc_write_httpd.pl" combined

スクリプトはこんな感じです。
ソケットを使うことを意識して書いてみました。
ソケット通信の勉強として、HTTPでHTMLを取得するコンソールブラウザみたいなものを、perlで作ってみました。

アプリケーション層のみの実装でいいので、かなり簡単にできてしまうんです。

次回はこれを利用して、動的IPのチェックスクリプトみたいなものを作ろうと思います。

実行は以下のように、URLを第一引数にとって実行します。
$ ./browser.pl http://www.google.cp.jp/
実行するとHTMLのソースが標準出力されます。

ソースは以下。
※参考記事
■ コンソールでscreenを使い倒す

前回のをもう少し改良してみました。
screen主要コマンド

screenコマンド実行後
(C・・Ctrl,S‥Shift)

C-aでsecreenコマンド開始

C-a
{
	if S-s	//ウィンドウ分割
	{
		C-a
		{	Tab	//分割画面を移動
			S-q	//現在の領域以外全て破棄
			S-x	//現在の領域を破棄
		}
	}

	C-c	//ウィンドウ作成
	C-p	//前のウィンドウへ移動
	C-n	//次のウィンドウへ移動
	C-a	//前回表示ウィンドウへ移動
	S-k	//ウィンドウを破棄
	1-9	//番号のウィンドウへ移動

	C-d	//SCREEN detach
}


便利な.screenrc
------
bind w windowlist -b
#hardstatus alwayslastline "Screen [%w]"
hardstatus alwayslastline "[Screen] %`%-w%{=b bw}%n %t%{-}%+w"
startup_message off
autodetach on
------

但し、autodetachがonなので、C-aC-dでデタッチした後は、もう一度終了時のスクリーンを呼び出すために、
$screen -x
で起動すること。

見た目はこんな感じです↓
IMG_2934.JPG
※参考記事
■ 鞄購入[万双 シモーネシングル天ファスナー]

購入してから、それなりに手入れして、それなりに使ってみた結果、どれくらい革が馴染んできたかを写真で比較してみました。

比べてみると、本当にすごい。

色が濃くなり、艶がでて、そしていい感じで馴染んでいることが見てとれます。
これは、何よりも写真でみないといけませんね。

ベルトが欲しいなー、と思っていて、給料も入ったことなのでベルトを買いました。

最後まで、エッティンガーの牛革ベルトとキプリスのシェルコードバンベルトで迷っていたんですが、エッティンガーのベルトの保存状態が悪かったのと、シェルコードバンがあまりにも美しかったので、キプリスのベルトを購入しました。

キプリスのシェルコードバンは以下のように言われています。
※商品についていたタグより

キプリスのオイルシェルコードバン革小物は、馬の尻の部分を何ヶ月も時間をかけ、伝統的なななめし方法によりなめされたとても貴重な革です。
繊維が非常に緻密である為、牛革の2倍の強靱さを備えています。
特にこのシリーズで使用している素材は、コードバンの持っている自然な風合いを最大限に生かし、なめし後にオイルを加え無染色のままグレージング(艶だし)加工を施したものです。
そのため毛穴や色ムラがよく見え、2つと同じ表情のものがない革小物です。
使い込む程に増す“味”をお楽しみください。

また、某巨大掲示板では以下のように称えられています。
※2Ohより

国産財布のパイオニア
キプリス・・・
英国財布が徐々にファッションアイテムとして知名度が上がる中、国産メーカーの技術とコストパフォーマンスを生かす動きが出てきた。
その中で、最も早くから人気を得たのがキプリス。
一時は、ここのシェルコードバンを「神の財布」を讃えるレス多数。
ラインナップは、低価格品には中国製があるが、高級品は日本製を守る。
素材使いの多様さや、細かい部分のつくりの繊細さは日本メーカならでは。

まぁ、とりあえず写真を見ればその美しさが分かります。

会話をしていて、やりとりがあったとき、質問に対して素早く答える人は頭がいい、というイメージがありますよね。

確かに、早く答えることは、

「質問に対する答えを理解している」
という意味では、頭がいいのかもしれません。

サーバとかで、直接コンソール扱ってるときとかって、screenコマンドが便利ですよね。

というか、screenがないと何かプログラムを前で走らせたら、ほかのことができないですよね。

というわけで、screenコマンドの主要な使い方をまとめておきました。(自分のためですけど・・・)
変なメモの書き方ですが気にしないでくださいね。

screen主要コマンド

screenコマンド実行後
(C・・Ctrl,S‥Shift)

C-aでsecreenコマンド開始

C-a後
{
	C-c	別ページのウィンドウ作成
	{
		C-p	前のウィンドウへ移動
		C-n	次のウィンドウへ移動
	}
	
	S-s	画面を分割
	{
		Tab	分割画面を移動
		C-c	分割画面にウィンドウ作成
		S-q	現在の領域以外全て破棄
		S-x	現在の領域を破棄
	}
	
	C-d	screen終了
}

おまけ。
いつも使う機能は.screenに記述しておく。
自分のホームディレクトリにおく。

$cat .screenrc
bind w windowlist -b
hardstatus alwayslastline "Screen [%w]"
startup_message off
autodetach on
Perlで、shを実行できますよね。

shって結構お手軽で便利なコマンドがあるので、perlの中でも使いがちがんですが、実はかなり実行速度が遅いんですよね。

こういう話をどっかで聞いていたんで、実際にテストしてみました。
このテストでは、perlでファイルをreadするときに、perl内でハンドルをopenして読み込むか、sh呼び出してcatを用いるかで比較しました。

するとこんな結果になりました。
# ./roupe_test.pl
=== Start!! ===
--- PERL_TEST(FILE Read [perl_roupe]) ---
[test 1](0s .85510ms)
[test 2](0s .73861ms)
[test 3](0s .73888ms)
[test 4](0s .74111ms)
[test 5](0s .74027ms)

--- PERL_TEST(FILE Read [sh_roupe]) ---
[test 1](4s .-69818ms)
[test 2](4s .-182927ms)
[test 3](4s .-141415ms)
[test 4](4s .-171225ms)
[test 5](3s .855982ms)

=== Finish!! ===

これって結構な差ですよね。

隠の王とブラスレイターもすごい面白い。

なんか、今春のアニメはみんな本気なのか??

とりあえず、ブラスレイターのゲルトは最高です。

コードギアスR2とマクロスフロンティアがすごーく面白い。

コードギアスの、なんというかあの、遠慮の無さ。
マクロスの、菅野さんの曲がスバラシイのと、戦闘の魅せ方がカッコイイ。

見てない人はオススメですよ。

ネットで色々見てると、インターネットは玉石混交と言わんばかりに、様々なコードが転がっていますね。
それで1つ気付いたコードを考察してみます。

まずはこれ。
$pager =& Pager::factory($pager_param);
$navi = $pager -> getLinks();
print($navi["all"]);

$currentPageID = $pager -> getCurrentPageID();
$index = ($currentPageID - 1) * $pagelimit + 1;

for($i = 1; $i < $index + $pagelimit; $i++)
{
	$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
	if($i >= $index)
	{
		print  $row['size']."," . $row['name'] . "</br>";
	}
}
このコードの範囲内だけ(こういうコードに至ったことの良し悪しは置いといて)で見たときに、少し改良できる点があります。

IPS(induced pluripotent stem cells)細胞っていうものが、京都大学の山中先生によって作られました。
これは、いわゆる万能細胞と呼ばれてる細胞です。

万能細胞とは、ニューロンや血球、心筋など、からだのあらゆる細胞になることができる細胞のことをいいます。 (しかし、胎盤にはなれないので、受精卵のように人体のあらゆる細胞になり得る全能性は持っていません。そのため、子宮にES細胞を置いても人間が生まれたりはしません。このように、ES細胞のことを全能性と区別して、多能性を持つとしています。)

万能細胞には、今までES(Embryonic Stem cells)細胞って細胞がありましたが、これは倫理面や拒絶反応の問題で実用化は難しいと考えられていました。

しかし、それらの問題点を完璧に解消したのがIPS細胞なんですよね。

LinuxやUNIXのコンソール画面のような見た目でソースやコマンドを表示するスタイルシートは以下。

pre {
        white-space: -moz-pre-wrap;
        white-space: -pre-wrap; 
        white-space: -o-pre-wrap;
        white-space: pre-wrap;
        word-wrap: break-word; 
        line-height: 110%;
    /* preの標準は行間が広いのでこれくらいが好み */
}

pre.sourcecode {
        margin:10px;
        padding:5px;
        background-color:black;
        color:  #00FF00;
        border:1px solid #DDDDDD;
}

これをCSSファイルに加えるだけで、<pre class="soucecode">タグでコンソール画面のようなスタイルが実現します。
コンソール好きには便利かも。
タブ区切りで作成されたテキストのCVSデータベースをMysqlにインポートするコマンドをメモしておこう。

[admin@server03 ~]$ tail -5 TABLE_name.txt
zenity.i386     2.16.0-2.el5    base
zisofs-tools.i386       1.0.6-3.2.2     base
zlib-devel.i386 1.2.3-3 base
zsh.i386        4.2.6-1 base
zsh-html.i386   4.2.6-1 base

[admin@server03 ~]$ mysqlimport --local -d -u USER_name --password="*****" DB_name TABLE_name.txt

これでOK。

カラムはタブで区切られた数だけ用意する必要がある。
上記の場合だと、パッケージ名、バージョン、状態、の3つのカラムをあらかじめDBのTABLEに作成しておく。