今日の作ってみた

PCでキッチンタイマーを使う機会が結構あります。ええ、カップ麺ですとも。
IHコンロにはタイマー機能があるので、調理の場合にはこちらを使います。必然、IHを使わない状況となるとカップ麺くらいしか残らない。
最近良く食しているのがニュータッチの大盛カレーうどん。結構しっかりした麺と味、なによりカレーうどんでありながら「注意していれば服に汁が飛ばない」というありえない仕様。けっこうとろみもあるんですよ?
で、これは熱湯5分。他のカップ麺だと3分だったり4分だったりするわけで、ちょこちょこ設定を変えなきゃいけない。
腕時計のタイマーは設定がちょっと面倒。それでPCのキッチンタイマーツールを使っていたのですが、これに不満が。
起動→時間設定→スタート、と普通のキッチンタイマーと同じ手順を踏むんですよね。マウスオペレーションだと、起動したら3とかのボタンに合わせて時間を指定して、スタートのボタンに移動して開始、と。なにこのめんどくささ。
タッチパネルだとなんとも思わないのでしょうけど。
起動して4を押したら4分でカウントダウン開始でいいじゃん。4分のカップ麺で4分30秒待ったのが好きなら、起動して4を二回押したら4分30秒で開始でいいじゃん。
起動後に数字のnを押したらそれで分設定確定、同じボタンを続けて押したら30秒追加。起動後テンキーか起動後テンキー連打で時間設定もカウントダウンスタートも終了。
つまり最大設定時間は9分30秒になる([0]キーはリセットに使うので)んだけど、それで困る状況が見当たらない。
というわけでそんなカウントダウンタイマーを作りました。

というわけでカップ麺を買いに行ってきます。

首相を攻撃する野党が一番国民の命をないがしろにしている件

通常国会が始まりますが、野党側はイスラム国のテロに対して首相の対応に不備があったのではないか、そもそも人道支援を大々的に表明したことに問題があったのではないか、といったことを追求する構えだそうで。
このような情況下で与党・野党が一致団結しないでどうするんだ? と。
テロリストに殺された(としておきます)日本人の命を政争の具に使うなんてのは国会議員としても日本人としても失格です。
安部首相には、ある程度非難を受けたあとでこんなことを言って欲しい。
「私の政策、行動についての批判、また責任の所在については延長国会、あるいは人質奪還が完了した後で臨時国会を開くなどしてその場で全て伺います。今は人質となっている方を無事に日本に帰国させるのが我々国会議員、日本人の指命であり、願いです。そのために資することであれば、あるいは今後このような事態が起きないようにするための意見であれば虚心坦懐に伺います。人道支援であっても大々的に公表しないのが効果があるのであれば、それも選択の一つとして考慮いたします。繰り返しますが今我々がなすべきことは不当に奪われようとしている日本人の命を救うことであり、奪われたかもしれない命に対して贖罪することです。そのために全力を尽くすのであればその意見は拝聴し、実効性があるのであれば提案は与党・野党を問わず行おうと思います」

それと、テロリストとの交渉には個人的には映画の『身代金』方式をとってもらいたい。
「人質を無事に開放すれば日本は今後も人道支援以外は行わない」
「人質に危害を加えたならば、各国に2億ドルを供出し、イスラム国の殲滅に利用していただく」
「他国の人質に危害を加えた場合も、同様の措置を行う」
「2億ドル、さらに追加の資金により各国は大量の武器弾薬を購入・製造するだろう。それによりあなた方の資金源は破壊され続ける。またあなた方の指導者の居場所を把握し、これを攻撃するだろう。」
「懸賞金の額も増加していく。日本人に限らず他国の人質を殺せばその金額は増えていく。新しく人質をとっても増えていく。懸賞金は生死を問わず、また期限も設けない」
「今の活動を停止しなければ、あなた方は死ぬまで追跡者に脅え、あなた方の家族も友人も親族も、宗教指導者ですら安心した夜を過ごすことは困難になる」
「懸命な判断をしていただきたい」

まあテロリストは今後も同じ活動を続けるでしょうし、人質も返さないでしょう。でもそれはこういった声明を出さなくても同じ。
懸賞金が増加していけば内部から裏切り者が出て(なにしろ安い月給に惹かれて参加してる連中が沢山いる)組織として機能不全に陥る。
軍事力を行使できない日本だからこそ、この手の交渉のほうが余程効果があると思う。
砲弾や銃弾や毒ガスより、人類の歴史では金によって殺された人間のほうが多いんじゃないかねぇ。そもそも戦争って宗教・民族対立以外は基本金銭目的だし。

