トップ «前の日(03-18) 最新 次の日(03-20)» 追記

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|09|10|11|12|
2026|01|02|03|04|

2002-03-19

_ 場所

神奈川



_

まふねさんの誕生日。日曜だと思ってたんですが昨日だったそうです。たくみから訂正が入りました。


今週は萌夫 week らしい。日曜、月曜、火曜(今日)も宴会してるそうです。僕は金が無いので逝かないっす。ぃゃあるけどさ。真綾のラジオも聞きたいし。


日曜に本を買ったのが痛い。


_ 物覚え

顔と名前が一致しないっていうのは「物覚え」で良いのかな。何回か連続して会わないと覚えられません。


学生のころはヨーカ堂でバイトしてました。客商売です。ぃゃすべての仕事は客が相手だけど。そんな僕はお客の顔を覚えるのが下手でした。


社員「さっきの客は?」

をれ「えーっと .. 」


致命的っすね。今の仕事がこんなので良かった(←あまり良くない)。


_ the diary

♪ヘミソフィア


卒業旅行に沖縄に行きます。沖縄に行くのは初めてです。


(以下僕のコメント) えーっとね。ラジオはつけてたんですよ。 BAY FM でなくて実は FM FUJI を聞いていたということに気づいたのは 2256 ころですよ。もうほとんど聞きのがしましたよ。ゃれゃれ。



2003-03-19

_

1120 起床。

_ 仕事

3/23 〜 3/25 沖縄。4/2 〜 4/3 岐阜。

_ 猶予 48 時間

ちゃぴの 3/19 のところ。日付を指定してリンクってできたっけ。

3/23 に沖縄行くですよ。どきどき。あと「イラク戦」って書くとサッカーみたいだ。


2004-03-19

_

昨日帰宅して飯食って風呂入らずに力尽きて寝た。

0740 起床。遅刻。とりあえず風呂。ぐったりしてから出勤。

_ 仕事

0930 出勤。

_ 今日は

FF コンサート@北海道の日。でもヲレは普通に仕事。どこかでレポート読むか。

_ 仕事

1040 所沢へ。

2110 切り上げ。

2150 撤収。日曜現場作業決定....。

2400 帰社。

_ 学校を出よう!(4)

帰社ちうの電車内で読み終わり。


2005-03-19

_

0520 起床。

新丸子のほうまで往復。

日の出は 0600 ころ。

05031901.jpg

_ 朝飯

トースト( ゆで卵...。 )

茹で時間が少なすぎ。

p3190004.jpg

_ おやつ

パテシィエ タカギ のルーブドネージュ。

p3190006.jpg

_

サムライチャンプルー の放送時間に BS デジタルのチャンネルを BS-i に設定していた( 録画失敗 )。

_ 消える飛行機雲

@最寄り駅。

p3190008.jpg

_ おひる

リトルスプーン 高田馬場。

ヲレ、うさだー、ちっち。

スープカレーとチャイ( だっけ? )。

p3190009.jpg

p3190011.jpg

_ 買物つき合い

新宿でうさだーと別れ。

ちっちと一緒に秋葉へ移動。

サトームセンの地下に降りたら たくみ と遭遇した。なかなかすごい確率だと思った。

あーだこーだと家電売場を行ったり来たり。

_ ライブなにか。

@四ツ谷LIVEGATE

ゆかさん出るよどーせヲレ暇だしというわけで一緒に四ツ谷へ移動。

当日券。

ヤイコの歌を数曲なバンド。

ゆかさんが急がしそうだった。

最後の即興ぽいリコーダーが FF 5 の「 ピアノのおけいこ 」みたいで素敵だった。

_

蔵で飯。

地下 2F に押し込んでもらった。すまねえ、でかいひと。

ヲレ、ちっち、たくみ、( ライブ会場で合流した )こばさん。あとからのぐちさん、ごじゅうきさん。

来週がんばりましょうという決起集会か。

ごじゅうきさんから葉巻貰った。

p3190012.jpg


2006-03-19 :-)

_

0630 起床。

空腹で目覚めた。

_ 交響詩篇エウレカセブン

いままで小出しにしていた謎を 1 話でほとんどネタバレ

  • 人間とスカブコーラルの共存
    • スカブコーラル「 塊りたいの 」
    • 人間「 悪くないす 」
    • デューイ「 うざい、死ね 」
  • 地球の上に出来たスカブコーラル層に人間が住んでる
  • ところでテンジンンカイってなに
  • レントンは「 お姉 *ちゃん* 」と呼んでいたのが気になった
    • レントンは「 姉 *さん* 」と言っていたはず
    • 最後は「 姉さん 」になった
  • ラストバトル突入

_ web 巡回

今年のピューリッツアー賞、Winnyが受賞

