(11/03/01~)

11/03/01

What is your primary development tool version? (DA-SOFT Technologies)
 𠮷日本でアンケートをとったら Delphi 6 の比率が高く、Delphi 7 の比率は低いと思う。何故なら、日本では Delphi 6 Personal が無償公開されたが、海外では "Delphi 7 Personal が無償公開されていたから" だ。ちなみに、日本での Delphi 7 Personal は ¥10,000 円 だった。


11/03/02

エンバカデロ・デベロッパーキャンプツアー・イン名古屋 2011
 本日午後から開催。

 無事終了した模様。中継があればなおよかったのだが...それは第 19 回デブキャンまでお預けか。


11/03/03

ひな祭り
 ウチは女の子いませんけどね...あ、奥様が。いあいあ "子" じゃないな、"子" じゃ (w

エンバカデロ・デベロッパーキャンプツアー・イン大阪 2011
 本日午後から開催。

 無事終了した模様。中継があればなおよかったのだが...それは第 19 回デブキャンまでお預けか。

Delphi XE の TTimeZone クラス
 XE には DateUtils.TTimeZone クラスが新設されており、これを用いるとタイムゾーンを考慮した日付の計算が楽になる。

 シチュエーションとしては...そうだな、例えば DOM 操作を行う際に JavaScript の getTime() 相当のものが必要となったとする。さぁ、どうやって実装しようか?ちなみにgetTime() は "1970/01/01 00:00:00:000 からのミリ秒数を返す関数" だ。

 DateUtils.DateTimeToUnix() を使う?惜しい。DateTimeToUnix() は "1970/01/01 00:00:00 からの秒数を返す関数" だ。確かにこれを 1,000 倍すればいいのだろうが、当然下 3 桁が 0 になってしまい getTime() を正確に再現したものとは言えない...そもそもタイムゾーンが考慮されないしね。

 そこで DateUtils.TTimeZone クラスだ。

uses
  ..., DateUtils;

function JS_GetTime(ADate: TDateTime): Int64;
begin
  result := MilliSecondsBetween(TTimeZone.Local.ToLocalTime(EncodeDate(197011)), ADate);
end;

 XE ならこのようにして JavaScript の getTime() 相当の関数が作れる。ヘルプにもあるように、TTimeZone クラスはインスタンス化せずに "TTimeZone.Local.ほにゃらら()" のようにして使う。

 当然の事だが、この関数はタイムゾーンを考慮している。これを日本国内で実行すると、"1970/01/01 09:00 (JST)" からの経過ミリ秒を返す (つまり UTC での経過ミリ秒)。日付時刻型に "9 時間足す" という処理は難しくないが、その "9 時間の差を求める" のは XE より以前の Delphi では少し面倒だ。

 タイムゾーンを考慮しないのであれば、

uses
  ..., Dateutils;

function Local_GetTime(ADate: TDateTime): Int64;
begin
  result := MilliSecondsBetween(EncodeDate(197011), ADate);
end;

 単純にこれでいいのだが、Web 関係だと大抵タイムゾーンが絡んでくるので注意が必要だ。DateUtils 名前空間には TTimeZone クラス以外にも便利な関数が揃っているので、XE ユーザ以外の方も一度 ヘルプを精査してみる事をオススメする

何気に見つけた Delphi のサイト (コンテンツ)
 株式会社 基創さんの 隠し(?) Delphi ページ。RaveReports の記事等は秀逸だと思うのでご一読を。


11/03/04

6 日~9 日はサイトの更新がないかもしれません (事前通告)
 お江戸に参りますので。

Windows 7 を持っているのなら
 とりあえず "Windows キー + " を押してみましょう。デスクトップ全体が拡大します。"Windows キー + " で縮小、"Windows キー + Esc" で終了です。これは Windows 7 の拡大鏡の新しい機能です。Windows 7 以前の OS で同等の事をやりたいのであれば、"梨ズーム (塊SOUL)" を使うといいでしょう。

Indy を利用してファイルの MD5 チェックサムを得る
 他人のふんどしで相撲シリーズ。"MD5 Hashing in Delphi (Delphi Programming)"。ナルホド、こうやって使うのか。


11/03/05

Hotfixes for Delphi XE, C++Builder XE and RAD Studio XE
 Starter Edition には不要。

 Professional Edition の場合、"DBX で Interbase を使っている場合" のみ

 が必要。

 Enterprise Edition 以上で "DBX で Interbase / Firebird を使っている場合" には

 が必要。

 加えて EnterpriseProfessional Edition 以上で "TClientDataSet や TProvider を使っている場合" には

 が必要。

 えらく局所的な Hotfix だなぁ...コレをこのタイミングで出す必要があるのかなぁ?

RAD Studio XE ジャンプ・アップキャンペーン
 Delphi / C++Builder 1~BDS2006 ユーザ限定のアップグレード版のキャンペーンです (Architect Edition は対象外)。

 家に届いていた "物理的な DM" を読んで初めて気付いた。2011/02/15 からやってたのね。2011/03/31 までのキャンペーンです。2011/05/31 迄に延長されました。

RAD Studio XE Enterprise 版アップグレードキャンペーン
 Rad Studio / Delphi / C++Builder 2007~2010 Professional / Enterprise 及び XE Professional ユーザ限定、Enterprise Edition へのアップグレードキャンペーンです。

 通常、エディションというのは "指名買い" なため、当サイトではこのキャンペーンをあえて書いていませんでした。しかし、ジャンプ・アップキャンペーンに合わせてかどうか不明ですが、その対象が拡大 (XE Professional だけではなく 2007~2010 Professional / Enterprise にも拡大) されているようです。

 いずれも、Enterprise 版をお得に購入するためのキャンペーンです。こちらも 2011/03/31 までのキャンペーンです。こちらも 2011/05/31 迄に延長されました。

どれを買えばいいんじゃい!!
 キャンペーンだらけで、どう買えばお得なのかよくわからないのでまとめてみます。

 [Delphi (価格は ESD 版)]

Delphi
XE Starter
Delphi
XE Professional
Delphi
XE Enterprise
Delphi
XE Architect
他の開発環境から アップグレード版
(¥14,000)
通常版
(¥94,000)
通常版
(¥236,000)
通常版
(¥416,000)
1~2006 ジャンプアップキャンペーン
(¥68,000)
ジャンプアップキャンペーン
(¥178,000)
2007~2010 Professional アップグレード版
(¥52,000)
Enterprise 特別バージョンアップ版
(¥116,000)
アップグレード版
(¥276,000)
2007~2010 Enterprise
2007~2010 Architect アップグレード版
(¥156,000)
XE Professional - Enterprise 特別バージョンアップ版
(¥76,000)
-

 [C++Builder (価格は ESD 版)]

C++Builder
XE Starter
C++Builder
XE Professional
C++Builder
XE Enterprise
C++Builder
XE Architect
他の開発環境から アップグレード版
(¥14,000)
通常版
(¥94,000)
通常版
(¥236,000)
通常版
(¥416,000)
1~2006 ジャンプアップキャンペーン
(¥68,000)
ジャンプアップキャンペーン
(¥178,000)
2007~2010 Professional アップグレード版
(¥52,000)
Enterprise 特別バージョンアップ版
(¥116,000)
アップグレード版
(¥276,000)
2007~2010 Enterprise
2007~2010 Architect アップグレード版
(¥156,000)
XE Professional - Enterprise 特別バージョンアップ版
(¥76,000)
-

 [Rad Studio (価格は ESD 版)]

Rad Studio
XE Professional
Rad Studio
XE Enterprise
Rad Studio
XE Architect
他の開発環境から 通常版
(¥164,000)
通常版
(¥316,000)
通常版
(¥496,000)
BDS / Delphi / C++Builder
1~2006
ジャンプアップキャンペーン
(¥120,000)
ジャンプアップキャンペーン
(¥236,000)
Rad Studio / Delphi / C++Builder
2007~2010 Professional
アップグレード版
(¥84,000)
Enterprise 特別バージョンアップ版
(¥176,000)
アップグレード版
(¥336,000)
Rad Studio / Delphi / C++Builder
2007~2010 Enterprise
Rad Studio / Delphi / C++Builder
2007~2010 Architect
アップグレード版
(¥196,000)
Delphi / C++Builder
XE Professional
- Enterprise 特別バージョンアップ版
(¥136,000)
-
Rad Studio
XE Professional
Enterprise 特別バージョンアップ版
(¥96,000)

 2011/03/31 まで2011/05/31 まではこのようになります...もちろん、"これ以上キャンペーンが増えなければ"、ですが。基本的にデグレードしようとすると割高になります。それにしても、RAD Studio XE ジャンプ・アップキャンペーンRAD Studio XE Enterprise 版アップグレードキャンペーン (拡大版) のお知らせってニュースレターで流れたっけ?まだだよね?

 このご時世ですが、潤沢な予算を年度末で消化しなければならない事に頭を痛めている "うらやまけしからん" 会社の方は、この機会を是非ご利用下さい (w

"うらやまけしからん" 会社の方へ
 DEKO ちんは "ONKYO TW317A5" が個人的に欲しいそうです...ONKYO さんの評価機貸し出しは順番待ち (この機種だと4 月以降は確定) なんですよぉ (^^;A


11/03/07

お江戸なう。
 昨日から東京に居ます...今日は予備日で暇なのですが、あいにく東京は雪が降っています。寒いのキライなので引きこもっておこうかな。

BDE の "Insufficient disk space" エラーを回避するには?
 "53.今更ながら BDE (Borland Database Engine)" にはテンポラリファイルを使って回避する方法がありますが、もっと簡単な方法がありました。

  1. "Patch for BDE 'Insufficient disk space' problem. (4Gb multiples" を DL
  2. アーカイブを解凍したら、その中にある 2 つのファイルをプロジェクトフォルダにコピーする
  3. プロジェクトファイルの uses に "FixBDE4GbBug" を追加する
  4. アプリケーションを配布する際には "FIX4GBug.dll" も配布する。
 テンポラリファイルを作る方法でもいいのだけれど、タイミングによってはやっぱりエラーになる事がある (システムドライブにテンポラリフォルダがあったりすると特に) ので、GetDiskFreeSpaceA() を別関数にリダイレクトするこのやり方の方が間違いないと思う。東京出張から帰ったら Tips の方へも追記しとこう。


11/03/09

熊本なう。
 着いたー!"53.今更ながら BDE (Borland Database Engine)" は更新しておきました。

QC 2 つ。
 とりあえず 2 つ追加しておいた。Duplicate かもしれんけど。

 山本隆さんがつぶやいていた件 に関連するものと思われる。TLabel とかの Transparent プロパティは OS や Delphi のバージョンにも依存するのかもしれないが、なんとテーマの有無にも依存する。"Transparent := True" のラベルを貼ったプロジェクトを保存し、Windows Classic にしてプロジェクトを読み込むと "Transparent := False" になってしまう。実行時ではなく設計時、しかも DFM ファイルが (オブジェクトインスペクタで Transparent を確認の事)。

 もう一つ。

 アプリケーションを起動したまま、テーマを Windows Classic に変更すると TBitBtn に貼られていた画像が消える。Refresh / Repaint / Update では表示できない。

 テーマが変更された事を知るには WM_THEMECHANGED を処理するか、Themes.ThemeServices.OnThemeChange を処理すればいいのだが、テーマが変更されたのではなく "テーマの有効/無効が変化した場合" には描画があちこちでおかしくなる気がする (Refresh / Repaint / Update を使ったとしても)。試そうとすると IDE のツールバーがおかしくなる事があるので注意。

 "描画がおかしくなる" というのは判っていても、再現方法がハッキリしないものが多く、QC に入れられたのは上記 2 件だけ。多分、Delphi のテーママネージャの根本的な所に問題があり、ここが直ればすべての問題が解決するような気がしないでもない。Duplicate の裁定が行われなかったら Vote をよろしくお願い致します m(_ _)m

仕事早っ!
 何気に QC 確認してみたら、もう高橋さんのコメントが付いていた。相変わらず仕事早いっスねー。てゆーか、時間外?


11/03/10

QC#92147
 んー。実行時の話じゃなく、設計時の表示の話でもないんだよなぁ...。

  1. テーマを有効にしておく
  2. Delphi で TLabel を貼ったプロジェクトを開く。
  3. こんな感じになるハズ。

      
  4. Delphi を終了。
  5. テーマを "Windows クラシック" に変更。
  6. Delphi で TLabel を貼ったプロジェクトを開く。
  7. 変えていないハズの Transparent の値が変更されている。

      
 つまり、ちゃんと設計したハズのフォームを "Windows クラシック" な環境で開いて保存 (EXE 生成を伴って) してしまうとワケワカメな事になりますよ、と。

 端的に言えば、「テーマ有効/無効で Transparent のデフォルト値が違うのはマズいかも」って事です。テーマ有効で "Transparent = True" だと、DFM には Transparent が書き込まれません (デフォルト値なので)。"Windows クラシック" 環境だと "Transparent のデフォルトは False" なので、上記のような現象が起きます (多分)。

 このデフォルトの問題に起因するのかもしれませんが、実行時でもアプリケーション起動中にテーマが 有効->無効 に変化すると Transparent を指定したハズのラベルが透過しない事があります (実はこっちを調べていた)。Transparent の指定はコード中で書いた方が無難かもしれませんね。

 高橋さんのコメント中にある QC#68680 は Server 2003 の話で、こっちは単純に "Server 2003 はデフォルトでテーマが無効" なために起こる現象だと思います。EXE のフォームリソースに Transparent が含まれないので同様な現象になってしまうという事でしょう。どちらも、"テーマの有無でデフォルト値の解釈が違う" という点では同じなのかもしれませんが。

 追記: ふーさんの援護射撃コメントによって、この QC は Open になりました。多謝 m(_ _)m

アプリケーション実行中にテーマが変更された時の挙動
 アプリケーション実行中にテーマが変更されて描画がおかしくなるのは仕方がないとしよう...Firefox とかでもおかしくなるのだし、WM_THEMECHANGED を捕捉して再描画を促すコードを書くのはそんなに手間が掛るものでもない (オーナードローやカスタム VCL の関係があるので、自動ですべてを再描画するのはマズイと思うけれど)。

 ...ただ、再描画を行っても正しく表示できないとなるとちょっと問題かもしれない。こうなるとアプリケーションの再起動を行うしかないのだが、この時既に何らかの入力や変更があって、それを "画面上で確認できない状況" でアプリケーションの再起動を行わせるのは危険すぎるからだ。正直、"アプリケーション起動中にテーマ変更すんなよ" と言いたくはなるが、Windows はそれを禁止していないし、ユーザからしてみれば "出来て当たり前" なのだろうからなぁ...。


11/03/11

Earthquake
 正直、このような大災害だと何を言っても白々しい。とにかく災害復旧が全力で行われる事を切に願う。


11/03/12

九州新幹線全線開通
 地震のために昨日予定されていたセレモニーはすべて中止されたけど、営業運転は今日から開始...とは言え、本日は 津波の可能性があるので運休 している。

危機管理能力の欠如
 ゴタクはいいから "避難勧告 or 対策方法" を先に言え。放射性物質への対処はスピードが命なんだよ、クソ枝野!

 ヨード剤の用意があるんなら危険性のある地域にさっさと配って服用させろ。時間が経つにつれ見込める効果が薄くなるんだから。事前服用の方が効果が高いのだが、政府の確認が終わる頃にヨード剤配っても配布の時間を考えるとこれでは遅すぎる (緊急時の場合イソジン持ってればそれを飲んだ方がいい。飲まないよりは遥かにマシ)。爆発の確認から枝野の会見まで既に 3 時間も経っているのだから。

 現在判ってる正しい情報を淡々と流さないから無駄に不安を煽る&対処方法がないだろうが。爆発前の 1015μSv/h は 1.015mSv/h だから確かに大した事はないかもしれんが (継続的だとよろしくないのは当然として)、爆発後の放射線量は?つーか、報道の記者もそれ位は訊けよ。

危機管理能力の欠如 (その2)
 結局、口蹄疫から何も学んでいない。

 メンツとかパフォーマンスとか計算してる場合じゃないっつーのよ。自己保身の会見は時間の無駄でしかない...詳細は枝野が話すと言うなら、先に枝野の会見をやれってんだ馬鹿野郎!


11/03/13

野党を叩くのは筋違い
 野党まで情報が下りてこないので協力しようにも協力できないのが実態。口蹄疫の時も野党が "初期段階での全頭殺処分" を打診したのにそれに応じず被害が拡大してしまった事を大手メディアは報じたかい?

 江藤議員の涙の叫びを聞け。"メンツとかパフォーマンスとか計算してる" と言っているのは、この前例を知っているから。あの時の宮崎は物乞いだの強請 (ゆすり) だの散々に言われたよなぁ...(´ー`)y-~~

 「与野党力を合わせて」とか言っておきながら野党に情報を流さないのだから...それに対して文句を言うのは政局しか考えてないからか?違うだろ。政局しか考えてないのはむしろ与党である民主党の方なんだよ。

 口蹄疫の協議の時、意見交換の場で自民党の地元議員が発言しようとしたら当時の農水大臣が「自民党議員の同席は認めたが、発言は許してない!」と、とんでもない事を言いやがった事は忘れてないからな。江藤議員の訴えを「お涙頂戴」だと野次った民主党議員の事も忘れてないぞ。

 "地震発生から72時間(3日間)は現地入りしない" という申し合わせを無視して福島の原子力発電所を視察するようなバカを非難しても "政局しか考えてない" と言われてしまうのか?マスコミの自民党嫌いは前々からだけど、これじゃ野党の議員は報われないよ。報道はフェアにやれ、フェアに。

計画停電スケジュール
 5 グループに分けられ、輪番で計画停電が行われる。計画停電自体は少なくとも 4 月いっぱい行われる予定。

 03/14 日限定のスケジュールかもしれないが "第 1、第 2 グループは 1 日 2 回の停電がある"加えて、"荒川区を除く東京 23 区の計画停電はない"

計画停電スケジュールグループ分け (PDF)
 グループ分けの詳細は東京電力のサイトにあるが、アクセス殺到で確認が難しい事があるため、ミラーを置いておく。

 計画停電情報がアップデートされている事に注意。例えば、東京都の最新版 PDF を見ると荒川区以外の 23 区でも計画停電が行われる地域がある (変電所の管轄区域と行政区域が一致しないので) ようだ。何かの役に立てば幸いなので、当然転載は自由。違うグループに複数掲載されている地域にお住まいの場合には、各自治体のサイトを参照する事をオススメする。


11/03/14

計画停電開始
 第 1 グループの計画停電が始まった 本日の午前中の第 1 グループと第 2 グループの一部の計画停電は実施されない事が決定した。ウチの姉が住む地域は第 5 グループだ。どのグループも会社の営業時間内に計画停電がある可能性がある。

 自家発電を持たないスーパーやコンビニの場合、アイスクリームを筆頭に冷食は廃棄となるだろう。夏ではないのでサンドイッチやお弁当の入った冷蔵リーチインケースは動作しなくともそう問題にはならないだろうが、POS レジが動作しないとなると事後の処理が大変だ。

 停電下での寒さ対策は...原始的だが "湯たんぽ" が効果的 (自宅の場合)。毛布/布団と併用してコタツのようにして使うといい。湯たんぽより、豆炭を使った "行火 (あんか)" が温度もコスパも持続性も抜群なのだが、扱いなれてないと一酸化炭素中毒になるので万人にオススメはしない。

行火 (あんか) は安価
 危険性に十分注意できるのなら、行火 (あんか)をオススメできる。

 この 3 点セットで OK。炭おこしはケチらずに買った方がいい。豆炭を入れ、ガスコンロにかけてちょっと放置するだけ簡単に火が付く。行火 (あんか) に使う場合、BBQ 用の着火剤を使って豆炭に火を点ける訳にはいかないのだから、炭おこしなしで豆炭に着火するのは慣れた人でも時間が掛る事を知っておこう (豆炭は新聞紙に包んで燃やした程度では着火しない)。

 豆炭 5 kg あれば、行火 (あんか) で使う分には結構持つハズ (1 回分で少なくとも半日近くは暖かい)。くれぐれも換気には注意する事。電気コタツの中に入れた場合にはコタツにもぐらない事。

 行火 (あんか) 内に中途半端に残った豆炭は水をかけて消火し、日なたで乾燥させておくといい。この消し炭を捨てずに取っておくと、次回の着火がとても楽になる (消し炭は再着火しやすい)。火災防止のため、金属製のバケツもあった方がいいかも。


11/03/15

何かの間違いか?
 福島第1原発周辺で最高400ミリシーベルトの放射線を観測=枝野官房長官...えっと、今回の事故の場合、確か作業員は総量で 100mSv を被曝したら交代 (通常時は 80mSv) するようになっていたと思うが、400mSv/h ?この基準だと、単純計算で 15 分しか作業できないんだけど?

 「撤退などあり得ない。覚悟を決めてほしい。」...おいおい、管直人よ、チェルノブイリで事故後に作業した人間の平均被曝量が 165mSv だって知ってて言ってるんだろうな?

 "安全のはずが命がけ…怒る自衛隊・防衛省"。「我々は放射能の防護はできるが」...って、防衛相の人間も勘違いしてるような?放射能の防護なんてできませんよ?放射線防護服等の装備の事を言ってるのだろうけど、放射線防護服の目的は放射性物質の吸引/付着による内部被曝を防ぐ事であって、外部被曝を完全に防ぐものじゃないんですけど?

 100mSv が原発作業員の安全の目安になっているのなら、1 日で 273.97μSv、1 時間だと 11.41μSv が許容量の上限となる。単純計算なので正確ではない (これは 24h 屋外に居る時の話だし) と思うが、少なくとも放射線量が継続的に 10μSv/h 以下に下がらないと避難指示は解除されないと思う。おっと法定は 50mSv/年 なのか...そうなると 5μSv/h 以下か。

「うがい薬を飲む」は効果なし ネットで広がるデマ
 デマとまでは言えないと思うぞ。このサイトでも「緊急時には」「飲まないよりマシ」と書いたように、そもそも事前にヨード剤が配布されない (現状されていない) のだから、緊急措置としては間違っていない。"デマ" とまで言い切るのであれば、事前にヨード剤を配布するか、配布場所を事前に告知しておくべき。

 但し、このヨード剤を飲まなければならない程の緊急時というのは一説には 50mSv 以上を被曝したもしくは被曝する可能性がある場合の事。政府の広報や東京電力の報告が正確なのだとしたら、現場近くで作業している人以外は飲む必要がない。そもそも、現場で作業する人には事前にヨード剤が配布されているだろうからイソジンなんか必要ないだろうけど。

 「爆発した」だけじゃなくて、モニタリングポストのシーベルト値を迅速かつ正確に公表してくれるのなら、バクチでイソジン飲む必要なんかないんだけどな。爆発後、数時間経って「実は高レベルでした、今からヨード剤配布します」なんて言われても遅すぎるのだから (夜間に爆発したらどうやって周知させるつもり?)。

 むしろ、ここぞとばかりに不安を煽る反原発団体の資料のほうがよっぽどデマと言えるレベル。もっとも、原子力保安院の "大丈夫" も全くアテにはならないけれど。誰も経験した事のない事象に対して "大丈夫" なんて軽々しくと言えるわけがないんだから。正直、推進派も反対派も言ってる事が極端すぎるから話がややこしいのだが。"あさりよしとお氏" 辺りの方がよっぽどバランスの取れた意見ができるんじゃないだろうか?


11/03/16

愚かなる選択 (その1)
 アメリカの冷却材提供を断る -> アメリカのポンプ車の支援を断る -> アメリカに冷却支援を求める...最初から廃炉前提で動いていないからこうなるでしょ?

愚かなる選択 (その2)
 "撤退などあり得ない 覚悟を決めてほしい" -> "安全のはずが命がけ…怒る自衛隊・防衛省" -> "被曝限度、福島第1に限り250ミリシーベルトに上げ 厚労省" -> "保安院職員らも福島原発から退避 (但し 50km 先)"...もう一回書くけど、チェルノブイリの作業員の平均被曝量は 165mSv だったって知ってますよね?

 "人件費が半分で済む" とか変な計算しちゃったんじゃないでしょうね?年間被曝量だからね、この基準は。短期間での 250mSv はちょっと危ないレベルなんじゃないのか?普段は国旗とか国歌をないがしろにするくせに、こんな時だけ「お国のため」と言うのはあまりにも身勝手すぎる。

 政府や原子力安全・保安院の方々はなんでそんなに遠くまで避難しちゃったんでしょう?倍以上の距離離れちゃったら無駄じゃないですか。20km 退避圏のすぐ外の方が情報伝達しやすいんじゃないのでしょうか?合理性に欠ける判断ですねえ。

愚かなる選択 (その3)
 "電機連合、条件次第でスト"...民主党政権でよかったよ。支持母体の一つなんだからスト回避へ説得できるに違いないからね。そうそう...電機連合って電力会社も含まれてたよね、確か。

愚かなる選択 (その4)
 "台湾の救援隊、2日待たされ到着 日本、中国側に配慮か" / "スイスの災害救助犬 日本の厳しい検疫で足止めとの報道"...何故 "災害救助は 72 時間がリミット" と言われているのか全然解ってらっしゃらないようで。事後整理だったら誰でもできるんですよ。

石破茂政務調査会長記者会見~当面の政府に対する申し入れについて
 すごく普通の事を言ってます。ですが...これは問題発言のオンパレードです。何故なら、裏を返せば "この当たり前の事が現状全く行われていない" と言う事になるからです。


11/03/17

とりあえずは OK
 自衛隊がやってくれた!!

  1. ヘリによる海水投下 (多分、管直人の浅知恵) -> NG
  2. 機動隊の高圧放水車による放水 (飛距離は 50~100m 但し仰角はそこまで可変しない) -> NG
  3. 自衛隊の高圧消防車による放水 -> OK
 作業にあたった隊員の被曝量は 1mSv 以下で済んだ...これがなによりの朗報。逆に無駄に待機させられた機動隊員の被曝量が心配だ。

 3号機を優先して放水したのは「上部がフッ飛んでいて注水しやすいから」...確かにそれも一つだろうが、ぶっちゃけ3号機はプルサーマルなので MOX 燃料 (プルトニウムを含む) を使っているのが主な理由でしょ?

 どの炉にも "ホウ酸を突っ込んだ" という報道はないので、現状では臨界の可能性は低いとの認識かな?これで終わった訳じゃないので、小康状態の間に次策を早めに実行した方がいい。それから...多くの人の目に付かないようにしたいのかもしれないが、毎回毎回 "日が落ちてから作業する" のはヤメレ。打てる手が限られてくるのだから。

雑談
 さて、とりあえずは原発も山を越えたので、ここの雑談も通常運転に戻そうと思う。実は、

 等々、"それどころではないために報道されていない話" が山程あるのだが、そのうちに新聞等で報道されるようになるだろう。西日本だって無関係ではないのだ。

 報道も原発をタブー視しなくなったみたいなので、放射線量等も正しく公開されるようになったように思う。バクチでイソジン飲む事態になる事はまずないだろう (イソジンよりも "少し" 安全な "のどぬーるスプレー" というモノがある事に後で気付いたけど)。


11/03/18

ラジヲマン
 あさりよしとお氏の怪作。イロイロと 原子力的にヤバい ネタが多い。描かれたのは結構前なのだが本日発売 (復刊なのか?)。多少ネタバレになるが、とりあえず Wikipedia で内容を確認するといい (掲載日に注目)。

セブンイレブンで SUICA 等が使える...よね?
 本日から使えるようになったハズなのだが...本当?

余談
 熊本県の負債額ってワーストレベルなんです。何故なのかご存知ですか?これって "一企業が起こした事故" も一因なんです。ありていに言えば 水俣病 です。

 資料を見ると未処分者が "何故か増加傾向にある" のが判りますよね?水俣病って体内水銀レベルだけでは判断できないので、チェックリスト (認定基準) を設け それにどれだけ該当するか で水俣病かどうかを判定しています...なので、このような現象が起きます。

 ぶっちゃけ "成りすましな方""本物の患者さんをダシにする方" がいらっしゃるので、「水俣病の早期解決を」と言われても心からは応援できないのですがね。まぁ、"本当の弱者を食い物にする輩" が居るのは 水俣病 に限った話じゃありませんけどね。

 ま、それはともかくとして、何を言わんとしているかはご理解いただけると思います。急性放射線病とか甲状腺ガンとかは細胞を検査すれば原発事故が原因かどうか判ると思います。しかしながら、それ以外の場合には、放射線は自然界にも普通に存在するため、原発事故で出た放射性物質が出した放射線による癌化なのかどうかを "判断できる訳がありませんよね?"

 それっぽい症状だったらすべて "原発事故が原因" だとみなすしかないんですよ。ですが、その認定基準において不公平感を生む可能性は当然あります。だからこそ水俣病の裁判は未だに続いているのですし。

 また、水俣病 では熊本県や国も補償しています...つまりは税金ですね。さて、今回の原発事故の件では誰が補償し、誰に借金が回ってくるのでしょうか?「全部東電に払わせろ!」って、それは無理です...東電潰れちゃいますから。潰しちゃったら補償もさせられないでしょ?だからチッソは潰れていませんよね?


11/03/19

東京<->ニューヨーク間で 200μSv
 詭弁の典型。片道何時間だと思ってるの?13時間だぞ?15.38μSv/h だぞ?レントゲンとかもそう。あれは全身じゃないし、場合によっては鉛のエプロンするでしょ?Sv/年 と Sv/h と Sv、内部被曝と外部被曝をごっちゃにするのはいい加減にヤメレ。飲んでも排出されるから "それなりに" 大丈夫なものと、放射性ヨウ素のように体内に蓄積されるものもちゃんと分けて考えろ。

Delphi XE Help Update 2 & HotFix 2
 ヘルプアップデート2とバックグラウンドコンパイルの問題を解決する Hotfix 2 です。

 ヘルプアップデートのリリースノートはこちら。今回のヘルプアップデートは既存のヘルプをアンインストールしてからインストールする必要があります。ご注意ください。


11/03/21

科学的な知識
 科学的な知識を持っていれば、身近なもので面白い事ができます。例えばコーラにメントスを入れるとコーラが猛烈な勢いで吹き上がる事はご存じでしょう。他にも炭酸系飲料で面白い事ができます。

 釣りにはケミカルライトを使う事があります。コンサート等で使われるサイリウムもケミカルライトですね。以下の動画はマウンテンデューを使ったケミカルライトです。

 作り方です。

  1. 500ml のマウンテンデューを 1/4 程度残します
  2. ベーキングパウダー (重曹) を少量加えます
  3. 過酸化水素水 (オキシドール) をキャップ三杯加えます
  4. よく振ります
 とってもよく光ります。このように、科学的な知識をちゃんと持っていると面白い事ができます。

 

 

 

 

 

 

 

 

 

 

 ...さて、これで納得しちゃったヒトはアウトです。情報を鵜呑みにしちゃいましたね?この動画は実はフェイクなのです。

 ケミカルライトの混合溶液の片割れは確かに過酸化水素水なのですが、もう一方はシュウ酸ジフェニルです。シュウ酸ジフェニルは化合物を混ぜ合わせたりするだけ簡単に作れるものではありませんし、重曹にもマウンテンデューにもシュウ酸ジフェニルどころかシュウ酸すら含まれていません。化学発光を起こす要因の片方がないのですから光る訳がありません (疑り深い方はご自分で追試されて下さい)。もっともらしい事を並べられるとそれで納得しちゃうヒトが多いですが、"情報はきちんと精査しなければならない" という好例だと思います。

 「釣り動画で騙すなよー」と文句を言われましても、私は最初から "釣りにはケミカルライトを使う事があります" と書いているじゃないですか (w

マスターとの話の続き
 あまりマスターを引っ張りまわすのも恐縮なので、自習するとしよう (w

 半減期の話をしたけれど、ウラン238 をキッチリ45億個とか90億個集めるのは至難の業なので、少し現実的な方法を。要はウラン238を 238g 集めれば理論的には半減期を計測できる。238g のウラン238の原子数はアボガドロ定数である "6.022...×1023個" であるから、「ピッ」となった数と時間の間隔を計測すれば半減期が判明する。

 ウルサイなぁ...じゃ、ウランから遠心分離でウラン235を抽出して、測定にウラン235を使おう。さらに誤差が少なくなるように 235g の 200倍の 47kg を用意すれば完璧だ...いかん、これではマスターしか笑わない (w


11/03/22

今更どうでもいいけど
 あれから 1 年経っちゃったねぇ...(´ー`)y-~~

今更どうでもいいけど (その2)
 日本以外で絶賛公開中"Internet Explorer 9 正式版" は何時になったら公開されるのだろうか?

今更どうでもいいけど (その3)
 米国で絶賛発売中"iPad2" もか。


11/03/23

パニック買い
 "茨城県産のホウレンソウ" に対して「風評被害が心配だ」と言っておいて、131I が 210Bq/kg 程度でミネラルウォーターをパニック買いとはこれいかに。

 WHO の指針とかはともかく、パニクるのは "放射線のはなし (財団法人 環境科学技術研究所)" の内容を全部理解してからでも遅くないと思う。時間が許せば トップページ から辿れる "放射線の知識" にあるすべてのコンテンツを眺めるのもいいだろう。

 これは事実で嘘は言っていない。しかし、話を混ぜてはいけない。上の例で行くと 「だから~に比べて安全/危険」とか言ったら詭弁でしかない。報道 (特に民放) では "安全性 / 危険性" それぞれに対し、何の根拠にもなってない値や例え話を持ち出す事があるので、「物は言いようだねぇ...(´ー`)y-~~」 的な話に惑わされないように。

 何度も言うけど 情報は精査する ように。

ここで例題
 例えば...

 この食品がスーパーに売ってあったとしたらあなたは買いますか?食べますか?「怖くて食べるどころか買う訳ない」...ですよね。

 なーんてミスリードされると昆布が食べられなくなっちゃいます。うどんも敬遠しちゃうかもです。ちなみにバナナの放射線というのも、この 40K です。

 だからといって 131I (ヨウ素131) 2,000 Bq/Kg というのと 40K (カリウム40) 2,000 Bq/Kg を同一にみなしていいのかといえばそうではありません。前者は崩壊時にβ線を出す (どれだけの割合かは不明だけど、崩壊後の 131mXe はγ線を出す) のに対し、後者はβ線とγ線を出します (大半がβ-崩壊だが、一部は電子捕獲によりγ線に近いものを出す) し、ベクレルは 1 秒間に出る放射線の数であり、放射線の強さではないからです。直接比較できるものではないでしょう?


11/03/24

東大病院放射線治療チーム
 専門家ですらコレかい。医学は学んでも、関連する化学や物理学は学んでないらしい。ヨウ素の沸点は 184.25℃。水の沸点は何℃だっけ?やるのなら、そこから蒸留水を作ればいいのに...まぁ、濃縮されたヨウ素を下水に捨てるのはいかがなものかとは思うけどね。

 一応、家庭用蒸留水器は売ってあるけれど、電気が使える事が条件だし、そもそも "効果の程は誰も確かめてない" と思うのでオススメはしない。あ、ガスコンロ用もあった。オススメしないのは変わらないけど。

 単純に汲み置きした水の上だけ使えばいいんじゃね?と思わなくもない。バケツをグルグル回して遠心分離するとか (w

第19回デベロッパーキャンプ開催 (ちょっと縮小)
 バーチャルもあるので、ある意味嬉しかったりする。日程は変わらず今月の 30 日。今度こそ音声が聞こえにくい問題を解決せねば...。


11/03/25

九州も輪番停電?
 "九電、玄海原発2、3号機の再開延期 夏に停電の可能性"...要は現在定期点検中の 3 号機と 4 号機の運転再開を延期するとの事。ここの 3 号機もプルサーマル (国内初のプルサーマル) なので、ドサクサで普通の低濃縮ウラン燃料に変えるつもりじゃないのかな?と思う。5 月には鹿児島の川内 (せんだい) 原発 1 号機がメンテに入るので電力不足になるらしい。

 大分と熊本を筆頭に、九州には巨大な自然の熱源があるんだから、そっちを活用しろよと思わなくもない。燃料要らないし、最初からお湯湧いてるし (w


11/03/26

Firefox 4 正式版
 導入。但し Portable Edition。デスクトップでも Portable Edition にしておくと、出張や OS 入れ替えの際にとても楽なのだ。

タバコ出荷一時停止 (JT)
 ヘビースモーカーの人はご注意。3/30~4/10 まで出荷されない...つまり、入荷が 4/11 とは限らない。4/11 以降からは銘柄が絞られる (25 銘柄) ので、マイナー系のタバコを吸っているヒトは特にご注意を。


11/03/27

RAD Studio XE Hotfix for RAID 280864 (QC 88928)
 "えらく局所的" と揶揄した HotFix だったけれど、エンバカさん情報によると "RAD Studio XE Hotfix for QC 88928は、Pro版にも適用可能です" だそうです。

RAD Studio XE ジャンプ・アップキャンペーン と RAD Studio XE Enterprise 版アップグレードキャンペーン は今月末まで
 よもやお忘れではないでしょうね?

 上記 2 つのキャンペーンは今月末までです。特に Delphi / C++Builder 1~BDS2006 ユーザにはお得なキャンペーンですので、"もうお忘れなきよう"。今年発売になるであろう "Pulsar (Delphi x64?)" は Delphi 2007 以降を持っていないとアップグレード価格では買えないハズです。

 両キャンペーンでの賢い買い方はこちらにあります。後になって「旧版ユーザの切り捨てだー」 等と騒がないように。何度も告知はしましたからねー。

"第19回 エンバカデロ・デベロッパーキャンプ" バーチャル参加申し込み方法と事前準備
 申込みフォームはこちら。具体的な参加の流れは以下のようになります。

  1. 申込みフォーム で参加申し込みをする
  2. 確認メールが送られてくるので、リンク先にアクセスする。
  3. リンク先で First Name / Last Name / E-mail Address を登録する。
  4. 確認メールが送られてくるので、当日にリンク先にアクセスする。
 今回は "Microsoft Live Meeting" ではなく、"GotoWebinar" が使われるので、当方で起こっていた音声問題は起こらないかもしれない (そう期待している)。2 通目の確認メールにある URL は個人個人で異なるので、大切に保存しておく事。

"BDE マージモジュール" と "BDE 5.2 アップデート"
 BDE を利用したアプリケーションを配布するインストーラに必要な "BDE マージモジュール" と、古い Delphi に付属の BDE を Delphi 6 の BDE 5.2 相当にアップデートする "BDE 5.2 アップデート" が DL できなくなったようです。BDS 2006 ~ Delphi 2010 迄の BDE マージモジュールは未だに DL 可能です。

 XE の方はインストール DVD の中を確認してみて下さい。dBASE / Paradox / Access / Interbese を使うためだけ (要は Pro 版のマージモジュール) だったら、ftp://ftpd.embarcadero.com/extras/delphi/bde_pro/BDE_PRO.Msm から未だに DL できるような気がするのは気のせいだ...多分、気のせいだ (w

 Delphi 6 ~ BDS 2006 迄のアップデータも逐次無くなる気がしないでもないので、必要な方は今の内に根こそぎ DL しておく事をオススメします。後になって「○○を持っていませんか?どなたかお願いします...(ToT)」とならないようにしましょう。


11/03/29

美味しいカンパン
 「そんなのある訳ねー」と思っていましたが、株式会社 カニヤ本格派ネービーカンパン / 12枚入りカンパン は冗談抜きに美味しいです (普通にビスケット感覚でおやつとしても食べれます)。なお、保存期間は 本格派ネービーカンパン が 3 年、12枚入りカンパン が 1 年となっています。通販もされているようです。

 カニヤさんは山梨の会社なんですね...なお、紹介したカンパンは海上自衛隊向けの製品 (大形乾パン) の民生バージョンのようです。

姉上に贈ったエネループ
 梱包ミスがあったようで、他の方のエネループが届いてしまったらしい (クロネコの送り状は正しかった)。送り返した後に注文したものがちゃんと届いたようなので一安心。贈ったものは

 の 3 つ。充電器はこれが一番安い (普通の eneloop も充電可能。但し 2 / 4 個単位での充電となり、eneloop / eneloop lite 以外の充電池には対応しない)。もうしばらくは計画停電で不便だろうからね。

 そういや、一時期は熊本でさえミネラルウォーターが不足した。「水道水飲めばいいのに」と思っていたら、関東地方への仕送りが原因だったらしい。その前には福岡でトイレットペーパーとかが売り切れているのを目撃したが、あれは解消されたのだろうか?


11/03/30

Delphi で CSV を処理する (問題提起編)
 「何を今更」ですが、そう言わずにちょっとだけお付き合い下さい。

 Delphi 2006 以前だと、

var
  i, l: Integer;
  SL, dFields: TStringList;
begin
  SL := TStringList.Create;
  dFields := TStringList.Create;
  try
    SL.LoadromFile('C:\DATA\TEST.CSV');
    for i:=1 to SL.Count-1 do
      begin
        dFields.CommaText := SL[i];

        // ここに処理

      end;
  finally
    dFields.Free;
    SL.Free;
  end;
end;

 こんな感じになります。ところが、やってみると解りますが、フィールドを半角 SP でも分割してくれちゃいます。カンマだけでフィールド分割して欲しいので、Delphi 2006 またはそれ以降では、

var
  i, l: Integer;
  SL, dFields: TStringList;
begin
  SL := TStringList.Create;
  dFields := TStringList.Create;
  try
    dFields.Delimiter := ',';
    dFields.StrictDelimiter := True;
    SL.LoadromFile('C:\DATA\TEST.CSV');
    for i:=1 to SL.Count-1 do
      begin
        dFields.DelimitedText := SL[i];

        // ここに処理

      end;
  finally
    dFields.Free;
    SL.Free;
  end;
end;

 TStrings.Delimiter / TStrings.DelimitedText / TStrings.StrictDelimiter を利用します。めでたし、めでたし。

 ...とは行かない事があります。うまく行かない例を挙げてみましょう。

 前 2 つは以下のようにして対処できます。

var
  i, l: Integer;
  SL, dFields: TStringList;
begin
  SL := TStringList.Create;
  dFields := TStringList.Create;
  try
    dFields.Delimiter := ',';
    dFields.StrictDelimiter := True;
    SL.LoadromFile('C:\DATA\TEST.CSV');
    for i:=1 to SL.Count-1 do
      begin
        // 空行だったら抜ける
        if SL[i] = '' then
          Continue;
        // デリミタで分割する
        dFields.DelimitedText := SL[i];
        // 足りないフィールドを埋める (20 フィールドの場合)
        for l:=dFields.Count + 1 to 20 do
          dFields.Add('');

        // ここに処理

      end;
  finally
    dFields.Free;
    SL.Free;
  end;
end;

 さて、フィールドに改行が含まれる場合はどうしましょうか?例えば Excel の場合、フィールド内での改行は 0x0A で、行の改行は 0x0D 0x0A ですが、CSV の仕様としては "フィールド内での改行" / "行の改行" 共に 0x0D 0x0A にする事も可能です。最初、TMemoryStream に読み込んでプリプロセスとしてフィールド中の改行をエスケープしますか?まぁ、場合によってはそれもアリっちゃアリですが...。

 あ、そう言えば今日はデブキャンの日でしたね。では、解決編 (?) はデブキャンの後にする事にします。

【G1】エンバカデロ - 2011年の製品戦略と最新情報 ~ ToolCloud のさらなる進化へ
 第19回デベロッパーキャンプが始まりました。

 情報的にはちょびっとフワフワ。まぁ仕方がない。

【G2】64bit コンパイラへの道 ~ Delphi / C++Builder の将来バージョンへ
 ざっと。

 情報的にはちょびっとフワフワ。これまた、まぁ仕方がない。個人的に心配してるのはサードパーティの方。インストーラとかレポートツールとか。

【T3】Delphi IDE で Twitter 生活!Open Tools API で開発環境を簡単カスタマイズ
 OTA の資料としては、"Tech Note - Extending the Delphi IDE" が公開されています。Delphi 6 には OTA のヘルプが含まれていますが、いかんせん情報が古いです。昔から言われているけど、OTA 拡張の件はまとまった資料が少なくて困る (った) のよねぇ。

 お疲れさまでしたー。

【T4】C++Builder による Web サービス&マルチスレッド対応リソースプールの設計
 ごめんなさい、聴講できませんでした m(_ _)m 資料はちゃんと読んでおきますー。

【T5】バグを生まないための開発技法 - テストと例外の使い方
 ざっと。

 お疲れさまでしたー。

【T6】PHP Live! - ゼロから始める PHP アプリの構築からデプロイまで
 キャー!タカハシサーン!!クールガイにはお約束を。

 お疲れさまでしたー。

Delphi で CSV を処理する (そもそも編)
 CSV って "Comma Separated Values" の略というのはご存じの事でしょう。カンマ区切りテキストですね。CSV には他にもお約束があります。

 ものは試しです。ちょっと意地の悪い CSV をサンプルで用意してみました (sample_csv.zip)。これをちゃんと処理できますか?

 Excel はこれをちゃんと処理します。逆を言えば、"Excel で編集された CSV はこの意地悪な形式になる事がある"という事です。

 今日はデブキャンもあったのでここまでにしましょう。ではまた明日。


11/03/31

RAD Studio XE ジャンプ・アップキャンペーン と RAD Studio XE Enterprise 版アップグレードキャンペーン は今日まで 2011/05/31 まで
 本当に最後です。しかし...2011年3月31日 というのは "日本時間" なのでしょうか、"現地時間" なのでしょうか?

Open Tools API
 昨日の筑木さんのセッションに興味を持たれた方は、

 に参加してみてはいかがでしょうか?

クールガイのセッションのサンプルコード
 昨日の高橋さんのセッションのサンプルコードは "サンプルコード - 第19回デブキャンプ 【T4】 C++Builderテクニカルセッション" より DL する事ができます...ドンマイ。

Dell Vostro 1000 に Windows 7 をインストール
 Vostro 1000 に Windows 7 をインストールするとデバイスマネージャに一つだけ警告が残ります。足りないのは "3-in-1 メディアメモリカードリーダー (SD/SDIO/MMC)" のドライバです。カードリーダーは "Ricoh R5C832" なので、"Ricoh R5C8xx Windows 7 Driver" でググって出てきたドライバを DL してインストールすれば使えるようになります。

 他にも...

 上記の Dell 製品は Ricoh R5C8xx を使っているようです

 XP から Windows 7 になった訳ですが、メモリが 2GB でも普通に動作しますね。むしろ、XP の時よりキビキビ動く感じがします。腐ってもデュアルコア、腐っても ATI (AMD) です。

Windows Vista / 7 が最近遅くなったと感じたら
 別途アプリケーションをインストールする事なく高速化する事ができます。

 SP とかを当てて数日経ち、特に問題がない状態で行ってください。なお、XP またはそれ以前の "ディスク クリーンアップツール" はオススメしません (過去に何度か痛い目をみています)。

筑木さんのつぶやきへのつぶやき
 実行時引数を "bds.exe -rPLUGIN" のように指定し、代替レジストリを使う方法でもうまく行かないのかな?代替レジストリや bds.exe のコマンドラインスイッチについては 80.Delphi 起動時に渡せるスイッチは? を参照の事。


 BACK   古いのを読む   新しいのを読む