DVD-RW DVD-RAM IFOファイル タイトル取得

DVD-RWDVD-RAMのIFOファイルからタイトルを取得する覚書。
0x130から4バイトに書かれてるアドレスに、タイトル数とかクリップ数とかタイトル名が記録されてます。DVD-Rはまた別っぽい。
書き込んだDVDがあるけど中身なんだっけ? 再生すればわかるけどめんどくさい。あるいはタイトル名をコピーしてクリップボードに入れたい、なんてことが多々あったのでIFOファイルをバイナリで見て、ここか? それともここか? ちくしょう、こっちか! とやった記録をVBで。
IFOファイルに関連付けしてコンテキストメニューから呼び出すようにしておくと意外と使えたので。


Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim Cmd As String = Replace(Command(), Chr(34), "")

Dim values As Byte() = My.Computer.FileSystem.ReadAllBytes(Cmd)
Dim title_start As Long
Dim title_count As Integer
Dim clip_count As Integer
Dim title_data_start As Long
Dim bytesData(133) As Byte
Dim str As String

'304 = 0x130から4バイトの値に + 1した位置に、タイトル数があるアドレスが記述されてる (例 00 00 E7 49) + 1 = 0xE74A
title_start = (values(304) * 256 * 256 * 256) + (values(305) * 256 * 256) + (values(306) * 256) + values(307) + 1
'もっとまともな記述しておけばよかったorz

'タイトル数
title_count = values(title_start)

'クリップ数はその + 2に格納されてる(このツールでは必要じゃないけど覚書きとして記述)
clip_count = values(title_start + 2)

'タイトルデータはさらに + 7にある
title_data_start = title_start + 7

'タイトル数だけ繰り返す
For j As Integer = 0 To (title_count - 1)

'先頭から63バイトはタイトルに付随するデータなので空白(半角スペース = chr(32))にする
'(エスケープシーケンスが含まれるかもなので空白に変換しておく)
'この63バイトにはレコーダーの名称と録画日時?が入ってる
'63バイトという値はもしかしたら記録したレコーダーで違うかも? これは東芝のレコーダーの値
'他社レコーダーの場合に正常なタイトルが取得できなかったら、IFOファイルをバイナリで見て調整が必要
For i As Long = title_data_start To (title_data_start + 63)
bytesData(i - title_data_start) = 32
Next i

'実際のタイトルデータ
For i As Long = (title_data_start + 64) To (title_data_start + 133)
'エスケープシーケンス以外ならタイトルデータ
If values(i) > 31 Then
bytesData(i - title_data_start) = values(i)
Else
'タイトルが短い場合の余白(?)も空白にする
bytesData(i - title_data_start) = 32
End If
Next i

str = System.Text.Encoding.GetEncoding(932).GetString(bytesData)
'前後の空白を除去
str = Trim(str)
TextBox1.Text = TextBox1.Text & str & vbCrLf

'次のタイトルデータの位置まで + 142する
title_data_start = title_data_start + 142
Next j
TextBox1.Select(0, 0)

End Sub

Windows7とWX12Kのテザリング覚書

いまだにPHSを愛好している私です。PHSは山の中に行ったりしたらメモ帳とカレンダーと時計とゲーム機能しか使えず、電話もネットも使えなくなります。

が、街中なら別に問題はないし、ちょっと郊外に出ても使えます。何より利用者が少ないので地震とか大晦日とか輻輳が起きやすい条件下でも繋がりやすい。

何より課金が安いw



最近機種変をしたのですが、スマホにしなかったのはそんなことをしたらアプリを作りまくって時間がなくなるだろうことが目に見えているから。



で、平行してそれまで使っていたモバイル用ネット接続端末の解約を決意。となると帰省時のネット環境がなくなるのでテザリングの必要性が生じたわけです。

USB接続という手もあるのですが、こっちだとスーパーだれとでも定額(国内通話かけ放題&パケット使い放題)サービスに入っていてもプロバイダの課金(従量制だ!!)があるのでもったいない。

で、テザリングですがけっこう手間取ったので覚書を。



まずはPCとWX12KのBluetoothをONにします。WX12Kは購入時Bluetooth機能がOFFになってるのでまずここに注意。

