| 次の月 / 最新 |
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
2006 : 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
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
単一行化[2004-05-10-2]の際に余分に改行が除去されてしまっていたのを修正。
sub okikae {
:
#print "1[$_]\n";
## 2004-05-10 bills : 単一行モード
## 2004-05-24 bills : 単一行化終端判定の先読み指示の括り出し(不要な改行の丸めを抑止)
## begin
s!^ (.+?)(?=\s*(^$|\z| ))!make_single_line($1)!gsme if ($single_line_mode);
## end
s!$!<br>!gsm;
s!<br>$!!;
#print "2[$_]\n";
:
}
- サクサク
「あぶない刑事」そうかもう20年前近くになるんですね。ジゴロウの故・中条静夫さんのマネ(鷹山っ、大下っ)が懐かしい。
- トリビアの泉
先手後手合わせて804枚の大局将棋。この規模だと今でいう大戦略とか信長の野望みたいなシミュレーションゲームの趣がありますね。
小さい頃、新聞のコラムに載っていた中国象棋の駒を日本将棋上で再現するために、余っていた駒をパテで改造(ひどい)したりしましたが、この規模じゃ無理…。
Kirin-Cityに行き、カウンターに座ったところ、カウンターの中で注文を捌きビールを注ぐ店員が何やら面白い。
- 注文がかかった席を忘れる
- 注文されたビールを注ぐのを忘れる(自分も2回やられた)
- 空になったビールサーバーの泡処理で、泡が吹き出し「わー」「きゃー」
- 店員への指示で、たまにくだけた表現をする。
- 片付け中のグラスを落とす。
ドジっ娘属性(というのか?)満載で、サービス業として許されざるべきかどうかという状態なのですが…かわいいから許すっ(それかよ)。
で、ネームプレートみたら「スタッフリーダー」。ある意味すごい。
ブラウマイスターフェアということで、ブラウマイスターを注文して行った抽選でメモ帳をゲット。他の当選品はグラスや蛍光マーカー。

機会があってJ2EE(とApache software)と.NET Frameworkのプログラミングを同時に行ってライブラリを眺めたときに、以前からのWin32プログラミングやJavaプログラミングの経験も交えて思ったこと。
(あくまで2つの相対的なものです。絶対的にそうでない面はあります)
- .NET Framework: 実利的。その場しのぎ。目の前の問題を解決するのに手っ取り早い。
- J2EE : 論理的。一貫性が高い。まわりくどい。
ユーザインタフェースやアプリケーションも含めて、大きなところではメインフレーム→UNIX→Windows→Java→.NETというアンチテーゼな競争の結果の側面が大きいのでしょうけど、面白い。
アリ(J2EE)とキリギリス(.NET)のようにも見えます。しかし物語の中ではアリが勝ちますが、現実ではそれぞれのユーザ、市場原理、経済的制約、政治力などが働いて、そうでもありません。CPUやOSを見ていると、キリギリスが後からアリの特徴を取り込んで市場的、経営的に充足しています。
また利用者が今そこにある問題を解決するには、その手段となるプラットフォーム(ユーザインタフェース、アプリ、ミドルウェア、プログラミング言語、ライブラリ、OS、ハードウェア、ネットワークなど)がどんな構成であろうと関係無く、問題を解決するための時間、手間が少ない方に越したことはありません。エンドユーザ側に近づけば近づくほどその度合は高いと考えられます。実際には要件や制約や調達難易度などの環境も影響しますし、コンピューティング自体が目的の(になっちゃっている)場合は例外ですが。
マクロな視点に立てば、セキュリティ懸念をはじめとする極度のプロプライエタリ化による弊害等もありますが、人間そう簡単に高尚になれない。易きに流れやすい。
…まぁさんざん言い尽くされていることですけど。
.NETとJ2EEの比較なんか、Bjarne Stroustrup氏が「Javaはマーケティングの産物」と言っているように、数あるテクノロジの中ではJavaも十分にマーケット寄りですし「どんぐりの背比べ」かもしれません。
なんか山田世紀さんの著作に出てくるプラズマ生命対有機生命(お互いに有り得ない理論で構成されているため、戦いに敗れた方が存在自体消滅)を思い出してしまった。タイトルは忘失。
経営ドリブン(needs)と技術ドリブン(seeds)の温度差も埋め難い。バッドノウハウカンファレンスのnaoyaさんのエピソードのように、わかるように3分で説明しなければならない。
経営者や上司に説明するには、鍛えてない部分の脳をフル回転する必要がある。いや苦しいけど鍛えなければならない。
いわゆる「えらいひとにはそれがわからんのですよ」で思考停止するのは「それはバッドノウハウだから覚えない」に通ずる危険性があります。なかなか実践できてませんけど。
あらま、あちらこちらにこのサイトが発見されていたのですね。Web公開した時点で隠しもへったくれも無いことは世の常識ですが。
bills.taro-web.comで引けているのがほとんどのようですね。dnsの設定をのぞいてみる…(ごそごそ)…なるほど。
たろさんには「勝手に記事取得」までしていただいて…うーんRDFのtitleから日付は外したほうがいいかな。というかサイトβサービスとして大変重宝しており感謝いたします>たろさん
chalow へのフィードバックなどができれば良いのですが、これまでに記載したような、へっぽこカスタマイズでは遠い道のりですね。落ち着いたら「動いてます」だけでも報告したいところです。
先日購入した北海道物産品[2004-05-11-2]のひとつ。
パッケージには桃太郎風の人物と猿、犬が描かれています。