( via Masuda,Masashi's network engineering diary )

わはははは。

スラッシュドット ジャパン - Winny削除でなく、起動不可にするWinnyStopper登場

むしろ Windows 起動不可にするとか。

きっとこんなふうになる。

  1. WinnyStopper をインストール
  2. Windows 起動不可になる
  3. WinnyStopper を削除するには Windows の「 プログラムの追加と削除 」
  4. でも Windows 起動しない
  5. 鶏と卵

はいはいワロスワロス。

特選中河原情報 - フラッグベーカリー(FLAGS)

( via ホットコーナーの舞台裏 )

いくつか買って食べてみましたが、どれもおいしいです。中でも、季節モノだと思うんだけど、新製品として出ていた桜アンパンが出色のおいしさ。ほのかな塩味がアンコの甘さを引き立てて、生地もおいしいし、いい感じ。

ほお。

分倍河原はたまに行くけど中河原はあまり行ったことがないな。

Firefox 2.0 Alpha1 その他の予定 - えむもじら

Firefox 2.0 Alpha1 は 3月16日(木)にコードフィックス、3月21日(火)にリリースとなるようです。

Diary:おーでぃしょん。

「オーディションでダメだったからといって、あなたがダメなのではないです。今回の作品に合うかどうかを見させていただくだけなので、どうか今回ダメでもがっかりしないで下さい」

画像を開くだけでテキストアートに変換するTextArtist

ttyrec みたいな。

ref. 横着プログラミング 第4回: ttyrec: 端末を録画再生するツール

[を] ヨックモックではなくエコルセでした

ミルフィユも似てるかしら [2006-02-27]。

違うか( もぐもぐ )。

06031901.jpg

_ デッドライン

再読。

小説仕立てで読んでいく。

プロジェクト管理全般の話。幅広い。

以下キーワード。

  • モロビア大統領はビルゲイツがモデルだろ、という噂
  • 結城浩さんのミルカさんシリーズみたいな
  • 人材採用
  • 管理者の役割
  • リスク管理
  • 政治
  • 仕様書
  • 残業は無意味
  • プロセス標準
  • お前が好きだ
  • 問題 対 人間

リスク管理については「 熊とワルツを 」がある。

正しい管理の四つの本質

  • 適切な人材を雇用する。
  • その人材を適所にあてはめる。
  • 人びとの士気を保つ。
  • チームの結束を強め、維持する。
  • ( それ以外のことは全部管理ごっこ )

( p.28 )

管理者の役割

「 ところが、現実には、チームのメンバーの間には親しみとか思いやりとか、親密なぐらいのやりとりが必要だし、組織の中"で効率的に対話しやすい環境が必要になってくる。」
「 どうやってそうさせるんです 」
「 そう させる わけじゃない。そうなるようにしむけるの。雰囲気さえつくっておけば、そうなることもある。あとは"運がよければ、自然にそうなるわ 」
「 そのときの管理者の役割とは...? 」
「 できるだけ健全な対話がおこなわれる可能性の高い雰囲気をつくること。... 」( p.58 )

プロセス標準

CMM などのソフトウェア開発のプロセス標準は絶対じゃないという話( p.158 )。

プロセス標準について「 ゆとりの法則 」でも触れている。

標準プロセスの有効性を認め、あらゆる仕事を標準化するべきだというこの提案の価値は、すでに十分に認められ、私たちの周りには十分は前例がある。これは、プロセスへの終着につながりかねない。プロセスへの執着は問題である。プロセスへの終着は、時折起きる異常事態というにとどまらない。流行病である。プロセスへの執着は、現在の知識労働者組織では、風邪と同じくらいよく見られるものである。そして、私にいわせれば、風邪と同じくらいありがたくないものである。( ゆとりの法則 p.114 )

お前が好きだ

きみは、きみの下で働いている人たちのことが好きで、尊敬している。みんなのことを気にかけている。みんなの問題はきみの問題だ。みんなの心配はきみの心配sだ。きみは列車のように広い心を持っていて、それがにじみ出ている。相手がほんとうに信用できることがわかる前に信用してしまう。きみはわれわれを、家族として招き入れられたような気持ちにさせるんだ。だからみんなきみについていくんだよ( p.168 )

以前 mixi 日記に書いたのだが [2006-03-02]

私はみんなが好きだ。
いつも神田で相手してくれる友人たちが好きだ。私を捨てないでとにかく友人で居てくれるひとたちが好きだ。
いつも川崎市でヨタヨタしてくれる友人たちが好きだ。宴会やろうぜと言ってなんだかんだで 10 人くらい集まってしまう勢いの彼らが好きだ。
1 回しか会ったことがないようなひともみんな好きだ。
まだあったことがないけどこれからきっとどこかで遭うひとたちも好きだ。
お前らみんな大好きだ。
私の周囲にはこんなに好きなひとたちがいる。
なんてすばらしい環境なんだ。
life is good だね。
明日もすばらしい日になる。
否。
すばらしい日にする。

ああああ、恥ずかしいなまったく。

誰かを引っ張っていこうとか人徳を得ようとか考えてはいないけど、ひとを好きになることは大切なのですね。

残業は無意味

プレッシャーをかけられても思考は早くならない( p.196 )

残業しても生産性は上がらない。

むしろ落ちる。

問題 対 人間

「 なにかの問題をめぐって争いにはまりこんだ二人。この対立する敵同士の仲裁をどうやって始めたらいいでしょう 」
「 まず、実はお互いが敵同士じゃないんだと認識させてやることいだね。『 きみたちは味方同士なんだ、。敵は問題そのものなんだ 』と指摘してやることだ 」( p.224 )

ref.

4822280535

4822281868

_ ファイナルファンタジー 12

以降 FF 12 。

ようやっと開封した。

  • 崎元仁ミュージックはオーケストラか
  • オープニングに「 FINAL FANTASY 」きたー
  • スターウォーズだ
  • イヴァリース → FFT か?
  • ヴァンとパンネロ( 主役陣 )の声優の演技がしょぼい orz
  • 主人公( ヴァン ) は盗賊属性が伝統か? ( FF 9、FF 10 )
  • メニュー画面が気持ち悪い
  • バトルはある程度は自動でやってくれるので楽
  • 左スティックの操作と十字キーの操作を使い分けるのが面倒 → 左スティックに統一してくれると楽
  • セーブポイント増やしてくれ orz

_ おやつ

モンブラン。

p3190001.jpg

チョコボンブケーキ。

p3190004.jpg

おはぎ。

p3190007.jpg

_ 告別式

高校生のころの友人の母上の告別式に行ってきた。

10 年ぶりの再会。

実は既婚だったり、いろいろしてたり。

会話してしてると私の精神年齢は彼らよりも 5 歳くらい下なんじゃなかろうかと思える。

いまだに寒気がするのでとっとと帰宅。

_ 買い物

C マガジン最終号ということで記念に買った。

06031902.jpg

_ ふむ Wiki - ツイてるアナタのための言い替えマニュアル

  • 子供っぽい/ガキっぽい → 心は 10 代

身体はそろそろ 30 代。ぐふ

本日のツッコミ(全10件) [ツッコミを入れる]

Before...

_ みわ [>さいきくん おやつは別腹というやつですな。 ぃゃ、腹減ってたからたくさん食ってしまったのだよ..。]

_ 矢道 [残業ってのは、定時間で予定してた作業が終わらなくて結果として作業してしまうもので、計画段階で残業時間が入るのは本末転..]

_ みわ [>矢道さん 残業を計画段階で組み込んでるということはそのスケジュールは無理だという証明なのにね...。]

_ 矢道 [残業を計画に組み込まざるを得ないときはわざと多めに工数請求してみたり。(何]

_ みわ [>矢道さん 作業量は減らないのです! と。]


2007-03-19 :-)

_ [写経][UNIX][VMware][NetBSD][プログラミング]詳解 UNIX プログラミング写経

WindowsXP 上の VMWare 上の NetBSD

プログラム 3.2。lseek() です。ファイルを作って 10 バイト埋めて 40 バイト lseek() して 10 バイト埋めるコードです。creat() の第三引数 mode ってなんだ!? man creat しても mode について書いていない。とりあえず 0 にしてみます。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

char buf1[] = "abcdefghij";
char buf2[] = "ABCDEFGHIJ";

int main( int ac, char** av )
{
  int fd;
  if( ( fd = creat( "file.hole", 0 ) ) < 0 )
    err( EXIT_FAILURE, "creat error\n" );
  if( write( fd, buf1, 10 ) != 10 )
    err( EXIT_FAILURE, "write error\n" );
  if( lseek( fd, 40, SEEK_SET ) == -1 )
    err( EXIT_FAILURE, "lseek error\n" );
  if( write( fd, buf2, 10 ) != 10 )
    err( EXIT_FAILURE, "write error\n" );
  return 0;
}

実行。なるほど。chmod 000 ということでしょうか。

% ./a.out
% ls -l file.hole
----------  1 rin  users  50 Mar 19 16:50:17 2007 file.hole

owner も 0 なので読み書きできません。

% ./a.out
a.out: creat error
: Permission denied

sudo して rm しておきます。

% sudo rm file.hole

どうやら chmod の mode のようなので man chmod したら mode の説明がありました。S_IRWXU しておきます。

  if( ( fd = creat( "file.hole", S_IRWXU ) ) < 0 )

実行。chmod 700 ということすね。

% ./a.out
% ls -l file.hole
-rwx------  1 rin  users  50 Mar 19 16:51:31 2007 file.hole*

ファイルはこんな中身になります。真ん中 30 バイトは 0 で埋められます。

% od -c file.hole
0000000    a   b   c   d   e   f   g   h   i   j  \0  \0  \0  \0  \0  \0
0000020   \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000040   \0  \0  \0  \0  \0  \0  \0  \0   A   B   C   D   E   F   G   H
0000060    I   J
0000062

_ [写経][UNIX][VMware][NetBSD][標準入力][標準出力][プログラミング]詳解 UNIX プログラミング写経

WindowsXP 上の VMWare 上の NetBSD

プログラム 3.3。標準入力から読んで標準出力へ印字します。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

#define BUFFSIZE 8192

int main( int ac, char** av )
{
  int n;
  char buf[ BUFFSIZE ];

  while( ( n = read( STDIN_FILENO, buf, BUFFSIZE ) ) > 0 )
    if( write( STDOUT_FILENO, buf, n ) != n )
      err( EXIT_FAILURE, "write error\n" );

  if( n < 0 )
    err( EXIT_FAILURE, "read error\n" );

  return 0;
}

詳解 UNIX プログラミング p.54 ではいくつか BUFFSIZE を変更して処理にかかった時間を計測しています。

このテストに用いたファイルシステムは、ブロックサイズが 8192 バイトのバークレーの fast filesystem である。これが、BUFFSIZE が 8192 の場合にシステム時間が最小である理由である。これよりバッファサイズを大きくしても効果はない。( p.55 )

ブロックサイズは df -P で確認できるようです。512 かしら。いいのかな。

% df -P
Filesystem  512-blocks     Used Available Capacity  Mounted on
/dev/wd0a      1058722    70230    935556     6%    /
/dev/wd0e      5955426  4168740   1488916    73%    /usr
/dev/wd0f     12295016  4414890   7265376    37%    /home

ブロックサイズ 1 メガで 256 メガバイトのファイルを作ってみます。

% dd if=/dev/zero of=3.3.out bs=1m count=256
256+0 records in
256+0 records out
268435456 bytes transferred in 3.907 secs (68706285 bytes/sec)

BUFFSIZE を変更して実行してみます。

BUFFSIZE 1

% time ./a.out < 3.3.out > /dev/null
./a.out < 3.3.out > /dev/null  409.08s user 1536.40s system 99% cpu 32:26.61 total

BUFFSIZE 512

./a.out < 3.3.out > /dev/null  0.10s user 7.34s system 92% cpu 8.012 total

BUFFSIZE 8192

./a.out < 3.3.out > /dev/null  0.00s user 2.42s system 79% cpu 3.050 total

BUFFSIZE 65536

./a.out < 3.3.out > /dev/null  0.00s user 2.42s system 81% cpu 2.953 total

あれ。システムのブロックサイズが 512 ( だよね ) だけど実行結果は BUFFSIZE 8192 以降が最速ですね...。

_ 買い物

amazon

B000LE1I38

_ [Firefox] [☆] Make LinkはCopy URL+よりも使いやすい

( via HsbtDiary )

入れてみました。

右クリックのコンテキストメニューから Meta link → Configure... とすると新しく作れます。tDiary の wiki スタイルや hiki で使う書式を設定してみました。名前を hiki mode とします。こんな設定。

[[%TEXT%|%URL%]]

設定したあとに Firefox を再起動しないと設定が有効にならないみたいです。

Meta link → hiki mode をクリック

m00.png

こんなのがコピーされます。良いですね。

[[ヨタの日々|http://www.area51.gr.jp/~rin/diary/]]

_ [FF12]FF12

プレイ時間 78:48

大灯台地下層探索

  • リボンげっと
  • アーシェに装備させてみた (*´Д`)
  • 外見は変わらないけどね
  • キャロット討伐
  • 空賊の隠れ家にキャロット追加

_ [おひる][スパゲティ]おひる

きのこのカレークリームスパゲティ。

img_3395.jpg

_ [送別会][ごまや]送別会

ごまや 渋谷店

rin、師匠、N原。

なんとなく食べ過ぎて飲みすぎました。

img_3398.jpg

img_3399.jpg

img_3400.jpg

img_3401.jpg

img_3402.jpg

img_3404.jpg

img_3406.jpg

img_3407.jpg

img_3408.jpg

本日のツッコミ(全1件) [ツッコミを入れる]

_ if [df -P は blocksize とちがうんじゃないですかね? disklabel(8) で見られると思います。(..]


2008-03-19 :-)

_ 朝ったー

0540 起床。

_ [植松伸夫][大木理沙][ファイナルファンタジー ヴォーカル・コレクションズ I −祈り−]通勤ったー

ファイナルファンタジー ヴォーカル・コレクションズ I −祈り−

FF1 から FF6 の曲に歌詞をつけたアルバムです。ヴォーカルは大木理沙さん。日本語の歌詞はファンタジーの色が溢れていて聴いているとけっこう恥ずかしいです。ゲーム音楽に歌詞をつけるとこうなるんだなあ、くらいに聴いてます。

B00005FNVH

_ 仕事

0830 出勤。

そういえば昔 仕様が決まってないのに「見積もれ」という依頼が来たなあ。

_ [FreeBSD][NetBSD]いよいよ7.0-RELEASE登場! FreeBSDフルコース・2008

「NetBSD フルコース」をやってくれないかなあと思ったけど「カーネル読め」で終わりそう。

_ [まつもとゆきひろ][小飼弾]エンジニアの進化は"アウトプット"にあり! まつもとゆきひろ×小飼弾

「アウトプットの数を増やせば当然叩かれることもある。それをおそれずに、叩かれることに強くなってほしい」(小飼氏)、「アウトプットの多い人ほど、たくさん学ぶことができる。RubyはOSSとして公開し、多くの人から突っ込まれ、叩かれてきたからこそ今の姿がある」(まつもと氏)

いままでアウトプットとは「ただひたすら文章を書く」「ブログを書く」ということだと思ってたけどそうじゃない。ブロガーはそれで良いけど( ブロガーってなに ) プログラマならコードをアウトプットすることが重要なんですね。なんということだ。いまさら気づくなんてなあ。

あわせて読みたい:作品をよく見せるためのお手軽なテクニック集

_ 自動返信のためのボットなんてどうだろうか

客先のひとが外出中なのを知ってるんですがそこで敢えて客先へメールを投げたら「休暇をいただいております以下略」というメールが自動返信されてきました。わざわざ自動で返信するなんてのは、コマンドに対して ack を返すとか ping に対して pong を返すとか HELO に対して 250 を返すとか、そのくらいの意味で使っているのだろうけど E-mail の特性からしてそのような行為は無意味であり計算機とネットワークの資源の無駄使いなのでどうせ無駄にするならいっそのこと返信用メッセージを人工無能に書かせるというのは如何なものか。

_ 得意な言語はなんですか?

計算機関連の文脈で上記のような質問があるときの回答に「日本語」「英語」「クリンゴン語」など自然言語が混ざっているときがあるのだけど、質問者は「自然言語も込みで回答してね」ということを言っているのか、それとも「この文脈ではプログラミング言語を回答するだろ常識的に考えて」としか考えてないのか。たぶん前者。

_ [Exif][JPEG][画像][コードリーディング][がらくた][高林哲]がらくたを読む - exif-touch

http://0xcc.net/attic/exif-touch

JPEG ファイルの mtime を Exif にある mtime に変更します。Exif についてはこちら。

module Exif
  HEADER_OFFSET1 = 12    <= TIFFヘッダー部 開始位置
  HEADER_OFFSET2 = 8

Exif というモジュールにしてます。Ruby では大文字で始めると定数になります。HEADER_OFFSET だと用途が分からないので名前を具体的にしてほしいところですが一発プログラムなのであまり深く考えなかったのでしょう。

  module_function
  def exif_file? (filename)
    exif_header = "\xff\xd8\xff\xe1"          <= SOIマーカとAPP1マーカ
    magic = File.open(filename) {|f| f.read(4) }
    magic == exif_header
  end

Exifに使われるマーカー より引用します。

Exif形式画像の最初の部分は、必ず次のような形式になっています。

SOI Marker が FFD8 で APP1 Marker が FFE1 です。これらのマジックナンバーを見て Exif ファイルか否かを判定してます。return などが書いてない場合は最後に評価した値が関数の戻り値になります。この場合はファイルの先頭 4 バイトにある数値が FF D8 FF E1 と同じならば true が返ります。そうでなければ false が返ります。

  def get_endian (f)
    f.seek(HEADER_OFFSET1)
    data = f.read(2)
    if data == "\x49\x49"
      :little_endian
    elsif data == "\x4d\x4d"
      :big_endian
    else
      raise 'unknown format'
    end
  end

49 49 などの値はなんでしょうか?

TIFF形式の最初の8バイトはヘッダー部です。最初の2バイトはバイト並びの形式を定義しています。0x4d4d:"MM"の場合はモトローラ形式、0x4949:"I I"の場合はインテル形式です。

ここの 2 バイトを見ればエンディアンが分かるようです。ちなみに キヤノン:EOS-1Ds Mark III サンプルイメージ 1 にある画像に対して以下のコードを実行したらリトルエンディアンでした。

File.open( ARGV.shift ){ |f|
  p Exif.get_endian( f )
}
% ./exif-touch portrait.jpg
:little_endian

read_directory は IFD : Image file directory を読みます。get_time とあわせて読むと面白いです。

  def read_directory (f, read_ushort, read_ulong)
    n = read_ushort.call(f)         ## ディレクトリーエントリー数
    n.times {                       ## ディレクトリーエントリー数ぶんをなめる
      tag   = read_ushort.call(f)   ## ディレクトリーエントリー 12 バイトぶん
      type  = read_ushort.call(f)
      size  = read_ulong.call(f)
      value = read_ulong.call(f)
      yield(f, tag, type, size, value)
    }
  end
  def get_time (filename)
    time = File.mtime(filename)
    begin
      raise 'not an exif file' unless exif_file?(filename)
      File.open(filename) {|f|
        read_ushort = lambda {|f| f.read(2).unpack('v').first }    ## little endian unsigned 16bit
        read_ulong  = lambda {|f| f.read(4).unpack('V').first }    ## little endian unsigned 32bit
        if get_endian(f) == :big_endian
          read_ushort = lambda {|f| f.read(2).unpack('n').first }  ## big endian unsigned 16bit
          read_ulong  = lambda {|f| f.read(4).unpack('N').first }  ## big endian unsigned 32bit
        end

        f.seek(HEADER_OFFSET1 + HEADER_OFFSET2)
        special_offset = nil
        read_directory(f, read_ushort, read_ulong) {|f, tag, type, size, value|
          special_offset = value if tag == 0x8769                  ## Exif offset
        }
        raise if special_offset.nil?

        f.seek(HEADER_OFFSET1 + special_offset)                    ## オフセット値が示すアドレス
        read_directory(f, read_ushort, read_ulong) {|f, tag, type, size, value|   ## Exif SubIFD を読む
          if tag == 0x9003                                         ## DateTimeOriginal
            curpos = f.pos
            f.seek(HEADER_OFFSET1 + value)
            s = f.read(size) # 2003:01:26 16:37:04
            if /(\d\d\d\d):(\d\d):(\d\d) (\d\d):(\d\d):(\d\d)/.match(s)
              year = $1.to_i;  mon  = $2.to_i
              day  = $3.to_i;  hour = $4.to_i
              min  = $5.to_i;  sec  = $6.to_i
              time = Time.mktime(year, mon, day, hour, min, sec)
            end
            f.seek(curpos)
          end
        }
      }
    rescue => e
      STDERR.puts "exif-touch: #{filename}: #{e.message}"
      exit 1
    end
    return time
  end
end

「ヘッダーオフセット」のところにある値の回数ぶんだけ read_directory します。special_offset = value if tag == 0x8769 は Exif Offset(0x8769) を探します。

Exif 形式の場合、IFD0の中にはExif Offset(0x8769)という特殊なタグが必ず含まれています。このオフセット値が示すアドレスには、やはりIFD形式のデーター(Exif SubIFD)が格納されており、ここにカメラの詳細情報等が書かれています。

f.seek(HEADER_OFFSET1 + special_offset) で「オフセット値が示すアドレス」まで読み飛ばします。

次の read_directory で Exif SubIFD を読み、tag 0x9003 と比較します。tag 0x9003 はオリジナル画像が撮影された日時です。その日時による Time オブジェクトを生成しておきます( Time.mktime )。

if __FILE__ == $0
  def fmt (t)
    t.strftime("%Y-%m-%d %H:%M:%S")
  end

日付と時刻を整形します。t はたぶん Time オブジェクトが入ります。strftime で 2008-03-19 18:55:22 のような文字列にします。

ここで分からないのは if __FILE__ == $0 です。__FILE__ にはこのファイル名が入ります。$0 にはこのスクリプトの名前が入ります。両方が異なる場合というのはどういう場合なんでしょうか。

  ARGV.each {|filename|
    if Exif.exif_file?(filename)
      old = File.mtime(filename)          ## ファイルの mtime
      new = Exif.get_time(filename)       ## Exif の mtime
      File.utime(new, new, filename)
      puts "#{filename}: #{fmt(old)} -> #{fmt(new)}"
    else
      puts "#{filename}: not an exif file"
    end
  }
end

メインの処理です。ARGV.each で与えたファイルをすべて処理します。

exif-touch では lambda を使ったコードが面白いです。私は lambda を使ったコードに見慣れてなかったので戸惑いました。まだ慣れてませんが。lambda の壁は高そうです。でもこの壁を超えると世界が変わりそう。

_ [バンブーブレード]バンブーブレード第24話「剣と道」における主な登場人物のレベルアップ

今回レベルアップしたひとたち

  • 石田虎侍
  • 川添珠姫
  • 千葉紀梨乃
  • 宮崎都
  • 栄花段十朗

とくに何もなかったひとたち

  • 桑原鞘子
  • 東聡莉
  • 中田勇次
  • 走行距離 1057km
  • Pro 24 をクリア
  • エンディング

_ 買い物

amazon

B0013FCOHS

本日のツッコミ(全1件) [ツッコミを入れる]

_ さいき [>得意な言語はなんですか? 方言(例えば、関西弁とか)を記入して 様子(回答)を待つとか?w まぁ〜ニュアンス的..]


2009-03-19 :-)

_ 朝ッ

0500 起床

ねむ

_ ちょっと休憩

20090319_0.jpg

0700 エクセルシオールカフェ

_ おひる

20090319_1.jpg

カレー

_ 仕事

0830 出勤。

_ 今月すでに 5 万円くらい使った

外食を減らして節約してるつもりだったんだが。

蔵に通ってたころはいくら使ってたのか恐ろしい。

_ [英会話][イーオン]英会話レッスン VOYAGE 2B 42

「オレ、日曜日になったら 中野で踊ってくるんだ

「なに?」

「クラブハウス」

「あー。ageha って知ってる?千葉にあるんだけど」

「いや、知らないす」

「クラブハウスなんだけどね。すげーでかいんだよ」

「へー」

といったことを話すなどした。

これか→ ageHa

ちょ

スケジュールを見たら 3 月は電気グルーヴとか中田ヤスタカとか居るじゃないすか。

ていうか STUDIO COAST なのか?

_ [リッジレーサー7]リッジレーサー7

  • 走行距離 11358.941 km
  • RSGP 進行度 100.0 %
  • 名声 18039 FP

_ [][きのこ入り肉じゃが]飯

きのこ入り肉じゃが(肉なし)。ううむ。じゃがいもが溶けた。

_ とらドラ!24話を見た

高須泰子が家庭放棄してた。爆笑しちまったじゃないか。

本日のツッコミ(全2件) [ツッコミを入れる]

_ よしみつ [そういえば最近は蔵に行ってないですね。]

_ みわ [うむ。つまり金がない ふふ]


2010-03-19 :-)

_ 朝ッ

0530 起床

_ 仕事

0830 出勤

_ [がらくた][高林読][コードリーディング]がらくたを読む - xface2png

http://0xcc.net/attic/xface2png

ワンライナー

#!/bin/sh
{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | convert - png:-

uncompface というのは X-Face をごにょごにょするツールらしい( compface のインストール<BR> (Mac OSX) )

たぶん最初の入力はメールファイルで

それを uncompface に食わせて Sun icon を出力し

それを icontopbm に食わせてを PBM を出力し

それを convert ( ImageMagick の付属品 ) に食わせて png を出力している。

最初の echo って要るの? Sun icon の形式がどういうのか分からん。

_ [がらくた][高林読][コードリーディング]がらくたを読む - xface-gallery

http://0xcc.net/attic/xface-gallery

#! /bin/sh
i=0
find ~/Mail -type f |xargs xface-gallery |sort |uniq |\
while read -r line; do
    /bin/echo $line | xface2png > `printf "%04d" $i`.png;
    i=`expr $i + 1`
done

メールから X-Face を抽出して png に変換してファイル名には連番をつけている。んだろうけど、xface-gallery が再帰してるので、たぶん 1 メールにつき複数の X-Face がついている場合にも処理できるようにしてるんだろう。X-Face なんて 10 年くらい見てない。

_ [がらくた][高林読][コードリーディング]がらくたを読む - webpngize

http://0xcc.net/attic/webpngize

指定したディレクトリ以下にある .html に関連する .gif を .png に変換する。

#! /bin/sh
test ! $1 && echo "Usage: webpngize <directory>"
cd $1

引数が無かったら Usage を印字して終了。

そうでなければ引数に指定されたディレクトリへ移動する。

for html in `find . -type f -name '*.html'`; do
    echo $html
    perl -i\
    -p0e "s/(<img\s.*?src=)(['\"]?)(.*?)\.gif\2/\$1\$2\$3.png\$2/gi" $html
done

指定されたディレクトリ以下の .html について処理する。.html ファイルの中の .gif を .png へ置換する。ここはたんに s/(\.gif)/.png/ じゃダメなのかしら。

for gif in `find . -type f -name '*.gif'`; do
    echo $gif
    convert $gif `basename $gif .gif`.png
    rm $gif
done

convert( ImageMagick 付属 )を使って .gif ファイルそのものを .png へ変換する。

_ [ゲーム音楽]アンサンブルゲームクラシカ第4回演奏会~弦楽四重奏で奏でるゲーム音楽演奏会~

@カメリアホール

  1. キャプテン翼3
  2. ドラゴンボールZ II 激神フリーザ!!
  3. エストポリス伝記2
  4. SFC RPG メドレー
    1. reminiscence ( タクティクスオウガ )
    2. 通常バトル ( ヘラクレスの栄光III )
    3. 拾った物は俺の物 ( タクティクスオウガ )
    4. BGM No.17 ( RPG ツクール II )
    5. バトル1 ( ロマンシングサガ 3 )
    6. バトル1 ( ロマンシングサガ 2 )
    7. ホテル ( マザー 2 )
    8. 母なる神の爾座 ( ミスティックアーク )
    9. フィールド ( 大貝獣物語 )
    10. 飛空挺 ( ファイナルファンタジー 4 )
    11. ピアノのおけいこ 8 ( ファイナルファンタジー 5 )
    12. 霊峰コルツ ( ファイナルファンタジー 6 )
    13. 通常バトル ( ごきんじょ冒険隊 )
    14. 序曲 ( ドラゴンクエスト 6 )
  5. ゼルダの伝説
  6. 天地創造
  7. Saga2 秘宝伝説

バトル曲を弦楽器だけで演奏するのはかなり大変じゃないのか。それにしてもおっさんホイホイすぎる。Saga2 はバトル曲メドレーだし「必殺の一撃」なんて泣きそうになった。ゲームプレイしてないけど。

19:30 開演 21:45 終演。長いお。無茶しやがって。ということをアンケートに書こうとしたんだが時間が時間だったのでカンパだけ放り投げて帰ってきた。


2011-03-19 :-)

_ 午前

0830 起床 || 風呂掃除

1000 アニメ消化

1100 ジャンプ消化

_ 午後

1200 二子玉川 rise が開業したということで母が視察してた

1400 墓参り

1500 散歩

_

1800 エキスパートPythonプログラミング写経

1900 月がとっても青いから

こういうときは望遠レンズが欲しくなる

IMG_6955


2012-03-19 :-(

_ 午前

0520 起床

0830 出勤

0900 検討

_ 午後

1300 外出

1500 スクラム

_

2200 飯

_ Agile do IT !

@新宿NSビル Bホール

基礎知識としてはこの辺を読んでおけということで

4274068560

Yahoo! のひとたちと DeNA のひとたちは事例を紹介しながら喧々諤々など。

質問者「スクラムやって経営層のひとたちは何か変わりましたか?」

Y! 「経営層が変わっちゃった、というのではダメですかね」

会場爆笑

あとはひたすら守破離してく感じですかねー

_ [NetBSD][翻訳]NetBSD Blog - New NetBSD flyers available わーい NetBSD の新しいフライヤーできたよー

March 18, 2012 posted by Benny Siegert

For informing our peers about NetBSD, for distributing at a conference or meet-up, or simply as a concise introduction - new NetBSD flyers are now available at http://www.NetBSD.org/gallery/advocacy/. They are made to be printed on A4 paper and folded twice. English and German versions are provided.

新しい NetBSD フライヤーが http://www.NetBSD.org/gallery/advocacy/ で利用できるようになった。NetBSD について知人に知らせたり、カンファレンスやミーティング {勉強会????} で配布したり、あるいは布教用として使用するとよい。A4 用紙に印刷して2回折られるように作った。英語とドイツ語版を用意した。

At the moment, there are three flyers: "What is NetBSD?" gives an overview about the project and the OS, while "Tips and Tricks for NetBSD newcomers" and "NetBSD for Newcomers - Switching from GNU/Linux" are more aimed at people who already know similar operating systems, particularly GNU/Linux, and want to know more about the differences between these systems and NetBSD.

現在フライヤーは 3 つある。"What is NetBSD?" はプロジェクトの概要と NetBSD について。 "Tips and Tricks for NetBSD newcomers" と "NetBSD for Newcomers - Switching from GNU/Linux" は特に GNU/Linux のようなオペレーティングシステムを既に利用しているひと向けに。これらのシステムと NetBSD の違いについて詳細を書いた。

We are very grateful to Julian Fagir, who provided these flyers to the project.

これらのフライヤーをプロジェクトに提供してくれた Julian Fagir に感謝する。


2013-03-19 :-(

_ 午前

0600 起床 && 寝坊 && スマホがマナーモードになっていたため目覚ましが聞こえず && いつもの電車より1本遅らせるだけで済んだ && 1,2ヵ月前に使っていた電車である

0830 検討

_ 午後

1300 検討

1720 退勤

_

1800 自社 && 課題インタビュー

1930 退勤

2130 飯。豚肉のしょうが焼き


2014-03-19 :-(

_ 午前

0530 起床

0710 食堂

0830 出勤 || デバッグしTARI

_ 午後

1300 デバッグしTARI

_

1700 退勤

1800 はうはう

2000 ぐったり

2100 飯

_ [ruby]呼び出す関数を文字列に結びつける

文字列をキーにして処理を呼び出すだけですが。

やり方はいろいろあるだろうけどハッシュにしてしまうのが最も簡単かと。

#: coding: utf-8

class Command
  def initialize()
    @command ||= {}
  end
  
  def register(name, cmd)
    @command[name] = cmd
  end
  
  def exec(name)
    @command[name]
  end
end

def func0()
  puts "func0"
end

def func1()
  puts "func1"
end

def func2()
  puts "func2"
end

def main(argv)
  command = Command.new
  command.register("a", func0)
  command.register("b", func1)
  command.register("c", func2)
  
  command.exec("a")
  command.exec("b")
  command.exec("c")
end

main(ARGV)
>ruby command0.rb
func0
func1
func2

_ [艦これ]艦これ

潜水艦たちがレベル 10 を超えた( 3-2-1 に連れていっていた )のでオリョールクルージングとやらを始めてみた。潜水艦だから燃費が良いし入渠時間が短いし低コストに任務消化できてフイタ。もっと早く始めるんだった。


2015-03-19 :-(

_ 午前

0520 起床

0700 食堂

0830 労働

_ 午後

1300 労働

_

1700 労働

2130 退勤

2230 飯


2016-03-19 :-)

_ [大洗][海楽フェスタ][ガルパン][ガールズアンドパンツァー]大洗 海楽フェスタ 前日

移動

品川駅で遭遇した。

IMG_2351

水戸駅からガルパンラッピング列車 1 号に乗る。

IMG_2353

宿

大洗シーサイドホテル

劇場版ガルパンにて KV-2 の砲撃を食らい破壊されたホテルです。事前に問い合わせたところ、大洗駅まで車で送迎してくれるとのこと。水戸駅から臨海鉄道大洗鹿島線を使って大洗駅へ行く旨を伝えたところ、水戸駅についたら連絡してくれれば大洗駅で待機してくれるとのことだった。なんというサービス。

ガルパンプランにしたところ様々な特典がついていた。あんこうの敷物。いやこれ汚せないだろ

IMG_2354

ゆっくりしていってね!(違

IMG_2355

ダージリン様からの差し入れだそうで。

IMG_2357

ダージリン、オレンジペコ、アッサムが用意されていた。

IMG_2358

オーシャンビューではあるんだがあいにく海上は視界が効かん。

IMG_2361

散歩

商店街を通りながらアウトレットモールへ移動。ガルパンさんも歩けば棒に当たる。という考えのもと適当に歩けば何かしらあるだろうと歩いていると何かしらあるのが大洗町である。

劇場版の登場人物たちとか。継続高校のミッコ。他 2 名のパネルはかなり離れた所にあるようなので断念した。

IMG_2367

サルミアッキを知る者、来たれ! 世界一まずいらしい。まずかった。口に入れた直後は「んー?それほどでもないような」というくらいなんだが、しばらくするとゴムのタイヤを噛んでいるような味に見舞われた。非常にマズい。タイヤを噛んだことないけど。

IMG_2369

IMG_2370

パネルが刷新されているキャラもチラホラいる。

IMG_2379

IMG_2380

大洗アウトレットモール

おみやげを買うなど。

IMG_2385

舞台探訪者としては、いつかこのサンフラワーに乗り北海道へ行かねばなるまい。

IMG_2389

宿

宿に戻ってきた。霧がすごいんですけど。

IMG_2395

普通です。

IMG_2396

食後の戦車ケーキ。

IMG_2407


2017-03-19 :-)

_ [大洗][ガルパン][ガールズアンドパンツァー][海楽フェスタ]大洗海楽フェスタ

当日です。

会場を眺めたり商店街を眺めるなどしていました。

アリストトリスト (蝶野正洋ファッションブランド)のブースに全員揃っていました。

IMG_3870

劇場版でカチューシャが乗っていたアレです。

IMG_3875

なんか乗っかってました。

IMG_3885

商店街のほうの しちりん で「干し芋パスタ」( 劇場版で角谷杏がアンチョビを煽るときに出した架空の料理 )があったので食べていました。ペペロンチーノです。干し芋の味はしません。

IMG_3892

IMG_3900

帰路は現地で合流した友人の車に乗せてもらい水戸駅まで移動。あざした。

水戸駅で何気なく立ち寄った ガールズ&パンツァー劇場版オンリーショップ水戸オーパ店 です。従業員がコスプレしていて撮影 OK らしいんですが、ここに来る客が積極的には撮影してくれなくてかなり寂しい思いをしているとのこと。男性従業員からは「お願いだから撮影して」と言われたので撮影しておきました。【拡散希望】とのことなので置いておきますね。

IMG_3925

IMG_3926

IMG_3928

男性従業員が 常磐さん の先輩 且つ大洗アウトレットモール支配人(だっけ)の先輩だとのことで、例のアレについては「両方について把握しているが、常磐が 100% 正しい。だから(大洗やガルパンの)ファンのひとたちは常磐を応援してやってほしい」と仰っていました。私はガルパンのファンだし大洗にもしょっちゅう行くし クックファン (常磐さんが営業している) も行ったけど、とはいえこの件について私に出来ることはとくに何もないので従来通りいつも通りに大洗へ行っておカネを落とすのみです。( ref. 「ガルパン」展示、休業 大洗まいわい市場、警備員無配置主張 )


2018-03-19 :-)

_ [艦これ]艦これ 2018冬イベント 捷号決戦!邀撃、レイテ沖海戦 E1甲 まるゆ掘り

全然出ないですね。

基地航空隊は 対潜x3 陸攻x1 の 1 部隊をボス O マス集中。

陣形は H は単横陣。I は警戒陣。O は単横陣。I マスはツ級が厄介なんですが警戒陣のおかげでかなり避けてくれます。ボスも砲撃戦が開始される前に終わることがよくあります。

_ [艦これ]甲機動提督というパワーワード

艦これと佐世保市のコラボのアレ。現地へ行った友人提督からも話を聞いてたんですがかなり大盛況だったようで。私は大洗に行ってましたが。


2019-03-19 :-|

_

田園都市線労は準急です。

業務では会議労。ストレージ労。4月から体制変更のお話。

_ ,

帰宅してからエガオノダイカ、転スラを見ました。エガオノダイカはここ何回か紙芝居になっていてヤバいですね。転スラは生前のシズさんが闇の櫻井孝宏と出会う話題でした。2 作品とも花守ゆみりが主役でした。


2020-03-19 :-|

_

ストレージ労。労...

_ 香川県だけ断絶した世界、みたいな妄想ディストピアがタイムラインにたまに流れてくるけど

すべてが大赦に管理された神世紀以降の香川という感じがして現実が危険すぎる(ref. 結城友奈は勇者である - Wikipedia )

_ 艦これオフ会はこわい

C2機関や艦これ運営にたいして暴言吐いてるアカウントはカジュアルにブロックしてるので参加者のなかに相互ブロックのひとが居たりすると気まずいのではないかという懸念があった。実際 他のオフ会の参加者一覧に相互ブロックのひとが居たことはある。空母信濃のオフ会だったか。まあ結局行かなかったけど。

_ [那珂ちゃん][艦娘遊撃隊],

ふむ


2021-03-19 :-|

_ 日誌

0600 起床

0630 菜花なな配信

0810 出勤。在宅勤務

1510 退勤。今日も早めに

父の墓参り。お彼岸です。

読書

結目ユイ配信

リッジレーサー7 配信


2022-03-19 :-)

_ 掃除

部屋掃除

している最中に親戚が線香をあげにきた。

_ コーヒー

飲んだり

DSC01334

DSC01335

_ おひる

ナポリタン

メークインから芽が出ていたので入れた。

DSC01337

_ おやつ

コーヒーを飲んだり。サクラタウン土産を食べたり。

DSC01340

DSC01341

DSC01342

_

カレー。たまには圧力鍋を使って作ってみたものの水が多すぎて水っぽくなってしまった。

DSC01343

DSC01344

DSC01347

_ おやつ

ルタオのショコラポムロワイヤル

DSC01348

DSC01349


2023-03-19 :-)

_ 日誌

0930 起床

部屋掃除をするなど

コーヒーを飲むなど

DSC03480

DSC03481

だらだらするなど

飯。サーモンムニエル。

艦これやりながら Vulcano さんの 3000 勝阻止レースを眺めていた。3000 勝ならず。 DJK の壁が厚すぎる。


2024-03-19 :-(

_ 業務日誌

0800 出勤

1700 退勤

_ 日誌

晴れ。まだ寒い。

おひる。ラーメン。

飯。 豚の角煮

久しぶりにリッジレーサー7オンラインバトルをやるなど。艦これイベント海域が始まってからリッジレーサー7に触ってなかった。


2025-03-19 :-(

_ 業務日誌

0900 出勤

2200 退勤

_ 日誌

おひる。ラーメン。

飯。 ぶりの塩焼き。


2026-03-19 :-(

_ 業務日誌

0800 出勤

自社へ移動

帰宅

2000 退勤

_ 日誌

おひる。パン。

飯。カツオの漬け丼。

目覚めたら戌亥とこさんが配信していたので見る。

巻乃もなかさんの配信を聞く。