次に安定したBluetooth接続のためにPCの無線LAN設定の2.4GHzをOFFに



WX12Kの*キーの下にあるBluetoothボタンを押し、[だれとでも定額パス/テザリング開始]を選択。

PCの[デバイスとプリンター]で[デバイスの追加]を選択
成功すると[WX12K/Bluetooth/Bluetooth ヘッドセット]が表示されます。選択して[次へ]を選びます
[コンピュータとこのデバイスとのペアリングコードの比較]が出ます。数字が表示されますが、それは無視して[はい]を選択して[次へ]

するとWX12KにはPC名が表示されて[認証しますか?]と表示されるので[はい]を選択。

ここまでの間にWX12Kでは「登録中」と表示されていますが、信用しちゃダメです。ここでの「登録」はあくまで「認証」のための登録であって、PC機器の登録ではありません。

PC側でも成功した旨が表示されますが、Bluetooth関係のドライバが入っていないとそのインストールに時間がかかるとWX12K側で「待ってらんネ」とタイムアウトします。その場合は[だれとでも定額パス/テザリング開始]を再度選択。

ここからが重要。PCの[デバイスとプリンター]でWX12Kを右クリックし、[接続方法]-[アクセスポイント]を選択これをしないとWX12K側に登録されません。WX12KにPC機器を登録するにはこの手順が必要です。



で、登録までの一連の流れのなかでエラーが(主にというか、ほぼ間違いなくPC側でw)発生することがありますが、その場合は[デバイスとプリンター]に表示されているWX12Kを削除して、●から再開。WX12K側でPCを登録済みの場合は[だれとでも定額/テザリング設定]-[だれとでも定額/テザリング機器一覧]にあるPCの登録も削除して再開しましょう



WX12K側での設定はBluetooth機能をONにすることと、テザリング中にハンズフリー機器を使うか?程度しかありません

PC側は以下

[Bluetooth設定](通知領域のBluetoothアイコンからも選択可)


[COMポート]タブのCOMポート設定(着信)が必要ですが、自動でやってくれるみたいです。自動でされない場合は手動で行いましょう。

[共有]タブの[Bluetoothバイスがモデムを使用してインターネットに〜]はチェック。

謎なのが[Bluetoothバイスによる、このコンピュータへの接続を許可する]にはチェックが必要ないこと。おそらくWX12KからPCに写真とかを送る場合に必要になる設定なのか?


これで基本的には終了。TCP/IPとかは全部「自動」でOKです。
次回からの接続はWX12Kをテザリング状態にして、[デバイスとプリンター]でWX12Kを右クリックし、[接続方法]-[アクセスポイント]を選択すればOK



速度はTCP Monitor Plusで見ると、アンテナフル状態で送信が0.5KB/s、受信が1.5KB/s程度。まあ使うのはメールのチェックくらいなのでま、いいか、と。

セウォル号沈没事故のまとめ

上部に客室を増築して重心が上がり、

右舷ランプウェイとその昇降装置を外して重心が上がっただけではなく 左 舷側にも移動し、

復元力を維持できる貨物積載量が40%、

同要バラスト水量が198%というトンデモな改悪船舶にし、

しかもその改装を行った会社は近いサイズの船舶の改装実績がなく、

2/10-19の10日に渡って定期点検をするも問題点は見つからず、

2/25に濃霧期特別点検をしたら5項目も問題が発覚し、

それを是正したと会社が報告しても確認作業は行わず、

3月中に事故現場付近で急旋廻を起こしていて、

4/1には船長から操舵装置の異常による修理申請書が提出されてても無視し、

改悪で復元力がなくなってるのに3.6倍の過積載を行い、

トレーラー3台に至っては2台を 左 舷、1台を右舷側に配置するアンバランスな措置を取り、

さらに貨物の重量を調べて均等に配置することもせず、

車止めも4箇所ではなく2箇所だけしか行わず、

出港前の貨物安全検査が終わってから15台のSUVを乗せ、

と言うか貨物安全検査自体ただのポーズで、

と言うか荷役作業を行った会社は貨物固定作業の免許を持たず、

コンテナは固定作業をしっかりせず、

というか通常の半分のサイズのコンテナなので甲板の固定金具と位置が合わないし、

珍島交通管制センターは担当海域に入ってきて連絡をしない船にこちらから連絡もせず、

と言うかレーダー内で360度以上旋回してるのに緊急連絡も取らず、