きびだんご、といえば岡山だと思うのですが、北海道。地元で食していたときは北海道産と知りませんでした。
黒飴っぽい味の餅菓子といった感じです。
パッケージより:
「谷田の日本一きびだんご」は、大正12年弊社の創製したもので、だそうです。
自然の原料だけを使い甘さを抑えたお菓子です。
そもそもは、関東大震災の復興を願い、また北海道開拓の精神を込め「起備団合」と命名していましたように、保存性に優れたおやつ、非常食として親しまれてきました。
また、大正4年の大正天皇の大嘗祭にちなんだ「大嘗飴」も冬季限定で販売製造しております。(以下略)
- サクサク
TVKのサイトが変わったので、サクサクのページもリニューアルされているかと思いきや、相変わらず…もはやトップページの木村カエラは「誰だこりゃ?」になっているような。
出演者(黒幕)の携帯電話が収録中に鳴って、しかもそれが放映されるというノリは相変わらず。
視聴者の投稿CGムービーは、一発ネタで良くそこまで。結構長かったような気がします。
ゲスト対談中無口のカエラがようやく発した「じれったい」へのコブクロ黒田の「やっとしゃべったと思ったらT-BOLANか?」というツッコミや、インターネットサーフィン話でのジゴロウの「秘密のフォルダに『日本名水100選』ってつけたり…」が笑えました。
- トリビアの泉
今週は「えーそんなのが採用?」というのは個人的には無し。発言とへぇの数が一致しないビビる大木へのタモリのツッコミ「もっと感じろ!」。
見出しモード[2004-05-10]がchalowのリンクマークアップ(ブラケット2個)の処理と干渉し、アイテム内にリンクが存在すると変な風にレンダリングされてしまうため、とりあえず他の文字(|:縦棒)に変更しました。
根本的に見直さないとだめですね。
先日来のチャレンジ[2004-05-13]空しく、TrackBack支援環境の作成をあきらめました。
とりあえず「トラックバックのスタンドアローン実装(リンク先はmiyagawaさんによる日本語版)」内に、そもそもPingerがあることに(よく考えたら当たり前)軽い挫折感を覚えつつ、それに手を入れてTrackBack POSTフォームにインラインフレーム(iframe)を設け、そこにトラバース元の日付・アイテムインデックス情報から割り出した日付ページを表示しました。
そしてiframe内のドキュメントから抽出したタイトルや本文等のTrackBack情報をJavaScriptで抽出し、フォームに転記しようと先日の書きかけBookmarkletを移植しつつ作業をすすめました。
ところがBookmarkletの時とは違って思うようにHTML構造がトラバースできない…どうやらiframeが絡むとうまくいかない模様。DOMをあきらめIEのDHTMLオブジェクトに手を出したりと粘ったのですがうまくいかず、そふぃあさんのサイトのフラグメント参照解説を見て、IEのDHTMLフレームコレクション参照→DOM参照でたどれるという情報にそんなもんわかるかっと今更ながらIEに悪態をつきつつ、なんとかiframe配下のオブジェクトまで辿りつきました。
その後やり方が悪いのでしょうが、うまくトラバースできず、結局あきらめました。素直にiframe内に表示した記事からコピペしてTrackBackすることに。
いやもうバッドノウハウ全開ですな。
参考にした資料
- ウェブログ入門 - BloggerとMovable Typeではじめる
- JavaScriptデスクトップリファレンス
- JavaScript::Bookmarklet
- トラックバック技術仕様書
- Document Object Model (DOM) Level 2 Core Specification Version 1.0
- Document Object Model (DOM) Level 2 HTML Specification Version 1.0
- Standard ECMA-262 ECMAScript Language Specification 3rd Edition
- HTML and DHTML Reference (MSDN)
- フラグメント参照
バッドノウハウカンファレンスに参加しました。昨年のTech Talks#4にも参加したのですが、大変面白く(会場爆笑が何度も)、技術的にも興味深い話を聞く事ができ、とても有意義でした。
会場で途中からたろさんと合流。
自分でも経験したことのあるバッドノウハウ話に苦笑しつつ、よく手段を目的化する自分に、ちょっとした罪悪感を感じたり…そういうバッドノウハウerを地で行く自分ですが、そこで知り得た情報が後日役立つこともあり、そう捨てたもんでも無いな、と。まぁ後日役立たないことの方が多い気がしますが。
バッドノウハウを思わず(思っても)追求してしまう人を深追い人と呼ぶことを提唱してみよう。5/15 23時現在googleで0件。
どこかで聞いたような気もしますが。
- 深追い禁止リスト
- 傷追い人
TrackBack bookmarkletを作ろうとしました。
bookmarkletどころかJavaScript(ECMAScript)自体ほとんど初めてなので、しょっぱなから苦労しつつ、DOMでなんとかHTMLの要素を抜き出せるようになってきたところ…bookmarkletの長さ制限にぶつかってしまいました。
切り詰めても収まりそうになく、あきらめてCGIにリダイレクトして、HTML内のJavaScriptから別フレームに読み込んだトラックバック対象エントリを参照するように方針転換することにしました。
ぐぐっていると、IE6ではbookmarkletの最大長は508bytesという情報を見たのですが、自分の環境では255bytesで切られます。セキュリティパッチとかで最近は短くなったんでしょうか?
といっても小川一水さんの導きの星シリーズに出てくる事象ではなくて、仕事でのできごと。
10GBytesのデータを提供するので、とあるシステムの動作を検証してくれという依頼…災難です。
先日、川崎アゼリアで物産展が催されていて、出身地の北海道の店をのぞいたら懐かしいものが売っていたので、いくつか購入してしまいました。
そのうち一つ「みそぱん」

