2009年12月31日木曜日

Avatar 見ました

 あちこちで3D映画革命だなんて評判が出ていたので、Avatar 見てきました。札幌シネマフロンティアでは12月23日が、ちょうど水曜日のメンズデーで、祝日+公開日+料金割引の好条件!なんだかんだ言って、プログラマならば、この手の映画(TRONなど)は気になるところでしょう。
 で、今頃感想を書いているように、そんなに感動するほど凄いとは思わなかったんですよ…これが…。見る映画館によって印象は、だいぶ違うのかもしれません。3D映画の方式もいくらかあって、どの方式もそんなに違わないらしいのですが、画面の色落ちが気になってしょうがありませんでした。12月30日には、「カールじいさんの空飛ぶ家」を見てきましたが、アニメの方がカラフルなので、色落ちに関しては違和感が少ないです。
 撮り方も遠景ばかりを多用していて、俯瞰している印象ばかりが残りました。海岸の絶壁で波が荒れ狂う場所を飛ぶシーンとかあるんですけど、迫力はあるけど、どうにも迫力不足というか…。画期的な3D映画には違いないのでしょうけど、わざと刺激を抑えて製作したように思えてしょうがない感じです。近景のあるシーンって、エイワ(くらげのようなもの)が浮遊するシーンぐらいしか印象にないです。
 波の荒れ狂うシーンでは、カヤックでダウンリバーしている経験からすると、本物の迫力は、こんなものじゃないだろう…と思ってしまったんですね。映画のような波間におかれたら死んでるでしょうけど…。

 製作するのは大変かもしれませんが、3D映画の可能性も、まだまだこれからじゃないかな?3Dじゃない映画でも、180度近く視野の広い映画を製作するとか?いろいろありそう。

2009年12月27日日曜日

働かざるもの、飢えるべからず。感想


 本書の位置づけは、難しい。まず、誰に向けて書いた本なのか?が、「あとがき」になるまで明かされない。読みながら、ずーっと本書の位置づけについて考えていたのだが、想定している読者は狭いように思えてしかたがなかった。筆者が以前にブログで、誰が読んでいるのか知りようもないし、気にしてもしょうがないというような事を書いていたと思うのだが、そんな感じの書に思えた。「あとがき」により、ブログをやる人に向けて、自分なりに消化してフィードバックしてほしいと始めて種を明かされる。

 テーマは、情報化時代の生き方を提言するもので、「仕組み」進化論からの続編になると思う。産業革命はプロテスタントと植民地支配を生み出した。エネルギー革命は、資本主義とテロリズムを生み出した。そして誰も体験した事の無い世界において、情報化時代に相応しい新しい思想をぶつける試みだ。

 まずは、部分的に、これはうまく行くかどうか疑問に感じた点から、挙げてみたい。
1.相続税で全員を賄えるのか?年金と社会相続税の関係がちょうど対極にあるように、若者の人口比率が増えればベーシック・インカムの額が目減りするという点にある。今は最良の時期かもしれないが、ここ数十年で破綻する可能性が高いのではないか?
2.死んで残される資産のうち、不動産による資産は8割が無価値に近くなり、ベーシック・インカムの財源にはならないのではないか? バブル期でもあるまいし、買い手のいない土地は売れない限り財源にはならない。
3.農業は土づくりが基本であり、まじめに農業をしている人から見れば、まともな土地になるまで最低5年、世代を越えて土づくりを考えるぐらいの執着があるのではないか?こういう土地を相続税で、いちいち取り上げられていては、たまったものではありません。都会の土地感覚とは同列には扱えない気がした。
4.担い手のいなくなる仕事が発生するのではないか?世の中には、きつい・きたない・きけん、いわゆる3Kと呼ばれる仕事もあります。ベーシック・インカムを得た後に、果たして、これらの職に就こうという人がどれだけいるのか?

 わからなかった理論が
1.田舎は金持ちの住むところという理論。田中角榮の列島大改造から続く経済様式と、姥捨山に金をという話が、ごっちゃになってないでしょうか?自分の感覚からすると、ストレスを感じるぐらい人が密集している所に住んで、何が楽しいのか?突き詰めていけば、何のために生きているのか?って所に落ち着くのでしょうか?

 自分の宗教観は密教によるところが大きいです。しかし、私自身、悟りの世界など存在するとは考えておらず、悟りの世界に到達すれば幸せになれるのかどうか知る由もない。そういう立場でしか考える事ができないので、本書の目指すところは、大変難しいと感じます。スマナサーラ師との対談で、「全員が出家したら誰が托鉢するのか?」という質問をしているが、著者の目指すところは「全員を強制的に出家させる道」であると感じました。対談中、師は「社会で果たさなければならない義務がある者には、出家をさせようとはしない」と、こたえられています。なるほど、社会がベーシック・インフラを用意すれば、全員が悟りを開けるのかもしれません。悟りを開いた人だけで生活が成り立つのか?ここから先は、想像力が勝負です。ロボット三原則のようなクールな思想が必要とされているのでしょうか?

 法律家なら、情報革命後に相応しい法律、哲学者なら、情報革命後に相応しい哲学、小説家なら小説…というように、断片を描く事が期待されているのか?本書には、そのようなメッセージが垣間見れます。

 最近、国語が苦手で縁遠かった古典を読んだりしています。時を同じくして読んだのが「徒然草」。本書と連動して心に残った部分を引用して終わりとします。参考URL

140段
 身死して財殘ることは、智者のせざるところなり。よからぬもの蓄へおきたるも拙く、よきものは、心をとめけむとはかなし〔氣の毒〕。こちたく多かる、まして口惜し。我こそ得めなどいふものどもありて、あとに爭ひたる、樣惡(あ)し〔醜い〕。後には誰にと志すものあらば、生けらむ中にぞ讓るべき。朝夕なくて協(かな)はざらむ物こそあらめ、その外は何も持たでぞあらまほしき。

142段
 心なしと見ゆる者も、よき一言はいふ者なり。ある荒夷〔東國邊の荒い田舍武士〕の恐ろしげなるが、傍(かたへ)〔傍の者〕にあひて、「御子はおはすや。」と問ひしに、「一人も持ち侍らず。」と答へしかば、「さては物のあはれ〔人情の機微〕は知り給はじ。情なき御心にぞものし〔こゝでは唯ありませうの意〕給ふらむと、いと恐ろし。子故にこそ、萬の哀れは思ひ知らるれ。」といひたりし、さもありぬべき事なり。恩愛(おんあい)の道ならでは、かゝるものの心に慈悲ありなむや。孝養(けうやう)の心なき者も、子持ちてこそ親の志は思ひ知るなれ。世をすてたる人のよろづにするすみ〔匹如身、人の一物をも手に持たぬを云ふ〕なるが、なべてほだし多かる人の、よろづに諂ひ、望み深きを見て、無下に思ひくたすは、僻事なり。その人の心になりて思へば、まことにかなしからむ〔いとほしい、最愛の〕親のため妻子(つまこ)のためには、恥をも忘れ、盜みをもしつべき事なり。されば盜人を縛(いまし)め、僻事をのみ罪せむよりは、世の人の飢ゑず寒からぬやうに、世をば行はまほしきなり。人恆の産なき時は恆の心なし〔孟子に「無2恆産1而有2恆心1者惟士爲レ能、若レ民則無2恆産1因無2恆心1」とある。恆産は日常の生業、生活す可き職業〕。人窮りて盜みす。世治らずして凍餒(とうだい)〔こゞえる事と饑うる事と〕の苦しみあらば、科(とが)のもの絶ゆべからず。人を苦しめ、法を犯さしめて、それを罪なはむこと、不便のわざなり。さていかゞして人を惠むべきとならば、上の奢り費すところを止め、民を撫で、農を勸めば、下に利あらむこと疑ひあるべからず。衣食世の常なる上に、ひがごとせむ人をぞ、まことの盜人とはいふべき。

static_assert はコンパイル・タイムのお話

 ちょっと気になっただけなんだけど、コメントに書くと、どうしても S/N比が下がるので、エントリとしてあげてみる。
 static_assert が標準に組み込まれるらしいのだが、これは、コンパイル時にエラーとなるようにするための機能である。普通の機能は、実行時の動作を書くのだが、ここが大きく異なる。さて、コンパイル・タイムというのは、コンパイラに激しく依存する。SJISでソース・コードをコンパイルするかもしれないし、UTF-8でソース・コードをコンパイルするかもしれない。コンパイラがコンパイル時にサポートする言語は限られていそうであるからして、ここの文字に ASCII 以外を指定する事は、まず考えなくて良いのではなかろうか?
 まさか、自分が書いたソースのエラーを多国語対応するために、msgfmt を駆使するわけにもいくまい…などと、いう事を考えてしまいました。

2009年12月26日土曜日

民主党どこへ行く?

 なんとなく、書いておきたい気分になったので、書いておく。

 自民党が大敗して、民主党が選ばれたのは、おそらく、国民が政府からお金がもらえると思っての事ではない。このまま行けば、小学生でもわかる通り、日本国が破産するからだと思うのだ。

 そんな理由で選ばれたと思うのに、連立政権を維持するために、田中角栄の手法を踏襲するバラマキを続けて良いのでしょうか?国民から支持が得られなくなると思うのだ。肝に命ずるべきだろう。

 亀井さん、小沢さんは、国民が民主党を選択した理由と、まったく真逆の事をやっている。

 この二人がいなければ、もっと国民から支持されていたろうに…。

 次に、うちでの小槌なんて無い事は、国民も理解していると思う。高速道路無償化など、修正すべき事は修正しても良いのではなかろうか?

grub 復活の備忘録

 Windowsのアップグレードで、ブートレコードがクリアされてしまった場合に復活するための手順。一度検索して、手順を理解したのだが二回目の作業のときに意外に情報が見つからなかったので、ここに記録する事にした。

 Ubuntu + Windows のデュアル・ブートというケースで話をすすめるが、他のディストリビューションも似たような状況ではないかと推察される。

 Ubuntu の CDROM から Ubuntu をインストールしないで起動する。

 コマンド・プロンプトを開く

$ sudo fdisk -l

ハードディスクの状況を確認する。ちなみに、私の家の環境では、下記のとおり

/dev/sda1 ---> Windows 7
/dev/sda2 ---> /boot
/dev/sda3 ---> swap
/dev/sda4 ---> /

 とりあえず、/ に相当するパーティションをUbuntuのエクスプローラみたいなやつでマウントする。

そのディレクトリは、/media 下にマウントされるはずである。名前は、状況により異なる。仮に /media/disk というディレクトリにマウントされたと仮定して、話を進める。



 boot パーティションを分けていない人は、この手順は不要である。boot が /media/disk に連結されていないので、マウントして連結させる。

$ cd /media/disk
$ sudo mount /dev/sda2 boot

 最後に grub を復活させる

$ sudo grub-install --root-directory=/media/disk /dev/sda

以上である。

2009年12月25日金曜日

windows7 の virtual pc 仮想マシンの作成 ボタンが表示されない

 windows 7 に仮想マシンを追加しようと思ったが、肝心の仮想マシンをどうやって追加したら良いかサッパリわからなかった…。仕事で、CentOS の環境がノートパソコン上に仮想で欲しいと思っていたのに、仕事にならん・・・。
 みんなどうやって仮想マシンを追加しているのか調べてみたら、どうやら「仮想マシンの作成」ボタンが表示されるものらしいのだ。ところが、私の環境では、肝心のボタンが無い。調べていくうちに、u_26さんのU字路を見つけた。いやー、もうギブアップです。何をどう頑張っても「読み取り専用属性」は外れません。つか、セキュリィティの都合で「読み取り専用属性」付けてるところに仮想マシン用のフォルダ入れんなっつーねん。
 そもそも、Document and Settings とか、ユーザー とか、Program Files とか、無駄に糞長いフォルダ名も気にいらなければ、付け足しのようなセキュリィティ環境も勘弁してほしいところです。home でええやんか・・・むかつくねん。Program Files もパスを設定するの長いし、タイプするのしんどいし、場合によっては、ダブルクォーテーションが必要だったり不要だったり、わけわかれへんねん。環境変数も足りなくなるから、ルート直下にフォルダを作ったりするねん。ルート直下がぐちゃぐちゃして、気持ち悪いねん。

2009/12/26 追記: Unix の root のように、windows でも管理者権限での作業はまかりならん!というのを目指しているのでしょうか?何を目指して設計して、ユーザには、どのように利用してもらいたいのか?コンセプトを提示しないとわかんねぇーよ。>Microsoft 様

2009年12月21日月曜日

Plug me!

 いんやー、年賀状の季節なのである。「筆まめ」を使っていたのだが、ディスクが壊れて住所録もオシャカになってしまったので、昨年は、はがきスタジオを使った。しかし、この住所録の部分が使いにくいのだ…。なんだかんだ言っても、「筆まめ」の住所録の方が良かったなーと思って、「筆まめ」をダウンロード購入してインストールしました。
 「筆まめ」に、おまけで JWord までついてきました。マニュアルを読むのに必要だと書かれていたので、何も考えずに JWord をインストールしたら、IE8 の URL に JWord の文字が・・・???えっ?IE用のプラグインをインストールするのは反則だろ?と、JWord プラグインを無効に設定しました。
 しばらくすると、JWord のアップデータが起動して、最新版にアップデートして下さいとの事なので、アップデートしたら、プラグインが有効に戻ってるじゃあーりませんか???勝手にプラグインを入れて繋ぐのやめてくれないかな?うぜぇーーーんだよ。速攻でアンインストールの刑です。

 「筆まめ」の年賀状デザイナ、文面が変更できないようになっていて、この部分(テンプレート)でお金を稼ぐビジネスモデルを考えているみたいだから、正直、欲しいデザインが作れないのです。宛名印刷の機能しか使う予定は無かったので、使えなくても差し支えないのです。しかし、はがきスタジオのソフトをどこかへやってしまったので、ネットを物色しました。そうすると、郵便年賀.jp なるものを見つけました。
 はがきデザインキットは無料です。今度は、Adobe Air のアプリで、御丁寧にインストール時にユニークなアカウントを作成する仕様になっていて、ユニークなアカウントを作成するまでに数分間待たされる事になりました。全く、どいつもこいつも、繋ぎたがりばかりです。 iGoogle のチャット機能といい、

Plug me!
   Plug me!
        Plug me!

 騒々しくって、いけません。はがきデザインキットも、そこそこ使い易いのですが、これが次世代アプリの姿ってものなんですかねぇ?

 「ただいま、キャンペーン期間中で、ナゲットがお安くなっております。いかがですか?」
 「いえ、結構です」
 「それでは、ご一緒にお飲み物でもいかがでしょうか?」
 「いえ、結構です」
 「○○の特待チケットです。よろしければ、お使いください」
 「はい」

なんか、頭が痛くなってきた・・・。


さすがにもう x64 が標準だろ

 嫁さんが、WinXP を正常終了させなかったので、ディスク・アロケーション情報がおかしくなって、OSが起動できなくなりました。回復コンソールから、あれこれ試してみたけども、回復でけず。Ubuntu との Dual Boot にしてあったので、Ubuntu から何とかしてみようと試したけども、そもそもデバッグログを記録できないほど重症でした。そこで、修復インストールを試みようとしたけども、F6キー押して SATAのドライバを追加してやっても、途中で違うドライバのディスクを入れろと言う指示が出て、修復インストールもできない状態。
 あー、もう Windows 7 だよね?これは・・・と、理由を付けて Windows 7 のアップグレード版を買ってきました。ついでに USB ディスク 1T も買ってきて、バックアップしました。もちろんインストールするなら x64 だよね?だよね?つか、何が悲しゅうて 32bit 版をインストールせにゃならんねん。
 と、まぁ、こんな時間になってしまったわけです。

 足りないソフトを入れてて、au Music port をダウンロードしに行ったら、Lismo port に全面的に移行したと書かれてあり、小躍りしながら Lismo port を落としました。ドライバは… W41CA と W62CA ... 落としました。WinXP sp2 互換モードでインストールして・・・・・・・・・・・・・・・クレドールを刺したら・・・・・・・・・・・・・・ドライバが見つかりません・・・・・・・・・・・・・・・。

 あっ、x64 のドライバが要るんじゃん・・・MANIFO して埴輪化しました・・・。
どうしよう・・・使えないじゃん・・・。もう疲れた・・・。

追記: XP mode を使えば、動きそうだ・・・。参考 Pro 版買っといて良かった。
追記:よく見たら、VirtualPC 2007 だった・・・。MANIFO...
2009/12/26 追記:結局 Virtual PC & XP mode にて、USBドライバとLismo port を入れて動作させる事ができました。Windows XP Mode のメニューに「USB」があるので、そこからデバイスをバイパスさせて接続ができます。

2009年12月19日土曜日