こういったボロボロの安全管理の監査を国は全くしておらず、

出航時間がズレたにもかかわらず出港前に決めたシフトのまま経験が浅い航海士に舵を取らせ、

2/25の検査での異常の一つが非常発電機燃料タンクのレベルゲージで、

それと関係があるかはわからないけど36秒の停電を起こし、

世界的にも潮流の早さではトップ5に入る海域に、

舵の指示を左右間違えるというミスを犯しつつ、



進入した。



これを人災と言う人もいるが、すでにこれは韓国という国の「国災」と言うしかない。

船長などが契約社員(船員?)というのを問題視する向きもある。それはそれで理解できるが、唯一最後まで残り船員としての義務を全うした船員がアルバイト、ということも忘れてはならないと思う。
契約社員だから責任感に欠けていた、やる気がなかった、と言う人はアルバイトの彼女のことをどう説明するのだろう。最後まで残って救命胴衣を配り、脱出を指示した人を。
「私は皆さんが全員脱出してから逃げます」と言った「アルバイト」は契約社員より待遇としては下だったはずだ。それでも彼女は乗員の中で最も責任を認識し、しかもそれを実行した。
契約社員だから、と簡単に断じていいものではないだろう。
彼女のような人がいる以上、他の乗組員の行動は会社の待遇に依拠するものではなく、会社のあり方、あるいは個人のあり方が原因と見るべきだ。

検査の監査をすべき国、検査を実施した官、船を経営した会社、実際に操船した船員、つまりは個人。上から下まで全てが腐っていた。
いち早く危機に反応して連絡をした教頭先生や修学旅行生、子供を助けた人々、漁船で駆けつけた人々。個々では評価できる(当たり前のことをしただけではあるが)人々は存在するが、彼らが安心して生きることを保証しない社会、国。それが明確になった。

さらに言えば、自分の救命胴衣を妹に譲って死んだ兄という美談があるが、これもおかしい。
子供が子供に救命胴衣を譲らなければならない状況自体が普通の国ではありえない。大人が兄を制し、自分の救命胴衣を譲るべきだろう。
そして兄は両親を探しに行って死亡したのだが、それを止める大人もいなかった。これもおかしい。
兄と妹という状況がある程度類推できるなら、二人を一緒にしておくのが大人の役割だろう。家族を探したいと訴えられたら、代わりに探しに行くのが大人の役割だ。

兄が死んだのは周囲の大人が彼を無視したからだ。決して美談ではない。妹は確かに周囲の人々(兄を含む)に助けられた。だが、兄が死んだのは「周囲の大人が助けなかった」からだ。
これのどこが美談だろうか?

2014年韓国フェリー転覆事故 時系列まとめ

日本語・韓国語版・英語版wiki朝鮮日報中央日報東亜日報等のソースを元に構成。

間違ってる可能性が多々あるので(急旋回と同時に遭難申告してる等)ソースとしての利用は避けて下さい。

