2006-03-01
λ Microsoft Virtual Server 2005 を使用した Microsoft Windows Server 2003 の 2 ノード クラスタの作成と構成
sysprep + 差分ディスクによる複数VirtualServerMachineのセットアップ方法が面白い。
[再シール] オプションを使用してコンピュータを Sysprep し、[シャットダウン] モードを選択します
で出来上がった親ディスクは、次回の起動時にSysprepミニセットアップ ウィザード が起動してマシンのセットアップを開始できる。 要するにプリインストールPCを買ってきたのと同じ状態だな。
勉強用プラットホームとしてOS毎に作っておくと便利そうだ。
λ クラスタ作成した
Virtual共有SCSIバス上には、共有ディスクは1台しか置けないのかな。VirtualServerの制限のようにも見えるが、MSCSの制限なのかどうかなのかは未確認。 まあFibreChannel接続の安くなった今となっては、本番で共有SCSI構成を取ることはありえんと思う。(ので確認する気なし)
で、Virtual共有SCSIバスそのものを複数持てるので、QuorumDisk(Q:) の他に 16GB の享有ディスクを作ってみた。
- ClusterNode2 に接続してフォーマット
- この時点でクラスタアドミニストレータで リソースの追加をしようとしたが失敗(ClusterNode2 は全てのリソースでアクティブでない側)
- ClusterNode1 に接続してドライブ文字列 R: に割り当て
- クラスタアドミニストレータで リソースの追加
- クラスタアドミニストレータで R: リソースをオンライン
- ClusterNode2 の電源が入ったままだと、ClusterNode2 が R: を握っていてオンラインに失敗してしまった。
- ClusterNode2 の電源を切断したらオンラインできた
- その後はクラスタサービスとして有効に
本当にClusterServiceを利用する際は、この辺の共有物理ディスクの取り扱いについてちゃんと手順を確認しないとすごく危険だ。
物理ディスクではないサービスだったらそんなにオオゴトにならない感じだけど。(そもそも物理ディスクへの依存設定をするので自動的にそうなる)
λ Intel Core Mac Mini
ちょっと欲しいけど、どうせ使いこなせないのと、OSがこなれてないので待ち。次のOSX(アップグレード無料)になったら考える。
λ SSL証明書遍歴
主に代行だが実際に購入した証明書
- Verisign セキュア・サーバID
- Verisign グローバル・サーバID
- Baltimore Sure Server, BeTrusted Sure Server
- Thawte SSL123
- NetworkSolutions Secure Link SSL Pro
過去に検討した証明機関: NTTCom,Livedoor,comodo
基本的には「サーバー単位ライセンス」と言われた時に本気で探している。
2006-03-02
λ [FreeBSD] FreeBSD-SA-06:09.openssh
PAM認証の時の問題。
うちはそもそもfirewallなどの厳しい設定系では ChallengeResponseAuthentication no にしているので関係ないはず。
λ CentreCOM SSL VPN-Plus
使ってみたらL2トンネルだった(他にもあるのかもしれないけど) 接続していきなり社内側のIPv6アドレスが振られていてちょっとびっくりした。
WindowsXPのタスクマネージャ ネットワーク表示を見ると、暗号化によってトラフィックが おおよそ1.5〜2倍になっているように見える。他のアプリケーション起動してるから 余分にカウントしてるかもしれないけど。
PHS回線+SSL VPN+RDPクライアントで暮らすのは少し辛いが、 SSL VPN経由でホームディレクトリへのアクセス(CIFS)はもっと辛い。スループットはそこそこあるようだが、レイテンシはさすがに解決できんだろう。 画像ファイルの送信などは明らかに速い。バッファリングしてある程度のカタマリを作ってから一気に送信している雰囲気がある。
ホームディレクトリの作業に関してはオフラインフォルダにして切断した状態での作業の方がよい。
2006-03-04
λ 無学歴、無職歴、無実力のニートが年収500万円の正社員になる方法
俺の場合は過去、技術力の販売をダンピングしながら企画系の知識を横領していたような気がする。
それはさておき、猫の手よりはちょっとだけマシに対しては、実運用よりは運用前の段階に関わらせた方がいいってのは かなり実感している今日この頃。
λ 卵かけごはん専用のタマゴ
通販価格1個50円なので、某日本一の卵の半額ではあるが、どんなもんだろうか。 写真を見る限りは某日本一の卵に達してはいない雰囲気。
λ Microsoftオンライントレーニング
IEの中に説明文とVirtualMachineが出てきて実際のマシン操作が体験できる。 移行関係のトレーニングだと間違いなく複数のマシンを扱うことになるのでタブを使ってマシンを切り替えられるのは気持ちいい。
で、仮想マシンはVMWareで実現しているようなのだが、CTRL+ALT+DEL の代わりに 右ALT+DEL って Let'sNoteには右ALTキーないんですけど… USBキーボードがなかったので、PS2-USBアダプタを掘り出してSpaceSaverKeyboardII(US配列)を接続した。 その後仮想マシンは日本語キーボードであることが発覚し、今度はSpaceSaverKeyboardIIだとバックスラッシュが入力できなかったり。 これは本体のキーを押すことで事なきを得た。
US配列+DVORAKで暮らしているとたまにある。RemoteDeskTop接続の場合、普通の接続なら問題ないが、コンソール接続にすると発現する。
現時点でSkill Assessmentは30%
λ Understanding .NET Framework Security
Essential .NET に記載されている情報以上のものはなかった。逐次通訳する分で全体の時間を約半分使われてしまうのにすごく無駄感が…
最後の質問コーナーでSecurity TransparentとSecurity Opaqueの2つのコンセプトがあるよ、みたいな話があったけど、 詳しくはWeb見ろみたいな感じで説明はなかった。
2006-03-06
λ [.NET] Web Services Enhancements (WSE)
Gemini のWebServiceは WSE 2.0 ベースになっていた。WSEじゃないWeb Service としても使えるようになっている。 (ただしWSEのインストール自体は必須)
Gemini へのメール取り込みの部分を作ってみるテストをしている。 基本的機能は100行程度。日本語変換を除けばひたすらパラメータを展開するだけみたいなプログラムになっていて、ロジックを書く必要はほとんどなかった。
元々GeminiのサンプルコードもPOPからの取り込み部分は Lesnikowski Mail.dll を使っていた。 約50EUR はPOP機能まで使うんだったら価格的に悪くはないかな。 CDO for Windows2000経由でうまくいっているのでSMTPだけだと自分としては払う気が起きない。
WebServiceを使うプログラムを初めて最初から書いたけど、VisualStudio2005のWeb参照強力だわ。 接続先URLはちゃんと最初からPropertyに入れてくれるし。 .NET Framework 2.0 のコンソールアプリは *.exe.config に設定を書くものという枠組みも提供してくれていて、 設定ファイルを読んで〜型を変換して〜みたいなお膳立て作業をしなくていいのも楽だ。
2006-03-07
λ Gmail からの日本語メール送信
Unicodeメールの受信テストをしたいと思ってGmailから送ってみたら、iso-2022-jp だった。 いつの間に仕様変更していたんだ。
λ Making Strings More Secure
MSDNのクラスの説明見ただけではどう使えばいいのかさっぱり分らなかった SecureString。
文字列を使うときは Marshal を使うことで「メモリ領域を一時的にもらう」のね。
2006-03-08
λ Network Solutionsの所有者
古い話だが、Network Solutions ってVerisignの子会社じゃなくなってたのね。道理で Verisign じゃない証明書を販売しているわけだ。
2006-03-09
λ [.NET] Modifying the page output using Response Filters
見た目に影響するようなフィルターはありえんだろ。
HTMLコメントを削除するってのを思いついたが、 そもそもコメントだったら ReleaseBuild 時に削除してしまうような処理を組み込むのが最適だなあ。
逆にIISのサーバ名またはIPアドレスを埋めておいて、「BugReportが実はメンテナンスされてない環境だった」みたいな状況へのトラッキングに使うとか。
あとはmetaタグ関連の追加かしら。
λ Windows Storage Server 2003 R2でのWinTarget
「iSCSIストレージに見えるWindowsマシン」らしい。
3node以上のクラスタリングをVirtualSever上で実験する場合にすごい欲しい。
λ JavaScript arguments.callee
すごい
2006-03-10
λ Pikachu powered by SQL Server 2005
うちの壁掛け時計に SQLServer2005電池を入れた。
λ Problem creating EVS (System Attendant Resource)
クラスタサービス上で Exchange2003 の仮想サーバを作成しようとした時に
Invalid network address win 32 Error code C00706ab
というようなエラーが発生した。
Microsoft Virtual Server 2005 を使用した Microsoft Windows Server 2003 の 2 ノード クラスタの作成と構成 の作業をしているときに
- クラスタ間通信でネットワーク アダプタを使用する優先順位 の設定においてプライベート アダプタの優先順位を上げる設定
をしなきゃいけないのに、[ネットワーク接続]の詳細設定のところにあるバインドの優先順位を間違えて逆に設定してしまったのが最大の敗因。
この手順書を良く読むと、以下のようにバインドの優先順位は Public 側を優先するようちゃんと指定されている。読み飛ばしていたらしい ors
バインドが次の順序になっていることを [接続] ボックスで確認し、[OK] をクリックします。 1. Public ローカル エリア接続 2. Private ローカル エリア接続 2 3. リモート アクセス接続
実際には日本語環境で作業をしていたのでこのエラーコードで検索するまで正解にはたどり着かず随分悩んだ。
2006-03-12
λ スマートカード社員証の罠
スマートカード内にメール用証明書発行をして、暗号・署名メールの送受信テストをしていた。その後。
トイレからの帰りに、ドアのところにカードホルダーをかざしても何も起きない。カードホルダーは空だった! スマートカード社員証はPCの中だから。 携帯電話もドアの向こうで、もし一人で出勤だったらお手上げだった。 (中に人がいたので「開けて〜」と叫んで今回は終了)
実運用になると同じ罠が大発生しそうな気がする。困った。
(追記)普通はたまにしか暗号メールの来ないだろうから、「暗号用証明書はスマートカード、署名用証明書はThinkPadの指紋認証」がいいかなと思い始めた。 暗号メールをばかすか受信するような人だったら専用のカードを発給する。
2006-03-13
λ T43p の廃熱
現在の机の上の配置だと、廃熱ファンの横がちょうどペットボトルを置きたくなるようになってて、 お茶のペットボトルを置いておくとそこそこ生温くなってくれる。
どこから吸気してるのかは未確認。
λ オフィス用出入りチケット
昨日の続きだが、来訪者対策をまじめにやろうと思ったら、16桁数字の入った紙のチケットを配るとか…って出る時に数字打ち込むのはありえないよなあ。
RFID入退室管理って来訪者用IDを使い捨てにできるぐらいの料金体系になるかしら。当面やる気ないので今は調査しない。
Suica定期やオサイフケータイのFelicaをIDの代替にしてしまえ、ってのは東京だとありやもしれぬ。 (あまり他人に貸したくないところがポイント)
2006-03-14
λ 2chが「編集」しない理由
「一般のマスコミが怖がる裁判沙汰・警察沙汰もいとわない姿勢が2chの強み」という視点はあんまりなかったなあ。
λ バーチャルキーボード 到着
タッチタイピングは無理。そもそもホームポジションにずっと手を置いていられない。 やっぱ携帯とかPDAじゃないと常用する価値はないな。まあネタということで。
Bluetoothリンク作業でもパスキーの入力をバーチャルキーボードに向かってタイプ?するのが妙な気分だった。 パスキーなので当然どこにも表示されない。とはいえクリック音だけは出るので一発で成功した。
λ Opteron Dualマシン増強
VirtualServerを使っているとメモリ2GBで全然足りない。エンタープライズ構成の実験ネットワークとかだと [ドメインコントローラ+クラスタ構成のメンバサーバ(2台)+非クラスタ構成のメンバサーバ+クライアントマシン] それぞれに512MBぐらい割り当てたいのに。
VirtualServerの仮想マシン用メモリは(スワップするかどうかはともかくとして)実メモリ分しか使わしてくれず、 それを超えた容量を使おうとすると仮想マシンを起動させてくれない。
1枚2GBのメモリモジュールは昔に比べれば買えなくもない値段になってきたので8GBへの増強を検討中。 現在は1枚4GBが鼻血の出る値段。
λ [OSX] ルーティンのメンテナンスで使うUNIXコマンド
softwareupdate をかけたら update_prebinding で失敗した旨メッセージが出てきたので調査。
man update_prebinding も一応見たけど。
具体的には update_prebinding -root / をやるとシステム全体の prebinding を実行してくれる。
でまあこのXServeで dmesg 表示させると
disk0s11: I/O error.
とか出てきてディスクやばそう。まずはバックアップとってから。
fink で smartmontools をインストールしてディスクのチェックもしてみる。
=== START OF INFORMATION SECTION ===
Device Model: IBM-IC35L060AVVA07-0
Serial Number: VNC303A3L5S9GA
Firmware Version: VA3BA52A
User Capacity: 61,492,838,400 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 5
ATA Standard is: ATA/ATAPI-5 T13 1321D revision 1
Local Time is: Tue Mar 14 14:06:03 2006 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: (1732) seconds.
Offline data collection
capabilities: (0x1b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
No Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
No General Purpose Logging support.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 29) minutes.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 060 Pre-fail Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 194 194 024 Pre-fail Always - 144 (Average 139)
4 Start_Stop_Count 0x0012 098 098 000 Old_age Always - 10220
5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 3
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 100 100 020 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 097 097 000 Old_age Always - 23089
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 529
192 Power-Off_Retract_Count 0x0032 091 091 050 Old_age Always - 11184
193 Load_Cycle_Count 0x0012 091 091 050 Old_age Always - 11184
194 Temperature_Celsius 0x0002 203 203 000 Old_age Always - 27 (Lifetime Min/Max 21/55)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 4
197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 6
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0
SMART Error Log Version: 1
ATA Error Count: 51 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 51 occurred at disk power-on lifetime: 23089 hours (962 days + 1 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 65 d0 3c 41 e2 Error: UNC 101 sectors at LBA = 0x02413cd0 = 37829840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 6d c8 3c 41 e2 00 00:02:42.300 READ DMA
ca 00 00 02 b5 00 e0 00 00:02:42.300 WRITE DMA
c8 00 10 40 4f 03 e0 00 00:02:42.300 READ DMA
c8 00 08 98 38 6e e0 00 00:02:42.300 READ DMA
c8 00 08 88 c1 30 e2 00 00:02:42.300 READ DMA
Error 50 occurred at disk power-on lifetime: 23089 hours (962 days + 1 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 65 d0 3c 41 e2 Error: UNC 101 sectors at LBA = 0x02413cd0 = 37829840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 6d c8 3c 41 e2 00 00:02:37.400 READ DMA
ca 00 00 02 b4 00 e0 00 00:02:37.400 WRITE DMA
c8 00 10 50 f2 00 e0 00 00:02:37.400 READ DMA
c8 00 08 98 ef 3b e2 00 00:02:37.400 READ DMA
c8 00 08 a0 38 6e e0 00 00:02:37.400 READ DMA
Error 49 occurred at disk power-on lifetime: 23089 hours (962 days + 1 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 65 d0 3c 41 e2 Error: UNC 101 sectors at LBA = 0x02413cd0 = 37829840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 6d c8 3c 41 e2 00 00:02:32.500 READ DMA
ca 00 00 02 b3 00 e0 00 00:02:32.500 WRITE DMA
ca 00 09 70 0d 57 e0 00 00:02:32.500 WRITE DMA
ca 00 04 a8 41 52 e0 00 00:02:32.500 WRITE DMA
ca 00 07 48 86 30 e2 00 00:02:32.500 WRITE DMA
Error 48 occurred at disk power-on lifetime: 23089 hours (962 days + 1 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 65 d0 3c 41 e2 Error: UNC 101 sectors at LBA = 0x02413cd0 = 37829840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 6d c8 3c 41 e2 00 00:02:27.700 READ DMA
c8 00 10 00 70 01 e0 00 00:02:27.700 READ DMA
c8 00 08 b0 38 6e e0 00 00:02:27.700 READ DMA
c8 00 08 30 c0 30 e2 00 00:02:27.700 READ DMA
c8 00 6d c8 3c 41 e2 00 00:02:22.700 READ DMA
Error 47 occurred at disk power-on lifetime: 23089 hours (962 days + 1 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 65 d0 3c 41 e2 Error: UNC 101 sectors at LBA = 0x02413cd0 = 37829840
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 6d c8 3c 41 e2 00 00:02:22.700 READ DMA
c8 00 08 b8 38 6e e0 00 00:02:22.700 READ DMA
c8 00 10 20 1e 01 e0 00 00:02:22.700 READ DMA
c8 00 08 20 7d 24 e0 00 00:02:22.700 READ DMA
c8 00 40 18 8f 3d e2 00 00:02:22.700 READ DMA
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 70% 23090 37753811
# 2 Short offline Completed without error 00% 23089 -
いかにもセクター番号 37753811や37829840 のところがダメっぽい。
交換するのも時期的にどうかなあ。しばらくFirewireブートでがんばって、Intel XServe が出たらリプレースとかにしたい気がする。 (どっちかというと開発用マシンという位置付けなので予備ディスクのストックはしてない)
2006-03-15
λ 長押しメソッド
バーチャルキーボードでPairing対象を切り替えるのに Shift+Fn+B ってのが裏面に クイックガイドとして掲載されていた(Breaking Pairing)のだが、なかなかうまくいかない。
あきらめて付属CDROMのPDFドキュメントを読んでみた。
「Shift+Fn+B を2秒押す?とペアリング解除されます」!!
携帯電話で随分と長押しメソッドに慣れてきたつもりではあったが、とっさの状況では出てこない。 まだまだ直感的に使いこなしている訳ではないらしい。
λ WindowsXP on VirtualServer
NortonAntiVirus2005 あたりを入れるとCPUを食い続けるらしい。(自分では未確認)
AVG Anti-Virus はとりあえず大丈夫そげ。ClamAVが検出したウィルスを後で転送してみやう。
Mytobは検出した。Phishingは検出しなかった
2006-03-16
λ _blankを使わないで別ウィンドウを開くにはrel=externalを使うのが美しいと思う。
JavaScript+XML(XHTML) の深みはどこまでも続くー
λ プログラミング環境
一からある程度まで組み上げるようなプログラミング作業は平日の昼間にはとてもできない。
λ [.NET] producer スレッドと consumer スレッドを同期する
非同期読み出しをProducer, 非同期書き込みをConsumer として実装した後以下のような 片方向中継器 クラスを作った。
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading;
namespace ProxyConnections
{
public class 片方向中継器
{
/// <summary>
/// 終了時に子スレッドを待機する時間。ミリ秒単位
/// </summary>
private int 終了待機時間ms = 10000;
private 非同期読み出し _リーダー;
private 非同期書き込み _ライター;
private Queue<MemoryStream> _キュー = new Queue<MemoryStream>();
private 同期用イベント _同期用イベント = new 同期用イベント();
private Thread _リーダーThread;
private Thread _ライターThread;
/// <summary>
/// コンストラクター
/// </summary>
/// <param name="i">オープン済みの入力ストリーム</param>
/// <param name="o">オープン済みの出力ストリーム</param>
public 片方向中継器(Stream i, Stream o)
{
_リーダー = new 非同期読み出し(_キュー, _同期用イベント, i);
_ライター = new 非同期書き込み(_キュー, _同期用イベント, o);
_リーダーThread = new Thread(_リーダー.スレッド実行);
_ライターThread = new Thread(_ライター.スレッド実行);
}
/// <summary>
/// 処理を開始する(内部的にはスレッドの開始)
/// </summary>
public void 開始()
{
// TODO: スレッドの終了時にイベントを発生させて後始末が可能なようにする
_リーダーThread.Start();
_ライターThread.Start();
}
/// <summary>
/// 処理を終了させる。(内部的にはスレッドの終了)
/// コンストラクターに渡したストリームの Close 処理等はしていない
/// </summary>
public void 終了()
{
_同期用イベント.終了イベント.Set();
_リーダーThread.Join(終了待機時間ms);
if (_リーダーThread.IsAlive) { _リーダーThread.Abort(); }
_ライターThread.Join(終了待機時間ms);
if (_ライターThread.IsAlive) { _ライターThread.Abort(); }
}
}
}
それから片方向中継器クラスを二つ束ねた両方向中継器クラスを作成。 TCPListerとTCPClientを使ったストリームを渡したら、一応パケット中継プログラムとして動くようになってしまった。
あとは後始末用のイベントを組み込めば原型は完了になりそう。それ以外にも適当なチェックポイントにイベントを組み込むと。 20世紀のネットワークプログラミングを思い出すと、あまりの楽さ加減に涙が出る。
ただ、Queue<MemoryStream> だと、キューにつっこむMemoryStreamが使い捨てになるので、 効率を追求する場面になったらリングバッファに置き換えたいところ。 それさえ単体テストが充実していれば、へろっとリファクタリングじゃよー。楽すぎる。
今回はいまいちいい日本語が浮かばなかった識別子多数。
2006-03-18
λ ImageMagick Supported Image Formats
PSDもサポートしてたのか。どー解釈されるのかはやってみないとわからんが。
λ ソフトウェア テスト $1000 キャンペーン
SSLトンネルプログラムを使って登録しようと思ったが、 マルチスレッドプログラムをいきあたりばったりでやってたら、後始末まわりの実装でメタメタに。 まじめにステートマシン実装しないとだめそうな気がしてきた。
そもそもリークみたいなところがないか評価してくれるソフトウェアテストなわけで、設計はちゃんとせんとな…
λ DoCoMo Shop 覗いてみた
movaへの機種変が12500円〜15000円ぐらい。 ケータイウォッチの表示が2万超だったので躊躇していたが、この価格帯だったら1万円クーポン行使するぞ。 (事務手無料も合わせると電池交換代みたいなもんだ)
来週のどっかでDoCoMoPHSからmovaに移行すると思う。 カメラなし携帯が必要な場面もあるかもしれんから prosolid かな。 imode契約もしないつもり。
N506iS (IIじゃない方)のフラット パネル スピーカーにちょっと技術的に惹かれたけど、聞きやすいもんでもないらしい。 premini-IIS は思ったよりでかかった。prosolidより重いし。
2006-03-19
λ 作成罪はいらない
format c: だと反論可能っぽいので以下のような状況を考えてみた
- 俺専用「ハードディスク全部暗号化プログラム」完成。しばらく便利に使っていた
- 復号用秘密鍵 はプログラム開発前に作成した唯一の鍵しかない
- ある日、復号用秘密鍵を無くしてしまった。ガーン。
- ソースコード暗号化された領域の中だ。ガーン。
- その後、「暗号化プログラム」だけが「お宝画像.exe」として流れる。
- バイナリには署名がしてあった。俺が作ったのは明らかだ。
- でも復号用秘密鍵がないので復号できない。事実上ハードディスククラッシャーになってしまっている。
- ハードディスククラッシャーを作っただろう! と訴えられている。でもそうじゃないという立証は出来ない。困った。
開発者ですら秘密鍵を失ったら解読できないという、非対称システムは今後増えていくはずだ。
2006-03-20
λ SQL Server 2005 SP1 CTP日本語版
英語版の時のKBを読んでも何がよくなったのか理解不能だったのだが、 [データベース ミラーリング機能サポート化] という重大な機能強化があった。
…とはいえトレースフラグを立てれば一応使えてたわけで、 SP1による[データベース ミラーリング機能サポート化]の意味するところが、マニュアルの充実なのか、 実際に機能上の相違があるのかは入れてみないとわからない。
あ、トレースフラグ立ててデータベースミラーリング使ってる環境にSP1当てられるかどうかが目下最大の問題か。 SQL Server 2005 Service Pack 1 コミュニティ テクノロジ プレビュー(CTP)に修正される問題の一覧 全般にはAnalysysServiceが多目だが、912471,912472 は重要。 データベースミラーリングをトランザクションレプリケーションのパブリッシャに指定していた場合の不具合修正だ。
業務ではトランザクションレプリケーション使いまくりだし、パブリッシャ側にミラーリングを設定したいところだった。 (サブスクライバ側にミラーリング設定する状況はあまりない)
λ 月影十番勝負 第十番
すんごい面白かった。シンプルな舞台上でのエンゲキノチカラを実感したという面では過去最高。
敵に追われているようでありながら、敵を追いかけるキャラクターの絡み具合が絶妙、笑いと恐怖の隣り合わせ具合も絶妙。
2006-03-21
λ 墓参
彼岸の中日に勝負。さすがに朝8時なら渋滞はなく大丈夫だった。
λ 雁坂ドライブ
天気もよかったのでそのまま 八王子IC〜勝沼IC〜塩山〜雁坂トンネル〜秩父 ドライブに突入。 塩山を経由するのは初めてだったが、 旧街道に行こうとするカーナビの指示に反して進むべき交差点ではことごとく「雁坂トンネル方面↑」の案内板があったのが印象的だ。
途中荒川村の道の駅では、駐車してすぐに横の秩父鉄道をSLが通過するナイスタイミング。いいものが見れた。
2006-03-22
λ ユーザがページに滞在した時間をサーバに記録するJavaScript
unload時にImageオブジェクトを作るってのは思いつかないな。unload時に次の画面のURLを知ることは可能なのかしら。
こんなスクリプトでも、start 変数の使い方はクロージャーなんだな。
λ PHS回線終了
予定通り prosolid にした。店頭表示価格は12300円ぐらいだったのに、1万円クーポン適用したらタダだった。 店頭表示価格は事務手数料込みだったのだろうか。
支払別々でもファミ割できるというのをその場で気づいて実家の父親に向かって適用。 月々の支払も約2000円でほとんど変わらん見込みになった。 通話料も今までおはなしプラス(2.5倍)が対携帯電話に適用されると恐ろしいことになってたので、かなり値下げだ。
返却されたPHS端末は、公衆電番入りっぱなしの灰ROM端末だった。今後公衆電番入れるとも思えんのでいいけど。
070で始まる電話番号を知っている方へ: 数値で +1962980145 した電話番号になりました。
090で始まる電話番号を知っていた方へ: 変更ありません。
近々自宅電話番号もNTT東日本を解約して、IP電話のみにする予定…
λ 070-285J Designing Exchange Server 2003
例によってインタビュー部分の要約をひたすらメモパッドに書いてから設問に答えるという方式で進めた。
今回もケースごとに試験時間が区切られていたが、070-298Jの時に比べると時間的には全然余裕。 ExchangeServerだけだとネットワークトポロジがそれほど複雑でないのが大きいのかな。 バックアップ要件に対して用語を正確に把握するのが重要。 セキュリティ要件は OWA+SSL にしとけば大概合ってるはず。
明日が本番。
λ Winny の実行をグループ・ポリシーで禁止する
原題は違うのだが、例にあがっているのがそもそも *winny*.exe を禁止するという操作になっている。
しかしファイル名に winny を含むすべての.exe を禁止するのが妥当かどうかは微妙。winny*.exe ぐらいでいいんではなかろうか。 むしろ *宝*.exe 禁止とかどうだろう。こういう奴のポリシーテンプレート作って公開すると嬉しい人いるんかなぁ。
λ Team Foundation Server Workgroup Edition (English)
ダウンロード可能になってる。Workgroup Edition は5ユーザーまでらしい。ダウンロードするところにこう書いてあった。
Visual Studio 2005 Team Foundation Server Workgroup Edition allows up to 5 users.
そもそもうちの会社は[Team Edition 何か]を持ってるのが僕を含めて2ユーザーなのでちょっとやってみるかしらん。 MCPの試験が落ち着いてからだが…
ISVコンピテンシーを取れば [Team Edition Developer]x5 もらえるはずなので、次回目標はそれ。
λ prosolid
サイドボタンを押すと背面ディスプレイに「大きく時計表示」されるのが、携帯を電話代わりにしている身からするとありがたい。
λ 月影十番勝負 第十番 の感想
リアルタイムの感想を探すにはmixiは便利だ。
否定的な意見もそこそこあったのがびっくりだったが、そういえば舞台上で 「会話に出てくるキャラクターに着替えもなしで成り代わる」という場面が度々あって、 それについてこれないと混乱するかもなー。そうでない部分でもおそらく場面転換は通常より多目だったと思う。
あえて分かりやすさは捨てて、その中でも観客を引きずり込めるかどうかの勝負をしていたのかな。 でまあ僕は引き込まれちゃったので サイコー という感想に至ったと。
2006-03-23
λ 070-284J
Self Paced Training Kit についてきた練習問題(Readiness Review Suite)のが難しかった。 ここ数日は60%〜70%で推移しているものの常にFAILと出てくやしかったのでかなり勉強しまくり。
λ [FreeBSD] FreeBSD-SA-06:11.ipsec, FreeBSD-SA-06:12.opie, FreeBSD-SA-06:13.sendmail
sendmailは無視。
opieは以下のコマンドで更新した
(cd /usr/src/usr.bin/opiepasswd; sudo make obj && sudo make depend && sudo make && sudo make install; sudo make clean)
ipsecはカーネル更新。
λ マシンの電源ケーブル抜かれた
フロア工事のため。3時間ぐらい断。
λ P3P Validator
某所のP3P設定は通らないな。
2006-03-24
λ [.NET} How To: ASP.NET でクロスサイト スクリプトを防止する方法
HttpOnly cookie オプションの使用
Internet Explorer 6 の Service Pack 1 以降は、HttpOnly cookie 属性をサポートします。この属性は、クライアント側スクリプトが、document.cookie プロパティの cookie にアクセスしないようにします。つまり、スクリプトは空ストリングを戻します。ただしその cookie は、ユーザーが現在のドメイン内の Web サイトへブラウズするたびに、やはりサーバーに送られます。
こんな機能が。
λ 常識に挑戦してますか。
トヨタとアジャイル開発の対比は面白い。
社内での開発プロセスは BTS/ソースコード埋め込みドキュメントからの文書自動生成/ユニットテスト/自動ビルド の枠組みが圧倒的に有利だよな。
客先のからむ要求仕様作りと契約の関係をどうするか、が目下一番の興味ではある。
λ Tech Ed アンケート
答えて終わって送信したら送信失敗。ISA Server のエラーメッセージが出てきた。
λ SQL Server 2005 サンプルコード ライブラリ
Analysis Services の自習書をやってみた。サンプルコードをどう使うのかはこれから。
Analysis Servicesは「集計の開始」(ボタンとしては「処理」と呼ばれている)を通常は明示的に指示しないと、 最初の集計情報が得られないというところで最初戸惑う。それ以外はひたすら用語の習得〜
2006-03-25
λ OSSにおける翻訳 が安定しない件
途中に書いてあるんだけど「翻訳者自身は通常原文を理解しているので、本人にとっては翻訳する必要がない」のが最大の理由なんじゃあ。
個々のOSS翻訳者として継続しない理由は述べられているが、 「自分のための作業を他人に還元するという原理のおかげで、新規開発者が継続的に流入する」 というのがOSSの仕組みなのに、翻訳はそうではないと。
しかも技術文書翻訳は一定のルールにのっとってある程度機械的に翻訳することが求められるので、 クリエイティブに感じられない。第一の評価の基準はあくまで正確さで、その次がわかりやすさにならざるを得ないし。 (これが小説だったら翻訳でありながら自分の世界観を投影する超一流翻訳家というポジションが存在しうるのだが)
独自の執筆活動にシフトしてしまうのもむべなるかな。
技術文書の翻訳はオライリー本のような形式にしてしまうか、サポートの一環として有料にして企業内で翻訳するしかないんじゃないのかなあ。 ボランティアベースでモチベーションを維持する仕掛けはちょっと思いつかない。
2006-03-26
λ 墓参その2
たった数日の差なのに、お彼岸には含まれないようで全然人がいなかった。 多人数での墓参では、横置きタイプの線香皿が良い。
λ 狭山市のごみ・資源物処理施設
メモ。土曜日の午前中に受け入れてくれるのはありがたい。8:30〜
2006-03-27
λ prosolid P213i のギモン
211i以降は 800MHzと1.5GHz デュアルバンドという記述は見つかるのだが、P213i がデュアルバンドなのかどうか全く確証が得られない。
λ Team Foundation Server Dual-Server Deployment に挑戦
VirtualServer2005R2上の WindowsServer2003Enterprise評価版(180日)*2 に対して TFS trial を導入してみた。
以前にも挑戦しているので、ドメインアカウントは準備済み。 かつ setup.exe が環境調査した際に何をやり忘れているのかガイダンスしてくれるので悩むことはなくサクサク進んだ。 特にSQLServer2005の無人インストール用iniファイルの提供は大変ありがたい。これのおかげで手間は1/3ぐらいになってるんではなかろうか。
SQLServer2005へのパッチ(KB914595)とASP2.0へのパッチ(KB913393) を前者はダウンロードしてしまったけど、 TFSのメディアに入っていた。
寝ても覚めても.NET(?) 詰まった時に見るといいかも。
英語版の TFS+Team Explorer を利用する分には結局最後まで詰まらなかった。よかった。 過去の失敗&ExchangeServerインストール時に「英文の手順ファイルをそのまま実行する」(=余計なことをしない)訓練をした成果か。
2006-03-29
λ 同人誌大量廃棄
コーティングされた表紙だらけなので通常の資源ゴミとして回収されるかどうか不安だったので、 狭山第二環境センターに持ち込んでみたところ、向こう的には雑誌扱いになった模様。
しかし家からそんなに遠くないはずなのに一往復あたり1時間かかってしまった。 途中おばちゃんがマンションの来客用駐車場を中途半端に占有していて固まっていたのを運転を代わってあげる事件も発生。 ちょうど出たい道路が工事車両で片道通行となっていて、バックで出ようとしても交通整理の人とのコンタクトがなかなかうまくいかず、 結局駐車場内でなんとか反転させてから脱出した。
狭山第二環境センター近くの道路も普段はそんなに混まない道だと思うのだが、すごい大渋滞でここらは完全に想定外。
逆に都内は予想していたよりは混雑はなく、過去の平日昼間に比べると平均よりは空いていたような。 桜並木の道はむしろ渋滞していてもよかったのにスカッと通過してしまった。桜は見ごろ。
λ 自宅鯖 こんどこそ
HDDマウント周りのエアフローが悪くてHDDが熱暴走する自宅鯖マシンのその後。
eSATA接続の外付けHDDを起動ディスクにしようかとも思ったが、死蔵されていたMicroDrive 4GBを活用すべく、 SD-IDE2CF-A1 を使うことにした。 検索した範囲で MicroDrive の稼動確認(要するに+5Vの供給と思われる)が出来たのはこれだけ。
インストールは順調に行ったが、起動ドライブたる C: がリムーバブルディスクとして認識されるのが気持ち悪い。 むしろメインで利用しようと思っているIEEE1394接続のドライブが固定ディスクとして認識されている。(その割にはTrayにある取り外し用アイコンはIEEE1394側だが…)
でまあメインの環境はここにVirtualServerを上げていろいろやる予定。
λ マシン停止 約9時間
今度はUPSが死んだ。
2006-03-30
λ 回線変更
USEN 8IPから16IP に変更。当初jailのIPアドレス変更を忘れて悩んだ。停止時間は2時間ぐらい?
FreeBSD6.xでjail用のIPアドレス設定の変更後、以下のコマンドを実行したらちゃんとjail内のプロセスを再実行してくれてちょっと感動。
sudo /etc/rc.d/jail restart
そしてなんか12345しか使ってないIPアドレスで嬉しい。
λ 「mixiはいかにして増え続けるトラフィックに対処してきたか」
参照と更新と比率で、更新の比率がそこそこある場合(=レプリケーションが有効に働かない場合)のDB設計の話。
技術そのものとしては「分割して統治せよ」「キャッシュ活用」ぐらいの戦略しか語られてないけど、 「運用しながらどう適用していくか」という視点で見ると結構深いと思う。
1つのテーブルをフィールドのどれかをキーにパーティショニングするっていう機能はMSSQL2005EEでも導入されている。 MSSQL2005の場合は利用側から見ると透過的なので、 運用中にデータベース管理者がチューニングできる。ビジネスロジックをいじらなくても。ていうのがMSに高いお金を払う理由だな。
しかしパーティショニングを伴う環境でEnterpriseEditionを導入するということは、 EEライセンスが大量に要るわけで、あっという間に億の単位の金額になりそう。 そうなるとさすがに自力でビジネスロジックレベルでレコード分割を実装する方が現実的だと思う。その代わり設計時点でデータの流れを見極める必要があると。
λ [FreeBSD] apache2.2 チューニング
2月3日の話の続き。yapache なんてないよなあと当時あきらめていたら、apache2.2だと普通に使えるのが判明。
/boot/loader.conf に以下のように書いておくと、accf_http, accf_data カーネルモジュールが読み込まれる。
accf_http_load="YES" accf_data_load="YES"
FreeBSDにおけるapache22はデフォルトの設定でこれらのカーネルモジュールによるバッファリングをしてくれる。 ベンチマークはとってないが、フロントのキャッシュandロードバランササーバあたりで利用するとすごくよさげだ。
sysctl kern.ipc.maxsockbufの値は262144だった。主に文字を更新するだけならこんなもんか。画像アップロードしようとすると足りないかな。
カーネルモジュール内でSSLネゴシエーション(しかもSSLアクセラレータカード利用)とかしてくれたら神だが、 そーゆーのはどっかがSSLアクセラレータとして売っている商品そのものであろう。
確認作業
telnet mimori.org 80 で接続しながらSetHandler server-status (ExtendedStatus On)な画面をチェック。
GET / HTTP/1.0(改行)まで入れたところでチェックしても Reading Request な状態は表示されない。
その代わり以前はあんまり見なかった Closing connection な状態を見るようになった。 カーネルに送信内容を投げた後、送信完了するのを待っているのだろうか。
TODO: rotatelogs または cronolog の導入
λ [.NET] Express Edition で ClickOnce を使用する際の注意点
Express Edition は現在無料なのに太っ腹な情報だ
λ Windows Vistaの発売延期で「アップルに一大チャンス到来」の声
Mac OSX v10.5(Leopard) の登場は今年末以降というのを確認したかった。
λ P902iのBluetooth機能をチェック
Bluetooth経由でスケジュールを同期する携帯端末を作ってくれないのはどういう魂胆なのだろう。 フツーの社会人だったら大概欲しいはずなのに、音楽系の機能ばかり増えるのは政治的な事情があるとしか思えない。
2006-03-31
λ Trac Wiki 文法
Tracどっぷりになってくると、日記の記述も Trac Wiki 文法で書きたくなるなあ。 もともとRDとはかなり近いんだけど。
λ SATAドライブにフロッピーなしでインストールする
Sil3112A チップの先に接続したSATAハードディスクにWindowsをインストールする際、フロッピーなしでインストールしたかった。
using plugin: amazon calendar2 category html_anchor makelirs makerss recent_comment3 recent_trackback3 squeeze tb-send tb-show recent_list
Copyright(C) 2003-2007 by KAMIYA Satosi (上美谷 智史) All rights reserved.
λ hir [有償になっちゃったんですね>Lesnikowski 自分が見付けたのは2004/8ですが、当時はフリーだったように..]
λ 上美谷 [私も前回コメントをもらって見た .NET Framework 1.1 ベースだけの時はフリーだったように記憶してます..]