Home

memo-space

ブログの匿名指向

日本のブログは海外と比べて、匿名指向が強いそうだ。 というか、何だって海外の人は実名で書くんですかね。

僕が気にしているのは、ブログの炎上だとか会社から解雇されることなんかじゃない。例えば「来週から一週間旅行にいくんだよね」とか書いてると、 一週間後に実家に電話がかかってきて「お宅の息子さんが旅先で事故をおこしまして、、、示談にx00万円ほど、、、」とかいう事態になりかねないでしょう。これだけ顧客情報流出してるんだし。

なので、未来のことと直近のことはあまり書かないことにしている。 (今はたまたま実名出てませんが、わかる人にはすぐわかるので)。

日常的なことを書くのであれば、匿名の方が楽しいと思うし。 実生活ではあんまりだと思われるようなニックネームも名乗れるわけだし。 僕に文才があれば、キャリアOLや日本に来たばかりの外国人の日常を綴ったブログだって書けるわけだし。

デザインのことはよくわかりませんが

本屋に気になる本がある。

この装丁はどうなんだろう。どう見ても某カメラ屋。

速攻automake

何回やっても覚えられないので最低限のことだけ。

  1. ソースファイルを作る。

    #include <stdio.h>
    #include "config.h"
    
    
    int
    main(int argc, char **argv)
    {
        printf("hello, world\n");
        return 0;
    }
    
  2. (どうせ捨てるけど)Makefile も作っておく。空でいい。

  3. autoscan を実行し、できた configure.scan を configure.ac にコピー。

  4. configure.ac を編集。AC_INIT を直すのと、AM_INIT_AUTOMAKE を追加。

  5. aclocal, autoconf, autoheader を実行。

    #                                               -*- Autoconf -*-
    # Process this file with autoconf to produce a configure script.
    
    
    AC_PREREQ(2.59)
    #AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
    AC_INIT(hello, 0.0.0, iakio@mono-space.net)
    AC_CONFIG_SRCDIR([hello.c])
    AC_CONFIG_HEADER([config.h])
    AM_INIT_AUTOMAKE
    
    
    # Checks for programs.
    AC_PROG_CC
    
    
    # Checks for libraries.
    
    
    # Checks for header files.
    
    
    # Checks for typedefs, structures, and compiler characteristics.
    
    
    # Checks for library functions.
    
    
    AC_CONFIG_FILES([Makefile])
    AC_OUTPUT
    
  6. Makefile.am を作る

    bin_PROGRAMS = hello
    hello_SOURCES = hello.c
    
  7. automake --foreign --add-missing

友達が欲しい

b-link-treeがsplitする瞬間に興奮できるような友達が。特にrootのsplitが萌える。

PostgreSQLのソースツリーのあちこちにあるREADMEを読むために、kinko'sで簡易製本してみた。

本作った
本作った posted from フォト蔵

しかし、例えばPostgreSQLのソースの5%くらいを理解したとして、それはC言語のプログラマとしては貴重な経験なんだけど、PostgreSQLを使ううえでは単なるトリビアというか、なんの役のも立たないよなぁ。これがオプティマイザあたりまで理解できれば違うんだろうけど。

そうやって勉強して、自分のスキルを磨いて、結果として自分しか出来ない仕事を増やしていくことにも時々疑問を感じる。誰にも助けてもらえない所に自分を追い込んでいるだけじゃないのか。本当にそんなことがやりたかったんだろうか。

別にやりたくてやってるわけじゃない。病気みたいなもんかもしれない。

悲しいけどこれ、Unicodeなのよね

  • 2006-12-13
  • php

「すべての漢字を取り出す正規表現」をPHPで試す、を正しく行う:phpspot開発日誌

「すべての漢字を取り出す」というタイトルがどうなのって気もするが (やりたいことはトークン化です) それは置いといて。

Unicodeでやろうとすると、片仮名のヴより小さいヶの方が後だったり、 平仮名でもそもそもこの文字何て読むのってのがあったりする。 U+309fとか

「ヶ」が片仮名なのかどうかとかはゆにこーどのえらいひとにきいてください。

<?php
$strToSplit = "関ヶ原";

preg_match_all('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+/u', $strToSplit, $aMatches);
print_r($aMatches); // マッチ結果が全出力
?>

Array
(
    [0] => Array
    (   
        [0] => 関
        [1] => 原
    )

)

こういうのは取りこぼしがイヤなので、最後に.を付けておくといいと思う。

preg_match_all('/[一-龠]+|[ぁ-ん]+|[ァ-ヴー]+|[a-zA-Z0-9]+|[a-zA-Z0-9]+|./u', $strToSplit, $aMatches);

漢字に関してもいろいろあるけど書かない。

Perlなら、UnicodeのPropertyを使えるので(Dan methodか!?)、こんな感じか。

use Encode;
use utf8;

binmode STDOUT, ":encoding(euc-jp)";
my $strToSplit = "関ヶ原のタタカイABC01";
my @aMatches = 
    ($strToSplit =~ m/
    \p{Han}+|
    \p{Hiragana}+|
    \p{Katakana}+|
    [a-zA-Z0-9]+|
    [a-zA-Z0-9]+|
    .+
    /gx);
print join ',', @aMatches, "\n";

12月12日のいろいろ

blosxomでtdiaryのテーマ

blosxomでtDiary.orgのテーマを使えるようにしてみた、っていうのは冗談としてアリなんだろうか。

とりあえずmixi風

2006年も終わる頃にやるネタでもないんだろうが。

女性専用ジム

CNN.co.jp : 女性専用ジムに入会求め拒否される、男性の訴え却下 - ビジネス

というタイトルを見てこれ的なものを想像してしまう自分。

アスレチックジム、、、

11月29日のいろいろ

「お客様の中でプログラマーの方はいらっしゃいますか?」

とかいう小説を誰かに書いてほしい。なんかダイハード的なやつ。

還元論の話を聞いて、quick sort に失敗する様子を想像した。

nonomachon2nd東京到着

俺の中のホールデン・コールフィールド君の旅が終わったらしい。

nonomachon2ndの日記

これからも日記続けてほしいな。

学力って本当に低下しているのだろうか?

それでは、話を「人類」ではなく「日本人」、そして時代をせいぜい20年ぐらいに絞った場合はどうか?やはり学力は格段に上がっているとしか思えない。特に「Web以前」と「Web後」、そして「Google以前」と「Google後」では革命的な学力の向上が見られる。

404 Blog Not Found:学力って本当に低下しているのだろうか?

Google だとか Web まで辿りつけない生徒、あるいは教師、あるいは日本人もいっぱいいるだろうに。

苫小牧の観光情報のサイト

ようこそ苫小牧の観光情報へ(FireFox推奨)

今時<BLINK>かと思ったら、もっと予想外なことになっていた。スタイルシートで、

FONT{
  text-decoration : blink;
}

と指定した結果、<FONT size="-1">してあるところだけ点滅しているらしい。目立たせたいんだかそうじゃないんだかわからん。

スケート祭りは2/10〜/11です。

d…!れくとあんぐる…!

  • 2006-11-18
  • vim

きる…!れくとあんぐる…!:J

それを言うなら Vim では Ctrl+v で矩形選択して d でおk。

Emacsには負けないから…

最近はまっている食べ物

カネカシーフーズの「朝食おくらめかぶ」。 おくらとめかぶを混ぜただけのもの。ふざけたはなしだ。 こんなもの飯にかけて食べたら旨いにきまってる

で、また買いにいったら微妙に違うのが売ってた。 「おくらめかぶ - かつおたれとろろいも付き」だそうだ。 これだけでどんだけ飯を食わせるつもりだ。