就航前フェリーなみのうえを改装。船体後方最上階に客室を増設。船首右舷側にあったランプウェイ(貨客の乗り下りに使用する傾斜路及びその動力装置)を取り外す。船体上方を増量、下方を減量、かつ右方を減量したことになる。
改装前重心 11.27m
改装後重心 11.78m(+51cm)
改装前定員 804人
改装後定員 921人(+117人)
改装前船舶重量 5926t
改装後船舶重量 6113t
改装前復原性維持可能貨物量 2437t
改装後復原性維持可能貨物量 987t(40%に低下)
改装前復原性維持可能バラスト 1023t
改装後復原性維持可能バラスト 2030t(198%増加しないと復原性を維持できなくなった)
改装前貨物最大積載量 3981t
改装後貨物最大積載量 3794t
2013年3月15日セウォル号として就航。
2月10-19日セウォル号、韓国船級協会による船舶検査を実施。問題なし
2月25日海仁川海洋警察署、仁川地方港湾庁、海運組合運航管理室、韓国船級協会、船舶安全技術公団が実施した濃霧期特別安全点検で▼二重水密扉の作動不良▼客室内自動(防火)扉3カ所不良▼船内非常照明灯など照明不良▼(船員の)火災警報機作動法の熟知状態不良▼非常発電機燃料タンクのレベルゲージ状態不良が確認される
3月04日2/25の点検結果に対し、清海鎮海運が「是正した」と回答。この回答に対して確認はせず。
3月同海域で右旋回しようとして急旋回が発生し、左舷側に大きく傾く。
4月01日セウォル号の船長が会社に操舵機の不調を訴え、修理申し込み書を提出。「電源接続が不良なので、根本的に直してくれ」という内容。
しかしセウォル号は修理どころか修理の依頼すらされていなかった。この依頼から事故発生まで、セウォル号は仁川・済州島間を4往復している。
15日18:00頃?セウォル号の貨物への仁川海運組合の安全検査が終了。
重量があるトレーラー3台を船の中央に配置せず左に2台右に1台それぞれ配置したこと、コンテナが通常の半分のサイズで固定金具で留められなかったことは見過ごされた。
船員の証言により、(日常的に)貨物も重量に応じた配置がなされていなかったことが判明
15日18:30船長が安全点検報告書を作成。乗客474(正しくは447)人、船員数24(正しくは29)人、車両150(正しくは180)台、貨物657(正しくは1157)トンと記載。
15日〜20:30安全検査終了後に追加でバン15台を積み込む。
補足:荷役作業を取り仕切った会社は貨物固定作業の免許を保有せず。
15日21:??仁川港から済州島向け定刻午後6時半から濃霧による視程低下のため約2時間遅れで出港。
16日朝乗っていた男子生徒によると「『ドン』という音が聞こえ、船が傾いた」。エンジン室にいた船員「船の前部が衝撃を受けた」。別の乗客「船が90度近くに傾くと、船体の側面から一気に水が入ってきた」。
16日08:48:37
〜08:49:13
セウォル号で36秒間、原因不明の停電発生。
16日08:49急旋回(操舵不能?)開始
16日08:50修学旅行引率の教頭が船内から学校に「船に問題が発生した」と報告。
16日08:52セウォル号搭乗の生徒から全羅南道消防本部消防・救急状況室に遭難の申告。消防本部から木浦海洋警察庁につなぎ、3者間通話を開始。
16日08:55済州島の管制センターと交信。傾斜20度。
16日08:58セウォル号が遭難信号を発信、海洋警察が受信。
16日08:58海洋警察庁発表「セウォル号搭乗の生徒から木浦海洋警察庁に救助要請があった」
発表がこの時間であることについて、全羅南道消防本部消防・救急状況室は生徒からの通話を海洋警察庁につなぎ、3者間通話を開始したとのこと。状況室も相手が単なる乗客であることは伝えられたので、08:52の生徒からの救助要請に対して遭難現場の緯度経度を船員でもない者にたずねて6分を無駄にした(船名さえ聞けば場所の特定は可能)ことを隠蔽しようとしたという疑惑はほぼ確定的。
16日09:03釣り船名人スター号(機械翻訳ママ)、緊急救助要請信号を受信
16日09:05修学旅行生が「私たちは本当に死ぬかもしれない」とのメッセージを残す。
16日09:07セウォル号「沈没中、救助要請」と訴える。
16日09:17セウォル号「船が50度以上傾いて動けない」。
16日09:17ブリッジにほぼ全ての乗務員が集まる。
16日09:23韓国籍タンカーDOOLA・ACE号、救助可能位置に接近。
16日09:23船長、船内放送ができない状態と報告。ただし実際には船内放送は継続中。
16日09:25地方出張中だった姜秉圭(カン・ビョンギュ)安全行政部長官が事故発生の報告を受けた。
16日09:25珍島交通管制センター:ヘリが1分後に到着する。
セウォル号:乗客が多いので同時に脱出するのは無理そうです。
16日09:28救助者が撮影した船内の映像にて、「船内は安全です」旨の船内放送がなされていたことが確認される。
16日09:30救助隊到着。
16日09:??米軍上陸艦ボノム・リシャール艦が複数の救命ボートを積んだ2台のMH-60ヘリを派遣したが、ヘリは救助作業に投入されずに帰艦。
16日09:31安全行政部の関係者が青瓦台危機管理センター長(シン・インホ危機管理秘書官)に携帯電話の文字メッセージで状況を知らせた。
16日09:30頃近隣の漁村に情報が入り、漁船による救助活動への参加を決定
16日09:37木浦海洋警察署の救助隊員が現着し、セウォル号に乗り込む。救命ボートを取り出そうとして果たせず。
16日09:38以降救助隊員が救命ボート10個目に着手
船長以下20人、乗務員専用階段を使用して下船。
救助隊員は12個の救命ボート動作に失敗(全て作動せず)、13個目を蹴って海面に落下させたが、正常に開かず
16日09:45姜長官の指示に基づき、安全行政部に中央災害安全対策本部(中対本)が稼働。
16日09:50頃?船長以下20人の船員を含め、約70人が最初に救助。
16日10:00頃救助活動の要請を受けた漁船が到着。総数60隻。うち一隻による救助者25人
16日10:15「沈没が迫っている。乗客は海に飛び降りろ」と船内放送。この後、発電機停止。
亡くなった乗組員のパク・ジヨン氏は10回以上も乗客の脱出を打診したが操舵室から応答がなかったという。(Nスタにて放送)←誰がどうやって確認?当人は亡くなっているし、他の船員はブリッジに集結していた筈。
ムービー等に残された声が男性のものであることから、案内放送をしていたのはカン・へソン氏だと思われる。しかし、パク・ジヨン氏というソースもある。
16日10:30閔庚旭(ミン・ギョンウク)青瓦台報道官が金室長の報告内容と朴大統領の指示内容を把握し、事件関連ブリーフィングをした。
16日10:30頃釣り船名人スター号が到着。27人を救助。この日集まって救助活動をした漁船は20隻。
16日11:16頃京畿道教育庁が船に乗っていた高校生の保護者たちに「壇園高校の生徒を全員救助」というメールを一斉に送付。
16日11:20沈没
16日11:24頃海軍の海難救助部隊 (Ship Salvage Unit: SSU) 及びUDT/SEAL、陸軍特戦司令部の潜水要員が調査と救助作業に投入される。
16日12:00西海地方海洋警察発表「搭乗客477人のうち179人を救助し、2人が死亡した」
16日13:30中央災難安全本部発表「476人乗り、救助者は368人、死亡2人を確認する」
16日14:00中央災難安全本部発表「女性乗組員の1人と修学旅行生1人の死亡が確認され、368人が救助された」
16日16:30中央災難安全本部発表「459人乗って、救助164人、死亡2人、行方不明293人」
16日20:00頃サムスン重工業の3600トン級クレーン、巨済造船所を出発。
16日23:00海洋警察「救助175人」
16日午後海軍駆逐艦「デ・ジョヨン」の乗組員が貨物昇降の作業中に頭部を負傷し意識不明の状態で済州島の病院に運ばれた。
17日早朝ジョンホンウォン首相が17日の早朝のフェリー沈没の避難所が設置された全南体育館を訪問。ペットボトルを投げつけられる。
17日午後民間のダイバー3人が行方不明者を捜索中、波と風に流され行方不明になるが、20分後に釣り船に発見され、救助された。
17日午後警察庁サイバーテロ対応センター「生存者が旅客船から救助を要請しているというメッセージはすべて事実ではないようだ」とし「行方不明の生徒全員の携帯電話発信内訳を確認した結果、完全沈没(16日正午)以降、通話・文字・カカオトーク発信内訳は全くない。フェイスブックも使っていないとみられる」。
17日20:40頃悪天候により中断していた水中捜索を再開。同時に、海洋警察が船内進入のために無人ロボットを投入。
18日01時頃船体を引き揚げるためにクレーン船3台を投入する事を決定するも、船体が揺れてエアポケットに海水が浸入する可能性があるため難航。
18日06:xxMBNニュース特報プログラムで民間潜水士と名乗る女性がインタビューを通じて、政府が民間潜水士の構造の操作をブロックしており、海の中での生存者の声を聞いた事例があると主張した。
18日10:05救助隊の船体進入に関しても、中対本は午前10時5分に「進入通路を確保した」と発表したが、午後3時27分には「失敗した」と言葉を変えた。その過程で西海海洋警察側は「旅客船に進入したのではなく、空気を注入している」と上級指揮部である中対本の発表を否定。
18日13:03海面より姿を見せていた船首先端部分が自重により完全に水没。
18日16:05分頃檀園高校の修学旅行を引率していた教頭が珍島室内体育館近くの木で首をつって死んでいるのが見つかった
4月19日未明船長、三等航海士、操舵士逮捕される。
19日06:??ダイバーが船内の3遺体を窓越しに確認。
19日全省庁事故対策本部発表「乗船者476人、救助者174人」に変更。
19日23:48ダイバーが船内に初めて進入、3遺体収容。
20日16日の救助活動中に頭を負傷し、意識不明となっていた韓国海軍兵士1人が死亡。※19日という話もある
20日21:16米国からの無人探査機(ROV)2台を動員
21日09:00乗船者476人、救助174人、死亡64人、不明238人
21日20:10行方不明者家族の代表をしていたソンジョングンが、実は行方不明者の家族でも親族でもないことが報道される。朴槿恵大統領が体育館を訪れた際にはともに檀上に立つなどしていた。
21日セウォル号の船内拡張工事を担当した造船会社は、大型の旅客船を改装した経験のない新興企業だったことが分かった
23日10:16無人探査機(ROV)が捜索の邪魔になっていると報道。ROV投入時は感電の危険があるためダイバーが作業できず。21日のROV運用では潮流のためほぼ運用できず。また、現時点までROVによる成果なし。