味噌味のパン以外の何者でも無いのですが、懐かしい味。もそもそしているので、口の中にひっついて食後が大変、というのがちょっとつらいところ。
いいかげん「びるず雑記 by chalow」じゃなくて「びるず雑記 for chalow」のようになってきましたが、手段が目的と化するのはいつものことなので、気にしないことにします。
とりあえず単一行モード[2004-05-10-2]のマークアップは'__'にしなくても' '(いわゆる全角空白)で済むので、変更。
コメントやトラックバックをアイテム毎にしたりいじっているうちにデフォルト状態ではHTMLコメント<!-- -->の形でauthor等が漏洩(おおげさ)してしまうようなのでcl.confからそれらを外す。
トラックバックがひとつも無い状態では「トラックバック()」となんかマヌーな感じなので0を表示するスクリプトを強制出力。
スクリプトが既に存在する場合には上書きしないようにしています。
運用環境と生成環境を別にしている場合は、ファイル転送時に日付比較をするなど注意する必要があります。もっとも上書きしてしまってもトラックバックエントリ(<TrackBackID>.storというファイル)は残っているので手間はかかりますが復元可能です。
自分のカスタマイズではアイテム毎にトラックバックを置いたのでアイテム毎にスクリプトが実行され、表示がもっさりしてしまいました。
トラックバック(0)強制出力
### HTML 生成のためのループ
foreach my $ymd (sort keys %all_entries) {
:
my $this_item = $t->output();
## 2004-05-11 bills : 0トラックバック生成
## begin
make_trackback($item_id);
## end
:
## 2004-05-11 bills : 0トラックバック生成
## begin
sub make_trackback {
my ($tb_id) = @_;
my $target_path = "$outputdir/$trackback_generate_path/$tb_id.js";
unless (-e $target_path) {
my $content = qq{document.write('0');\n};
output_to_file($target_path, \$content);
}
}
## end
(別途$trackback_generate_pathをコンフィグ対象変数として定義。値は'tb/tb_data'など)
0.24にカスタマイズした見出しモード[2004-05-08-3]を移行。
ざっとソース眺めたときに該当部分があまり変わって無いように見えたので、「へへーん」と思ったら...ちょっと悩みました(^^;
表層のアドホックな対処なので、もっとデータソースに近い部分に手を入れればいいような、またはHTML::Templateの方で対処したほうがいいような気がしますが、深追いは次の機会にとっておくことに。
またカテゴリ毎の出力(write_category_page())への対応が抜けているため制御文字列\[\[\[heading\]\]\]が無様に残ってしまいます。
制御構造の記法やコメント記法は試行錯誤中のため先日と変化しています。
sub write_day_page {
:
$t->param(next => $day_after);
## 2004-05-10 bills : 見出しモード
## begin
## $t->param(content => $month_page{$ym}{$ymd}{str});
$t->param(content => remove_heading($month_page{$ym}{$ymd}{str}));
## end
my $ostr = $t->output();
:
sub write_month_page {
:
## 2004-05-10 bills : 見出しモード
## begin
## my @contlist = map } @cont;
my @contlist = map @cont;
## end
### ページの組み上げ
:
sub write_index_page {
:
# $top_n_str .= $month_page{$ym}{$ymd}{str};
## 2004-05-10 bills : 見出しモード
## begin
## push @top_n_entries, {content => $month_page{$ym}{$ymd}{str}};
push @top_n_entries, {content => make_heading($month_page{$ym}{$ymd}{str}, $ymd)};
## end
}
my ($ymd, $ym, $d) = ($recent[0] =~ /^((\d{4}-\d\d)-(\d\d))$/);
# 日付リンク一覧
:
## 2004-05-10 bills : 見出しモード
## begin
sub make_heading {
my ($str, $ymd) = @_;
if ($heading_mode) {
my $url = datestr2url($ymd);
$str =~ s!\[\[\[heading\]\]\].+?</p>![<a href="${url}">全部読む</a>]</p>!gsm;
}
return $str;
}
sub remove_heading {
my ($str) = @_;
$str =~ s!\[\[\[heading\]\]\]!!gsm if ($heading_mode);
return $str
}
## end
0.24にカスタマイズした単一行モード[2004-05-08-2]を移行。
ついでに単一行クラスタ間に空行が無くてもいいように修正。
プラグイン化はちょっとプラグインの記法と異なるので保留。
制御構造の記法やコメント記法は試行錯誤中のため先日と変化しています。
sub okikae {
:
## 2004-05-10 bills : 単一行モード
## begin
s!^ (.+?)(^$|\z|(?=\s* ))!make_single_line($1)!gsme if ($single_line_mode);
## end
s!$!<br>!gsm;
s!<br>$!!;
#print "2[$_]\n";
:
}
## 2004-05-10 bills : 単一行モード
## begin
sub make_single_line {
my ($line) = @_;
$line =~ s!\n!!gsm;
return " ${line}";
}
## end
(別途$single_line_modeをコンフィグ対象変数として定義)
TrackBack pingツール作るときにDocumentオブジェクトからHTML構造をたどる予定です。で、1.0rc1のリリース情報を見ているうちにいやな予感がしてきたので、傷が浅いうちに(^^;1.0rc1に移行しました。
ついでにトップページもリニューアル。といっても知り合いにアナウンスもしていない準備期間なので、間違って来ない限り独り言モードなんですが。
今日は側転をしたら先日いためてやっと直ってきた右大腿側部(この呼称で合ってるか不明)をいためてしまいました。前屈・開脚も全然だし、地味に運動不足解消しつつ改善したい。
利用し始めた途端、chalow 1.0rc1がリリース(^^;。追っかける前にやることが…今日は時間切れ。
- Trackbackがちゃんと設置されていないようなので、設定し直す。
- IEできればSleipnirからのTrackBack pingツール作成または入手。
- [2004-05-08-2]のプラグイン化
- リリース1.0の追っかけ
- [2004-05-08-3]のアイテムジャンプ対応
うっ、いじってる内に日をまたいでしまった…それはともかく。
↓のエントリが長くなってしまったのでMovableTypeなどで見られるようなエントリの途中まで表示して残りはリンク先、という「見出しモード」を仕込んでみました。
sub write_day_page {
:
$content =~ s|<h2>.+?</h2>||sm;
## 2004-05-08 bills : 見出し
$content = remove_heading($content);
:
sub write_month_page {
:
my $content = join('', map {$month_page{$ym}{$_}} @cont);
## 2004-05-08 bills : 見出し
$content = remove_heading($content);
:
sub write_index_page {
:
## 2004-05-08 bills : 見出し化
## $top_n_str .= $month_page{$ym}{$ymd};
$top_n_str .= make_heading($month_page{$ym}{$ymd}, $ymd);
:
## 2004-05-08 bills : 見出し
sub make_heading {
my ($str, $ymd) = @_;
return $str if ($heading_mode == 0);
my $url = datestr2url($ymd);
$str =~ s!\[\[\[heading\]\]\].+?</p>![<a href="${url}">全部読む</a>]</p>!gsm;
return $str;
}
:
## 2004-05-08 bills : 見出し
sub remove_heading {
my ($str) = @_;
return $str if ($heading_mode == 0);
$str =~ s!\[\[\[heading\]\]\]!!gsm;
return $str
}
(別途$heading_modeをコンフィグ対象変数として定義)
chalow ではChangeLog形式テキストからエントリを生成しますが、テキストの改行毎に<br>タグを生成します。
エディタで論理改行(折り返し)を使わない派の自分は、適当な文節や桁数で改行を入れてテキストを作成するのですが、その改行でレイアウトに影響が出てしまうのが個人的にあまりうれしくないと感じました。
そこでまず、ちょっと chalow をいじって、改行のみの空行の時だけ<br>タグを付けるようにしました。YukiWiki等のように、空行があらわれるまではひとつの行として見た目の改行をせず、同一行に連結するものです。
#print "1[$_]\n";
## 2004-05-08 bills : 空行のみ<br>を付ける
## s!$!<br>!gsm;
## s!<br>$!!;
s!^$!<br>!gsm;
#print "2[$_]\n";
#print "1[$_]\n";
## 2004-05-08 bills : 単一行モード
if ($single_line_mode != 0) {
s!^ (.+?)(^$|\z)!make_single_line($1)!gsme;
}
s!$!<br>!gsm;
s!<br>$!!;
#print "2[$_]\n";
(略)
## 2004-05-08 bills : 単一行
sub make_single_line {
my ($line) = @_;
$line =~ s!\n!!gsm;
return " ${line}\n";
}
(別途$single_line_modeをコンフィグ対象変数として定義)
最終更新時間: 2006-06-05 00:56