Delphi for PHP を使ってみた

 設計中のシステムで、リレーションが Ruby ActiveRecord の OR マッピングでは、とても対応できないよなー。と思っていたので、もっと良さそうなフレームワークは無いか?と探して、Delphi for PHP だ!という結論に達しました。Rails の OR マッピングは、すんなりいけば生産性は高いけども、システムの都合をユーザに押し付けてしまう点が残念です。

 Delphi と名乗るだけあって、お馴染みの TDatabase, TTable, TDataSource, TQuery といったコンポーネントがあって、ビジュアルにバシバシとリレーションを構築できます。SQLも書きたい放題!キターーーーっと、大興奮しました。しかし、1日使ってみて、出した結論は、導入するには2年ほど時期尚早。

 どの辺がダメだったかと言うと、DBGrid, DBPaginator の作りがダメ。
  • DBGrid は limit で設定した値の数だけレコードを一度にキャッシュするだけで芸がない
  • DBPaginator は、Next のリンクを押すと、次ページに行くのではなく、次レコードに行く
  • DBPaginator は、終盤のレコードにいくと、中間の数字が大きくなってデザインがメタメタ
  • DBGrid のJSクリックイベントは、コンポーネント全体のクリックイベントしかない
  • DBGrid の行中にボタンを配置する等のカスタマイズは至難
  • DBPaginator と DBGrid が連動するわけではない
 次いで、DataSource と他のコンポーネントの連動が無い。この辺は、非同期にサーバ・サイドのモデルと連動してレコードを取得し、JavaScript のイベント連携で動作するという期待を裏切ってました。(私の求めているレベルが高いのかもしれません)

 上記設計の背景には、JavaScript が OFF の設定でも動作しなければならないという思想から来ているのかもしれません。どっちかつうと、Delphi for PHP は、コンシューマ向けというよりもビジネス向けなので、JavaScript が OFF という設定は、切り捨てて良いのではないかと思います。

 Delphi for PHP かなり変態チックな感じで面白いだけに残念です。

2009年12月17日木曜日

ベタだ

 ネタもと
だいたい6分ぐらいかかった。制約があるのでベタ

#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>


int main( int argc, char* argv[] ) {
if( argc != 3 ) return 1;
int num = atoi( argv[1] );
std::string card = argv[2];

std::vector<std::string> v;
v.resize( num );

for( int i = 0; i < card.length(); ++i ) {
v[(i%num)] += card.substr( i, 1 );
}

for( int i = 0; i < num; ++i ) {
std::cout << v[i] << std::endl;
}
return 0;
}

 一番怖いのは、日本語が苦手なので問題文を理解しているかどうか…爆

2009年12月12日土曜日

映画館激混み(ワンピース)

 息子を連れて、仮面ライダーの映画でも見に行こうと、札幌ファクトリーに繰り出しました。事前にホームページをチェックして、「当日は6本の映画が新規上映されるため混雑が予想されます。」と書いてあったので、割引の効く朝一番の上映に10:15分に合わせて出発しました。
 9:30に着いてみたら、物凄い長い行列が・・・律儀に並びました。どうやらワンピースが原因で混んでいるらしいのです。関係のない仮面ライダーまで同じ列に並べという指示だったから、並んでいたのに、11:00頃、券売所が見えてくる位置に来たら、別の列が出来てるじゃないですか!!!
 しかも、「ワンピース以外の映画は、こちらにお並びください」と、客に聞かれたスタッフが答えているじゃありませんか???はぁぁぁああああ???ブチ切れそうになりました。今から並びなおしても、時間は変わりそうもありません。ワンピースと関係ない方の列は、比較的スムーズに流れていて、よけいカチンときました。
 やっと、券売所について、12時の回の仮面ライダーを頼もうとしたら、「すみません、もう完売しました」といわれて、絶句しました。こちとら、朝早くから来て、テメェ等に言われて、律儀に並んでたのに・・・。ワンピース以外の列を新設したのなら、サッサと声かけとけよ~ゴラァ~。息子には悪いけど、映画は見ませんでした。もう2度とファクトリーの映画館には行きません。
 並んでいる途中で、携帯電話で eリザーブから予約すれば、抜け出せるかな?というのが頭をよぎりました。でも、モバイルで個人情報を入力するのは、私はパスなので、行いませんでした。
 意味のわからん、お知らせを写真に撮ってきました。列を整理?するスタッフは、昼ぐらいまでは1名だけでした。どないせいちゅうねん。

 心が穏やかでないと、つまらない事でイラっとするものです。その後、昼飯を食うときに、注文した食事が運ばれてきて、お箸が無い…。店長らしき人に「すみません」と言ったら、他の店員に対応してっ?て態度をとろうとした上に、渋々という感じでやってきて、ぞんざいな感じ…。思わず、「お箸、お箸、お箸・・・お箸無いやんかー、どないやって食えっちゅうねーーーん」とツッコミ入れてやろうかと思いました。
 まぁ、クリスマスプレゼントをトイザラスでコッソリ買うというミッションもあったので、しょうがないですが、Boost の Ustream 見てた方がよっぽどか、幸せだったかも…。

追記:e席リザーブのシステム、携帯電話のメールアドレスが必須入力項目になっていた。ごめんなさい。私は、モバイルで個人情報が必要なネットのサービスは、一切ご遠慮願ってます。

2009年12月11日金曜日

拝啓Bing様

 拝啓 Bing 様

 私は、標準を準拠する気がないカス Internet Explorer には、見切りをつけて、Google Chrome をメインで使用しておりますが、デフォルトの検索サイトを、わざわざ Bing に設定して使っております。正直、技術情報を検索するときには Bing は Bingo してくれない事が多いので、どうしても Bing にしなければいけないという理由は無いのです。技術情報以外の検索であれば、Mooter も、そこそこいけてる方です。安易に Google を利用するという事でも構わないのです。

 これほど気を使って Bing に傾倒しているのに、blogger.com を Bing八分に近い扱いにする了見というのは、如何なものでございましょうや?まさか、Googleのサービスの検索ランクを下げれば、Microsoft のサービスが選択される確率が上がるなどという、標準を準拠しない連中と同じような思考ではありますまい?と信じております。

 どうか、考えを改めてくださいませ。もしくは、私の思い過ごしであってほしいです。

2009/12/26 追記: Bing 様、願いを聞き入れてくださって、ありがとう!

2009年12月7日月曜日

ubuntu 9.10 volume-control 備忘録

 ごちゃごちゃしているうちに、サウンドのボリューム・コントロールが表示されなくなってしまった。システムー>設定ー>サウンドってやると「サウンド・システムからの応答待ちです」と言われる状態…。


$ sudo apt-get install --reinstall pulseaudio


で回復した。
参考URL

2009年12月5日土曜日

思考は共鳴する

「負けない技術」と一緒に読んだのが、「耳で考える」と、「Twitterの衝撃」。私は、Twitterをやっていない。数あるTwitter本の中から「Twitterの衝撃」を選択した理由は、本書には多彩な人のTwitterにおけるユースケースが書かれてあったからです。「耳で考える」は、養老孟司先生と久石譲先生の対談本で、面白い発想が読めそうだと思い選択しました。本書でも「負けない技術」と同様に、現代人には自然と対峙する時間が必要だという結論が出ており、そういった一面にも面白さを感じました。

 本題に入ります。

 「耳で考える」の対談の中で、"石の家の壁に向かい合わせで同じ種類の振り子時計を吊るしておくと、初めは振り子が別々に動いているんですが、やがて同期する"や、マレーシアの蛍が同期して光を放つ現象、人間の持つミラーニューロンの働き、などから長年連れ添った夫婦が同期しないわけがない…という展開が出てきます。
 ブログをやってみて感じたのは、シンクロニシティのような、ある種の思考の同期性です。しかしブログでは、徹底して同期するまでには至りません。リアルタイム・メッセージに近い Twitter ではどうでしょうか?直感で、Twitterは、思考を共鳴させる力が強いのではないか?と思いました。緩やかな使い方をしていれば、緩やかに低周波数で同期し、頻繁に密に使っていれば、高周波にまで同期し興奮作用をひきおこす。
 情報化社会で、世界が同期し、共鳴し、行き着く所というのは、どんな世界なのでしょうか?自己組織化のように、個人がベストを尽くせば全体としても最適解を導きだす?それとも、第二次世界大戦時のヒットラーのようにナショナリズムで同期する?ハーメルンの奏でる笛の音の先にあるのは、どんなユートピアなのかと…。

 天邪鬼な私の性分が、Twitter するのを拒んでいる。皆にそう簡単には同調したくないのだ。自分が自分でいられるために Twitterをしない。きっと、そういう事なのだと思いました。

負けない技術 感想

麻雀の代打ち業という裏世界で無敗という伝説の人=桜井章一、そんな稀有な人が「負けない技術」という本を出していたので、どんな事が書いてあるのか気になって手にとりました。
 博打における負けないためのセオリーを予想していましたが、そこに書かれていたのは、意外にも禅に通じる考え方でした。本来、自然界における動物の行動というのは、自らが生存していく事に集中しており、そこに「相手を完膚なきまで打ちのめす=勝利しにいく」という発想は無いというのです。
 自然体である身体感覚が重要であり、情報だけに頼る頭でっかちではダメなのでしょう。私にとって耳が痛かったのは、「準備、実行、後始末」というサイクルが大切だという教えでした。かたづける事によって、次の準備が整うのだと…。バレエの熊川さんが、何かのインタビューで整理整頓できない人がアートを作り出せるはずがない…というような事を言ってたと思うのですが、それに通じるものがありました。
 本書の半分は、感覚的な要素の強い内容で、残り半分は実践できそうな事柄が書かれています。たまには、オーラ(身体感覚)を読む読書というのも面白いのではないでしょうか?

2009年12月2日水曜日

うにゃ

 ゴミ・ポストです。とばしてください。

 本読んでるけど、アウトプットしてない…。少なくとも4冊は、3冊・1冊の2記事に分けて感想を書く予定。気が向いたら、もう1冊も書くかもしれない。あと、別の1冊は、もう少し消化してから書く予定。
 そうだ、Haskell 本、もう一冊買って読む予定のまま放置してたから、買わなきゃ…。boost::ggl も、どっかで時間を取って突っ込まなければならない。boost ML で、ロバストな三角形化のルーチンが欲しいとか書かれてあったけど、OpenGL のテッセレーションのコードじゃダメなんだろうか?シンプルでない一筆書き boost::polygon タイプの三角形化のルーチンは、書いたやつがあるけど、ロバストか?と言われると、辛いものがある(例外を送出しても良いなら、安定はしてる気がする)。感覚的には、boost::polygon の方がわかりやすい感じがしてます。boost::polygon もどっかで時間を取って突っ込まなければならない。
 仕事の方は、現在、並行して2つのシステムの設計と、別のシステムの面倒を見て、それプラス技術的な検証も迫られてまふ…。それだけだと、未来が無いので、旧システムの再設計も含めたテコ入れをやって、せっかく書いた巡回セールスマン問題を解くルーチンを生かすコーディングも考えて・・・って、誰か設計、代わってくれ・・・
 あと、社員の教育の必要性をヒシヒシと感じてまふ・・・。デバッグに付き合ったんだけど、半分以上が技術的な説明とプログラムの動作についての講習みたいになってしまったです。だけど、やらせた内容が難しかったので、仕方が無い事だと思いました。放っておいてもプログラミングやシステムの勉強をするタイプの人は超少数派みたいです。その一方で、Oracle Transaction 備忘録みたいな事を教えてもらったりとか、経験積んでいる社員は一日の長ってやつを持ってます。

 どうやったら、プログラミングのレベル差を埋められるでしょうか?というのが、課題だと思う今日この頃でふ…。みんな、せめて、もうちょい本を読んでほしい…。

MySQLきらいだ

 システム設計の都合で、MySQLのデータベースからスキーマを拾ってこようと、MySQLをWindowsにインストールしてみたのだが、Access Denied で最初のアクセスすらできない。インストーラでは user=root password=hoge なはずなのだが、mysql -u root -D mysql -p とか、手をかえ品をかえ試しても、かたくなに Access Denied。つか、Winodws で MySQL がまともに動作したのを見た事がない。
 ずいぶん昔に使ってみたときは、一応動作したけど、メモリリークやハングなど品質が低すぎて諦めた。

 Windows のようなオープンでないOSで、MySQL を使うという発想が間違っているのだろう。
とにかく MySQL は、ろくな思い出がないので、きらいだ。

 SQL から、スキーマおこすよ・・・ちくしょう。

2009年12月1日火曜日

Oracle Transaction制御 備忘録

 データベースに対して、シリアルに更新をかけたい場合に、ある処理に関しては、同時に2つのトランザクションが稼動してほしくない場合があります。どうやるか?

 トランザクション名を設定し、そのトランザクション名がトランザクション中かどうかを検索する。

SET TRANSACTION NAME 'HOGE_TRANSACTION';
BEGIN TRANSACTION;
INSERT INTO FUGA (NAME,VALUE) VALUES ('HIHO','HIHO');
...
COMMIT TRANSACTION;

というような更新をかけておき、以下のSQLを実行する

SELECT NAME FROM V$TRANSACTION WHERE NAME='HOGE_TRANSACTION';

尚、このような手法ができない場合には、特定のレコードをロックしておいて、ロックが成功するかどうかでも代用できる。その場合、

SELECT * FROM HOGE WHERE ID=9999999999 FOR UPDATE WAIT 1;

というように、WAIT 構文を利用できる。WAIT 構文が無い場合は、ごめんなさい。

2009年11月28日土曜日

boost::asio udp 考察

 boost::asio の udp について、少しコツがわかったので、ポストします。ごちゃごちゃと説明するよりは、コードを見てもらった方がはやいと思うので、いきなりコードです。

// ping_pong_server.cpp

#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <iostream>

using boost::asio::ip::udp;

//
// サーバ側から見た、通信の流れ
// 実装は、bind の順序が下図どおりではない点に注意
//
// CLIENT SERVER
// bind_accept
// ---- connect ----> => handle_accept
// bind_ack
// <---- ack -----
// => handle_ack
// bind_receive
// ---- data 1 ----> => handle_receive
// bind_ack
// <---- ack -----
// => handle_ack
// bind_receive
// ---- data 2 ----> => handle_receive
// bind_ack
// <---- ack -----
// => handle_ack
// bind_receive
// ---- data 3 ----> => handle_receive
// bind_ack
// <---- ack -----
// => handle_ack
// bind_receive
// ---- data 4 ----> => handle_receive
// bind_response
// <--- data 1+2+3+4 ---
// => handle_response
//
// Async 実装上のコツは、キャッチャーミットを構えておいて
// ボールを投げる。この一点につきるかもしれない。