VBでCDトレイを開く

日頃のメインマシンはミニノートなのですが、マウスとキーボードとモニタを外付けにしています。だからミニノートのモニタは閉じたまま。
それで別に不具合はない…かというと、使用しているマシンにはCD/DVDドライブを開くボタンが本体前面に付いているのに、モニタが閉じていると機能しなくなる。持ちはこびの時に何かの拍子で開くのを防ぐためなのでしょうけど、そうなるとちょっと面倒。
ドライブに付いている[開くボタン]は小さすぎて押しにくく、ファイラから開くこともできるけど最近はファイラ以外のものにフォーカスがあるときに開閉する必要があり、エクスプローラなんか使う機会もない。
たいていのソフトはランチャから起動させているので、ドライブを開きたい時もフォーカスがランチャにあることが多い。だったらランチャにトレイを開くツールを登録すればいい、というのが今回のツール作成動機。
開くこと自体は結構簡単。


Private Declare Ansi Function MciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpszCommand As String, ByRef lpszReturnString As String, ByVal cchReturn As Integer, ByVal hwndCallback As Integer) As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  MciSendString("Set CDAudio Door Open Wait", Nothing, 0, 0)

End Sub

どうやら一番最初に見つけたCD/DVDドライブのトレイを開くらしいので、仮想ドライブのドライブレターが物理ドライブより前にあると(仮想=D、物理=Eとか)仮想ドライブがオープン状態になるらしい。Virtual Clone DRIVEだと、マウントしているように表示されるけど実は取り出されている扱いになる。

