2007/09/20(木)近況

表題

時間があれば個別の記事で詳細に書きたいのだけれど、なかなかそれも難しい。

最近のお気に入りらしい

true my heart -VOCALOID 2 special edit- / ave;new feat. 初音ミク
つーか、プロが寄ってたかって何やってるんですか(笑

サーバのHDD

あまり変更しないファイル用に用意している160GBのHDDがそろそろ溢れそう。400GBくらいのHDDに換装するかどうか悩み中。

VC2005によるWindowsプログラミング

文字列の扱いが面倒すぎる。特にchar文字列とTCHAR文字列、WCHAR文字列の相互変換が。
フォームにリッチエディットボックス2.0を利用するとビルドは通るのに落ちるのは何故だろう*1。VS 2005 SP1にアップグレードすれば修正されているのかも知れないが、VMwareで評価用環境作ってチェックするのは非常にめどい。64KBまでしか利用出来ないけど普通のエディットボックスで逃げるか……

仕様書作り

仕様書の作成も平行してやっている。研修ではExcelで作らされた*2気がするが、そんなもので作りたくないのでOpenOffice.org Writer & Drawで作ってみる。配布するときはPDFエクスポートで問題なし。
しかし、作っているときにDrawの描画が化ける(データには問題がないのだが)とか、トラックポイントのスクロールが効かない(OOo全体の問題)のは微妙なところではあるが。

キーボード

何か気が付いたら3枚くらい増えていたらしい(汗 で、SSK2だけに限って言えば4枚所有していることになっているらしい。2枚はメイン/サブマシンに接続、1枚は職場行きだけど、残りはどうしよう…予備?

音響関係改善計画?

スピーカーとヘッドホンが欲しいなぁ。スピーカーだったらこのへん?かなぁ?

その前にメインマシンのサウンドカード(ONKYO SE-90PCI)に比べてサブマシンのサウンドチップはどうにも微妙すぎるので、サウンドカードでも買うべきか。聞くだけな人間なので90PCI程度の機能でいいのだが、同じものを購入するのは微妙。そうなると200PCIあたりか?倍近く値段に差があるのでどうしよう…

Vista Business"を"アップグレード

いろいろと微妙だとかあまりいい噂を聞かないVistaではありますが、Vista BusinessプリインストールマシンならもれなくXP Professional / x64 Edition / Tablet PC Editionのいずれかに無償でアップグレードできる権利がついているらしい。まあ、そのためにはアップグレード先のOSのパッケージ版*3が必要なのですが。将来の為にXP Pro or x64 Editionのパッケージ版でも買っておこうか悩み中。

ちなみに、XPが出たときも同様の権利があったみたいですね。

iTunes

7.4.2はXP/Vistaのみ対応。サービスの仕様が変わったらしく、その為か?
で、肝心のWin2kの最終版は7.3.2らしい。このあたりはそのうち別記事で詳細にまとめるつもり。

*1 : しかもフォームに設置しただけで

*2 : ドキュメント作成→Excelがこの業界でのデファクトスタンダードらしい。さらに剛の者はPowerPointらしい。普通に考えたらWordあたりの気がするが、流石「世界一売れているが、世界一使いにくいワープロソフト」というところか(笑

*3 : OEM版は駄目

2007/09/14(金)通勤快速という罠

普段職場に向かうときには通勤快速を利用しています。
本数は少なく、また非常に混雑しますが*1比較的早く職場に着くことが可能であるため、これを利用しているわけです。が、ダイヤが乱れると当然の事ながら最も煽りを食います。

列車が定刻よりも遅れた場合は遅延証明書を発行して貰えますが、通勤時間帯(7時~9時)の間に限りWebから遅延証明書を取得出来ます。当然の事ながら列車が遅れたせいで遅刻してしまった場合は、その理由として使う必要が出てくるわけですが、このWeb遅延証明書で発行されるのって通勤快速は含まれないのでしょうか?

Case 1 通勤快速がダイヤから間引かれた場合
今週あった大雨で通勤快速だけダイヤから間引かれました。仕方がないので他の列車に乗ったわけですが、職場に着いてから運行状況を見ると平常通り運行されているとなっています。当然の事ながらWeb遅延証明書も発行していませんでした。
Case 2 通勤快速のみ遅れた場合
これも今週あったことですが、通勤快速だけ遅れる(しかも30分程度)という事態が発生したのですが、こちらの場合もWeb遅延証明書は発行されていませんでした。ちなみにこの場合は駅で遅延証明書を発行してもらいました。

混雑している中で遅延証明書を取りに行くのは時間がかかり、さらに職場に着くのが遅れてしまうのでこのWeb遅延証明書というサービスは便利だと思っていたのですが、あまりあてに出来ないようですね。

*1 : 乗車率200%前後、しかしながら快速や各駅停車だと150%~200%越えと変動するためある意味それらよりも快適(?)です

2007/09/11(火)近況

最近忙しくなったのでなかなか記事を投稿する暇がありません。ここ最近の出来事のまとめ。

台風

各地で猛威をふるったであろう例の台風ですが、電車は止まるは、びしょ濡れになるし、被害は甚大でした。

被害一覧

  • 折りたたみ傘
  • 鞄の中に入れておいた小説
  • スーツ

どこぞのカンファレンスに参加してきました

内容はWebによる情報の利活用という感じですが某M$KKと某Y!の発表には笑わせて頂きました。

某M$KK

Webをオープンなプラットフォームとして捉え、(W3C等による)標準化されたコンテンツを用いた高度な利用方法へと企業・自治体は進んでいるという流れをぶちこわすかのように、「弊社で提供されているAPIをご利用頂ければブラウザを通してOSで提供されている高度な機能が利用可能となり、パワフルなコンテンツの提供が可能となります」とのたまいましたよ。いやー、さすがですね。そのブラウザとやらは未だにCSSの実装が不完全でバグやセキュリティホールが大量にある例のブラウザですかね。そのOSとやらは発売からしばらくたちましたが未だに普及が全然進まずに、古いOSに入れ替えることをアップグレードと揶揄されているあのOSですかね。

言い換えれば、「特定のOSと特定のブラウザの組み合わせでしか見ることが出来ないコンテンツを皆様に提供して頂き、弊社で推し進めているユーザの囲い込み、及びWebでの弊社の影響力の増大にぜひご協力ください」ということでしょうか?そんなブラウザからOSの機能を叩けるようなコンテンツ、危なっかしくて使いたくないのですが。と、いうかお宅のいうパワフルなコンテンツを利用出来なくていいので、この組み込まれているブラウザを窓から捨てたいのですが(笑

いや、そもそも、今回のカンファレンスでも多数の参加者に取り上げられていた、きっと御社には取るに足りないであろうチープなコンテンツが御社のブラウザ上で未だにデフォルトで対応していないのはどういったことなのでしょうか。(他の名だたるブラウザではデフォルトで対応している)ひょっとして御社が提案した競合する規格が標準化されなかったことを未だに根に持っているのですかねー。御社の言うところの「パワフル」なコンテンツもいいですけど少なくとも標準化された規格くらい対応してくれないとますますシェアを持ってかれちゃいますよー。

そうそう、御社のスライドだけ表示がずれているのは、そのパワフルなコンテンツを利用可能となる基盤であるであろうそのOSのバグなんですかねー?それとも御社で提供されているプレゼンソフトのせいですか?ああ、これが御社がいっておられるパワフルなコンテンツなんですね;-p

と、まあ叩くのはこれくらいにして、世間(まあ今回のカンファレンスだけでもいいですが)がここまでオープン化・標準化に進んでいるにもかかわらず、自社の利益しか考えていないという(ふうにとれる)企業も珍しいですね。まともな企業・自治体様はぜひこんな特定の環境しか閲覧出来ないコンテンツを作ることができる技術は無視して頂いて、様々なOS、ブラウザ上で閲覧することが出来るコンテンツを作成して下さい。

某Y!

あのー、何でお宅のマシンにはライバル企業謹製あると思われる「Googleツールバー」なんてものが入っているのでしょうか?しかも、自社のコンテンツにアクセスするためになんでGoogleツールバーから検索しようとしているのでしょうか?

自社の技術に自信がないのか、それとも(色んな意味で)よくわかっているのかは存じ上げませんが、大丈夫だと思いますよ。いくらGoogleツールバーのほうが優れているとは言ってもお宅のWebサイトにアクセスするくらいはできるくらいの機能はあるんじゃないですか?

まあ内容はGoogleばかり目立っているけど、うちも頑張ってるんですよーみたいな感じ?

お仕事

よくわからないものからよくわからないものを作り出すという、禅問答の様な仕事です。VS2005で400行くらい編集するとエディタが重くて使い物にならなくなったり、IntelliSenceによる更新が追いつかなくなったり、MSDNの解説がわかりづらすぎたり、そもそも候補を出してくれなくなったり非常にアレな環境で苦労していますが、なんとかゴールが見えてきた……と思います。が、打ち合わせ中に突如として浮上する新たな事実に翻弄されています。要件くらいはっきりさせてくれ(汗 あと納期も(激汗

その他

学生の頃やっていた(ある意味)良心が痛むような仕事に投げ込まれそうです。時間単価は×1.8くらいでしょうか?(と、いっても自分の懐に入る訳ではありませんが)

まさか社会に出てsinやらcosとかを使うことになろうとは……。

わふわふわふーっ (>ω<)ノシ

最近のお気に入り
[nikoniko:sm985695]

[MFC] 10進RGB値を16進RGB値に変換

RGB値を3つのint型変数で持っている時、このRGB値を16進表記にし、1つの文字列として表したい場合に何かいい方法って無いものでしょうか?
この手のものはよく使いそうなのでライブラリにありそうですが、探し方が悪かったのか見つけられませんでした。で、10進RGB値を受け取って16進RGB値の文字列を返す関数を作ってみた。

処理系はVisual C++ 2005 (VC8.0)です。

struct RGB{
 int red;
 int green;
 int blue;
};

CString convToHexRGB( RGB* rgb ){

 // 入力値チェック
 if( red >= 0 && red <= 255 && green >= 0 && green <= 255 &&
  blue >= 0 && blue <= 255 ){
   return CString::Format( "#%02X%02X%02X", rgb->red, rgb->green, rgb->blue );
 }

 // 入力値が不正な場合
 return "";
}

実際はRGBのそれぞれの値はunsigned char型で格納すれば0~255までの値しか入らないので入力値チェックも必要なくなるのだろうけど、とある制限によりint型でRGBの各値が格納されている為上記のような実装となりました。

以下はunsigned char型で実装した場合

struct RGB{
 unsigned char red;
 unsigned char green;
 unsigned char blue;
};

CString convToHexRGB( RGB* rgb ){
 return CString::Format( "#%02X%02X%02X", rgb->red, rgb->green, rgb->blue );
}

何でRGB値しか入らないのに、しかも仕様書で0~255までの値となっているにもかかわらずint型で入れなければならないんだろう…。
処理系固定なのに…。

2007/09/03(月)大きなファイルの転送(上り)が遅い

自宅サーバに置いてあるファイルのうち、大きなファイルを転送しようとした時に速度が非常に遅くなってしまうことが分かりました。
自宅サーバの回線速度は上下100Mbpsですので理論上は12.5MB/s、実際にはそんなに出るはずもないので4MB/sくらい出ればいい方でしょうか?
で、ちょっと所用で大きなファイルを転送する必要が出てきた為、wgetで取得したのですが遅い、遅すぎる。

約250MBのファイルを落とすのに40分くらいかかってしまいました。約100KB/sです。いくら自宅サーバの処理能力が悪いと言っても1MB/sくらいは余裕で出るはずです。で、某所のサーバを利用してファイル転送速度・及びサーバの負荷について速度の出ない理由を某所のサーバを借りて調べてみました。

調査方法

単純に自宅サーバ領域に巨大なファイル(260MBのzipファイル)を置いて、リモートのサーバからwgetで取得するという方法を取りました。
リモート・自宅ともにフレッツ系の上下100Mbpsベストエフォートの接続環境です。

調査結果

最大で2MB/sくらいの転送速度でアップロードできる瞬間もありますが、その速度で5MBほどDLすると急に遅くなる、というか転送ができなくなってしまいました。しかも、上りだけに影響があるならわかりますが、その環境下にぶら下がっているメインマシンによるブラウジングすら満足に出来ない、メッセンジャーが切れる、などの影響が出てしまいました。10~数10秒ほど待つと転送を再開させることはできるのですが、やはり何MBかアップロードするとまた転送が出来なくなります。

結論としては、プロバイダの制限か、それとも回線業者(みかか)の制限かはわかりませんが、長時間高速にアップロードが行われると、一定時間通信を停止させるというような制限が行われているようです。

調査2

では、どの程度の速度なら通信が停止させられることなく転送を行うことが出来るのかを調査してみることにします。
wgetではDL時の帯域を--limit-rateオプションで制限することが可能です。--limit-rateで指定する値はbytes単位です。
下記は100KB/sでDLする場合の例です。

wget limit-rate=100000 www.example.com/foo.bar*1

*1 : ちなみにexample.comは例として利用する為のドメインとしてRFC2606で規定されています

調査2結果

100KB/s
オプションを設定していない場合よりは通信停止発生頻度が少ないものの、発生する
50KB/s
頻度は非常に少なくはなったがやはり発生する
40KB/s
発生せず。このあたりが限界か?

…なんだかなぁ。ADSL 12Mでも100KB/sは出ていたのにそれよりも悪くなってる(∵)
検閲により削除されましたいや、愚痴だらけになってしまったので自重しました