2007-01-01から1年間の記事一覧

SONYの気配り

VAIO TZの電源アダプタには、トラッキング防止のための絶縁処理がされている。少なくとも、これまで他のメーカーで同様の物を見たことがないがこういう取り組みは素直に感心できる。他のメーカーも見習って欲しい。

あとがき

僕の手元では、このコードは、Office 2007のExtending the Office (2007) Fixed-Format Export Featureが出力するEMFを解析する部分で使っているが、このコードは面白いほどちゃんと動作する。実は、EMF+のレコードとしては、他にもフォントレンダリング関連…

EMF+で文字をレンダリングしているのは?

EMF+のレコードをデバッガで追っていて、面白いことを発見した。GDI+では、文字の描画は、Graphics::DrawStringメソッドを使うのだが、実は、その内部では、ExtTextOutが使われているのだ。ということは、逆に言えば、フォントのアンチエイリアスは、CreateF…

GDI+でEMR構造体を使う

Graphics::EnumerateMetafileで指定するコールバック関数、EnumerateMetafileProcを見てみると、EnumEnhMetaFileのコールバック関数EnhMetaFileProcとの比較はそんなに難しくないことがわかる。結局、recordTypeやflagsが増えたが、これはENHMETARECORDの一…

GDI+でEMF+をアンチエイリアスなしでレンダリングする

EMF+をレンダリングしようとすると、GDIだけではどうにもならないものの、かといって、GDI+に全てお任せにすると、アンチエイリアスがデフォルトでかかってしまう。一応、GDI+には、アンチエイリアス系をOFFにするメソッド、Graphics::SetTextRenderingHint…

レノボ、CDMA 1X WIN通信機能内蔵のThinkPad X61/X61sを発売

「レノボ、CDMA 1X WIN通信機能内蔵のThinkPad X61/X61sを発売」という記事。マイコミが一番詳しいっぽいのでここにリンク。数日前の「KDDIもPCデータ通信定額化」という記事もだけど、これは遂にauも本格的に参入を考えているのだろうか。mini PCI接続とい…

D01HW@世田谷区

自宅でD01HWをVAIO TZに接続して、速度チェック。RBB Todayのスピードテストで、下り2.91Mbpp/上り 361kbps。D01HWでイー・モバイルに接続したVAIO TZから、自宅PC(@USEN光ファイバー)にWindows Live Messengerでビデオチャットをしたが、上り下り共に何の問…

D01HW on ThinkPad T60

ThinkPad T60は完全にデスクトップマシンと化している訳ですが、とは言いながら、持ち歩くこともなきにしもあらず。試しに、D01HWを繋いでみました。結論から言えば、何の問題もなし。

SourceForge

SourceForgeの管理って非常に独特なので、なかなか使い方が分かりません。sshで接続する方法は分かるけど、どうやってウェブをアップするのか分からない。

リンク作成シェル拡張

やはり、公開ページを閉鎖してしまったことでいろいろな方にご迷惑をおかけしていたようで、誠に申し訳ありません。諸事情により、ファイルをホストできるサーバーを失ってしまい、どのような形態で公開を続けるかを試行錯誤していました。はてなには残念な…

マークが付いてからが勝負のVAIO TZ

!

バッテリのところに[!]マークが付くと、やはり若干不安になるのが普通なんだが、VAIO TZだと、この状態でも1時間は持つ。全然、[!]な状態ではない。Let's Noteだと、12時間とか持つ機種があるらしいが、そういう機種だと、[!]が付いたときにどの程度バッテリ…

KDDIもPCデータ通信定額化

先日イーモバイルを契約したばかりですが、気になる記事が。KDDI、PC−携帯データ通信に定額制導入へ本当にどこでも使えるというのはメリットとしては大きいですが、問題は値段。イーモバイルよりは高くなると書いてあるけど、イーモバイルは、ADSL込みでも同…

不具合発見

後になって気づいたが、刺すUSBポートによっては正しく認識されないようだ。VAIO TZの場合、手前のポートに刺さないとモデムとして認識されない。これはソフト的な問題ではない気がする。ひょっとして、CD-ROMドライブを装ったりしている機能が裏目に出てい…

VAIO TZ + D01HW

最近購入したVAIO TZ(VGN-TZ90NS)が家以外でも通信できるように、不具合が出ていると有名なイーモバイルのD01HWを人柱覚悟で購入しました。といいながら、8月末までは通信料が無料なので、しばらく使えなくても特に問題はないという計算もありましたが。逆に…

バッテリー消費

例のごとく、この手のUSBデバイスの発熱は比較的多い。このモデムも結構発熱する。触れないほどではないが、十分に熱い。そして、それは最終的に消費電力という部分に効いてくる。仕様によれば、待機時約0.25W、通信時平均約1.5W、通信時最大で約2.5Wだそう…