ドライブを指定する場合は


MciSendString("Set CDAudio Door Open Wait", Nothing, 0, 0)
 ↓
MciSendString("Set CDAudio!E Door Open Wait", Nothing, 0, 0)
と、CDAudioに続けて![ドライブレター]で指定可能。

他にも


MciSendString("Open E Type CDAudio Alias CDAudio")
MciSendString("Set CDAudio Door Open Wait", Nothing, 0, 0)
とやってもできるらしい。

で、マシンによってCD/DVDドライブのドライブレターが違うことを考えると、外部ファイルにドライブレターを書いておいてそれを読み込むのが現実的かな?


Private Declare Ansi Function MciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpszCommand As String, ByRef lpszReturnString As String, ByVal cchReturn As Integer, ByVal hwndCallback As Integer) As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

  '外部ファイル(ただ「E」って書いてあるだけ。複数ドライブを開く場合はドライブレター\nドライブレター\n…と書く)を指定。
  dim ini_file as string = My.Application.Info.DirectoryPath & "\Drive_Letter.ini"

  '外部ファイルがあったら
  If My.Computer.FileSystem.FileExists(ini_file) Then

    Dim readText() As String = File.ReadAllLines(inifile)
    Dim s As String
    Dim cd_drive as string = ""

    For Each s In readText
      'コマンドと外部ファイルで指定されたドライブレターとを合成して開く。
      'ホントはここで「使用可能な文字か?ドライブは存在するか?使用中じゃないか?」とかチェックすべき
      cd_drive = "set CDAudio!" & s & " Door Open Wait"
      MciSendString(cd_drive, Nothing, 0, 0)
    Next

    FileClose(1)
  Else
    '外部ファイルがなかったらメッセージを表示
    MsgBox("File not found.")
  End If

  End
End Sub

これでOK。CD/DVDドライブがD〜Zまであってもすべて一斉に開いて遊べる。

閉じる場合は


mciSendString("Set CDAudio Door Closed", Nothing, 0, 0)
らしい。D〜Zを開いたり閉じたりして遊ぶのも…やめたほうがいいですね。