class ping_pong_server {
private:
boost::asio::io_service io_service_;
udp::socket socket_;
udp::endpoint client_endpoint_;
std::string ball_;
int count_;
boost::array<char,512> buffer_;
boost::array<char,1> ack_buffer_;

private:
void bind_accept() {
//std::cout << "bind_accept" << std::endl;
socket_.async_receive_from(
boost::asio::buffer( buffer_ ),
client_endpoint_,
boost::bind(
&ping_pong_server::handle_accept, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_accept(
const boost::system::error_code& error,
size_t bytes_recvd
) {
//std::cout << "handle_accept" << std::endl;
if( !error ) {
ball_.append( &buffer_[0], bytes_recvd );
std::cout << "*:" << client_endpoint_.port() << ":" << ball_ << std::endl;
++count_;
// ACK を送信する前に、受信の準備をしておく事が重要
bind_receive();
// 受信の準備なしに ACK を送信すると、受信が間に合わなくなる可能性がある。
bind_ack();
} else if( error != boost::asio::error::operation_aborted ) {
std::cout << error.message() << std::endl;
start();
}
}
void bind_ack() {
//std::cout << "bind_ack" << std::endl;
socket_.async_send_to(
boost::asio::buffer( ack_buffer_ ),
client_endpoint_,
boost::bind(
&ping_pong_server::handle_ack, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_ack(
const boost::system::error_code& error,
size_t bytes_transferred
) {
// ACK の送信が完了した段階で、受信するコードを書く事ができるが、
// ここで bind_receive するのでは、タイミングが遅い可能性がある。
//std::cout << "handle_ack" << std::endl;
}
void bind_receive() {
//std::cout << "bind_receive" << std::endl;
socket_.async_receive(
boost::asio::buffer( buffer_ ),
boost::bind(
&ping_pong_server::handle_receive, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_receive(
const boost::system::error_code& error,
size_t bytes_recvd
) {
//std::cout << "handle_receive" << std::endl;
if( !error ) {
ball_.append( &buffer_[0], bytes_recvd );
std::cout << client_endpoint_.port() << ":" << ball_ << std::endl;
++count_;
if( count_ < 4 ) {
// ACK を送信する前に、受信の準備をしておく事が重要
bind_receive();
// 受信の準備なしに ACK を送信すると、受信が間に合わなくなる可能性がある。
bind_ack();
} else {
// cleint_endpoint_ が更新されないうちに最後のレスポンスを送信
bind_response();
// 次の受信サイクルを開始する
start();
}
} else if( error != boost::asio::error::operation_aborted ) {
std::cout << error.message() << std::endl;
start();
}
}
void bind_response() {
//std::cout << "bind_response" << std::endl;
socket_.async_send_to(
boost::asio::buffer( ball_ ),
client_endpoint_,
boost::bind(
&ping_pong_server::handle_response, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_response(
const boost::system::error_code& error,
size_t bytes_transferred
) {
// ここでも先手を打ってあるので、何もしない
//std::cout << "handle_response" << std::endl;
}

void start() {
ball_.clear();
count_ = 0;
bind_accept();
}

public:
ping_pong_server()
: io_service_()
//, socket_(io_service_,udp::endpoint(udp::v6(),8080))
, socket_(io_service_,udp::endpoint(udp::v4(),8080))
, client_endpoint_()
, ball_()
, count_()
{
}

void run() {
start();
io_service_.run();
}


};

int main() {
ping_pong_server pps;
pps.run();
return 0;
}


これに対して、クライアント側のコードです。


// ppclient.cpp

#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/thread/thread.hpp>
#include <string>
#include <iostream>

using boost::asio::ip::udp;

const char *msgs[] = { "ping", "pong", "pang", "pong" };

class ping_pong_client {
private:
boost::asio::io_service& io_service_;
udp::resolver resolver_;
udp::socket socket_;
udp::endpoint server_endpoint_;
int count_;
boost::array<char,512> buffer_;
std::string result_;

private:
void bind_send() {
//std::cout << "bind_send(" << msgs[count_] << ")" << std::endl;
socket_.async_send(
boost::asio::buffer( msgs[count_++], 4 ),
boost::bind(
&ping_pong_client::handle_send, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_send(
const boost::system::error_code& error,
size_t bytes_transferred
) {
//std::cout << "handle_send" << std::endl;
if( error ) {
std::cout << error.message() << std::endl;
}
}

void bind_ack() {
//std::cout << "bind_ack" << std::endl;
socket_.async_receive_from(
boost::asio::buffer( buffer_ ),
server_endpoint_,
boost::bind(
&ping_pong_client::handle_ack, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_ack(
const boost::system::error_code& error,
size_t bytes_transferred
) {
//std::cout << "handle_ack(" << count_ << ")" << std::endl;
if( !error ) {
if( count_ < 3 ) bind_ack();
else bind_receive();
bind_send();
} else {
std::cout << error.message() << std::endl;
}
}
void bind_receive() {
//std::cout << "bind_receive" << std::endl;
socket_.async_receive_from(
boost::asio::buffer( buffer_ ),
server_endpoint_,
boost::bind(
&ping_pong_client::handle_receive, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
);
}
void handle_receive(
const boost::system::error_code& error,
size_t bytes_recvd
) {
//std::cout << "handle_receive" << std::endl;
if( !error ) {
result_.assign( &buffer_[0], bytes_recvd );
} else {
std::cout << error.message() << std::endl;
}
}
void start( const char* host, const char* port ) {
//std::cout << "start(" << host << "," << port << ")" << std::endl;
udp::resolver::query query(host, port);
resolver_.async_resolve(
query,
boost::bind(
&ping_pong_client::handle_resolve, this,
boost::asio::placeholders::error,
boost::asio::placeholders::iterator
)
);
}

void bind_connect(
udp::resolver::iterator endpoint_iterator
) {
//std::cout << "bind_connect" << std::endl;
server_endpoint_ = *endpoint_iterator;
//std::cout << server_endpoint_ << std::endl;
socket_.async_connect(
server_endpoint_,
boost::bind(
&ping_pong_client::handle_connect, this,
boost::asio::placeholders::error,
++endpoint_iterator
)
);
}

void handle_resolve(
const boost::system::error_code& error,
udp::resolver::iterator endpoint_iterator
) {
//std::cout << "handle_resolve" << std::endl;
if( error ) return;
bind_connect( endpoint_iterator );
}

void handle_connect(
const boost::system::error_code& error,
udp::resolver::iterator endpoint_iterator
) {
//std::cout << "handle_connect" << std::endl;
if( !error ) {
bind_ack();
bind_send();
} else if( endpoint_iterator != udp::resolver::iterator() ) {
bind_connect( ++endpoint_iterator );
} else {
std::cout << error.message() << std::endl;
}
}

public:
ping_pong_client(boost::asio::io_service& io_service)
: io_service_(io_service)
, resolver_(io_service_)
, socket_(io_service_)
, count_()
{
}

std::string run( const char* host, const char* port ) {
count_ = 0;
start( host, port );
io_service_.run();
return result_;
}

};

boost::asio::io_service io_service;

int main() {

ping_pong_client ppc( io_service );

std::cout << ppc.run("localhost","8080") << std::endl;

return 0;
}



 と、まぁ、1対1の通信ならば、これで、うまく行きます。では、同時に多対1の通信にするとどうでしょうか?というテストコードが以下です。


// 前半は同じ。

boost::asio::io_service io_service;
boost::array<std::string,10> slot;
boost::array<boost::thread,10> thr;

void tfunc( int i ) {
ping_pong_client ppc( io_service );
slot[i] = ppc.run( "localhost", "8080" );
}

int main() {
boost::thread_group threads;
for( int i = 0; i < 10; ++i ) {
thr[i] = boost::thread( &tfunc, i );
threads.add_thread( &thr[i] );
}
threads.join_all();
for( int i = 0; i < 10; ++i ) {
std::cout << slot[i] << std::endl;
}
return 0;
}


 これで実験してみたところ、async_receive_from と async_recieve も変わりなく、ごちゃ混ぜになりました。UDP は、コネクション・レスという事で、1Query 1Response のタイプのものが多いです。このような状況で、セッションという概念を持ち込むのは、かなりしんどそうです。このサンプルのように、通信をする場合は、トラスティッド・ネットワークで1対1が保障されるような場合にしか使えないという事のようです。

2009/12/01 追記、どのみちマルチ版は、まともに動作しないのですが(通信がちゃんと終了しないため)、boost::asio を使ったマルチスレッドのサンプルとしては、でたらめなので、後でフォローしなおします。

2009年11月25日水曜日

いろいろ

 左鎖骨遠端部骨折ですが、3つに分解したところの端が、くっつき始めました。で、現在は、徐々にくっついてきていて、中途半端にゴキゴキする感じが気持ち悪いです。

 仕事の方は、やる事が多すぎて、首がまわりません。まぁ、あちこち放置プレー。手がかかる事が多いというのは、まだまだ能力不足なんでしょうか?それとも器用貧乏なんでしょうか…。

 息子のスキーを揃えました。昨年まで、ソリにすら興味を示さなかったのに、大丈夫なのか一抹の不安があります。

 boost::asio の udp のコツが、なんとなくわかった気がするので、暇を見てサンプルを書いて、ポストする予定。こう書いて、宣言しとかないと、立ち消えになりそう…。

 仮面ライダー・カブトと響鬼を、わりとまじめに見ました。新ライダーのシリーズって、結構おもしろいかも?カブトは、水島ヒロが主人公なんで、嫁さんにも好評でした。ちなみに、うちの坊ちゃんに「少年」って、呼びかけたら、「少年じゃない!」って怒られました(´・ω・`)

Android と Chrome OS

 もし、Android と Chrome OS が統合されるのであれば、恐らく、Android も地に落ちるだろう。強制されるクラウドなんて、まっぴら御免だ。ストールマン氏の言うように、自己管理権だけは譲れない。選択肢の無い自由に何のメリットがあろうか?これが本当ならば、Android は、モバイル戦争から脱落だな。

2009年11月23日月曜日

asioのudp

 うーん…。udp で組み直してるけど、udp socket の async_receive, async_send が、どうにも思うように動作してくれない…。しかも、free function の async_read も udp の socket には対応していないみたいで、エラーになってしまった。
 そんな訳で、N2175 を印刷して、まじめにチェックする事に…。

 udp の場合

   async_receive_from 任意のクライアントから受信する
   async_receive 一旦受信して endpoint の確定したクライアントから受信する
   async_send_to 送信先を指定して送信する
   async_send 一旦送信して endpoint の確定した所へ送信する

という理解が間違っているのか…? async_receive_from と async_send_to は、ちゃんと動作するんだけどなぁ?udp って、セッションレスなんでしょうか? packet の構造調べてみたけど、セッションレスには思えないっす…。うーむ…。

2009/11/24 追記: どうやら、udp の場合 tcp と違って、ack を返さないので、通信のタイミングがシビアなようである。当たり前と言ってしまえば、それまでの事ですが…  間に std::cout << "hoge" << std::endl というようなコードを挟んでやると、通信できるようになったりしました。

2009年11月19日木曜日

IE9

まぁ、みんな気になっているのが、いつになったら標準をインプリメントしてくれるのか?だ。特にHTML5なんかよりも、Canvasのサポートは、どうしたーーーー。
あーーー?
 Canvasのサポートは、どうしたーーーーーーーーーーーーーーーーー
 あーーーーーーーーん???
  Canvasのサポートは、どうしたーーーーーーーーーー。
   はぁぁぁぁぁあ?標準をインプリメントしろよーーー。

ふざけんな!!!標準をサポートしなさい!!!でしょう。
コメントを見ても、怒号の嵐だった。標準をインプリメントしてくれないから、みんな、涙を流すような美しいコードを書いているのです。自覚しろよ。つか神経無いのか?

2009年11月18日水曜日

やっと Windows7 へ移行した

 アップグレードに時間がかかる事は知っていたが、いやはや、ほんとに時間がかかった。

 GoogleToolbar が削除されていないという苛めには、レジストリで「GoogleToolbar」を検索して、片っ端からエントリを削除する事で対応した。普通のユーザにはお勧めできない方法だ。CLASS-ID 丸ごと削除とか、怖くてできないと思う。Extras うんぬんの苛めは、警告程度でしかなかったのかもしれない。Ticker とか、Extras に含まれる更新も全てアンインストールしておいた。

 非生産的OSであるVistaと違って、軽快に動作するので気持ちが良い。コントロール・パネルの動きなんか100倍ぐらい速くなったのではないだろうか?

追記: Norton UAC Tool を非互換でリストアップしとけよ。何事かと思ったぞ!

Windows7 買ってきた

 史上最も非生産的OSであるWindows Vistaに嫌気がさして、Windows7を買ってきた。Vista 何かしようと思うと数分間だんまりを決めこんで、反応がなくなるし、眠らない(シャットダウンしない)し、手がかかる。このOSのせいで、ロスした時間を考えると、計り知れないものがある。で、アップデートをした方が時間の節約になるだろうと踏んでいたのだが、甘かった。

 現在、
  • 削除されているはずの GoogleToolbar がインストールされている
  • Vista Ultimate Extras の言語パックがインストールされている(入れてないってば)
という理由で、アップグレードできないという苛めにあっている。

 コンポーネントの追加と削除から、Extras のチェックを外したら、何時間たっても反応がないので、OS付属のインストーラ・アプリケーションを強制終了させて、再度確認したらチェックが外れていた。しかし、更新プログラムの履歴を見ると、Extras のサービスパックがインストールされていて、こいつをアンインストールしようとするが、ひとつをアンインストールするのに1時間近くかかる。

 これならば、クリーン・インストールをしてデータを移行した方が、なんぼか早くね???

 という訳で、史上最悪のマイクロソフト製品は

  • 第一位 Microsoft Access 1.0
  • 第二位 Microsoft Windows Vista

です。

2009年11月14日土曜日

産学官連携の削減について

 産学官連携の予算を無くす事について、思うところを述べたい。

 先日、ワールド・ビジネス・サテライトで、京都大学が特許技術を米国へ売り込むという特集ニュースを見た。これ自体に異論があるわけではない。世界はフラット化しており、日本だけで何とかしようという時代は終わっているのかもしれないからだ。

 ところが、情報化時代の傾向として、Winner takes all. がある。この事により、投資格差は広がるばかりであると感じる。特にベンチャー投資という土壌の育たない日本では、これは問題ではなかろうか?事業仕分け委員会の言うように、学だけを強化すると、この時代だから日本政府が投資したお金は、他国の企業を強化し、益々格差を広げるための頭脳として使われる事になるのではないか?こういった懸念をぬぐえない。

 地方都市では風当たりが強くても、風の正体がよくわかっていないところがある。刺激の多い都市と比べて、啓蒙活動が必要なのである。それなしでは、地方の経済は低下し、老人だけが取り残され、疲弊し、人口減少に拍車がかかる。

 大学が独立行政法人化されてから、大学も変わったな?と感じている。大学の先生が主導して積極的に産学連携を模索するなど、気概を感じているのだ。

 大して効果の無い無駄な事業を支援しろとは言わない。だけど、投資どころを間違えないで欲しい。

 北海道では、コンサドーレのお金の使い方
  • 有力選手にお金を払わないで、J1リーグを陥落
  • J2リークで人気が無いから、札幌ドームで試合を開催できない(開催できていれば、試合で投資を上回る資金が回収できたと考えられる)
  • 実力の無い有名監督に、有力選手に払っていれば…という無駄な投資を決行

を間近にしたり、
 
 HARP構想というSaaS基盤をSaaSが定着する前にぶちあげて、それを推進できる人材がいたにもかかわらず、「何もするな」と投資を怠り、チャンスを逸してしまった事例を間近にしてきた。

 くれぐれも、投資どころは考えて欲しい。今のやり方に問題があるなら、違うやり方でもいいではないか?それこそ、望むところである。

技術立国日本?茶茶茶

 痛いニュースのスパコン発言とか見て思った事。

 まず、民主党のやっている「仕分け作業」とやらは、大いにやって欲しい。今まで、こういった評価自体が皆無で、投げっぱなしジャーマンだったのだから、しょうがない。しかし、仕分け作業等で評価された事が全て正しいとは限らない。間違いは正せばよいだけの話。


 私がブログを始めるにあたって一番伝えたかった事にもあるように、情報戦の時代に突入しているのである。そんな時代にあって、スパコン1位が重要か?だと???どたまかち割ったろかーーーぼけーーーー。今日の新聞を読んでみろ。業績が好調な企業はインターネットの絡んだ企業ばかりだし、ANAが航空券の販売手数料を引き下げ、理由は8割がネットで購入しているから…だ。この時代は、Winner takes all. ですよ。頭を使わないで、どうやって生き残っていくつもりなの???

追伸:

 亀井大臣のメンバーに外人が含まれる発言には呆れる。批判のベクトルが的外れ。

2009/11/18 追記:
 1位を目指して結果として1位じゃなかったら?って話だったとは…。1位を目指す気概が重要だけど、そこは競争なので、1位でなくても仕方が無い。そもそも時間当たりの単純な並列計算量は、競ってもしょうがないです。そこを比較されてもなぁー。あくまで、並列では厳しいというか、難しい計算に価値があるのです。というプレゼンをちゃんとしないと…。
 

13日の金曜日

 ネタもと

 誰か、もうちょっとスマートなのキボンヌ


#include <boost/date_time/gregorian/gregorian.hpp>
#include <iostream>

int main() {
using namespace boost::gregorian;
date today = day_clock::local_day();
date sday( today.year(), today.month(), 13 );
month_iterator miter( sday );
int loop = 520;
do {
if( (*miter).day_of_week() == Friday ) std::cout << *miter << std::endl;
++miter;
} while( --loop );

return 0;
}

2009年11月13日金曜日

個人情報とサービス

 一ヶ月以上前にPマークの個人情報管理責任者向けセミナーに参加しました。その時の牧野二郎先生のセミナーが面白かったです。内容は、インターネットのクッキーを利用する事により、超個人情報を活用した動的ページの作成が海外では標準となっている。という感じのものでした。

  1. パソコン2台持っているならば、1台はクッキーを有効にし、別の1台はクッキーを無効にし、しばらく利用してみてください。
  2. この状態で、2台同時に同じ内容で検索を実行してみてください。
  3. さあ?画面に表示されている内容は、同じですか?


を実践してみれば実感できますよ。というものでした。

 現在、クッキーの位置づけとしては、個人の名前は無いけれども個人と結びついた一意のIDによる何らかの情報が入ったものである。よって、グレーゾーンながら個人情報とは違う。という見解が一般的だと思います。ところが、この中に何を行ったか(具体的には、買い物をした閲覧した履歴など)が、記録されており、これら情報も大量に集積すれば、個人が特定できてしまうという問題があります。考えてみれば、世界に1つしかないものを購入すれば、それを購入したという履歴1つで、個人が特定できてしまうのです。こういう問題についても、これからは考えていきましょうよ!そして、考えた上で積極的に利用しましょうよ!という講演内容でした。

 ここから先は、セミナーから逸脱した私個人の見解です。

 情報リテラシーに書いたように、サービスを享受するにはトレードオフが存在します。例で挙げたのはアマゾンのアフィリエイトでしたが、GMail や Blogger や Google Reader などなど、これらの無料サービスから収集された個人の趣向を利用して、効果的な広告を出す事だって、トレードオフだと言えます。ターゲット広告は、クッキーだけが対象ではありません。

 もっと嫌な言い方をすれば、Google Analytics, 様々な便利な Google API, これらを利用して個人の行動履歴が収集され、利用されている可能性が十分にあるって事なのです。Google のサービスを享受しており、Google アカウントのログイン状態クッキーを利用していれば可能でしょう。ウェブ履歴の収集は余計なお世話と言いたいです。

 Google の強みは、BigTableにより情報が一ヶ所に集約されているところです。個々のサービスが独立していて、設定した内容が他のサービスに反映されなかった Livedoor とは、一味違います。最近、Google が、グーグル・ダッシュボードを発表し、なるほど、Googleは悪ではないのかな?とも思います。しかし、どこまで公開されているのか一抹の不安はあります。

2009年11月10日火曜日

TIME_WAIT にやられた

WAN で連帯するシステムで、動的IPって何だよ!の続きです。
 まぁ、最初の話では、当然固定IPで、サーバOSを入れるに決まってんだろーという話をしていたんです。それが、どこをどう転がれば、動的IPとWinXPにDBサーバとGISのサーバをぶっこんで、そのマシンでクライアント・アプリも動かして、IISが稼働してSoapのISAPIからGISサーバやDBサーバに更新かけて、ペンティアム4のシングル・コア、メモリ2Gで動いてます…って話になるんだよ!という構成のシステムがあってですね。
 負荷をかけると、途中で外部センターからのデータ送信が失敗するという現象が起こる…ってんで、現調してました。どうも、そのマシン内でのTCP接続が途中で失敗しているのが原因みたいでした。ISAPI の DLL から、TCP接続をかけていて、TCPのクライアント側からちゃんと切断しているけども、netstat -a で見ると TIME_WAIT の嵐!
 センターから IIS への Soap 通信は、HTTP/1.1 の接続で、Keep-Alive が効いているので、一度に大量の更新をかけても基本的に接続数が増えない。しかし、Soap の1リクエスト毎に TCP 接続しているので、こちらの後処理がうまく行っていなければ問題である。IIS への Soap 通信も細切れになる可能性は十分にある。自前で書いてる部分は、TIME_WAIT でも SO_REUSEADDR オプションを指定して回避は可能であるけども、IIS 等はアウト・オブ・アンダーコントロールである。TIME_WAIT に絡む設定を調べていくうちに、WinXP では、ポートの最大接続数は 5000で、切断までの最大待ち時間は 120 秒で、サーバ用途では少なくとも、5000, 60秒という設定になるらしい事が判明した。負荷も考えると短時間に大量に接続と切断が繰り返されるのであれば、20000, 30秒ぐらいでも良いと思う。
 参考1参考2
 ちなみに、boost::asio で、コントロールしようと思うと、こんな感じになるのでしょうか…。

 納得が行かないのは、自前で書いたTCPの切断…。CLOSE_WAIT や TIME_WAIT とかが気持ち悪いので、クライアントから切断するようにしたのに、ゴミが残る???見ると、ウィルス・チェッカーがパケットをスニッフしていて同じように TIME_WAIT をしてる…。うーん…クライアントから切断時に FIN が飛んでないのか?ウィルス・チェッカーが行儀悪いのか?何か別の原因か?

 とりあえず、ISAPI.DLL からは、どうせ同一マシン内の接続しか無いようなので、スピード・アップと TIME_WAIT 対策も兼ねて UDP で接続する事にし、レジストリのパラメータを

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort = 20000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay = 30

という風にする事で回避する事にした。

2009/11/11 追記: TIME_WAIT は迷子になったパケットが到着するための受け口として存在するようです。よって、正規の動作と考えて良いみたいです。ちなみに非同期IOでコントロールしていれば、迷子もクソも無さそうに思えます。

2009年11月8日日曜日

boost::polygon

 キターッ!!!という気がするのだけども、とりあえず演算してみることに…。やっつけスクラッチです。


//#pragma warning (disable: 4351)
//#pragma warning (disable: 4805)

/*
Copyright 2008 Intel Corporation

Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt).
*/

#include <boost/polygon/polygon.hpp>
#include <boost/foreach.hpp>
#include <cassert>
#include <iostream>
namespace gtl = boost::polygon;
using namespace boost::polygon::operators;

typedef gtl::polygon_data<int> Polygon;
typedef gtl::polygon_traits<Polygon>::point_type Point;
typedef std::vector<Polygon> PolygonSet;

std::ostream& operator << (std::ostream& os, const Point& p ) {
os << "(" << x(p) << "," << y(p) << ")";
return os;
}

std::ostream& operator << (std::ostream& os, const Polygon& p) {
Polygon::iterator_type s = p.begin();
Polygon::iterator_type e = p.end();
while( s != e ) {
os << *s << ",";
++s;
}
return os;
}
std::ostream& operator << (std::ostream& os, const PolygonSet& s) {
BOOST_FOREACH( const Polygon& p, s ) {
os << p << " : ";
}
return os;
}


int main() {

Point pts1[] = {
gtl::construct<Point>( 0, 5000),
gtl::construct<Point>( -4330, -2500),
gtl::construct<Point>( 4330, -2500)
};
Point pts2[] = {
gtl::construct<Point>( 0, -5000),
gtl::construct<Point>( 4330, 2500),
gtl::construct<Point>( -4330, 2500)
};


Polygon poly1, poly2, poly3, poly4;
gtl::set_points(poly1, pts1, pts1+3);
gtl::set_points(poly2, pts2, pts2+3);

PolygonSet ps1, ps2, ps3, ps4, ps5;
ps1 += poly1;
ps2 += poly2;

ps3 += ps1 & ps2;
ps4 += ps1 | ps2;
ps5 += (ps4 - ps3);

std::cout << ps3 << std::endl;
std::cout << ps4 << std::endl;
std::cout << ps5 << std::endl;


return 0;
}


2009年11月5日木曜日

ジニ係数に現れないもの

 竹中平蔵先生のおっしゃっていたジニ係数が悪くないという論旨が、どうにも、ひっかかるので、考察してみました。生活をする単位は、家族なわけでして、昔であれば男性一人が働いて家族を養っていたのだと思います。ところが、男性一人の収入では足りなくて、共働きしているというケースが増えているのでは?という気がしてしょうがないのです。こういうものは、ジニ係数では測れないと思います。生活最低水準を維持するために、一方では余裕の時間が減る、または、心身を削る事になると思います。収入という面で換算すれば負荷がかかって折れ曲がる寸前の棒は多少悪化しても、見かけ上は折れていません。ジニ係数で見れば、少し悪くなっているかもしれない程度の現象にしか見えないと感じます。
 

2009年11月4日水曜日

カヤックしてない

 今シーズンは、千歳川に肩慣らしに2回行っただけ…。せめて空知川か幾春別川ぐらいは行きたかった。現在持っている T1 はスピードが遅くて、もうちょい速い艇が欲しいところ。そこで、リバーサーフィンならぬネットサーフィン…。Dragorossi Fish に惹かれるけど、買えないよなぁ…。

2009年11月2日月曜日

仮面ライダー555コレクション

 オークションについて(ニッチ市場の勉強)を長々と書きましたが、コレクションを振り返って見ることに…。現在4歳のうちの息子には、高すぎて見せる事すら出来ない状況です。成長して、いつの日か、このブログを発見して愕然とする日がやってくるのでしょうか?まぁ、スイッチが入ってしまって、嫁さんにも呆れられてしまったと思います。視線が痛々しかったです。何か届く度に「また何か頼んだ?」と…。ファイズ・ショットは箱の状態が悪くてテンションが下がりました。それにカイザ・ショットはファイズ・ショットと違いは微差で、カイザ・ショットは別にいいや…と本体だけの入手です。後でファイズ・ショットの本体抜きが出回ったので箱を入手して取り替えました。ファイズ・アクセルは、まとめて入手した関係でチャイニーズ版と日本版の2つを持ってます。ファイズ・ブラスターは、テレビシリーズでも後半にちょこっと出てきただけ、人工衛星からエネルギーを転送するという設定なので、屋内では使えないだろ…とか、まぁ、思い入れが無いので揃える気がありませんでしたが、多少気になったので欠品ながら入手しました。スマート・パッドも、まとめて入手した関係で、集める意志は無かったけどあります。こうやって、振り返ってみると、結構すごい事に…。つか、やりすぎだろ…orz。












2009年11月1日日曜日

使える!経済学の考え方 感想

 「使える!経済学の考え方」 404 blog not Found で紹介されていて、面白そうなので購入しました。しかし、一部内容が難解です。数学の知識が、そんなに無くても読める感じで紹介されていましたが、途中、独立した事象の総和が1でない確率空間でない確率が登場し、かなり面食らいました。一般的な集合論が成立しないので、論理学も我々が一般的に考える論理学の枠組みでは考えられず、体系自体が無矛盾かどうかを考えなければならない数学の世界が、サラリと語られてます…。ここは、ちょっと理解できませんでした。
 久しぶりに日曜日の朝にテレビを見ていたら、竹中平蔵先生が出演されていて、日本はジニ係数が、そんなに悪くないのに、日本では、あたかも格差が広がっているような言葉だけが一人歩きしていると主張されていて、へー、ジニ係数だ!と、この論点を理解できた事に嬉しくなりました。
 このジニ係数ですが、専業主婦等も含めた試算、年間所得だけを比較した試算、保有資産も含めた試算、などなど、とり方によって傾向が変わってきそうで、ちょっと気になりました。こんな事を思考できるのも本書のおかげです。
 第6章のケインズが何故注目されているかを解説したあたりは、以前に世界危機のセミナーを受けた時に紹介された本が、どうして注目されているのかを伺い知る事ができて、良かったです。もう一度、再読してみようかな?という気になりました。
 若干、難解な部分も含まれていますが、今までの中で一番身になった本でした。理系の人は、この本からスタートしても良いのではないでしょうか?

クラウド版RAID5

パリティ付きストライプ・セットって、あるじゃないですか?あれのクラウド版を思いついてしまいました。ちょうど、W3Cにウェブ・ストレージとかの規格が上がってたんで、無料のディスク・サービスが 500M,500M,500M と三個所以上あれば、これら3つのクラウドを統合して、パリティ付きストライプ・セットとして 1G のディスク・サービスとして利用できちゃうんじゃないですか?
 2つのサービスが同時に崩壊しない限り大丈夫で、1つのサービスが崩壊しても、どこかから新しいサービスなり、スペースなりを追加すれば、クラウド・ホット・スワッピング…なんちゃって…。
 くだらねぇけど、うまく冗長化できれば、パブリック・クラウドでプライベート・クラウドを構築できちゃうとか…?

2009年10月31日土曜日

ubuntu で動画再生画面が真っ黒(備忘録)

 ubuntu 9.10 にアップデートしたら、動画が見れなくなってしまった。


$ gstreamer-properties
 
こいつを実行して、video タブを選択。
Default Output の plugin を自動から、個別に選択していって、Test ボタンで動作するものに変更してしまえば、OK。

 ちなみに、mplayer では、.mplayer/gui.conf ファイルの vo_driver を

vo_driver = "X11"

というように標準のドライバを指定すればオッケーのようです。

オークションについて(ニッチ市場の勉強)その7

 副題である「ニッチ市場の勉強」とあるように、ニッチ市場について考えてみたいと思います。仮面ライダー555の放送が終了して、5年ほど経つわけですが、5年も経ってから惹かれる人というのは、そんなに多く無いと想像します。しかしながら、仮面ライダー555は、ニッチと呼ぶには少々メジャーかもしれません。
 オークションをやっていると、発売された商品の状態から欠品している物があったり、壊れていたりという事態に遭遇します。中には、改造キットや、オリジナルの製作品を出品している方もいます。私の友人が、樹脂部品複製キットを使って車のターンランプなぞを複製しているのを見て、おもちゃのパーツも複製できるかな?などと、考えてしまいました。ガレージ・キットの世界です。おたくのフィギュアに通じるものがある、アレです。調べてみると、シリコンゴムを使った整形や、アクリル版を加熱して掃除機で吸い込む真空整形など、いろいろと手法があり、このジャンルも奥が深そうです。中にはメッキキットもあり、通電しないとメッキできないものの(プラスチックのメッキは蒸着しないとダメなので無理)、仕上がりを見ると感動的なキットも発売されていました。
 ファイズのベルトは、壊れやすいらしく、中古品は大抵ベルトが破損しています。元々、子供用の玩具なので、大人が巻きつける長さも無いようです。このベルト、アウトドア派の私にはピンと来ました!ザック(リュックサック)用のベルトが代用できそうで、価格も安く(千円しない)パーツだけを入手できます。こういう修復パーツを作成して販売するという市場も成立しそうに思えます。実際にジャンク品を落札して改造して楽しもう…と画策していたのですが、ジャンク品すら手に入らない状況で、実行に移せていません。
 どうやったらニッチ市場は成立するのか?一番の要素は、強烈に人を惹きつける魅力の存在があると思います。この魅力を、いかに創出するか?にかかっていそうです。二番目の要素は、コミュニティを形成する事でしょうか?一人だけで細々とやるのは、市場とは言えません。三人踊っている人がいれば、つられて踊りだす人が出てくると思います。ここまでですと、せっかくのニッチ市場は長続きしません。三番目の要素として、持続可能な遊びの要素が挙げられると思います。オークションでは、コレクションをしてしまえば、それっきりで終了する場合があります。私が、このケースに相当します。現在は、仮面ライダー555のコレクション終了ステージにあり(欲しいと思っているものは、ほぼ揃えた)、それゆえに、この投稿を書いているのです。持続可能な遊びの要素ですが、お金がかかりすぎると市場を狭めてしまいます。ここでもニーズと成立する価格バランスが存在するでしょう。

 今月のWEB+DB、奇しくも Yahoo オークションのシステム特集でした。このシステムについて、ツッコミを入れろという神のお告げか?とも思いましたが、今回で一旦終了します。

Ubuntu 9.10 と Wifi 4965 AGN

 毒を喰らわば皿まで…。無線 LAN が WPA で使えない状態を放置しておりましたが、どうせやるなら安定版もくそもあるか~という事で、アップグレードしちゃいました。そしたら、あっさりと無線LANにも繋がりやがりました。いやっほーーーー。ちなみに WICD を使ってます。

 gcc --version
gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1

ニヤリ

2009年10月28日水曜日

帰ってきました

 今回の出張は疲れた…。2日目は取引先と、ITProの展示会に行ってきました。展示会では、生のシンクライアントとブレード・サーバを見て感動しますた。コア8で一般的な動作範囲内なら50クライアント分ぐらいに相当するんだそうで、ビビリました。

 空港での検査ですが、鎖骨のプレートは素通りで拍子抜け。そういえば、金属アレルギーのテストもした覚えがないです。チタンなのか、金属じゃないのか、とにかく特殊なプレートを使ってるのかもしれません。

 スラドから、国語力とプログラミング力の関係が大きいという主張の記事の存在を知りました。しかし、私は、「国語力とプログラミング力の間に関係はありません」と断言します。そもそも、私は国語が苦手で、私の書いた文章は読みにくいと思うし、私は書いてある文章のニュアンスに鈍感です。国語で表現できなくても、頭で構造を構築できて構文に落とせれば良いのです。文法が間違っていれば、エラーになるだけですし、内容が間違っていれば、正しく動かないだけです。国語力なんて、関係ありませんってば。ま、三流プログラマの書くことですから、関係が大いにあるというのが真実なのかもしれませんけどね。

2009年10月27日火曜日

出張・・・

 本日は全国SaaSベンダー連合会でした。CSKサービスウェア様のお話が、面白かったです。ぶっちゃけると、コールセンター業務をアウトソーシングで受けているのですが、単なるアウトソーシングにとどまらず、イノベーションの機会を提案できるような分析までを含めたコールセンターサービスなんだそうです。
 なんだかわからないけど、今日は疲れた・・・。なんでだろ・・・。ミッションが多すぎて集中できてないからに違いない・・・。

2009年10月26日月曜日

haloscan 脂肪

どうも途中で反応がネェと思って、調べてみたら、haloscan が脂肪している模様、もうトラックバックどうでもよくなってきたヨヨヨ・・・

うぜぇーーーーー

 後から見たら、意味不明の書き込みで、わかりませんね。adSense自動付加機能を拡張したせいなのかどうなのか、わかりませんが、ブログのページのソースは瞬時に取得できてるけど、JavaScriptかデザインの外部変更による不具合で、時間がかかりマクローリン展開&文字化けマクローリン展開のようだ。あー、もうごちゃごちゃしてわけわかんねぇーし、うぜぇーよ

ブログがおかしい

 なんか知らんが、「オークション」とかが文字化けして、ページを表示するのに、物凄い時間がかかる…。

東京出張

 一応 27・28と東京出張です。

オークションについて(ニッチ市場の勉強)その6

 オークション市場は、面白いです。需要と供給のバランスが敏感に反映されるあたりが醍醐味です。2番目に高額な入札をした人の価格で落札するシステムなので、ある商品を入札する時に出現するライバルは重要な要素となります。だいたいは、同程度数の出品があり、同程度数の落札があり、定期的に巡回していく感じなので、ライバルによる価格差が表面化すると言っても過言ではありません。中には、オークション落札代行業者なるものがあり、「お金は持ってるんだよ、落札しといてちょうだい、キーッ」と言ったかどうかは窺い知りませんが、金に糸目をつけずに入札してくる場合もあります(これも体験による:自己紹介欄をチェックして知りえた情報)。こんなのと張り合ってもしょうがないです。ちなみに、この代行業者、足元を見られてたのかどうかわかりませんが、価格吊り上げ入札による妨害を受けていたような印象を持ちました。
 代行屋?なんで?と思って検索してみると、落札代行業だけではなく、出品代行業もありました。確かにオークションは手間がかかるので、代行業があるのも了解できます。しかし、それ以上に Yahoo のオークションのシステムが影響しているように思います。出品するためには、プレミアム会員なるものに入り、月額346円を払はないといけないからです。プレミアム会員になるためには、本人確認の郵便を受け取らなければならないので、不正防止には役立っていると思います。しかしながら、家庭の不用になった玩具を気軽に出品できるような状況にはありません。1回出品したいだけなのに、毎月346円も余計に払ってられないのが普通の感覚だと思います。だから、最終的には業者か、ヘビーなオークションのファンばかりが出品するような状況になっていると思われます。
 出品者・落札者の相互評価システムは、不正防止には役立っているかもしれません。しかし、入札できる資格が低すぎます。Yahoo ID を取得して、本人確認はメール・アドレスだけ!アホですか?これでは、新規IDによる妨害がやりたい放題です。私が悪徳業者ならば、間違いなく新規IDで妨害・価格吊り上げを実施するでしょう。このような状況から、相互評価システムは新規IDにとって辛いものとなっています。落札したいのに新規IDお断り、で落札しにくいから新規IDのまま…。最初の落札で運悪く酷い出品者に当たっても、次回以降の取引を考えると正当な評価はやりにくい状況です。出品者の中には、「評価を希望しない限り評価しません」と通達される方もいました。ええーっ?何で?と思ったら、世の中奇特な人がいるようで、「出品者が落札者を評価したから」と理由で出品者を「悪い出品者」にしたケースを見つけました。オークション・システムを考える上で評価は必須にすべきだと、私は考えています。

 という事で、オークション・システムに関する私の提言です。
  1. 出品者の出品キャンセル履歴を公表せよ
  2. 落札された場合、キャンセルであろうと必ず評価しなければならないようにせよ(デフォルト:普通でも良い)。
  3. キャンセル履歴には、双方の評価が参照できるようにせよ
  4. 入札資格者も1度は、本人確認の郵便受け取りを実施せよ
  5. 出品資格のプレミアム会員を廃止し、上記、入札資格者と一本化せよ
  6. システム維持費がかかるなら、月額10円程度で、入札資格者、出品資格者から幅広く徴収せよ
  7. 写真の枚数制限を7枚程度まで上げよ
 1-3は、サクラを使った高額入札妨害の不正を防止するための策です。高額入札されたにも関わらず、不死鳥のように再出品されるものが多すぎます。しかも、高額入札しているのは、最近では「新規ID」では無いのです。繰り返しますが、出品者がいたずらされて困るという「新規ID」では無いのです。

 4-6は、本来ならば供給が幅広く行われてこそ、オークションは面白いのに、現行のシステムでは門戸を狭めすぎで、つまらないです。その対策、および、新規ID対策です。見たところ、ヘビーなオークション・マニアか、強い意志を持って一発出品を決意した人か、出品業者・出品副業者の3択ではないか?という感じがします。信頼なくしては、オークションは成立しません。

 7は、出品物の状態を説明するのに写真3枚では厳しいと思われるからです。問題のある箇所や、気になる箇所を写真で説明しようとしても、3枚は少なすぎます。せめて7枚ぐらいは欲しいところです。
・・・つづくのかよっ

2009年10月25日日曜日

オークションについて(ニッチ市場の勉強)その5

 Yahoo オークションでの不思議体験。ちょっと具体的には書きにくい内容なのです。そして、私の想像が大きく働いており、確証が無い内容でもあります。
 Yahoo オークションでは、大抵、延長機能が付加されて出品されています。この延長機能というのは、終了間際に入札されたら、自動的に時間を数分延長するというものです。そのため、入札者が一人もいない状況での入札以外では、メリットがほとんどありません。このメリットというのが、なんともダークな理由によるものなのです。「サクラによる吊り上げ入札・「落札する意思の無いものによる吊り上げ妨害入札」に遭遇する確率が減らせるかもしれない?というものです。
 サクラ?妨害?何言ってるの???と思われるかもしれませんが、実際に体験してみて、まず、あるだろうと感じています(入札時に高値更新された場合、どんな人「落札履歴や評価や自己紹介」を確認し、分析するようにしています)。興味のある方は、「オークション」「不正」「妨害」「嫌がらせ」というキーワードの組み合わせで検索するとよいでしょう。
 妨害はともかく、サクラは私的には「アリ」だと思っています。そもそも、オークションとは、そういうシステムだからです。嫌なら入札しなければ良いのです。しかし、世の中、いろんな考え方の人がいるように出品のやり方も千差万別です。良心的な出品者は、このような風潮を快しとせず、適切なスタート価格を付けて、即決価格(上限)を設けています。これに対して、あからさまに適切な価格と比較して、安値をスタート価格に設定している出品者もいます。このような出品物が、ほんとうに安値で落札されたケースは、まず見た事が無いです。前回も書いたように、高額で落札されたはずの商品(全く同じ特徴を持った中古品など)が不死鳥のように再出品されるケースをよく見かけます。
 一方で、安値で開始されているからと言って、全てがこのような出品に相当するとも言い切れないのです。実際に、安値のまま落札できる場合もあります(自分では本来の適切な価格より、ややお得な価格で落札できたと考えているものもある)。現状では、まじめに出品するのは大変であろうと推察しています。何故か?このような幸運に恵まれた落札の影には、出品者による入札者の取り消しが認められたからです。理由の如何は、わかりませんが、妨害入札が日常茶飯事的に行われているのではないか?と考える根拠のうちのひとつでもあります。
 妨害入札があると考える根拠として、次のようなケースもありました。ある商品Aに最低価格で入札し、他者に落札されましたが、不死鳥のように全く同じ商品Aが出品されました。そのとき私は、別の出品者の同じ価格でスタートしている同じ商品に入札していました。ところが、その商品には即決価格が設定されており、即決で落札されてしまいました。写真の状態から判断すると、この落札された商品は箱が日焼けによる色落ちをしており、そんなに状態が良いものとは思えません。狐につままれた気分で、不死鳥のように復活した商品Aに最低価格で入札し、落札をしました。後で確認してわかった事ですが、その商品Aは最高入札者が取り消しされて私が次点落札者だったにもかかわらず、何のアクションも起きずに、結果、私が同じ価格で落札したというわけです。評価を眺めていると、「次点落札にもかかわらず、出品者が連絡をしなかった」というのがありますが、Yahoo の規約が途中で変わったのかもしれません。掲示板には、出品を取り消す場合に、価格の低い入札者から順番に取り消しをして、連絡が入札者にいかないような手順が紹介されていましたが、冷静に考えてみれば、次点の入札者に落札させるいわれはありません。サクラを雇って、自分が 100 円で入札し、サクラに 100万円で入札させて、キャンセルさせるというひどい状況がありそうです。
 ファイズ関連の出品は、コンスタントにある感じですが、落札価格のバラつきが、物凄いあります。箱なしかつ、電池を入れても動作しないファイズ・ドライバや、ベルトが切れてるものや、部品が欠損しているものが 7000円以上の価格で落札される事もあれば、箱つきの中古品が 5000円で落札される事もあります。5000円の価格で落札していたのは、出品をしている業者と思われる方でした。ここでも、きな臭さを感じてしまいます。
 業者の方が何故入札をするのか?考えてみて、その背景には Yahoo ポイントがあるのではないか?と思い至りました。ポイントが溜まれば、売れ筋の商品をできれば安値で落札して出品し、転売したいと考えるのは普通の感覚だと思います。
 次回は、Yahoo オークションのシステムについて考察してみたいと思います。
つづく

2009年10月23日金曜日

オークションについて(ニッチ市場の勉強)その4

 少し脱線して、paypal の話にうつります。小額決済という事で、面白いシステムだと思います。私は、オークションで落札するために paypal を使わざるを得ない状態でした。ネット銀行は、前にも書いたようにリスクが高いと考えているので利用していません。クレジット・カードも決して安全とは言えませんが、クレジット・カードで決済するようにしました。集中的に落札した後で請求を見て理解した事ですが、paypal は小額決済のためのデビット・カードのようなもので、現金決済なのです。よって、クレジット・カードを利用しても、現金決済であるがため、リボルビングにしかなりません。クレジット・カードとebay の組み合わせは、毎月、利子をむしりとられる以外に選択肢がないのです。よって、paypal を利用するならば、現金振込みをして、チャージする方が賢明なのですが、利用しないと paypal に貯金をしている状態なので、paypal に利子を払っているのと同じ効果になってしまいます。検索で調査したところによると、トラブルがあった場合に日本で裁判が出来ないため、リスクが高くて paypal なんて使えないという意見もあるようでした。
 日本の金融会社で、paypal のようにロングテールで誰でも(売る側)ネットから利用できるような仕組みをやらないのは、なんでだろう?と、今でも疑問に思います。

 Yahoo オークションに復帰しましたが、やはり、独特の文化を感じます。何と言っても、うさん臭さが充満している事です。

  • 新規IDでの入札(評価が0)は削除すると予告されている出品が多数ある
  • 落札されたはずの全く同じ商品が、不死鳥のように復活している場合がある
 以上が確実に言える現象です。その他にも、理解に苦しむ体験をしました。
この辺をからめながら、つづく

オークションについて(ニッチ市場の勉強)その3

 さて、期せずしてデルタ・ドライバだけを入手する事になりましたが、どうしたものか・・・。中国版のデルタ・ドライバが送られてくるものと予想していたのに日本版のデルタ・ドライバが送られてきました。海外では発売されていないのかな?という考えが頭をよぎりましたが、eBayには、お宝が眠っているべ!との想いも強く、eBay ハンティングに乗り出しました。検索した結果に対して、"See all items including those from other countries and regions" のチェックを忘れてはいけません。Yahoo オークションでも、滅多に見ない ファイズ・アクセルが、$20 前後(正確な価格は忘れた)で "Buy it now" となっていたり、ファイズ・ドライバも $99 で "Buy it now"、ファイズ・エッジが $68 ぐらいで "Buy it now" ・・・。見つけても、即座に買う決心がつかずに、しばらくは悩んでいました。しかし、この機会を逃したら、入手できるかどうかわかりません。結局、全部落札しました。ファイズ・アクセルなんて、まだ3個ほど残っていたので、まとめ買いして転売すれば、儲ける事ができたかもしれません。このように情報格差を利用して、オークションで食っていけるかも?と考えもしましたが、ファイズ・アクセル3個売っても、儲けは、せいぜい 12,000円なので、毎月オークションで食っていくのは、ちょっと大変だろうと思いました。
 実は、面白いデータがあります。7月ぐらいは ebay で "faiz"というキーワードで検索すると、184 item がリストアップされました。9月はじめぐらいまでは 178 item ぐらいがリストアップされていたように思います。しかし、現在では、82 item しかリストアップされません。恐らく、オークションのセラー達がワールド・ワイドに商品を移動したのだと思います。また、ここ2ヶ月ぐらいの話で、Yahoo オークションに新しい出品者が増えて、仮面ライダー・ファイズの商品が充実して出品されるようになりました。以前なら絶対に入手できなかったような価格で取引が行われるようになり、こんな値段でアイテムが入手できるんだったら、Yahoo オークションで頑張っておけば良かったと、後悔するほどの勢いでした。
 このような流れで、一旦諦めたYahoo オークションでも入札を再開しました。
・・・まだ、つづく

2009年10月22日木曜日

オークションについて(ニッチ市場の勉強)その2

 どうやったら、ファイズ・ドライバ(ベルト)が手に入るのか考えて、最初に手をつけたのが Yahoo オークションでした。ところが、中古品でボロボロかつ欠品しているものが、平気で7千円以上の値で落札されていました。さすがに、この値段にはついていけませんでした。動作するかわからないジャンク品も高値で落札されていきます。という事で、Yahoo オークションで入手するのは諦める事にしました。
 何か手は無いものか?と考えて、検索結果から海外でも仮面ライダーは放映されており、おもちゃが販売されて残っているのでは???と思い至りました。でも、ネット・ショップを探し出すのは困難を極めました…。ようやく見つけた2件(現在は3件)ですが、1件は値段がアマゾンに劣らず高く、もう1件は商品が1つだけで安いけど状態が今ひとつという感じです。と、そこで eBay ならば!と閃きました。なんで思いつかなかったのか?ターゲットは海外です。いろいろと試行錯誤しているうちに、仮面ライダーは、"masked rider" であるという事がわかりました。他には、米ではドラゴン・ライダー(龍騎とは異なる)が独自に放映されているらしい・・・、そしてバンダイの事業部も海外に展開しており、独自の製品を開発しているらしい・・・など、妙な知識を得ました。
 eBay はビンゴでした。仮面ライダー・ファイズだけをピンポイントで絞る検索ワード "faiz" や "kaixa" など、当時はわからなかったので、数千個のオークションの品を地道にチェックする事に・・・。すると、「カイザ・セット(カイザ・ドライバ:カイザ・ブレイガン:カイザ・ポインタ)」、「オーガ・ドライバ:サイガ・ドライバのセット」、「デルタ・ドライバ」の3つがオークションに出されており、それぞれ、35$, 55$, 22$ という信じられない値段がついていました。私は、映画「パラダイス・ロスト」の方には惹かれなかったので、カイザ・セットとデルタ・ドライバに入札しました。いやー、オークション終了までの1週間ぐらいの時間の長く感じた事といったらありませんでした。時々、様子を見ては、これはもしかしたら落札できるかも?と思ったものでした。
 期限間近になって、迂闊にも eBay ジャパンの方で 555 を検索したしまったせいなのかどうか、わかりませんが、「カイザ・セット」が eBay ジャパンの終了間際オークションの一覧にデカデカと写真入りで載っているじゃありませんか!これには、肝を冷やしました。そして、「カイザ・セット」の終了間際の事です。ほとんど落札した気分でいましたが、何者かが慌てて入札している気配が(入札価格が上がっていく)あります。一応、カイザ・セットには $125 の価格を入札していました。恐らく、間際に入札してきた方もこんな高値を入札しているとは予想できなかったのでしょう、相当慌てたように目まぐるしく入札価格が変わりました。そして、カイザ・セットのオークションが終了しましたが、私は落札できませんでした。落札価格は、$127.5 でした(入札・落札価格は記憶なので若干異なるかもしれません)。この瞬間、一転してブルーになりました。時刻は、午前0時をまわっていたように思います。
 この経験から、時間延長なしのオークションのシステムを理解しました。


 延長が無い場合には、終了時刻の50秒前に落札価格を入力し、5秒前に
確認ボタンを押して決定せよ。延長が無い場合には、泣いても笑っても
終了時刻になるとオークションが終了します。事前に入札価格を入力して
いると、余計な情報を入札競争相手に与えて、相手がこの価格で入札してくる
ならば、もっと高い価格で入札してみようという気にさせてしまいます。
出品者にとっては不満かもしれませんが、こちらの方が一斉競争入札という
感じで公平な感じがします。

という法則です。

 さて、オークションが終了する順番は、デルタ・ドライバ -> オーガ・サイガ・ドライバです。時間も遅かったせいか、カイザ・セットを落札した何者かは、他の2点も入札して寝てしまったようです。この時、Yahoo オークションでは、デルタ・ドライバが1点だけ 9500円で出品されていました。そこで、諦めがきかずに入札を繰り返しました。$100 まで入札しても、この何者かは $100以上の値をつけていました。この入札者は日本人だと思いました。もう、これ以上は入札する気は無かったのですが、この入札者が一体いくらの値段で入札しているのか知りたいという衝動が抑えられず、魔がさして $101 を入札してしまったら、私が最高入札者になってしまいました。この時に身をもって理解したシステムが次です。


 オークションは一番高値を付けた者が、2番目に高値を付けた者の
価格で落札するシステムである。よって、先行するならば、自分の出せる
価格の中で多少高目に値段をつけても問題が無い。


 この時の心境は、落札する気が無いのに、こんな高値で入札してしまった…orz。もう一度、この入札者が現れて再入札してくれないだろうか?というものでした。まぁ、やられっぱなしも面白くないので、カイザ・セットを落札できていたら見向きもしなかったであろう オーガ・サイガ・ドライバに、もし自分が落札してしまっても後悔しない値段内で、おそらく、これ以上は入札しているであろう価格 $120 を落札する気も無いのに入札して、挨拶をしておきました。ちなみに、当時 Yahoo オークションでは片方だけで1万円以上の値を付けていました。

 こうして、ファイズ・ドライバが欲しかったのに、期せずしてデルタ・ドライバを手に入れてしまいました。こんなものを入手してしまったら、他のアイテムも収集するしか・・・orz。どうすんだよ・・・。こうして、どんどんと泥沼にはまっていきます。
・・・まだまだ、つづく

2009年10月20日火曜日

オークションについて(ニッチ市場の勉強)その1

 実のところ、ここ半年ほどオークションにはまっていました…。事の発端は、仮面ライダー555のビデオをうちの坊ちゃんが借りてきた事、興味は無かったんですが、はまりました。ストーリーも良いし、かっこよくて面白い。ファイズのベルト、いいなぁーと思って、アマゾンを覗いたら驚愕のプレミアム価格が付いていて唖然としました。よくよく見ると、後で発売された方のベルトは簡略化されていて、がっかりする出来(555と入力できないし、銃に変形しない)だという事もわかりました。この時は、前に発売されたベルトと、後に発売されたベルトの違いを、あまり把握していませんでした。

 マイカル小樽のポスフールの玩具売り場へ、うちの坊ちゃん連れてった時の事です。ディケイドライバー(仮面ライダー・ディケイドのベルト)の奥に 4700円で、ファイズのベルトが置いてあるではありませんか!しかし、この時、私の財布には千円ちょっとしかありませんでした。しかも、先に発売されたベルトか、後に発売されたベルトか判断がつきません。眼鏡も忘れてしまった上に、そのときの眼のコンディションも良くなかったので、箱を見ても、ますますわからない状態。カードで買っとけば良かったんですが、「また今度買いに行ってもだいじょうぶだろう・・・」と諦めることに。ところが、その次に同じ玩具屋さんへ行ったら、消えてなくなっていました・・・。張り紙を見ると、格安で在庫一掃セールをやらかした後のようでした。うちの坊ちゃんが「僕、誕生日のプレゼントは、ファイズのベルトがほしいなぁ」と言ってた事もあり、かなり落胆しました。
 
 この体験から、地方の玩具屋さんには、お宝が眠っているに違いない!と、google maps を駆使して、玩具屋探しの調査に乗り出しました。北海道には、ポプラ館という玩具屋があるようで、ここに狙いを定める事にしました。ところが、いざポプラ館へ行ってみると、閉鎖されているではありませんか!何のことはない、2009年3月に破産申し立てをしておりました(間が悪すぎる)。アマゾンの影響でしょうか?そう、地方では、どれだけ売れるんだかわからない在庫を抱えて商売してもリスクが高いだけで、ネットショップとの競争に勝てなくなってしまっていたのでした…(仮定だけども)。フラットな世界で、フラットな物を売ってもWinner takes all で競争に勝てません。独自製品を独占的にフラットで無い方法で販売する(ネットを使うなという意味ではなく、ネットを使うにしても出口は絞れという意味)ニッチ市場を地方は目指すべきです。

 と、ここまで突っ込んで行動したら、段々と抑えが効かなくなってきました。こうして、eBayの世界へと足を踏み入れる事になりました。
・・・つづく

SQLAzure開始

 マイクロソフトから、SQLAzureサービスが開始されたという事で、招待メールを頂いた。さっそく、サインインして使ってみる事に…。
 デフォルトのデータベースとして、master が存在するけど、まずは、ODBC ドライバを使って接続してみる事に・・・。
  1. SQL Server Native Client 10 のデータソースを作成
  2. サーバー欄には、tcp:xxxx8xxxx8.database.windows.net を指定
  3. 統合認証ではなく、ユーザ認証を選択し、ID に administrator@xxxx8xxxx8 を設定
  4. パスワードも設定
  5. 後で、規定のデータベースは変更するが最初は master のまま
 SQLAzure サービスの「Firewall Settings」タブを選択して、自分のグローバルIPアドレスを追加します。
これで、あっさりと接続が完了。しかし、デフォルトで存在する master データベースには、テーブルを作成する権限が無いようなので、新たに「Databases」タブにて、 hoge データベースを作成し、hoge に接続し直す事に・・・

 ODBC接続で SQL を発行できるフリーのツールを探してきて、


CREATE TABLE japan_divisions (
id integer identity(1,1) primary key,
name varchar(16)
);
insert into japan_divisions (name) values ('北海道');
insert into japan_divisions (name) values('青森');
select * from japan_divisions;
と、やってみて、レコードが挿入された事を確認するところまではやったのですが、どうも文字コードの問題があって、県名が ??? で表示されてしまいました。文字コード関連の情報が欲しいところです(すみません、実は SQL Server は、ほとんど使った事がないのです…)。


2009/10/20 追記

CREATE TABLE japan_divisions (
id integer primary key,
name nvarchar(8)
);
insert into japan_divisions (id,name) values(1,N'北海道');
insert into japan_divisions (id,name) values(2,N'青森県');
insert into japan_divisions (id,name) values(3,N'岩手県');
insert into japan_divisions (id,name) values(4,N'宮城県');
insert into japan_divisions (id,name) values(5,N'秋田県');
insert into japan_divisions (id,name) values(6,N'山形県');
insert into japan_divisions (id,name) values(7,N'福島県');
insert into japan_divisions (id,name) values(8,N'茨城県');
insert into japan_divisions (id,name) values(9,N'栃木県');
insert into japan_divisions (id,name) values(10,N'群馬県');
insert into japan_divisions (id,name) values(11,N'埼玉県');
insert into japan_divisions (id,name) values(12,N'千葉県');
insert into japan_divisions (id,name) values(13,N'東京都');
insert into japan_divisions (id,name) values(14,N'神奈川県');
insert into japan_divisions (id,name) values(15,N'新潟県');
insert into japan_divisions (id,name) values(16,N'富山県');
insert into japan_divisions (id,name) values(17,N'石川県');
insert into japan_divisions (id,name) values(18,N'福井県');
insert into japan_divisions (id,name) values(19,N'山梨県');
insert into japan_divisions (id,name) values(20,N'長野県');
insert into japan_divisions (id,name) values(21,N'岐阜県');
insert into japan_divisions (id,name) values(22,N'静岡県');
insert into japan_divisions (id,name) values(23,N'愛知県');
insert into japan_divisions (id,name) values(24,N'三重県');
insert into japan_divisions (id,name) values(25,N'滋賀県');
insert into japan_divisions (id,name) values(26,N'京都府');
insert into japan_divisions (id,name) values(27,N'大阪府');
insert into japan_divisions (id,name) values(28,N'兵庫県');
insert into japan_divisions (id,name) values(29,N'奈良県');
insert into japan_divisions (id,name) values(30,N'和歌山県');
insert into japan_divisions (id,name) values(31,N'鳥取県');
insert into japan_divisions (id,name) values(32,N'島根県');
insert into japan_divisions (id,name) values(33,N'岡山県');
insert into japan_divisions (id,name) values(34,N'広島県');
insert into japan_divisions (id,name) values(35,N'山口県');
insert into japan_divisions (id,name) values(36,N'徳島県');
insert into japan_divisions (id,name) values(37,N'香川県');
insert into japan_divisions (id,name) values(38,N'愛媛県');
insert into japan_divisions (id,name) values(39,N'高知県');
insert into japan_divisions (id,name) values(40,N'福岡県');
insert into japan_divisions (id,name) values(41,N'佐賀県');
insert into japan_divisions (id,name) values(42,N'長崎県');
insert into japan_divisions (id,name) values(43,N'熊本県');
insert into japan_divisions (id,name) values(44,N'大分県');
insert into japan_divisions (id,name) values(45,N'宮崎県');
insert into japan_divisions (id,name) values(46,N'鹿児島県');
insert into japan_divisions (id,name) values(47,N'沖縄県');
select * from japan_divisions;

こちらで、バッチリです!

2009年10月19日月曜日

子供手当て

 枡添さんが「親がパチンコに使ってしまう」は、多分、真実だと思う。お金があるのに、給食費を全く払う意思のないモンスターペアレント、こんな連中に手当てを払う必要なんて無い。それだったら、その分を給食費にあてて、給食費をただにした方が、集金の取立てにかかる人件費もかからないし、効率的なように思える。
 現金を直接渡すのではなく、子供の養育にお金がかからないような支援をする政策に切り替えた方が良いのではないだろうか?

予告

 「ニッチ市場の勉強」ネット・オークションの世界について、記事を書く予定です。

理解に苦しむYahooからのメール

正規のYahooからと思われるメールを受信した。文面は、どう考えてもスパムである。該当するURLを見てみたが、中国人が運営するサイトであった。SPFもパスしているし、ドメインはJPNICで確認してみたが yahoo.co.jp 所有のようだ。クラックでもされたか?


X-Account-Key: account2
X-UIDL: AIyqU3wAAJniStv+PQZ+VFk6eZo
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
X-Apparently-To: blade2001jp@yahoo.co.jp via 124.83.170.140; Mon, 19 Oct 2009 14:50:52 +0900
X-Originating-IP: [203.216.226.117]
Received-SPF: pass (web2401.mail.tnz.yahoo.co.jp: domain of supbrand106@yahoo.co.jp designates 203.216.226.117 as permitted sender) receiver=web2401.mail.tnz.yahoo.co.jp; client-ip=203.216.226.117; envelope-from=supbrand106@yahoo.co.jp;
Authentication-Results: mta520.mail.kks.yahoo.co.jp from=yahoo.co.jp; domainkeys=pass (ok)
Received: from 203.216.226.117 (HELO web2401.mail.tnz.yahoo.co.jp) (203.216.226.117)
by mta520.mail.kks.yahoo.co.jp with SMTP; Mon, 19 Oct 2009 14:50:52 +0900
Received: (qmail 56379 invoked by uid 60001); 19 Oct 2009 05:50:51 -0000
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
s=yj20050223; d=yahoo.co.jp;
h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type;
b=psJTbdF3z+0EfXh4hfVh3eYd+qsCEW/QPOW22n9+F5Di/UEXf4UCB6NU6CGdbgs7jKXIT1W/Ie/lfZ5fRQehXBANhtVuzYvUnZwE33SFgjTwnkarNMHCD20yPnPw3VGy ;
Message-ID: <20091019055051.56377.qmail@web2401.mail.tnz.yahoo.co.jp>
Received: from [61.37.219.41] by web2401.mail.tnz.yahoo.co.jp via HTTP; Mon, 19 Oct 2009 14:50:51 JST
Date: Mon, 19 Oct 2009 14:50:51 +0900 (JST)
From: <supbrand106@yahoo.co.jp>
Subject: =?ISO-2022-JP?B?GyRCOWI1aSVWJWklcyVJNyQhIUZ8S1wkS0YsJHIyPCQyJD8bKEI=?=
To: bxxxxxxxxx88jp@yahoo.co.jp, bxxxxxxxxxxx@yahoo.co.jp,
bxxxxxxxx93down@yahoo.co.jp, bxxxxxxxxxxx@yahoo.co.jp,
....
.... 似たようなメールアドレスが続く
....
bxxxxxxxxxxxxxx@yahoo.co.jp, bxxxxxxxxxxxxxx@yahoo.co.jp,

MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="0-265191342-1255931451=:54222"

--0-265191342-1255931451=:54222
Content-Type: text/plain; charset=iso-2022-jp

高級、上品、距離感を持つというのはLV、GUCCI,CHANELなどの
高級なブランドのラベルだと見られています。当店はお客様のために、こ
のラベルを保留している一方、高級ブランド靴を今まで最低価格で提供し、
また贈り物もたくさん無料で贈呈いたします。高級ブランドが値下がりにな
らないと思われていますが、今はいよいよ気高い頭が下がって、日本向けに
なってくれました。詳しい情況はwww.sup-brandshoes.com に参照して、お願





---------------------------------
GyaO! - Anime, Dramas, Movies, and Music videos [FREE]

--0-265191342-1255931451=:54222
Content-Type: text/html; charset=iso-2022-jp

高級、上品、距離感を持つというのはLV、GUCCI,CHANELなどの<BR>

高級なブランドのラベルだと見られています。当店はお客様のために、こ<BR>

のラベルを保留している一方、高級ブランド靴を今まで最低価格で提供し、<BR>

また贈り物もたくさん無料で贈呈いたします。高級ブランドが値下がりにな<BR>

らないと思われていますが、今はいよいよ気高い頭が下がって、日本向けに<BR>

なってくれました。詳しい情況は<A href="http://www.sup-brandshoes.com">www.sup-brandshoes.com</A> に参照して、お願<BR>

い<BR>


<div style="line-height: 0; width: 0; height: 5px; clear: both;">&nbsp;</div>

<div style="line-height: 0; width: 0; height: 5px; clear: both;">&nbsp;</div>
<p>&#32;

<hr size=1><a href=http://pr.mail.yahoo.co.jp/gyao/ target="new">GyaO! - Anime, Dramas, Movies, and Music videos [FREE]</a><br>

--0-265191342-1255931451=:54222--

2009年10月18日日曜日

モエレ公園

 土曜日には、うちの坊ちゃんを連れて、久しぶりにモエレ公園に行きました。
車を所有しなくなってからは初で、バス&地下鉄&バス。かなり歩きました。
ガラスのピラミッド
公園遊具で遊んで・・・
遠くに噴水が見えます。


2009年10月15日木曜日

いろいろ

 会社の方は、ちょっと持ち直したおかげで、一人雇えそうな感じです。ただ、データ処理を半年ぐらいやって下積みしてから開発へ移行してもらい、全体を見渡せる総合的に使える(打合せから見積もり設計もこなす)人材をキボンヌなんだそうです。SaaSへと業態をシフトしないと生き残れないヨと言いながら、結局、お客がいないという事で、ビジネス・モデルは社長がとってきた受託開発の仕事をやるという部分から脱却できていません。しかし、中身はブラウザ・ベースへとシフトしている事だけは言えそうです。うちの会社の開発のトップである私のスタンスでは、C++ で template をバリバリ使っても全然OKなのですが、実情を言えば、win2kをサポートしなければならないとか言った事情により、当面 0xは使えないであろう事や、C++でバリバリ開発できるような仕事は稀であり、Delphi か Web 系のCGI+JavaScriptによる仕事がメインになってしまうと思います。期間と予算と過去の資産があるので、思うようにはいかないですし、変更により歪が生じていきます。この仕事は地味です。そして、GISの仕事が主なんで、線形代数あたりの知識は欲しい感じです。北海道は首都圏と比べて賃金が安く、弊社も例外ではありません。なので、どうしても北海道に住みたいという動機がないと、厳しいと思います。人数が少ないので雑務も多いです。
 ちなみに自分は、C, C++, Delphi, JavaScript, Ruby(Rails), PHP, VB, Java, ASM(inline), Oracle, AnyWhereSQL, PostgreSQL, MSAccess で納品実績があります。最近は経営に資源をとられているのでモチベーションが下がっていると感じます。

 A型インフルエンザですが、今のところ、あまり大人には感染しないようです。うちの坊ちゃん、咳を結構していましたが、嫁も含めて、インフルエンザはうつりませんでした。あと、うちの坊ちゃんですが、2日目にちょっとバタバタしただけで、他の日にはバタバタするような事はありませんでした。タミフルと異常行動の因果関係は無さそうな気がします。

 そろそろ自転車もOKです。ちょろちょろと乗りはじめてますが、初雪の季節まで少しであり、この状態で凍結路面にやられて転倒してもつまらないので自重してます。

 民主党、結構がんばっていると思います。亀井大臣だけ、ちょっと浮いてて、鬱陶しく感じます。連立のためとは言え、発言が政策と乖離しているのではないでしょうか?

 

2009年10月9日金曜日

左鎖骨遠端位骨折手術から1ヶ月

 本日、経過診察でした。左肩も上がるし、ぐるぐる回るし、骨の具合も良い感じのようで、リハビリの必要性も無く、あと4ヶ月もすればプレートを外せる状態になるかも?との事でした。
 丈夫な体に生んでくれた両親に感謝か?

2009年10月7日水曜日

タミフル

 タミフルが異常行動を起こすという事象について、統計的に、タミフルと異常行動の間には因果関係は認められないという方向で固まりつつあると思います。そして、この事に関して反論を述べるつもりはありません。実際、インフルエンザとの関連や、抗生物質との関連など、サンプル数を多く取って比較した上で無いと、「こんにゃく畑を食べて喉をつまらせ死亡」という事象が「お餅を食べて喉をつまらせ死亡」という事象よりも多くてあたかも問題があるような、変な指摘になりかねないからです。
 これを踏まえた上で、タミフルには、神経に作用する何かがあるのかもしれないと思うような出来事がありました。うちの坊ちゃん(4歳10ヶ月)A型インフルエンザにかかり(一般にこの年齢ではタミフルを飲んでも問題が無いとされている)、タミフルを処方されて薬を飲んで2日目の夜になったとき、熱は受診時 38.0度で、1日目の夜には 36.8度ぐらい、2日目の夜は36.6度ぐらいの状況で、興奮状態で寝言を言いながら2度(夜11時と深夜?時)ほど軽くバタバタと暴れました(嫁さんに抱っこされて、しばらくなだめられる状態)。
 ちなみに、同年齢の幼稚園のおともだちもタミフル処方されたそうですが、こちらは、なんとも無かったようです。

2009年10月5日月曜日

自宅待機

 うちの坊ちゃんが、A型インフルエンザになりますた。小児科の先生の話によると、「大人には、感染しにくいので、別に自宅待機しなくてもいい」との見解なのですが、一応、自宅待機する事に…。ま、私の商売、別に自宅でもできちゃうんですけどね…。

 アマゾンのブクマ、私は、こんなの使ってます…。これも、どっかからパクったやつだったと思う。

javascript:(e=document.getElementById("ASIN"))?window.location.href='http://www.amazon.co.jp/exec/obidos/ASIN/'+e.value+'/tigerblade-22':alert("no%20asin");

2009年10月2日金曜日

ひさしぶりにAnalytics見た

 アクセス数を見ると、モチベーションが下がるので、ずーーーーーーーーーーーっと Google Analytics のページにアクセスするのを辞めていました。
 久しぶりに見たら、かわりばえしないけど、そこそこコンスタントなアクセスがあるみたいです。ライブラリの構築の備忘録とか、それなりに参考にしてもらったりとかもあるようです。継続は力なり。

2009年10月1日木曜日

2009/10/1お題


int step_sum( int n ) {
return (n + 1) * n / 2;
}

2009年9月30日水曜日

無料ウィルス対策ソフト

 「Microsoft Security Essentials」が無料で配布されているようなので、さっそく導入してみました。スパイウェア・マルウェア対策も、やってくれるようです。他のソフトはアンインストールしましょうと書かれていたので、Avast 4 の Free Edition をアンインストールしました。ただし、SpyBotSpywareBlaster はそのまま残すことにしました。
 マルウェアの類は怖いので、邪魔にならないソフトであれば、入れたままにしても別段問題が無いと思います。SpywareBlaster の方は、常駐しないので、それだけで効果があります。SpyBot の方は、重たいので TeaTimer の常駐機能を切って、思い出したように検査をしています。あまり弊害はありませんが、トラッキング・クッキーが残っていて、これだけ対策してもマーケティング・サイトは必死だな?オイ?と感じます。携帯電話に限らず、世界カメラも iPhone の固有IDを収集しているらしいですが、モバイルでの個人情報を入力したブラウジングは、私はパスですね(iPhone契約して維持するだけの財力ないけどさ…)。

 で、マイクロソフトが、どうして、こんな事をはじめたのか考えてみました。

 正直言うと、システムを構築する場合に、CentOS,Ubuntu等を使ったシステム構成と、マイクロソフトのサーバOSを入れるシステム構成が天秤にかけられる事が出てくるようになってきました。前者ではユーザ・ライセンス数というものが多く削れるので初期導入価格が大きく下がります。後者では、メンテナンス(サポート)価格が下がります。正規ユーザには、サービスを手厚くしないと競争力が無くなってきているという事なのだと感じます。

 ちなみに、種の多様性じゃないけど、自分の勤める会社では、あえてウィルス対策ソフトを限定していません。が、ウィルス対策のサービスが受けられるのであれば、そちらにシフトして行くんだろうなー。ウィルス対策製品を売っている他社も大変だな、こりゃ。思い切って Mac, iPhone, Linux へ乗り出すとか、種の多様性をうたってファイヤーウォール製品へとシフトしていかないと生き残れないかも?
 そういえば、つい先日 USENブロードバンドのモデム・ルータにウィルス対策機能が付加されたって説明を聞いた気がする…。ほんと、マジ大変な時代になりましたな…。くわばらくわばら。

2009年9月29日火曜日

姿勢

 左肩のプレートですが、鎖骨が腱に引っ張られて上がらないように左腕の骨の関節へフックをかけている状態です。このフックの部分が後ろに当たって若干痛い感じがしていたのですが、氷解しました。自分は、かなりの猫背で姿勢が悪く、猫背のために左腕の関節が前に移動していたため、フックの部分が後ろに位置してしまっていたのだと思います。
 昨日、こう閃いて、胸を張って、顎を引いて、正しい姿勢で歩くようにしたら、非常に良くなりました!おまけとして、左腕の回転も良くなりました。きっとボクシングでも、猫背の姿勢よりも胸を張った姿勢の方がパンチがスムーズに出て威力があるのではないか?と、変な事を考えてしまいました。
 だいぶ左腕も上がるようになりました。アウトドア用のエアマットを使った寝心地も良いです。

2009年9月28日月曜日

かゆい

 左腕を動かしてリハビリ中っす。さすがに、まだ腕が上がりません…。調子にのって動かしてたら、左肩(鎖骨近辺)が痒いです。それも中…。掻くわけにはいかんです。つか、掻けない。
 そして、寝る時間を早めにしているせいか、早朝に目が覚めてしまいます。プレートの端を左腕の骨に引っ掛けているので、左肩に負担がかかっているような気がします。ベッドの固さも負担になるので、今度、アウトドア用のエアマットでも下にひいて寝てみよう…。
 趣味のプログラミングどころじゃないです…orz。
 

2009年9月25日金曜日

三角巾とれました。

 手術して1週間入院して、退院後1週間、本日、三角巾もとっていいとの許可がでました。プレートとボルトを抜くまで6ヶ月ぐらいはかかるようなので、じっくり直していきます。
 今回、肩をぶつけた時に左腕の上腕部に内出血の跡があったのですが、看護婦さんの話によると、骨折をした場合には内出血があるのだそうです。皆さんも怪我をされた時には、参考にされると良いと思います。自分の場合は、筋を伸ばしたついでに毛細血管がブチブチと少しいったかな?程度に考えてしまっていたんで、おめでたい頭の構造でした。
 初雪まで2ヶ月ぐらいになってしまったので、今シーズンは自転車通勤は厳しいかな?あと、3ヶ月後にスキーなんぞやっても良いものなのだろうか・・・(^^;

2009年9月21日月曜日

今の財務省いらないだろ

 せっかくの大型連休ですが、退院明けという事もあって、家でのんびりしてます。そんな中、国家戦略室の報道を見ていると、今にもくたばりそうな財務省の官僚トップが出てきて「国民のお金の搾取方法は我々の特権です」「予算の決定権は我々にある」等とほざいていた。これには、唖然としました。
 今の財務省は、いらないのと違いますか?

2009年9月18日金曜日

退院しました

 左鎖骨にプレートを埋めて4本のボルトで止めてます。空港のセキュリィティ・チェックでゲートをくぐると、「ピーッ」とか鳴るのでしょうか?GIGAZINEでやっていた。HDDの復旧施設の見学も無理なのかもしれません。半年ぐらいしたら、プレートを抜きますが、それまで改造人間です。

 会社に寄ってみたら、ウィンドウズのPDCですが12Gの容量のCドライブの空き容量がほとんど無くなってました。パーティション・マジックというソフトでパーティションの拡張をしたけど、ほとんどソフトを入れてないのに、12Gで一杯ってどういう事よ? EEEpcの4GにXPのOSがあって、サービスパックをあてると容量不足になるという笑えないギャグがありましたが、ひでぇです。そもそも一昔前のプレインストール・サーバのシステム・ドライブ・パーティションが4G程度しか無かったのですから、ほんとに酷いです。

 で、DNSが復旧できないとは、ヘタレにもほどがあると書きましたが、ActiveDirectoryがダメージを負っていて、その影響で、DNSのゾーンが読めないとか…。実際は重症でした。ダイナミックにDNSのAやPTRレコードを書き換える都合なのかもしれませんが、機能は独立しとけよ???変に関連性を持たせる設計や実装をするから、クソみたいに遅くて反応しないものが出来上がるんじゃないの???

2009年9月16日水曜日

サバ・とらぶる

 なんか、俺が居ない間にウィンドウズのPDCのDNSがトラブって、ウィザード使って最初からでも構築できるからと指示したんだけど、誰も修復できないんだとさ・・・。へたれにも、ほどがあるだろ・・・。他の案件も相まって、結局、院内でも仕事ですよ・・・。

入院って

 趣味のプログラミング・・・なんて書いたけど、左手を使えない状態、かつ、体調もベストじゃないと、あんまし何もできませんね。

2009年9月14日月曜日

アウトソーシングの功罪

 ふとアウトソーシングについて書いてみたくなった。コスト面から競争できないから、コアコンピダンスを見直してアウトソーシングし、競争力を上げようという考え方があると思う。
 しかし、安易なアウトソーシングは止した方がいいと思うのだ。全く関係の無い分野をアウトソーシングするのは構わない。問題は、製造や販売といった顧客に近い部分をアウトソーシングする場合だ。イノベーションというのは、自ら考えるだけでは独りよがりになりがちで、顧客に近い部分にこそ多くのヒントがあるものです(と、ここは言い切っちゃう)。
 安易なアウトソーシングは、自ら潜在競争力を手放すことに成りかねないので、考慮が必要でしょう。ひょっとしたら、手放したものは二度と返らず、気がつけば主客が逆転しているかもね?

JAXAは要るに決まってんだろ

 民主党の要らないとほざいてる面々は、馬鹿ですか?勘弁してください。日本からイノベーションを排除して単純労働国でも目指すつもりか???バーーーーーーカ

2009年9月12日土曜日

地域医療を考える・・・つづき

 入院して、たまたま同室した方の話を聞いて、地方はゼネラリスト、首都圏など適切な場所にスペシャリストを配置した方が良い(中途半端な治療で放り出されるぐらいなら)と、感じましたが、続きがあります。
 それは、保険のあり方について。長期の入院は、全体の数パーセントにしか該当せず、保険料を下げるために私は短期の入院分しか保険がおりない契約をしています。ところが、政策として上記のような分離をしてしまうと、通院ができないので、ちょっとした事でも長期の入院になってしまいがちです。保険に入っていても長期入院できないは・・・では、意味がありません。医療施設が近くになくて、遠方へ赴かなくてはならない場合には、何か助成する制度が必要かもしれないと感じました。

微妙に肩が痛いし暇だ

 けど、右手しか使えない。
俺の volatile の理解

1.処理系依存だが


volatile int x;

void hoge() {
....
do {
....
// ここで volatile 修飾子ならレジスタ上にxの値が
// ロードされていても、メモリからの再ロードが実行される
// そのようなヒントをコンパイラに与える
} while( x )
}

ただし、マルチスレッドの同期保護とは無関係。組込系の割込処理を扱う人と、感覚が違って話が噛み合わないのではないかと、推察。俺もシラネ
2. メンバ関数

 volatile 修飾されたクラス変数は、volatile 修飾されたメンバ関数を優先的にコールする
これは、cppll で、話題になって、へぇ~だったのを覚えている。しかし、この機構を利用してクラス設計をしてみようとまでは思い至っていない。

痛ぇ

 さすがに今日は、痛くてほとんど眠れませんでした。

2009年9月10日木曜日

入院

 明日(2009/9/11)、手術です。左鎖骨端骨折で、鉄板埋めてボルトで止めます。さすがに部分的麻酔を効かせるのは難しいという事で、全身麻酔になりました。
 同室の方の話を聞いて、地域医療のあり方について思うところがありましたが、さすがに私事ではないので、状況をブログで語るのは、はばかられます。ただ、ひとつ、地方にはゼネラリストを置いて、ダメな時には都市部のスペシャリストに任せた方が断然良さそうに感じました。

2009年9月8日火曜日

SCL_SECURE 要らん

今日は、妙なところでアボーンする現象に悩まされました。なんの変哲もないい場所で、_debugger_hook_dummy とかいうフック関数がコールされて落ちるという・・・。
 結局、
#define _SCL_SECURE 0 でコンパイルしたものと
#define _SCL_SECURE 1 のデフォルトでコンパイルしたものとが、混在すると
こうなってしまうようでした。
 こんなチェック、まじ、要らないですから、勘弁してください。

痛いニュースならぬ痛い肩

 どうも肩が治らないので、整形外科へ行ってレントゲン写真を撮ってもらったら、鎖骨がパッキリ3つに分解していましたorz...。先生にも、えっ?今まで本当にどこも受診してないの?と・・・。木曜日に入院して、金曜日に手術になりました。レントゲンを見た時は、ちょっと凹みました(爆)。さて、一週間は趣味のプログラミングに没頭できそうです。と言っても、マイニングあたりを突っ込む事になるんだろうけど…。
 と、そういいつつ、自転車乗って帰ります。明日は、さすがに汽車にします。
 こうやって考えてみると、日本の医療は恵まれていますな・・・感謝!

2009年9月7日月曜日

二酸化炭素25%削減について

 鳩山代表が、温室効果ガスの25%削減を発表した事について、産業界から猛反発が出て、負の側面ばかりが強調されているようなので、そう思っていない自分の考えを書いてみる事にします。
 1台売っても赤字になり、売れば売るほど赤字になるハイブリッド車を発売したTOYOTAですが、この自動車産業が不振にあえぐ中、主力商品になっているのではないでしょうか?「グリーン革命」にもあったように、温室効果ガスの削減≒エネルギー効率の向上であり、決して負の側面ばかりでは無いと思うのです。だいたい猛反発するような人達は、考える事を放棄しているのではないでしょうか?地球温暖化で100年に一度の猛暑が日常化するという私の予測は外れて、ゲリラ豪雨という形になってしまいましたが、間違いなく世界のニーズは温室効果ガスの削減にあると思うのです。本当は、ニーズなどと言う生易しいものではなく、もっと切実な問題であるはずです。ちなみに北海道には梅雨というものがほとんど存在しなかったのですが、今年は8月に入っても明けぬ梅雨という形で異常が現れました。
 そもそも情報革命によりイノベーションが加速する中、ストップ・ザ・シンキングならぬストップ・ザ・ウォーキングで生き残れると思っている産業界の猛反発する面々など、放置プレーで置き去りにして良いと思うのです。
 日本の技術は先端を走っており、家庭から排出されるガスを削減しないと、もう削減が難しい局面に差し掛かっているという話を聞きますし、そのために、個々の家庭に負担となる出費が50万円はかかる等と囁かれてもいます。しかし、これは避けて通れないと思います。国民が一方的に負担するという話ではなく、ワーキング・プア問題=貧富の格差問題=労働搾取問題などと同時並行して、包括的に問題に取り組み、新たな産業の活性化へと歩むべき問題だと思うのです。

村上スキーム 地域医療再生の方程式 感想

 先日、地域医療再生のシステム関係で相談を受けたので、先延ばしにしていた村上スキーム「地域医療再生の方程式」を読みました。もしかしたら、村上さんとは真狩温泉で北海道はカヤック天国ですよという話をしたかもしれないですが、確信はありません。
 題名は、村上スキームと書かれていますが、村上スキームとは一体何か?スキームが全く見えてこず、三井貴之さんとの反論がない阿吽の呼吸で綴られる対談という不思議な書です。

 対談の中で、住民が国に求める医療を「ウォンツ」「ニーズ」という対比が出てきます。しかし、私に言わせれば、ウォンツもニーズも同じ事で、これらの言葉は、
  • ウォンツ:いざ病気になったら、どんな病気でも治療をしてくれる高度医療を地方にも望む事。
  • ニーズ:予防を基本とした、かかりつけ医の制度。
に置き換えた方が読みやすいと思います。

 国の借金が増え、高齢化社会に突入し、医療費が増える現実。どう考えても予防医療に重点を置くしか、医者不足の問題、医療費の問題、医療施設の問題を解決できないであろうという事が書かれていると思います。

 この観点を医者の育成問題では、スペシャリストとゼネラリストという対比で語られています。私自身、カヤックをする関係で住所・氏名・血液型を記述して身につけるSOSカプセルというものを持つ事もあったのですが、その中に「かかりつけ医」を記述する項目がありました。日本において、「かかりつけ医」と言われても「???」そんなのイネェよ・・・。というのが一般的な感覚だと思います。よくテレビでスーパードクターが特番で放映され、脚光を浴びています。そのようなドクターと施設は、全ての地方にいる必要は無く、人口の多い都市部にあれば十分だという主張です。これを地方に望む事が、今の地方における医療に対するウォンツです。それと対比して、村上さんの考える地方で必要な医療というのが、どのような病気でも診断できるゼネラリスト=かかりつけ医の制度です。これがニーズです。

 ゼネラリストがほとんどいないので、どこか具合が悪い場合に、何科を受診したら良いのか悩む事になります。本書によると海外では、ゼネラリストの診断があり紹介状を書いてもらえないと、CTスキャンどころか、エコー検診すら受けられないとあります。実際、かかりつけ医という制度が日本には定着していないので、自分では、こんな経験をした事があります。

 一度、ひどい頭痛を経験しました。人生40年近く生きてきて、こんな酷い頭痛を経験した事が無かったので、脳の血管がどこかおかしくなったのかも?と不安になりました。ところが、どこへ受診に行けばいいのか皆目見当もつきません。ま、近いし、北大の病院でも行っとけ・・・というノリで紹介状もなく受診に行ったら、その時の先生が脳の権威ある先生だったみたいで、「生命の危機があるほどの事態であれば、ガンガンする程度ではなく、頭をハンマーで殴られたみたいな痛みがあり、ここを受診する患者さんは順番待ちをして、ようやく検査を受けれるという状況だから、君みたいな人が受診するような所じゃない」とバッサリ切られました。この時、「ああ、大学病院というのは、そういうところなんだ・・・」と思ったものです。

 このゼネラリストという考えも重要ですが、それ以上に予防医療の大切さが語られています。プールの施設を利用して、高齢者に夜間等に集まってもらって水中歩行を実施する事で、外来の患者が半分減って皆健康になったという話です。他には、予防接種に市町村から助成金を出し、その予防接種を受けた人と受けなかった人とで、その病気になった時の医療費に差をつけるといった制度なども語られています。

 村上さんの考え方が封建主義的な家庭のあり方を良しとする感じに思えたので、ちょっと賛成し兼ねる部分もありますが、地方の医療、今後の日本の医療を考える上では、本書は外せない一冊であると思います。

2009年9月1日火曜日

はすける

 やっと、ハスケル本を買ってきました。サンプルを少々書いてみたけど、ただそれだけ・・・。特に違和感も無く・・・。インストール時に見えたオープンGLの文字が非常に気になった・・・。どんな世界が開けるでつか?

 で、関係ないけど、お盆の時に友人に聞いてみたら、C++系の話題は呪文で、何が書いてあるのか意味不明らしい。ただ、無線LANの話は、よくわかんないけど可笑しかったそうだ・・・。

 大改造中に、いろいろと割り込みが入りながら、プログラミング・・・自分でも何をやっているのか、よくわかんねぇーす。月末の個人情報管理責任者の雑用もうざい。ちなみに、北海道新聞の記事によると、俺の年収だと息子の学力は、標準を下回るらしい。確かに少ないけど、まじかよっ・・・。会社の業績もいまいちなんで、給料も上がらないし、上げてやれないし、人も雇えない状況なのです・・・。そもそも後継者問題も抱えてる事だし・・・。

 そうこう言いながら、暇を見て、今度は巡回セールスマン問題ならぬ、データマイニングを突っ込む事になりそうだ・・・。

2009年8月28日金曜日

大搾取 感想

「大搾取」 スティーブン・グリーンハウス

 アメリカにおける労働者が、労働時間のタイムカードを操作されて賃金を削られる、不当な契約を強制される、あの手この手で賃金を搾取される、労働組合等の活動を妨害される、労災を無視される、そのような数々の事例を紹介しながら労働問題を考える一冊です。

 本書は誰のために書かれた本なのか?税込み 2200円のハードカバーであれば、一番読んでほしい労働者階級がホイホイと手軽に買う値段ではない。お上のために書かれた啓蒙書である。そういう意味では、是非、図書館に置いてほしいと思った。

 アメリカで起こっている事は、だいたい遅れて日本にも流行する。秋葉の無差別殺人事件など、搾取されている派遣労働者の実態は、日本にも当てはまる。派遣労働者は、労働力調整というリスクを企業に代わって負っているのだから、賃金も安く、こき使われる筋合いのものでは無いと思うのだ。

 企業は業績が悪いときにはコスト削減で賃金の引き下げに走るが、業績が回復しても率先して労働者の賃金を上げるような事はしない。CIO,CEOの高額報酬は目に余るものがあり、不当な格差社会を引き起こしている。この状況を打破するために、企業の利益(役員報酬や株主報酬などが含まれる)から労働者の賃金に回さなければならない比率を法律に定めるというのは、どうであろうか?

 (医療問題については、また別の機会に書く)
 

2009年8月26日水曜日

iGoogleとの決別

 GMail のテーマを導入するときに、どの市町村に住んでいるか?という情報を入力するように巧妙に仕向けて、その情報をどのように利用するのか?一切の説明が無い、プライバシーへの配慮など微塵も考えていない Google 。東京と入力しといたけども、いつの間にか 札幌に訂正されている。なるほど、Blogger のサービスを享受する時にトレードオフとして、住所の情報を提供したので、そいつで訂正したという訳ですね?手抜かりが無い。まぁ、この件に関しては、私もトレードオフを認識しているので、不満はありません。
 しかし、iGoogle のタブレイアウトが、http://www.google.com/ig までも汚染されて、チャット機能を押し売りされて、チャット機能のタブを削除する事ができない状態になってしまいました。
 本日をもって、iGoogle に追加したタブやらガジェットやらを、全部削除して、iGoogle とはおさらばする事にしました。今まで、ありがとう。iGoogle 。そして、さようなら iGoogle。
 にしても、windows live のセンスの無い事と言ったら・・・どうにかならんのかね?

2009年8月24日月曜日

いろいろ

 昨日、別の店でまた、無視をくらいました。「すいません」を3回投げかけても、丸無視…。いや、やっぱり北海道は土地柄、客をなんとも思ってないでしょう。さすがに店を出ました。
 自転車で転倒して傷めた肩ですが、だいぶよくなりました。鎖骨が少々浮いている感じがするので、「テーピング」するようにしました。そしたら、肩もだいぶ楽な感じです。さっさとテーピングしときゃ良かった。
 息子が「買いたい」病にかかって、格闘する事1時間、周りの方まで巻き込んで、大変だった・・・。スイッチ入ると、復帰できない事がある・・・これは遺伝か?

2009年8月22日土曜日

夜市 面白かった


 「夜市

 札幌駅の札幌弘栄堂書店に、ホラーフェアとして「黒い家」と一緒に山積みで売っていました。読んだ事のない夜市をチョイス。

 とっかかりは、これのどこがホラーなの???という出だしで、狐につままれたような感覚で読み進めてました。途中から段々と雲行きが怪しくなり、なんとも言えない重たい雰囲気に…。違った意味で、心地よい怖さを感じました。

 「風の古道」という作品の2本立てで、こちらの作品も同じような匂いを感じます。この雰囲気は、どう説明すれば伝わるだろうか・・・。となりのトトロのような霊験あらたかな森であったり、小道であったり、そこに漂う異形の世界感、ウィザードリィでダンジョンを一歩進むたびに文章で雰囲気を伝えるあの緊張感、どこか郷愁の漂う匂い。いやー、面白かったです。

2009年8月18日火曜日

何故かモスバーガについて書くのだ

 大阪育ちの自分は、店に行ったら「いらっしゃいませ」~「おおきに、ありがとう」は基本中の基本であると思ってます。北海道に来た頃に、ほかべん屋に入ったときは、面くらいました。店に入っても店員が何の挨拶も返して来ないで、無視し続けるのです。5分ぐらいたって、べんとうを作り終えて、ようやく、話かけてくれたときには、なんだここは?なんて思ったものです。土地柄というやつでしょうか?
 そんな北海道のモスバーガも店舗によっては、未だにフォローが無い事があります。ここ1年以内の話だと思いますが、レジの前に立つ事30秒、店員が奥で作業したまま無視され続けました。その日は、当然、店舗を離れました。
 新千歳空港に入っているモスバーガもそつがありません。子供連れでモスバーガを頼んだら、カラシぐらい抜いてくれるとかの配慮があっても良さそうなのですが、ご丁寧にたっぷりとカラシが塗ってあり、後悔したものです。そんな中、新潟駅のモスバーガでは、「お子様用にマスタードと玉葱は抜きますか?」と店員さが後から聞きに来てくれました。店舗による、この差は、いったい何なのでしょうか?きっと、モスバーガはメニューのターゲットが大人だけで、接客は各店舗に任されているのだと思います。そして、サービスの品質は店員さんの力量にかかっているのでしょう。

2009年8月17日月曜日

北陸旅行

 毎年お盆には、旧友達とどこかへ長期キャンプをしています。今年は、石川県珠洲市でした。自動車を所有しないで、如何に効率よく移動するか?と言った観点から、書いてみたいと思います。
  • 8月8日 10:30 新日本海フェリー(小樽)2等寝台
  • 8月9日  6:30 新日本海フェリー(新潟)
  • 8月9日  8:00 マツダ・レンタカー(新潟駅前店)
  • 8月9日 富山県・クロネコ大和配送センターにて、テント・スクリーンテントをピックアップ
  • 8月9日 珠洲市 キャンプ場
  • 8月13日 7:30 キャンプ場出発
  • 8月13日 輪島の朝市観光
  • 8月13日 金沢市21世紀美術館観光
  • 8月13日 19:30 マツダ・レンタカー(新潟駅前店)
  • 8月13日 宅急便で、テント・スクリーンテント・ザックを送る
  • 8月13日 ターミナル・アート・イン・ホテル
  • 8月14日 タクシー利用 10:30 新日本海フェリー(新潟) 2等寝台
  • 8月15日 4:30 新日本海フェリー(小樽)
  • 8月15日 徒歩 6:03 小樽築港駅
という日程でした。一昨年に宅急便で営業所止めという技を利用して以来、自作自演ならぬ自送自受で荷物が送れるだろうと考えており、今回は、この技を利用してみました。レンタカーを借りるまでは、人力移動が多いので、さすがに3m四方もあるようなテント類を2つも持ち運ぶ事は不可能です。テント2個で、およそ3,400円ぐらい、帰りは+ザック1個で 5,200円ぐらいでした。マツダ・レンタカーをネットで予約すると以下のような感じになりました。
□車種タイプ軽(K)
□車種名軽1
▽基本料金23,500円
▽割引料金-4,700円
▽乗捨料金0円
▽免責補償5,000円
▽装備・オプション料金1,000円
合計(消費税込)26,040円

不景気と高速道路割引のせいか、フェリーは例年の半分ぐらいしか利用されていない感じでした。

 今回の旅行で感じた事を2点ほどピックアップしてみたいと思います。
  1. 新潟港から新潟駅へ車を持たないで移動する手段が恐ろしく少ない。バスも運行されているのですが、基本的に新日本海フェリーの社員のために運行されているだけで、乗客が利用する事が全く想定されていません。せめて、利用客の多い期間だけでも、1日1本の運行で済むのですから、運行すべきだと思いました。新潟港から歩いて、どこにあるのかわからないバス停に辿りついた挙句に新潟駅直行のバスが全然来ないで、マニアックな万代行きという路線バスに乗って移動しなければなりませんでした。早朝に地元の方が利用していなければ、途方に暮れていた事と思います。ここは知恵を出して、マツダ・レンタカー等と提携するなどして、パック旅行を提案するなど工夫をしないとジリ貧でしょう。
  2. 輪島朝市の観光で、和菓子屋さんに入って、甘味をいただいたときに、黒一色で先端が滑りにくいようにゴツゴツした加工の施した輪島塗の箸が出てきました。これは、なかなか良いデザインだ!と喜んで、お店の方にどこで売っていたかを聞いて、そのお店に行ってみましたが、同じタイプの箸は、「あすなろ箸」と言って、わざわざ商品価値を下げるワンポイントの稚拙な飾りが入っていました。うちの嫁さんは、こんな変な飾りが入っているのは、ちょっと違うから、これなら、この箸はいらない・・・と、一刀両断しました。もし輪島塗のものが売れないという悩みを抱えているならば、職人の方は、シンプル・モダンなど、もう少しデザインというものを勉強された方がよろしいのではないでしょうか?今時ならば、伝統だけにこだわらなくても、デザインのみアウトソーシングする事もできると思います。
 金沢市内は、さすがに城下町だけあって、運転が厳しかったです…。珠洲市は夕日が綺麗で、海も綺麗で良かったです。50~70cmのボラの群れと、箱フグの群れが可愛かった。二三味コーヒーも良かった…。北海道のドライバが言うのも変(速度を飛ばす)ですが、珠洲市の車は、対向車にはみ出て速度を落とさない、これは事故を頻発するだろうと思ったら、案の定、事故ってました。きっと普段は車がいないので、対向車が来る事を前提としていないのでしょうか?それとも土地柄?でも、おおらかな感じで良かったです。

ほぎゃー

 夜間に自転車で変な位置にせり出ている歩道角の縁石を回避しようとして、左肩から転倒して強打してしまいました。鎖骨とか異常ないですが、筋を少し伸ばしてしまい、湿布を貼ってます…。さすがに、ちょっと痛いです…。

2009年8月16日日曜日

復帰しました

 RSSリーダの未読が500以上あって、今回は死にそうになりました…。北陸旅行話とかについて書く予定です。

2009年8月7日金曜日

盆休み

 またしばらく、インターネットとは無縁の生活に入ります。
スラドに出ていた、ギーク同士の結婚がうまくいくコツというやつですが、ひとつだけ思い当たる事があるので、書いておきます。私はギークではありませんが、理系の男性というのは、論理的な思考をしてしまいます。特にプログラマーで、そういう流れで、本ブログをご覧になっている君!そう、君の事ですよ!女性が話をして「こういう事があったけど、どう?」と聞かれた時には、論理的思考で返答してはいけません。
決して、論理的思考で返答しないでください。(ここ重要)
女性は、同意を求めているのです。「こういう事があったけど、どう?」と聞かれたら、例えそれが、論理的に考えて同意できない事であっても、「ああ、そうだね」と同意しておく事です。これが、うまく行くコツです。論理的な対応に諦めてくれる女性は多分、少数派です。あまり論理的すぎると、いつか爆発されます。
 という訳で、皆さん、良い夏休みをお過ごしできるよう応援しております。

Bingって

Bing も検索に "-" を利用すると、そこそこいけるね…。バランスをとるために、Chrome のデフォルト検索プロバイダは、Bing にしてます(^^;(一社独占は、つまんない)。

2009年8月6日木曜日

sqlite3 で自作関数


/*
// to compile with vc
CL /EHsc /GR /MD /c sqli.cpp
link /DLL sqli.obj
mt -manifest sqli.dll.manifest -outputresource:sqli.dll;2
*/

/*
sqlite3 test.db
> create table test ( id integer primary key, name text );
> select load_extension('sqli.dll');
> select test_insert( 'hoge' );
> select * from test;
*/

#include <sqlite3ext.h>

extern "C" {

SQLITE_EXTENSION_INIT1

static void test_insert_func( sqlite3_context* context, int argc, sqlite3_value** argv ) {
const char sql[] = "insert or replace into test (name) values (?)";
sqlite3* db = (sqlite3*)sqlite3_user_data( context );
sqlite3_stmt* statement;
int err = sqlite3_prepare_v2( db, sql, -1, &statement, 0 );
const char* p = (const char*)sqlite3_value_text( argv[0] );
size_t len = sqlite3_value_bytes( argv[0] );
sqlite3_bind_text( statement, 1, p, len, SQLITE_STATIC );
while( err = sqlite3_step( statement ), err == SQLITE_BUSY ) {}
sqlite3_finalize( statement );
}

__declspec(dllexport) int sqlite3_extension_init(sqlite3 *db, char **errmsg, const sqlite3_api_routines *api) {
SQLITE_EXTENSION_INIT2(api);
sqlite3_create_function(db, "test_insert", 1, SQLITE_UTF8, (void*)db, test_insert_func, 0, 0);
return 0;
}


}



という訳で、sqlite3 でも、ストアド・プロシジャからトリガまで自由自在やね。やったね!