11月9日のいろいろ

青空文庫をうろついていたら、こんなの見つけた。

図書カード:虫喰い算大会

ちょっと見ただけだけど、

       □7□□□
   _________
□□□)□□□□□□□□
    □□□□
   ―――――――――
      □□□
      □□□
      ――――――
      □□□□
       □□□
      ――――――
        □□□□
        □□□□
        ――――
           0

解ける気しねー。

痛いニュース(ノ∀`):【オーディオ】ティアックがWリバースカセットデッキを発表

「AE < AD < AR < AR-X」とか、BON テープとか。

イミフwwwうはwwwwおkwwww ちょwww何この電波ソングwwww

ラーメンズの「路上のギリジン」が話題になってる。 「何でもギリギリで解決するぜ」と言ってるのに何ひとつ解決できていないところが好きだ。

GiSTって何

思いがけず、GiSTって何のことなのかわかってしまった気がするのでメモしておく。

GiST(Generalized Search Tree)とは、PostgreSQL で使えるインデックスの種類のひとつなんだけど、それを理解するには R-Tree を知っておいたほうがいい。もちろん B-Tree も知ってた方がいい。 適当に検索してみてください。図を見ればなんとなくわかると思います。

B-Tree は値の大小でグループに分けて、ツリーを構成していて、R-Tree は平面上のある領域内に含まれるかどうかでグループ分けをして、ツリーを構成している。

つまり、何かしらグループ分けする基準さえあれば、何かしらのツリーが構成できる、というのが GiST らしい。

と考えると、ちんぷんかんぷんだった GiST の説明もちょっと見えてくる。

GiSTインデックス:実装

consistent というのは、そのグループ(ノード)に含まれるかどうかの検査で、union はノードの結合、みたいな話だと思う。

だいたい同じことが

GiST - Introduction

にも書いてあるのでコッチを見たほうがいいかもしれない。

contrib/ltree が面白そうなので今度書くかも。

繰り返しの比較表

いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

僕がすぐわからなくなってしまうのは、for 文とか foreach とかの書き方だ。 この表の最後にも a.each の例があるけどさ。

なわけでこんなのを作ってくださいエライ人。

Python Perl PHP
for x in a: for my $x (@a) {..} foreach $a as ($x) {..}
for x in xrange(10): for my $x (0..9) {..}
for (my $x = 0; $x < 10; $x++) {..}
for ($x = 0; $x < 10; $x++) {..}
for k, v in h.iteritems(): while (my ($k, $v) = each $h) {..} foreach $a as ($k => $v) {..}
while (list($k, $v) = each($a) {..}

と、ここまで書いてこんなのを見つけた。

Foreach文 - Wikipedia

まあいいや、あと filter 系とか map 系も欲しいな。Python でいうところの [ x * 2 for x in range(10) if x % 2 == 0 ] 的なやつ。

日本シリーズ第二戦

逆転のシーンのちょい前、稲葉の内野安打、新庄のポテンヒットでワンアウト1、3塁の後、バッター鶴岡がファールでねばる。

で、フルカウントになったところで内野は前進守備にかわって、鶴岡は三振、新庄は盗塁でツーアウト2、3塁になる。

えーっとつまりフルカウントに→ランナーがスタートする→ゲッツーはない→前進守備ってことか。(でも前進守備になると二塁ベースが空くので三振ゲッツーはない)。

ともかくワンアウト1、3塁でフルカウントになると守備がかわるなんて初めて知った。

それ何て言語?

Let's PHP | 科学技術英語にて (mixi)

もちろん PHP じゃないんだけど、Pascal でもないし、Ada か ALGOL あたりかとも思ったけど違った。疑似言語にしては色んなところが微妙だなぁ。

Java でいう o.method(arg) みたいないメソッドの呼び出しが send o method(arg) らしい。

method getstate () list(i,j) の list(i, j) というのは戻り値の定義なのか。

代入には

  • set i = x
  • let t1 = 0
  • o1 = new c1(3)

の三種類があるらしい。

in begin の in って何だろう。

Java Festa 2006

そういえば今年の Java Festa にはきしださんが来るみたいですよ。

Java Festa in 札幌 2006 〜Java & OSS(オープンソース)〜/講師プロフィール

去年のアンケートの「来年呼んで欲しい人」にきしださんの名前を書いたのは私です。

MS-DOS?

なんかまだあんまり話題になってないみたいなので貼っておく。

digg - MS-DOS 6.0 appears to be on Google Code Search

cmd/fdisk/fdisk.c が熱いらしいです。ネタでは聞いたことあったけど本気で

#define BEGIN    {
#define END      }

とかやってるコードを初めて見た。

Berkeley 時代の Postgres

Google Code Search でちょっと遊んでみた。psycopg とか PyGresql はもうちゃんと PQescapeStringConn を使ってるみたい。

PostgreSQL にしか無いような関数名を検索していたら、Berkeley 時代の Postgres のソースを発見した。Berkeley にあった(あたりまえ)。

University POSTGRES 4.2

db.cs.berkely.edu のマスコットもカメなのかな。

「スルー力」カンファレンス中止

スラッシュドット ジャパン | 「スルー力」カンファレンスが中止(?)に

残念。開催されていたら、SQL on Rails に関する発表でもしようかと思ってたのに。

PostgreSQLのconfigure時の環境変数

PostgreSQL で ./configure --help すると、

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
          nonstandard directory <lib dir>
  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
          headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  LDFLAGS_SL
  DOCBOOKSTYLE
          location of DocBook stylesheets

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

と出てくるわけだけど、全てが上手く動作するわけではないらしい。

src/template/win32 なんかは LDFLAGS を思いっきり上書きしちゃってるじゃないか。

$ cat src/template/win32
# This is required to link pg_dump because it finds pg_toupper() in
# libpq and pgport
LDFLAGS="-Wl,--allow-multiple-definition"

で、-L を追加したい場合は、LDFLAGS ではなく --with-libs=DIRS を、-I を追加したいときは CPPFLAGS ではなく --with-includes=DIRS を使った方が安全。

ちなみに src/template/* が CFLAGS を上書きしていたとしても、configure の中でうまいこと処理してくれているみたいなので問題無い。

英語の勉強していたら

英語の参考書を読んでいたら、例文がえらいことになっていた。

  • I think him a good cook. (僕は、彼は料理が上手だと思う)
  • Mother is getting supper ready. (母は夕食の用意をしている)
  • The nice smell from the kitchen made me hungry. (台所からくるよい香りをかいで、私はお腹がすいた)

(第五文型の例文)

何故全部食べ物の話なのかと。

  • Make yourself at home. (ごゆっくりどうぞ)
  • It's been a long time since I saw you last. (しばらくぶりだね)
  • Sam has been dead for three years. (サムは3年前に死んだよ)

(慣用表現の説明)

何のシチュエーションだか。

「駅キレ若者」エントリの反響について。について

なぜ、こんな話題が、一日に一万ヒット近く集めるんだろう。

ぼくも含めて、この件にコメントしたり、エントリを書いた人たちの気持ちを泡立てたのものはなに? なんかその部分の「なぜ?」の方が面白いって、気がしてきた。

リヴァイアさん、日々のわざ: 「駅キレ若者」エントリの反響について。

僕はもう全くダメだ。この人のエントリには自分の中の「自己顕示欲レーダー」がビンビン反応して読むのにも挫折しそうになる。

非常に良くできた釣りなんじゃないかとすら思える。

ぼくが対話の可能性を信じているのは、たぶんもって生来の性格に加えて、対話した方がよい結果をもたらすという、大小の成功体験があって、それが信念のレベルまでに達しているからだ。

対話による失敗体験を詰み重ねれば、逆の考えが信念のレベルに逹することもある。

ないと思うがうっかりこの人がこの blog にきて「私のエントリのどのあたりに自己顕示欲を感じられたのか、ぜひ教えていただけませんか」とか質問してくるかもしれないのであらかじめ書いとく。

「イヤです」

PHP のセッション共有(その2)

  • 2006-09-29
  • php

ひき続き Sharedance について調べてみる。PHP の標準のセッションハンドラである mod_files.c と見比べてみると、

  • flock していない

    一瞬はシングルプロセスだから必要無いのかなとも思ったけどそうでもないよな。まあ必要にあるケースはけっこう稀かもしれないけど、検証してみたい。

  • ディレクトリ階層を指定できない

    セッションデータをファイルとして保存すると 1 つのディレクトリに大量のファイルを作ることになる。このことによるパフォーマンスの低下を防ぐために PHP の標準セッションハンドラでは、session.session_save_path にディレクトリ階層を指定することができる(ということをソースを読んで初めて知った)。これがどれくらい影響するかわからないけど。 しかしどこかにセッションハンドラのパフォーマンスについて調べたデータとかないのかな。

さてそろそろ動かしてみるか。

PHP のセッション共有

  • 2006-09-27
  • php

Sharedance をちょっといじってみた(正確にはまだソースしか見てないけど)。

複数の Web サーバ間で PHP のセッション共有ができるものとして知られているみたいだけど、 実際にはとにかくキーと値のペアを TCP/IP 経由で fetch/store できるようにするというもの。

だからちょっとしたデータベースがわりにも使える。PHP 単体でもデフォルトのセッションハンドラに PHP からアクセスできれば便利なのになとちょっと思ったけど、まあ GDBM とか使えばいいんだけどさ。

あと libevent は便利そうだ。

しかし、たったこれだけの為にサーバーを作って独自のプロトコルを作るというのも何か悲しい感じがする。別に http でもいいんじゃないのかな。つまり、セッションを集中管理するためだけの apache を 1 つ用意しておく。

なんてことは世界で 2000 万人くらいの人が考えているかもしれない。なんか最近の PHP 事情をよくしらないからちょっと恥しいが思いついたので書いておこう。セッション管理する側はこんな感じ。

<?php
/* ppss.php */
if (empty($_GET["m"]) || empty($_GET["key"])) {
    exit;
}
session_id("ppss" . $_GET["key"]);
session_start();
if ($_GET["m"] == "f") {
    echo $_SESSION["data"];
}
else if ($_GET["m"] == "s") {
    $_SESSION["data"] = $_GET["data"];
}
?>

fetch と store だけで delete が無いのは手抜きです。もういっそ、fetch.php とか store.php ってファイルを分けちゃった方がいいかもしれない。 セッション ID にプレフィックスを付ける必要は本当は無いんだけど、1 台のマシンで試験しようとすると flock して悲しいことになるので付けてある。

セッションハンドラと使う側はこんな感じ。

<?php
$PPSS_URL = "http://xxxxxxxxx/ppss.php?";
/* for PHP4
function http_build_query($params) {
    $p = array();
    foreach ($params as $key => $val) {
        $p[] = urlencode($key) . "=" . urlencode($val);
    }
    return implode($p, "&");
}
*/

function session_handler_open($save_path, $session_name) { return TRUE; }
function session_handler_close() { return TRUE; }
function session_handler_delete($key) { return TRUE; }
function session_handler_gc($timeout) { return TRUE; }

function session_handler_store($key, $data) {
    global $PPSS_URL;
    $url = $PPSS_URL . http_build_query(array(
            "m" => "s",
            "key" => $key,
            "data" => $data));
    file_get_contents($url);
    return TRUE;
}

function session_handler_fetch($key) {
    global $PPSS_URL;
    $url = $PPSS_URL . http_build_query(array(
            "m" => "f",
            "key" => $key));
    $data = file_get_contents($url);
    return $data;
}


session_set_save_handler('session_handler_open', 'session_handler_close',
             'session_handler_fetch', 'session_handler_store',
             'session_handler_delete', 'session_handler_gc');


session_start();
if (!isset($_SESSION["count"])) {
    $_SESSION["count"] = 0;
} else {
    $_SESSION["count"]++;
}

echo "count = " . $_SESSION["count"];
?>

パフォーマンスとかはあまり考えていない富豪的アプローチだけど、まあメリットとしては手軽さと、apache + PHP だけで動いているというプラットフォームに対する信頼性か。パフォーマンスが欲しければ apache モジュールにしちゃうのもそう難しくないだろう。

筆記用具ヤケ買い

ムシャクシャしてやたらと筆記用具を買ってしまった。後悔はしていない。

筆記用具やけ買い
筆記用具やけ買い posted from フォト蔵

ユニ パワータンク スタンダード(ノック式)0.7

現在、油性ボールペンの人気を Dr.Grip G-SPEC と二分する一本にして、僕の油性ボールペンへの認識を変えた一本。あーちなみに私は太い軸が苦手なので Dr.Grip は使ってません。

3000hPa の加圧リフィルからくり出されるインクは、ダマになったり擦れたりすることがかなり少ない。(なんだけどネット上ではけっこうダマになると言っている人も多い。俺の書き方の問題なのか)。

やはり油性ボールペンの良さは、その使える範囲の広さだ。感圧紙に使うなら油性ボールペンが一番だし、上からラインマーカーを使っても滲まない。加えてこの POWER TANK は濡れた紙や無重力や氷点下でも書ける(らしい。当然試してないけど)。

タプリとパワタン
タプリとパワタン posted from フォト蔵

写真は上が POWER TANK、下が ZEBRA TapliClip。ノック式のボールペンでは(この TapliClip のように)軸と芯の間に遊びがあって書く時にカチャカチャしてしまうものがあるが、POWER TANK はこの隙間が埋められているの(黒い部分)がおわかりだろうか。

このクォリティで 200円という低価格のうえ、コンビニでも入手可能。凄い、凄すぎる。 普通のボールペンにできないことを平然とやってのけるッ!そこにシビれる!あこがれるゥ!

ユニ ジェットストリーム 0.7

今話題の新製品。低粘度油性ボールペンという意味では Dr.Grip G-SPEC のライバルはこちらかもしれない。 また、油性ボールペン特有のインクの紫っぽさがなくはっきりと黒いのも特徴(写真で伝わるかな)。なんだけど、どうも擦れがひどい。ネットではそれほど評判は悪くないようなので、個体差かもしれない。

ZEBRA テクノライン 0.4

油性ボールペンって普通 0.7 か 1.0 で、0.4 って書いてみるとびっくりするくらい細いです。手帳用に使っていた TECHNO LINE EX が気に入ったんだけど、いかんせん軸が細くて握り辛いので、中身が同じで軸が太い TECHNO LINE を買ってみた。

感想としては、良くも悪くも予想通り。線は細いし軸は握り易いが、結果的にどこで使っていいのかよくわからないw。ちなみに TECHNO LINE EX の方は軸が細いので、リングノートのリングに入れてます。

あと、うっかり Pelikano junior 買ってしまった。万年筆には手を出さないつもりだったのに。まあこれなら一本持っててもバチはあたるまい。油性ボールペンとは大分書き方が違うのでちょっとまだ思うように使えてない感じ。

日本版ポリティカルコンパス

「各人の政治的および経済的立ち位置を調べる」という、ポリティカルコンパスの日本版をやってみました☆

w h e a t n o o d l e s . o r g: 「日本版ポリティカルコンパス」

というわけで参戦。でもこの質問難しいね(特にQ2の方)。きっと何度かやれば結果も違うとおもう。結果は、

  • 政治的な右・左度(保守・リベラル度) -0.4
  • 経済的な右・左度(市場信頼派・政府介入派) 0.93
  • あなたの分類は リベラル右派 です。

大きく偏ることはないだろうなとは思ってたけど、予想以上のど真ん中っぷり。自分では政治的右派かなと思ってたんだけど。

9月21日のどうでもいいこと

色々考えごとしながら帰宅しようと思ったら、逆方向の地下鉄に乗っていた。自分の注意力あなどれない。

ちょっと遅いが、

2006年9月6日は、多くの人々が待ちに待っためでたい日となった。いやめでたい。実にめでたい。

H-Yamaguchi.net: めでたい日に思う より

マスコミのバカ騒ぎっぷりにもウンザリだし、問題は何も解決していない。というか高度な釣りだ。

くそがっ!あのクソガキめが!!大人を馬鹿にするとひどいめに遭うぞ!くそっくそっ、次にあったら筆下ろししてやる。許さない、絶対許さない。

nonomachon2ndの日記 - 列車の窓から景色を楽しみながら より

この人の日記どこから読んでもいいんだけど、面白い。ちょっとライ麦畑を思い出してしまった。より今風に訳せば、ホールデン君も「死ねよワーキングプアめ!」とか言うのかな。そんなライ麦畑も読んでみたい。

まあとにかくこの人すごいな。

高校生の時、初めてこの本を読んで、何が面白いのかさっぱり分からなかった。

peanutsjamjamの日記 - カフカ『変身』 より

そういえば俺も初めてライ麦畑を読んだとき、何が面白いんだかよくわからなかったなぁ。まあホールデン君より大分若かったし。

あとちょっと前に、「海辺のカフカ」を読んでその感想について、その昔初めて私に村上春樹を勧めた peanutsjamjam と話した。

  • あまりの自由っぷりに(それが芸風なんだけど)村上春樹を読んだこと無い人には厳しいんじゃないかなぁと思うんだけど、これが海外で評価されているのは意外。
  • 序盤の、別の話が交互に出てくるところは「続き読ませろよ!」という感じで疲れた。
  • 後半は、とにかくホシノ君が良かった。

小説って、書いてる本人すら絵が浮ばないようなものでも書いちゃえば勝ちみたいなところがいいよね、とかいう話をした。 そいういえばダンスダンスダンスの中に、「紀ノ国屋のレタスはよく調教されている」(どんなんだよ)とかいうのが出てくるんだけどああいうのは絵では表現しようがないよね。

あと札幌に住んでいると、紀伊国屋というと本屋しか思い付かないんだけどe-kinokuniya 紀ノ国屋のことだったんだな。

図書館のレファレンスサービス

なんか眠れないのでまた書いてしまうよ。最近心がささくれだっているのでウトウトしか眠れない。いかに自分の心がささくれだっているかを書こうかとも思ったけど、途中からそれをどう第三者的に面白く書こうかという余計な感情が湧いてきてアホらしくなってきたのでやめとく。多分生理みたいなもんです。

苫小牧市立図書館 - Amazon 検索 を作っていたら図書館についていろいろ興味がわいてきた。 図書館というところが何かしら調べもののお手伝いをしてくれそうな印象は漠然とあったんだけど、それを利用したことはなかったし、そのことをレファレンスサービスと呼ぶことも知らなかった。要するに人力検索のプロ。

で、レファレンス共同データベースという、こんな調査テーマに対してはこう調べれば良い、という事例データベースみたいなものがあるそうです。つまりその人力検索の中の人が活用するデータベースということだと思います。

例えばここの調べかたマニュアルのサンプルには、

とかこういうのがある、ということは、図書館はこういうことも調べてくれる(かもしれない)ということか。

これを知ったきっかけは、北海道立図書館が図書館向けに発行しているレファレンスに関する広報誌「Do-Re」で、Web 上から PDF で閲覧できます。

この中には、

情報館では10月下旬から、館内に掲示板を設置しています。レファレンスという図書館用語がまだまだ町民に浸透していなく、また利用も少なくはないのですが、図書館のお得な活用方法をより知っていただけるようにと思い作りました。

(中略)

情報館の利用に関することもありますが、子ども達が日常感じているふとした疑問が多いです。 “なんで空にくもがあるんですか?” “どうして季節があるんですか?”などです。 また、将来に関すること、“にんじゃになりたいんですが、 どうしたらいいですか”などもあります。

(レファレンスの森本さんの掲示板を設置 (本の森厚岸情報館)- Do-Re 26号より)

レファレンスの森本さんって、、、それ生協の白(ry

いいなぁ。俺もにんじゃになろっかなぁ。

JavaScript雑感

Livedoor Reader のソースを眺めていたらコロンキーで vi モードにはいることを発見した。調べてみたらやっぱり自分は 4 ヶ月ほど遅れていることに気がついた。

livedoor Readerとは - はてなダイアリー

(ブラウザ上で動く)JavaScript は、強制オープンソースだという魅力もさることながら、今まさに動いているプログラムに対して Greasemonkey とか JavaScript Shell とか使って動作を変更できちゃうというのが面白い。動いている心臓をバイバス手術みたいな。

苫小牧市立図書館 - Amazon 検索 を作ってみてやっと少し JavaScript がわかるようになってきた。何かしら新たな発見をしては、それについて調べてみると自分が 1 年くらい遅れていることに気付くというのの繰り返しだった。だいたいやりたいことは実装したけど、UI 周りをもうちょっと直したい。

言語としての JavaScript は、シンプルで自由度の高い言語。とはいえシンプルであることも自由度が高いことも言語としての価値であるかどうかは何とも言えない。単にそうなら Scheme がもっと流行ってるんだろう。でもまあまとまっていると思う。

この自由度の高さをフレームワークや IDE がどうコントロールしていくかというのが今後の JavaScript 界隈の動きになっていくんじゃないかな。Ruby という自由な言語が Rails という規約によって飛躍したように。(まあ Rails も真面目にやったことないんだけどさ)。

一方言語の本質とは別に、その歴史的経緯から、現時点では Web 上には古い情報が蔓延していてとてもググりずらかったり、あとプラットフォーム間の移植性というやっかいな問題はある。

JavaScript を学ぶには、まず初級はどこでもいいんじゃないかな。とほほさんの所あたりでもいいと思う。で次は「プロトタイプベースのオブジェクト指向」とか「プロトタイプチェーン」とかいうキーワードでググる。以下はまだ僕も全部読んだわけじゃないです。

で、そこを卒業したらとりあえず prototype.js でも読んでみるのが良いんじゃなかろうか。はっきりいって最初は全く理解できないと思う。例えば、冒頭の、

var Class = {
  create: function() {
    return function() {
      this.initialize.apply(this, arguments);
    }
  }
}

これが何をやっているか、はっきりいって僕は自力では理解できませんでした。幸い、その手のことをやっている人は他にもいるので、先人の調査結果を参考にするといい。

リファレンスとしての情報源は未だにどこを見て良いのかよくわからないけど、とりあえず MDC を見ている。

あと、 FireBugJavaScript Shell は便利だと思う。

はてブの「IMEをオフにして、、、」が邪魔

Scroll With IME という FireFox プラグインを使っていると、IME オンのままの状態でもスペースキーでスクロールできるんだけど、 はてなブックマークでは IME がオンの状態でキーを押すと、左下に「ショートカットキーはIMEをオフにしてご利用下さい」と出てきてスクロールできない。

Bookmark.keybind.remove("ime");

以上。

1行だけを保証する

Gapless Sequences for Primary Keys: Varlena, LLC | PostgreSQL General Bits Newsletter

PostgreSQL の SERIAL は値が連続していることは保証しない。じゃあ連続する値を得るにはどうしたらいいかという話。なんだけどその中で出てくる以下の SQL が面白かった。

-- Initialize table with one row on creation --
INSERT INTO emp_pk_counter VALUES (0);

-- Disallow further insertions and deletions --
CREATE RULE noins_emp_pk AS ON INSERT TO emp_pk_counter
DO NOTHING;
CREATE RULE nodel_only_emp_pk AS ON DELETE TO emp_pk_counter
DO NOTHING;

emp_pk_counter というテーブルに対して 1 行だけ INSERT しておいて、以降 INSERT も DELETE も無視してしまうという RULE を定義している。これで emp_pk_counter テーブルは 1 行だけということが保証される。設定値を保持するテーブルなんかに使えそうだ。

「鏡の法則」について思ったこと

今更だけど「鏡の法則」について書く。あるいは、何故僕がこの話に違和感を感じるのか。

「あなたの人生の現実は、あなたの心を映し出し鏡です」という考え方って怖いなあと思う。 たとえばこの子供はイジメにあって、で、イジメは無くなった。でも世の中には取り返しの付かない災いっていうのもあるんじゃないか。

例えば子供がイジメにあって自殺しました。「あなたの人生の現実は、あなたの心を映し出し鏡です」と言われました。息子を殺したのは自分だと後悔して生きていくこと以外に何ができる?

というか、人生に何か一つの解があると思うことが怖い。

いろいろ調べているうちに、この作者のblogのあるエントリに辿り付いた。 この人のblogはかなりの分量があるし、その一部だけを引用してケチをつけてもしょうがないんだけど、気にな内容だったので引用する。

幸せ成功力を日増しに高めるEQコーチング!毎日読めば目標達成力を多角度から強化できます!:成功法則が作用しない人はいるのか?

どんな困難に出会っても、「必ず実現する」という信念を持って行動し続 けたら、やがて、その信念が潜在意識の奥深くにまで浸透して磁石になり、 信じたとおりの現実を引き寄せて具現化するのです。

としながら、

しかし、こんなことを言う方もいらっしゃいます。

「私は数年前から、『自分は豊かだ!お金持ちだ!』と念じ続け、豊かな 人生を描き続けた。だけど、ぜんぜん豊かにならない。私には成功法則が 作用しないみたい。」 (中略) 主な理由は2つ考えられます。

(1)頭で思い描くだけで行動をしていなかったり、行動が中途半端になっている。

で、

「殺人事件で家族を殺された人は、それも自分の心が引き寄せたので しょうか?」といった内容のご質問も、これまで何人かの読者さんか らいただいてます。 (中略) 人生で出会う大きな試練はあらかじめ計画されたもので、必ずしも、自分の 心が引き寄せているわけではないと考えます。

あらかじめ計画された人生設計を土台にして、さらにその上に、自分の心が 引き寄せるものによって人生が築かれていくのだと、私は考えています。

これは僕の主観で読むと、

「強く思えた必ず実現します。でも思うだけではダメです。行動しましょう。でもあらかじめ計画された試練は避けられません」

もっといえば、

「強く思って行動すれば、願いが叶う場合もあります」

という風に読める。まあ、そうかもね。

currentいじってみた

PostgreSQLのcurrentをちょっといじってみた。INSERT .. RETURNINGとかUPDATE .. RETURNINGというのが追加されたみたい。 「INSERTやUPDATEをした行をSELECTする」を一度に書ける機能っぽい。

=# create table r (i serial, t text);
NOTICE:  CREATE TABLE will create implicit sequence "r_i_seq" for serial column "r.i"
CREATE TABLE
=# insert into r (t) values ('One') returning *;
 i |  t
---+-----
 1 | One
(1 row)

INSERT 0 1
=# insert into r (t) values ('Two') returning i;
 i
---
 2
(1 row)

INSERT 0 1

INSERT文なのにSELECT文のように行を返しているのがおわかりでしょうか。

今まではSERIAL型の列にINSERTした値を得るには、SELECT curval()しなきゃならなかったんだけど、その必要がなくなる。 なかなか面白いけど、またデータベース抽象化レイヤとか書いてる人は気をつけなきゃだめかもね。

あと、standard_confoming_strings の値が変更可能になってる。(デフォルトは off)。

=# select '\\';
WARNING:  nonstandard use of \\ in a string literal
LINE 1: select '\\';
           ^
HINT:  Use the escape string syntax for backslashes, e.g., E'\\'.
 ?column?
----------
 \
(1 row)

=# set standard_conforming_strings to on;
SET
=# select '\\';
 ?column?
----------
 \\
(1 row)

他にもいろいろありそうだけどとりあえず。

9月6日のいろいろ

なんか書きたいことがいっぱいたまってる。

弟「僕だって、好きでニュータイプになった訳じゃない(怒)!」

めぐみのホームページ1000 - 9月3日より

あいかわらずこの人面白いなぁ。終り方も秀逸。

でも愚痴を聞いていれば僕のことを話さなくていいので。沈黙がないので安心します。

@nifty:デイリーポータルZ:対人スキルが高すぎる人

凄い。沈黙を恐れるという消極的な理由でいろんなことに巻き込まれてしまう人。この人をモデルに小説か映画かなんか作ってほしい。

みなさんは、テストファーストだ、ユニットテストだ、と言いながら、実際は「テストに通って当り前」のテストしか書かずに済ませてしまっていないだろうか。そのようなテストはバグを見付けることにはあまり貢献せず、「次の実装の見直しにも合格する」ためのベンチマークにすぎなくなってしまっている

プログラマがテストも書くならば lightweight なランダムテストを試すといいと思う - Inemuri nezumi diary(2006-09-06)より

レグレッションテストってそういうものだと思う。

テストをもたらす勇気よりも、テストデータを大量に用意する鬱さが勝ってしまって、あーうーあーうーとげんなりします。

ここでテストデータ作成ツールですよ、と言うだけ言っとく。

レグレッション・テストに逆ギレ - capsctrldays (2006-08-08)

テストデータ作成ツールじゃなくて、テストデータをどうマネージメントするかという方向で問題は解決できないかな、ということを最近考えてる。

Refactoring Databasesの中にスキーマのバージョン管理という話が出てくるんだけど、それを読みながら、テストデータはバージョン管理の対象にはいるのかどうか、とか。

とにかく、ソースコードの外側にあるものをマネージメントするにはひと工夫必要だ。

9月5日のいろいろ

peanutsjamjamの日記 - 図書館にある本は買わずに済ませるためのナントカ その二 より。似たようなことをやろうとしている人はけっこういるらしく。

あと、関連事象を検索して目に付いたのがAmazon - 苫小牧市立図書館検索これ、ヤバいくらいにCool、Web2.0的ってのは見た目じゃないってことをわからせられた感じです。

natu_nの日記 - ISBNで検索出来ない図書館の続き より

褒められた♪(のか?)。

あと他にも

コードは自由になった。次はデータが欲しいんだ。Amazon Web サービスとか、Google Map とか、Livedoor Weather Hack とか。データを中心としたバザールモデル?(また勢いで適当なこと書いてます)。

次は何のデータが欲しい?時刻表とか、番組表とか。

アンチフルスタックという開発手法

また何となく思いついただけなんだけどさ。

Ruby on Railsみたいな「フルスタック」って、要するに最大公約数的?な手法だと思うわけだ。

「SQL を書かなくてもデキる」みたいなのとかもあるけど、SQL 書いちゃった方が楽な場合もあるわけで。

で、それぞれの構成要素が得意分野でベストを尽す、みたいな開発手法もあっていいなじゃないかなと。

クライアント側は JavaScript でテンプレートでも使って、サーバー側はひたすら JSON でやりとり。

画面遷移とか認証、セッション管理なんかは Apache でやらせる。Apache モジュールを C で書いちゃうのは究極だけど、mod_{perl,python,ruby} のフックを使ってやるのがいいと思う。ブラウザが「画面遷移してくれ」と Apache に通知する感じだ。

あと、トランザクションが必要ならもうデータベース側でストアドプロシジャにしてしまう。

そうすることのメリットはこれから考える。

Teaching is Learning

ふと、"Teaching is Learning" という言葉を思いついたら、やっぱりそういう言葉があるらしい。「教えることは、教える側も勉強になるよ」みたいな意味のようだ。

僕は違う意味でこの言葉を思いついた。

教えるには、何が相手に伝わったかを教わらなければならない。

教わるには、自分に何が伝わったかを教えなければならない。

よく、「何がわからないのかわからない」とかいうやりとりがあるけれど、「何がわからない?」って聞くより、「どう思う?」って聞いたほうがいい気がしてきた。

御互いの思うことを伝えながら同じ場所に近づいていく。例えていうなら連想ゲームだ。でもこの例えも若い人には伝わらないんだろうな。あの番組はもう一度見てみたいなぁ。実は今の時代に必要な何かを伝えていたのかもしれない。

Amazon - 苫小牧市立図書館検索作った

今年の夏休みの自由研究ということで。

Amazon - 苫小牧市立図書館検索

苫小牧市民に送るWeb2.0エクスペリエンスw。 Amazon Web サービスに REST - XSLT で JSONP に変換 - Ajax で cgi にアクセス - そこから図書館にアクセスみたいなことしてます。

「読みたい本があるけど、図書館にあるから買わなくていいや」みたいな、Amazon の意向に思いっきり反した API の使い方をしている気がする。

しかしここ最近はAmazonのXSLTプロセッサが全然まともに動いてくれない。w3側をフォルトにしようかな。

火事場プロジェクトの法則

「火事場プロジェクトの法則」- やまざきの「あせらず、くさらず、一歩づつ」

あーあれが遂に本になるんですか。面識はないですがおめでとうございます。

やっと夏が終わった

負けたとはいえ、あれだけの歴史的な好試合をして、よくやったとは思うのだけれど、やっぱりちょっと寂しいね。 マンガみたいな三年間だった。

斎藤対田中。また別の舞台で見たいね。

経験値バトン

長いんで途中で挫折する。

[入院:○] 小さいころに肺炎2回、小学生で喘息1回、自転車で転んで1回、高校で気胸1回(一度退院してまたすぐ入院したので2回かも)、成人後にアトピー1回。

先日古い友人と市内をブラブラしながら、「ここの病院に入院したんだっけ?」「いや、こっちにもあっちにも入院したことある」なんぞという会話をしてきた。

[手術:○] 高校の時に気胸で全身麻酔の手術、当日は日本シリーズだったのを覚えている。巨人対西武だったかな。あと今年白内障で日帰り手術。

[骨折:×] ただ、自転車で転んだ時に頭蓋骨にヒビがはいっていたかもしれない。

[献血:×]

[失神:×] 失神の定義がよくわかっていないけど。 ちなみに脳しんとうなら小学生の時に2回あって、そのうち一度は学校でふざけていて頭を打ったらしいが丸一日の記憶が無い。

とにかく平均よりは変に寄り道をしながら生きている方かと思う。なんだけど最近、子供が健康に大人になるということは、あたりまえのようで大変なことなんだなぁと。

夏休みで帰省した兄の子供の予測不可能な行動を見ながら思ったりする。

JavaScriptとたわむれる

見てる人はわかると思いますが、毎日のようにちょこちょこいじってます。 blog そのものは書かないのに毎日 blog をいじっているという現実。 モチベーションが続く限りいじり続けます。

書きたいことはいろいろあるけどざっと。

たかが天気予報を表示するために大袈裟なことをやっている。 <script> タグの charset 属性ってデキる子だって知らなかった。飾りかと思ってたよ。 あと、JavaScript のオブジェクトリテラルに余分なコンマがあると FireFox では OK だけど IE だと動かなかった。

var data = {"foo": 1, "bar": 2,};

みたいなの。

Perlのutf8フラグとDBI::Pg - その2

Perlのutf8フラグとDBI::Pgの続き。

DBD::Pg で取得した文字列に自動的に utf8 フラグを付けるには、$dbh->{pg_enable_utf8} を 1 にする。 ただ、これは本当に utf8 フラグを付けるということしかしないようなので、client_encoding を utf8 にするのは自分でやらなきゃいけないようだ。 client_encoding と連動してくれても良さそうな気もする。

データベースが euc-jp、ソースコードが utf-8 の例はこんな感じ。

#!/usr/bin/perl
use Encode;
use DBI;
use Data::Dumper;

my $dbh = DBI->connect("dbi:Pg:options='-c client_encoding=utf8'", "", "");
my $q = "select 'あいうえお'::text";

$dbh->{pg_enable_utf8} = 1;
my $s = $dbh->selectall_arrayref($q)->[0][0];
print utf8::is_utf8($s) ? "utf8": "not utf8", "\n";
print Encode::encode_utf8($s), "\n";

ところで、この pg_enable_utf8 は、取得した値のデータ型見て、text 型や varchar 型などの文字列型であれば utf8 フラグを付ける。その為以下のコードだと utf8 フラグは付かない。

my $q = "select 'あいうえお'";

何故かというと、明示的な型指定がない文字列リテラルは、PostgreSQL では unknown 型だからだ。

はっきりいって子供の頃から夢(寝てる時に見るヤツじゃない方)みたいなもんは無かったし、文集かなんかに「将来の夢」とか書かされるのが非常にうっとおしかった。「野球選手」とか書いておけば子供らしいだろうか、とか考える冷めた小学生だった(ちなみに運動部の経験無し)。

んでまあ、0x20歳になって突然、やりたいことを思いついた。なんでもっと早く気が付かなかったんだろう。子供の頃からすぐ側にあったはずの夢だった。ここ数日ぼんやりと考えていたことが、ああこれが夢なのかと気がついた。

もしかしたら来週にはどうでもいいことになっているかもしれないけど。

Perlのutf8フラグとDBI::Pg

Perl5.8 から、文字列を内部で Unicode で扱えるようになった。

  • utf8 フラグ無し -> バイナリ列
  • utf8 フラグ付き -> 文字列の内部形式

みたいな感じだと思う。 utf8 フラグを付ける(内部形式にする)ことを decode、その逆を encode と言う。 なので、Perl でマルチバイトを扱うときは、

  • 外部からのマルチバイト文字列の入力を decode する。(utf8 フラグを付ける)。
  • で、いろいろ文字列を処理。
  • 出力するときは encode してから出力。

utf8 フラグ付きのマルチバイト文字列をそのまま出力しようとすると警告がでる。

コードはこんな感じ。ソースは euc-jp で書いてます。

#!/usr/bin/perl
use strict;
use Encode;
# $s1 は utf8 フラグ無し、$s2 は utf8 フラグ付き
my $s1 = "あいうえお";
my $s2 = Encode::decode("euc-jp", "あいうえお");

print $s1, "\n";
print $s2, "\n";    # そのまま出力すると警告

print "s1 len = ", length($s1), "\n";
print "s2 len = ", length($s2), "\n";

$s1 =~ s/./$&,/g;
$s2 =~ s/./$&,/g;   # 正規表現も使えます

print $s1, "\n";
print Encode::encode("euc-jp", $s2), "\n";

実行結果

あいうえお
Wide character in print at pg.pl line 9.


s1 len = 10
s2 len = 5
が↑がががΜが━が

DBD::Pgについて

あとで書く

ネタ仕込み中

とりあえず今のうちにいっときますが100%ネタですから(何?

流星ワゴン

何年か周期で小説を読める時と読めない時がやってくる。 ひょっとして今は読めるときなのではと数冊文庫本を買ってきた。

ずいぶん前に NHK で「ビタミンF」という短編ドラマを見て、 しばらく後にその原作が重松清だということを知った。 ちなみにそのドラマを見た時の(2002年)感想が関心空間に残ってました。

で、初めて重松清の小説を読んだわけです。

序盤は、死、後悔、絶望、裏切りと暗くて重い展開で読むのを挫折しそうになったけど、面白かったです。うん。ウマい。珍しく小説を読んで元気が出た。 やっぱ「ビタミンF」を見た時と雰囲気似てるな。

かぶりを振るという表現を初めて知った。

アルゼンチン vs メキシコ

決勝T一回戦屈指の好カード(だと思う)。メキシコは予選でポルトガルに負けたけど、退場で一人少なくなってからもポルトガルを内容で圧倒していた。 みんな足元がしっかりしていて、どこからでも攻撃できる。

開始早々予想通りの攻め合い。と思ったら6分にセットプレーからボルヘッティがヘッドで流してマルケスのゴール。

前半10分。コーナーからクレスポのゴール(ってーかボルヘッィのオウンゴール)。 この試合、この調子で90分進むのか? とにかくどっちも攻撃が上手いのか、全然中盤の守備がきかない。 主審はなぜかやたらと笑顔。

前半ロスタイムに、アルゼンチンのキーパーから 最終ラインへのパスがメキシコの選手に奪われてファウルで止める。 キーパーが蹴る前から狙ってた。時間帯を見て狙ってたのかな。 レッドでもおかしくないシーンだったけどイエロー。

FKが壁にはじかれて前半終了。メキシコのペース。 攻め合ってる感じもしたけど、シュートは少ない。 どんどんスペースを使ってパスを回し、最後はボルヘッテイの頭へ。

でもアルゼンチンは一発で最終ラインの裏を突いてくるからなぁ。

リケルメの顔は両さんに見える。

後半になってちょっと両チームともタイトになってきたかな。

なんか後半はアルゼンチンがずっとボールを支配している。 けどメキシコも上手く守っている。 しかし交代ではいってくるのがアイマール、テベス、メッシという、、、

延長突入。眠い。

うわー。なんだこの1点。サイドチェンジから胸トラップしてロドリゲスのボレー。 ありえねー。

こういう形で負けますかー。

はなまるうどんに行こうとしたら

えーっと先週はこの辺ではなまるうどんを食べたと思うんですが、、、

Googleキャッシュ:はなまるうどん 店舗案内

永らくのご愛顧ありがとうございました。6月20日をもちまして閉店いたします。

嗚呼!!

vs ブラジル

起きちゃったので書いてみる。

最初10分くらいはすごんハイペース。

思ったよりブラジルのディフェンスが前からくる。

川口すごすぎ。

クロアチア大丈夫かなぁ。オーストラリアは強いよ。

前半30分、やっと試合がおちついてきた気がする。

あ、はいった。

こりゃ大変な試合になるなぁ。 リードしてるけどこんだけ中盤好き勝手やられて。 マイアミの時っぽくなってきた。

裏が1-1になった。クロアチアー。

選手交代むずかしいな。大黒は使うだろうけど。

前半44分、加地がファウルをもらう。昔は嫌いだったけどいい選手。

あー同点。ヘッドでやられるとは。惜しい。1-0のままでいけばやりやすかった。

ハーフタイム。スタジオは何故マイク手持ち。

ブラジルはここまで無失点とはいえ、オーストラリア戦なんかはかなりやられてた。 最終ラインは崩せると思う。 ただ、残り5分とかの時間の使い方はメチャ上手いので早めにリードしたい。 攻めてきてくれないと辛い。

後半。ロナウジーニョとロナウドのコンビネーションに正直痺れた。

何故かアナウンサーはレポーターをシカト。

あ、2-1。リードされたよ。

あ、3-1。ここで切れてたら日本じゃない。1点ずつ。 でもちょっとここからはちょっとブラジルファン視点もまじえながら見よう。 そろそろ遊びも出てきそうだし。

後半30分。いやぁ。上手くて感心するわ。

4-1で終了。

ジーコインタビュー。どうでもいいけどこの通訳の喋り方がどうも気にくわない。

選手のインタビューはいらないだろ。

ジーコの言うように、4-1ほどの差は無いと思う。そしてワールドカップを通じて少しずつ歯車が狂っていったように思う。 この4年間の日本のサッカーってこんなんだったっけと思いながら3試合見ていた。

まあ意味のある負けだと思おう。

98年大会優勝のフランスなんて、その後2大会5試合で1つも勝ってないし、 その前は予選落ちしてる。

前回大会優勝のブラジルは、ぎりぎりで予選を勝ち上がってきて、 前評判は低かった。

今大会のスウェーデンの初戦は21本のシュートを放ったが0-0の引き分けだった。

キミならどう書く 2.0 - ROUND 1 -

キミならどう書く 2.0 - ROUND 1 - を SQL で。って LL じゃねーよ!!

select * from generate_series(2, 100) s1 (i)
 where 0 not in
      (select s1.i % i from generate_series(2, s1.i) s2 (i)
        where s1.i <> s2.i);

トラックバックはしません。

最近のお気に入り

めぐみのホームページ1000

廃墟やゲームやガンダムが好きらしい方。なかなかぐっとくる文章を書く。

自分自身の人生において、感動するって事があまり無かった。 無関心、無感情なタイプなのかもしれないな、なんて思っていた。

が。

しかし、この炭鉱跡地を見た時、絶叫した。

クモの巣が頭に張り付いても、叫び声ひとつあげない私が、

感動で絶叫した。

私の心を動かすものはこういうモノだったのか、と初めて知る。 (羽幌探索 より)。

もし無駄にお金があったら、この人にちょっと高級なデジカメをプレゼントしたいよ。

先週のいろいろ

仕事以外でほとんど人と会わない自分にしては、やたらと(といっても二回だけだけど)人と会った先週。

火曜日のまとめ

  • 「謙遜してはいけない職業」の話がツボだった。

金曜日のまとめ

  • SKK はいいものだ
  • RFC 3629 読もう。というか今日読んだ
  • ビジネスクラスはモチベーションが上がるらしい
  • 始発まで遊んでいてもホテルにチェックインできた

vs ドイツ代表

今更だけどサッカーの感想。フォワードはみんな良かった。 コンディションがよいとこんなに違うもんか。 一時期の当てても当ててもポロポロこぼしてた高原はいったいなんだったんだ。 柳沢は本当に上手いなぁ(シュート以外は)。

1点目は今まで日本代表ではあまり見たことが無いような鮮やかな速攻。 2点目のは中村が右サイドから大きくセンタリングと見せかけて ニアの高原の足元に出したんだけど、そのフェイントに引っかかった 高原がトラップミスして仕方なくグルッと回ったようにも見えたけど、 まあどっちでもいいや。

得点にはならなかったけど、中田から大黒へのスルーパスや、 中村からファーサイドの中田へ、ヘッドで折り返して大黒というのも 完全に狙いすました形で可能性を感じた。

収穫も課題もあった試合と言われているが、 最も不安な点は、あの日本代表のユニホームは破れやすすぎるんじゃなかろうか。

泡沫桀人列伝―知られざる超前衛

内輪ネタです。

...
葬儀人類学者“最終芸術を見守る”―山形葬太郎氏の巻
裸の鈴鳴り神社“狂気なる紳士”―上条順次郎氏の巻
マサカリ画伯“熊もビックラコ”―池本良三氏の巻

誰か情報あります?


SQLの書き方をバックエンドに教えてもらう - その1

FROM 句に書くサブクエリは、外に出せる場合があります。 簡単な例だと SELECT * FROM (SELECT * FROM t) は SELECT * FROM t と一緒。 もうちょっとまともな例だと

-- 勝ち越した力士の名前と出身地
SELECT r.名前
     , s.都道府県名
  FROM 都道府県 s
     ,(SELECT *
         FROM 力士
        WHERE 勝ち星 >= 8) r
 WHERE s.都道府県id = r.出身地id

-- サブクエリ内を外に出しても一緒
SELECT r.名前
     , s.都道府県名
  FROM 都道府県 s
     , 力士 r
 WHERE s.都道府県id = r.出身地id
   AND r. 勝ち星 >= 8

例に深い意味はありません。こういう例考えるのってむずかしいね。 最初の単純な例にしろ、この力士の例にしろ、EXPLAIN すると 全く同じプランを出力します。つまり PostgreSQL はこの 2 つが同じ意味だと知っていて、サブクエリを外に出すという 書き換えを内部でやっています。

しかし、常に FROM 句のサブクエリは外に出せるわけではありません。 例えばサブクエリ内で LIMIT/OFFSET を使っている場合は このような書き換えはできません(続く)。

博士の愛した数式

長い間小説なんて読んでいなかったので、読めるかどうか不安だったけど、 おもしろいねぇ。これ。一気に読んでしまいました。 ちなみに映画は見てません。でも寺尾聰と深津絵里のイメージは読書の 助けになったかもしれない。

結城さんもこれを読んだんだろうか。


貧乏クジ世代

リカちゃん先生の本。この本での貧乏クジ世代とは「第二次ベビーブーマー」 を含む 1970年代生まれのこと。目次をちらっと見ると、

「これまでよかったから、もういいことはない」―未来志向になれない人びと
「心の内を相手に伝えないこと」を「やさしさ」と考える男がふえている
...
「頑張っているとき以外は不安」―こんな状況から抜け出すには?

という感じで、まさにオレオレっていうか、俺って結構異端だと思ってたけど 実は一般的な 70 年生まれなの?って思わせる目次だが中を見ると、 つまり

  • バブルの中、「私も頑張れば、、、」と熾烈な受験戦争を戦い抜いてきたものの 世の中は就職氷河期という貧乏クジ世代。
  • 家庭もマイホームもありながら「人生やり尽した」という燃え尽き感。

などなど。燃え尽きているところだけは一致するが、 とりあえず俺は受験戦争も就職氷河期も経験してなければ、 家庭もマイホームもありませんから。

燃え尽きという意味では多分俺は 20 歳くらいでもう燃え尽きてあと惰性で 生きてるし。「コミュニケーションのあきらめ」という意味では もっと早い段階であきらめたような気がする。

本当に自分がダメだなと(客観的に)思うのはこの他者はおろか 自分自身に対しても「コミュニケーションをあきらめ」ちゃってる所だ。 だからこういう本の分析に関して客観的になるほどと思うことがあっても、 「こうしてみては」という話はまるで心に届かない。

そういう意味では、冒頭の「燃え尽き」を感じたくらいでカウンセリングに いってるサラリーマンはお前はあきらめが足りないよと思ったりw。

ところで旭屋に何か行列ができてるなと思ったら西原理恵子さんがサイン会やってました。一見普通の人でした(何。

コマンドプロンプトでF7キーを押すと、、、

何がおきるか知ってます?正直ビックリしました。

Commandline editing in psql on win32

書道スタジオ HOO

事務連絡ですが、こないだ俺が言ってたのは多分コレです。

書道スタジオ HOO【ほぉー】楽しい・嬉しい・HOOっとしたい!

そろそろ帰るか、、、

GW にはいってからのここ 6 日ほど、生身の人間とまともに会話してませんが何か?(いや、「お弁当温めますか」とかそういう会話はしてる)。

そろそろ実家に帰るか。

PHP5.1.3

  • 2006-05-04
  • php

PHP: PHP 5 ChangeLog

#36625 オレオレ。普段さんざん PHP はダメだとか言いながら patch を書いてしまうことを Python じゃなくて PHP のパラドクスと呼んでみたり。 まあ pg_trace() なんて誰も使わないわな。

と思ったら、PHPバージョン5.1.3に致命的なバグ - HotPHPPER News だそうで。

久しぶりにカメラをいじる

右目が見えなかったせいもあってしばらくカメラを触る気になれなかったんだけど、目が見えるようになったのでしばらくぶりにカメラをもって出掛けてみました。 持っていったカメラは SMENA 8M と富士フィルムの natura。

ついでにダークレスで現像してみました。 まだnaturaの方しか現像してませんが、やっぱ白黒は面白い。広角も面白い。あと AF って簡単だなw。

とりあえず練習くらいのつもりで適当に (手袋が無かったので素手で触ってたり、フィルム吊そうと思ったら落したりとか) 現像したので、かなり汚くなってしまったけど、真面目にやればもっと綺麗に できると思います。

それにしても寒かった。

img010
img010 posted from フォト蔵

img014
img014 posted from フォト蔵

グラビアアイドル + うどん

グラドル田澤麻衣が打つ讃岐うどん動画配信 - [うどん]All About

もう、どっち方面向けの情報なんだかよくわかりません。

コーヒー1杯でパンと卵食べ放題 珈琲館のモーニング

旅行中

そんなわけで、JPUG勉強会 で話してきました。 なんというかショールームのようなすごい会場。通行人が足を止めて見つめる中、 SQL の話をしてきました。

最初は時間があまりまくるんじゃないかと思ってましたが、結果的には足りないくらいでしたね。

明日はあまり天気はよくないのかな。ホテルでコードでも書くか。

うどん食べた
うどん食べた posted from フォト蔵

livedoor Readerが拓くMVC2.0

遂に出ましたね。livedoor Reader。何といっても注目はココ!!

デッドヒート
デッドヒート posted from フォト蔵

登録数ランキングがおもしろい。この livedoor Reader にいきなり飛び付くユーザ層 をモロに反映してます。4位以降は、

4. Engadget Japanese
5. My Life Between Silicon Valley and Japan
6. blog.bulknews.net
7. MYCOM PC WEB
8. Going My Way
9. jkondoの日記
10. Google Japan Blog

といった感じ。

で、まあ使ってみました。まあこれがあればとりあえず bloglines はいらないかな。 両手を使うのがコツというかミソというか。 ちょっとおかしな動作をした気もするが、再現したら報告してみよう。

それより、ソースが面白い。ってサーバ側のソースが流出したわけじゃないですよ。 HTML のソースです。

今までよくあった手法としては、サーバ側にテンプレートとデータがあって、 サーバ側のアプリケーションがそれをバインドしていたわけだけど、 ここがやっているのは、テンプレートをいきなりブラウザに送っちゃうわけだ。 で、XMLHttpRequest かなんかでサーバ側からデータだけもってくる (たぶん JSON とかで)。そしてクライアント側の JavaScript でデータをテンプレートにバインドしているわけだ。

これはある意味、今頃になっ