おまけ:Vistaでの接続表示

接続の名前をemobile、アイコンをユーティリティプログラムのものに変更したので、下のような表示に。

Subversionにaddされた同一ファイルを検出してリポジトリをダイエットする

背景 Subversionのリポジトリを長く運用していると、同じファイルが何度も新規でAddされていることに気づくことがあります。プロジェクトによっては、バイナリをaddせざるを得なくなることも少なくなく、その場合、確実に重複したファイルがリポジトリ上に存…

C#でコードを書いてみる。

コードを書くと言っても、実は全く難しいプロセスはない。ちょっとしたオプションをソケット(Socket)に対して指定するだけである。 Socket s = new Socket( AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp); // Teredoを有効にする con…

Teredoでの通信

Teredoでは、というか、Teredoに対応したIPv6アプリケーションでは、このIPv6アドレスに対して接続をすることになる。OSが全ての処理を隠蔽してくれるので、まるでグローバルアドレスを持っているかのような簡単さだ。Windows Vistaに付属のリモート デスク…

Teredo

P2Pのアプリケーションを自分で作ろうと思うと、おそらく、NAT越えのための実装から始めなければならない。UDP Hole Punchingは比較的簡単に実装できるが、逆に問題は、UDPだと、通信の制御をほとんど自前で作成しないといけないことだろう。これは技術的に…

Teredo事始め

Windows Vistaならば、すぐに使い始めることが出来るが、XPだと、最初に初期化を行わなければならない。しかし、これはそんなに面倒ではなくて、コマンドプロンプトで、次のような一連の作業を行えばよい。 IPv6の有効化 (XPのみ) C:\>ipv6 install Installi…

VMware

VMwareのISOマウントは良くできていて、こちらでは4GB強のISOファイルもマウントできます。ということで、今回は、回りくどいし、パフォーマンスも出ないかもしれないという覚悟の上で、VMware上で動作しているXPにこのDVDイメージをマウントし、それをファ…

Visual Studio Codename Orcas Beta 1

Silverlight 1.1 Alphaで遊ぶために、Orcas Beta 1をインストールしようと考え、MSDNからISOファイルをダウンロードしてきました。そのサイズ、なんと、5.8GB。今まで、DVDイメージのマウントに何の問題もなかったVirtualClone Driveですが、さすがに4GB越え…

Silverlight Tools Alpha

今のところ、Orcas上では、Silverlight用のXAMLを直接いじることは出来ないので、その部分に関しては、Expression Blend 2にお世話になることになる。Silverlightでは、XAMLは完全に独立したソースで、コードビハインドのC#のコードなどは、JavaScriptでDOM…

COM登録時に暗号プロバイダの初期化を行う

そのため、ActiveXでは、普通に考えると、この処理をするためには整合性レベルを通常の整合性レベルまで引き上げる必要がありますが、ただそれだけのために整合性レベルを引き上げるのはちょっと如何な物かと考えられます。 そこで、別の方法を考えることに…

ERROR_PATH_NOT_FOUND

しかしながら、Vista上のIE7では、暗号プロバイダのキーセットが未初期化の場合、一回目のCryptAcquireContextがERROR_PATH_NOT_FOUND(3)という別のエラーで失敗します。Windows Vista上のIE7は、いわゆる低い整合性レベルで動作しているため、暗号プロバイ…

Windows Vista上のIE7でのCrypt API利用

Crypt APIを使うためには、通常、CryptAcquireContextを使用して、暗号プロバイダのハンドルを取得しなければなりません。この時には、KB238187 CryptAcquireContext() use and troubleshootingにあるように、暗号プロバイダのキーセットが未初期化であった…

VC8とVC7の比較

気になるのが、VC7.1ではぶっちぎりに速い組み込み関数版が、VC8ではなぜそんなに遅いのか。コードを比較してみる。 ; process<1> (VC8) fld DWORD PTR _f$[ebp] fmul ST(0), ST(0) fstp DWORD PTR _f$[ebp] movss xmm0, DWORD PTR _f$[ebp] cvttss2si ecx, …

ベンチマーク

次の様なコードを書いてベンチマークを取りました。 #include <stdio.h> #include <stdlib.h> #include <xmmintrin.h> #include <windows.h> template<int N> int f2i(float f) { return (int)f; } template<> int f2i<1>(float f) { return _mm_cvttss_si32(_mm_load_ss(&f)); } template<> int f2i<2>(float f</int></windows.h></xmmintrin.h></stdlib.h></stdio.h>…

cvttss2si

仕方がないので、アセンブラにご登場いただくことに。 int f2i(float f) { _asm {cvttss2si eax, f} } int main(int argc, char* argv[]) { float f = atof(argv[1]); return f2i(f); } そうすると、意外にもコンパクトなコードが生成されました。 mov eax, …