←このブログを購読する
カテゴリ
-
最新の記事
- MySQLのトラブルあれこれ May 10, 2016
- Slideshow メモ May 7, 2016
- OS X でBrewでインストールしたコマンドのパス設定 March 15, 2016
- 就職しました July 12, 2013
- Blog is now working March 8, 2013
最新のコメント
- オリオン on xobni for outlook
- tmori on Disappointment of HP Media Smart Server EX475
- ななほし on Disappointment of HP Media Smart Server EX475
- HeadWing | Disappointment of HP Media Smart Server EX475 on Upgraded HW for HP Media Smart Server EX475
- HeadWing | Grid Junction - UPdated to version 1.5.1 on Grid Junction for WHS
January 2025 M T W T F S S « May 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Category Archives: コンピュータ
Perl 5.8 & I18N
最近、久々にPerlを使い、バージョン5.8を使ったのですが、昔のPerlと比べるとずい分と変わっているところも多く、文字列まわりでちょっと混乱し、ハマってしまったので、わかっている人には無駄な情報と思いますが、Perl 5.8の初心者の人等、それなりに役に立つこともあるかと思いまとめてみました。 例えば、下記のコードは、いわゆる日本語環境下では、何の問題もなく期待した通りに「日本語」という文字列が表示されます。 $string = “日本語”; print $string; で、普通はこれでいいように思うのですが、例えば、UTF-8でファイルに書き出したいと思って、下記のようなコードを実行し、作成されたtest.txtファイルを開いて見ると、見事に文字化けします。 open (OUT, “>:utf8”, “test.txt”) || die “Can’t open test.txt: $!\n”; $string = “日本語”; print $string; print OUT $string; close OUT; 私の場合、英語版のWindows XPで日本語ロケールを設定して使っているので、そのためにこういう問題が起きるのかと最初に思ってしまいました。特に、ほぼすべてのアプリケーションで日本語を表示できるようにするために、システムロケールは日本語にしてあるのですが、米国での使用を前提としたアプリケーションも同時に使うためにユーザロケールは英語(米国)に設定しているので、余計にそう思ったのですが、すべて日本語ロケールに設定しても、日本語版のWindows 2003で試しても同様の結果でしたので、Perl自体の実装の問題(というか仕様)であると思います。 この環境下でも上記の何の変哲もないコードは正常に実行され、「日本語」という文字列が表示されます。しかし、それはたまたまであって内部的には、実はガベージイン・ガベージアウトが行われているのです。Javaのようにソースコードファイルがどのエンコーディングかを指定できるようにするのが本来は筋なのだと思うのですが、Perlの場合は、そういう指定ができるのはutf8を使うかどうかという指定(use utf8を頭に書く)だけが存在し、将来はUTF-8で一本化する方針のため(use utf8もなくす)、シフトJIS等でソースを作成することは正式にはサポートしないという立場のようです。で、上記のようにシフトJISで保存したファイル内のリテラル文字は、適当なバイト列として内部的には扱われてしまうようで(UTF-8になっているわけでもない様子)、文字列に対する操作やコード変換を伴う入出力を行わない限りは、その事実に気付かないということになります。 この場合、主に2つの方法があります。一つ目は、use utf8を宣言して、ファイル自体をUTF-8で保存し、Perl外部との入出力には適切なエンコーディング情報を指定してあげる方法です。コードは、大体次のようになります。 use utf8; open … Continue reading
元NEC社長・経団連副会長の関本忠弘氏が死去
大学卒業後、私がNECに入社した当時の社長、関本忠弘氏がお亡くなりになったそうです。私は入社式でのスピーチを聞いた程度で、直接の面識はありませんが、当時は大変な勢いのあった方で、おそらくサラリーマン社長としては異例のことであったと記憶しております。私が学部生の時は、ご子息が同級生(こちらも直接の面識はありませんが、ミーハー的な学生の間ではそれなりに有名であったようです)であったこともあり、余計に近しく感じることもあったのですが、最近では、あまりいい話題では報道されていなかったようで、人間の人生とはかくも不思議なものであると思います。 その関本さんが大きい顔をできていた大きな要因の一つが、当時パソコンブームを牽引し、一世を風靡していたPC-9801という製品だったのですが、その製品開発を担当していたのが第二OA装置事業部といういかにも地味な名前の事業部でした。私はPC-9801よりももっと地味なオフコンのS3100のOS開発部隊に新人として配属になりまして、その当時の事業部長が戸坂馨氏だったのですが、戸坂さんも今年の2月に亡くなられたことを古川亨さんのブログのエントリでつい最近知ったばかりでした。戸坂さんとも直接の面識はほとんどありませんでしたが、私が入社後、間もなくして専務に昇格され、新入社員の間ですら、将来NECの最年少社長になるのではという言われもない噂がでる程の勢いのあった方でした。私は、5年弱でNECを辞めてしまい、その後NECを振り返ることはあまりなく、きっと戸坂さんは大変偉くなっているんだろと思い込んでいたので、その後の経緯を知ってみると、なんだか割と寂しい道(PC-9801時代からDOS/V、Windows時代への転換後の後始末みたいな仕事)を行かれたようであり、大変意外であり、これもまた人間の人生はちょっとした見た目では測れないものだなぁと思ったのです。 こうして書いていると、なんだかこういうのって大リーグへの夢を抱きながらも現役ピーク時には挑戦できなかった選手と重なるのかなあとも思えます。今は沢山の選手が大リーグへ挑戦していますが、それも良くも悪くも先人のつけた道があってこそなのですが、PC界でのそういう役回り(まあ踏み台みたいなもの)になった人達の代表が、上記のお二人という感じがするのです。今、日本のITブームに乗っかっている人達やシリコンバレーとかで活躍している若者達が、こういう人達のことはほとんど知らないのはいいとして(昔は昔で今とは関係ないですし、知る必要もないので彼らのせいではありません)、こういう人達の功績が金銭的にも名誉的にもあまり報われるようになっていない大きな要因である日本の様々な慣習や仕組みに複雑な想いが湧くのは私だけでしょうか。まあ、そういう仕組みで働くことを受容した(あるいは受容せざるを得なかった)報いでもあるし、このお二人はそういうフレームワークを若者に提供していた側でもあるので、自業自得と言えなくもありませんし、ひとつにはそういうフレームワークから抜けれなかったがために寂しい終わりとなったという見方もできるのではないかと思うのです。 個人的にも、そういうフレームワークを常識とし、海の向こう側シリコンバレーでは、全く異なる形態で働く同年代の技術者達がいることをまるで知らずに、そういう時代の変遷の中を通ってきた者の一人であるため、シリコンバレーに来て、こちらの仕組みを理解するにつれ、もっと若い時にこういう風に働けたらどれだけ違っていただろうという想いを持たないことの方が難しかったことを思い出します。このお二人の人生を見てみれば(別に裁こうとしているわけではありませんので誤解なきよう。このお二人のように輝かしく見えても結局は寂しく終わっていることに比べれば自分の場合は、もっと小さなレベルのキャリアであったのだからその結果は推して知るべしという程度の意味です)、自分がそれらの人の真似をしていれば似たような人生を歩んでいただろうと思うので、日本で10年もキャリアを積んだのにそれを思い切って捨てて、海を渡れたことは、それらのフレームワークからの脱却であったので、そこに意義があったと言えると思うのです。こちらで特に成功しているわけでもなく、むしろ大変なことの連続ではありますが、どうせ大したものでもなかったキャリアにこだわらず、日本にいれば絶対に学べなかったであろうことが早く多く学べた自分はずっと幸せであるという想いを強くしました。シリコンバレーもいつかは過去のフレームワークになっていくのでしょうし、いつもパラダイムシフトを自身に課して行くことが人間の成長に必要不可欠であるのですが、まさにそのような本質を知っている点がアメリカの強さであると思います。 当時大変な勢いのあった日本国内PCブーム初期時代の象徴を演じられた役回りであった方達で、私自身が少しなりとも関連のあったお二人が奇しくも同じ年にこの世を去り、まさに時代の遷移を感じながら、今の時代における自分の役回りは何であるかに想いを馳せつつ、お二人のご冥福を祈り、このエントリを終わりにしたいと思います。
秀丸 – 複数デスクトップ保存マクロ
私は、テキストエディタとしては相変わらず秀丸を愛用しているのですが、デスクトップの保存と復元が1セットしかできないことに少し不便を感じるようになり、何か手頃なものがないか探してみると、下記のものを発見。 複数デスクトップ保存マクロ インストールは、単純にダウンロードしたLZHを秀丸をインストールしてあるディレクトリに解凍するだけです。私はMaruoという英語版の方を使用しているのですが、復元マクロがアクセスしているレジストリキーのパスをHidemaru\EnvとなっているのをMaruo\Envに修正してあげればきちんと動作しました。 今のところ不具合なく動作しているようです。 これでまた少し便利になりました。
Norton Internet Security 2008
昨年、マイクロソフトのWindows Live One CareがPC 3台まで使えて、キャンペーンしていたのでリベートを合わせると実質$9程度で販売していたので、試すのには丁度いいと思い、購入してから約1年が過ぎ、ライセンスを更新する必要が出てきたのですが、One Careはどうも機能が貧弱で、カスタマイズもあまりできないし、なんか相性の悪いソフトも合ったり、CPU使用率が100%にしょっちゅうなるなど、いい加減嫌になっていたので、もっとまともな製品を探していました。 で、日曜日のBest Buyの広告を見ていると、Norton Internet Security 2008が多分発売キャンペーンの$45で販売していて(リベートとか面倒なものは一切なし)、ウェブをチェックするとPC3台まで使えるらしいことがわかり、早速ウェブから注文して、月曜日にピックアップしてデスクトップとThinkpadのそれぞれにインストールしてみました。 今のところ、One Careより千倍ぐらいいいです。以前のバージョンのNorton Antivirusと比べてもかなりスキャン速度が向上している感じです。少なくともフルスキャンしているときに体感的にはひどい速度劣化を感じさせません。とりあえず、今購入するならこれですね。CiscoのVPNクライアントやVMWareなんかとも特に衝突はないみたいですし、いい感じです。
Posted in コンピュータ, 技術, 日記
Tagged anti-virus, Norton, security, virus-scan, コンピュータ, セキュリティ
Leave a comment
Thinkpad Reserve
限定版の革張Thinkpadが販売されている模様。私もこういうのは比較的好きな方なので(環境保護関係や動物愛護関係の方面からはけしからんと言われるかも知れませんが)、つい値段を見に行ってみたら$5,000もすることがわかって、完全に対象外。 ちなみに販売地域に日本は入っていないけど、中国や香港は入っているので、やはり超富裕層はその辺にいるということでしょうか。
USB 2.0 Hub from Kensington
私のメインマシンのThinkpad X32は、USBポートが2つしかなくて、最近また半分は家で仕事をする体制になったので、ウルトラベースに置いたまま、色々とUSB機器を接続して使う必要が増えたので、USB 2.0のハブが必要と相成りました。 先日、Circuit Cityの広告を見ていたらKensingtonのUSB 2.0のハブが$9.99 (店頭では、$19.99で$10のリベート後)でセールになっており、手持ちの$10ギフトカードと$10のメールインリベートを合わせるとほぼ税金負担分の$1程度となるので、購入しました。先日のエントリで書いたように、$10は$40以下なので書留ではない普通便で送るので、最悪リベートがもらえなくても$10程度なので後悔はしないというスタンスです。 で、接続してみたのが下の写真です。 今のところ、快調に動作しています。ACアダプタを接続しないとUSBポートからの電源が必要な2つ以上の機器はドライブできないようで、 それはそういうものなんでしょう。それでも、全体的に非常にコンパクトに仕上がっていていい感じです。
64bit Integer in MinGWC
ちょっとだけ64bit整数を使う必要があって、gccでは、ちゃんとunsigned long long int (unit64_t)が使えて32bitマシンでも64bit整数が扱えることがわかったので、手軽に使えるgcc系統のmingwcで試すことにしました。コンパイル等は比較的すんなり通ったのですが、どうもprintfで書式指定に使えるはずのllが使えない。色々と調べていたら、mingw cでは、MicrosoftのCランタイムライブラリに依存していて、gccのll表記は使えなくて、printfではI64dとかI64uを使えば、ちゃんと64ビットの数値が表示できるということがわかったのでメモしておきます。 http://www.mingw.org/MinGWiki/index.php/long%20double C++(g++)の場合は、cout への出力はuint64_t型の変数をきちんと認識して自動的にフォーマットしてくれる。その代わり、今度は64bitの定数には、必ずLLかLLUを付けてやらないとコンパイルエラーにされてしまうので注意が必要。
SimpleTech SimpleDrive Portable Hard Drive 120GB
先日、これ買いました。 SimpleTech SimpleDrive Portable Hard Drive 120GB 普段は、大体$120ぐらいが通常で安くても$100近辺だったのが、新しい色のものが出たせいか、$90弱で売っていたので、私のX32のディスクが40GBしかないこともあってだいぶ空き領域がなくなってきていたので、これは買いということで入手しました。 デザインがフェラーリのデザインをした会社によるらしくて、確かにいいです。質感もよくただのブラックかと思ったら、よく見るとラメみたいな金色の粉みたいなものがちりばめられていてかなり凝っています。見た目だけでなくつくりもしっかりとしていて、確かに頑丈そうです。ネットでレビュー等を見るとWestern Digitalのとかはケースがかなりちゃちくてすぐに駄目になるようで、SimpleTechのものが一番よさそうです。おそらく曲面にして少し凸になるようにすることで簡単にへしゃげない強度を出していると思います。5400RPMなのがちょっといけませんが、2.5インチディスクでは、7200RPMはまだ主流ではないので、そこは妥協ですね。ThinkPadはブラックが基調なので、結構色も合っていて、最近買ったものの中では長く気に入って使えそうな一品になりそうです。
Posted in コンピュータ, 技術
Tagged portable_hard_drive, simpledrive, simpletech, thinkpad, コンピュータ
Leave a comment
Sysinternals was acquired by Microsoft
久々にsysinternals.comへ行ってみたらいきなりマイクロソフトのページへ飛んだのでびっくり。いつの間にか買収されてたんですね。 http://www.microsoft.com/technet/sysinternals/ まあ、マイクロソフトにしてみれば、内部情報なしに自分達よりもすぐれたユーティリティをばんばん出されたんじゃ、こりゃかなわんから買ってしまおうということになったんでしょうね。sysinternalsの人達(確か数人で数億以上の売上があった超高効率の会社だったはず)にしてみれば、ここらが潮時だったんでしょうか。内部資料へのアクセスができれば、更に磨きがかかるんでしょう。まあ、いずれにしてもこの買収は自然の成り行きというか、特に驚きはないんですけど、何で今頃(去年のようですが)という感じはします。 PSToolsなんかもまだダウンロードできますし、ずい分とカバー範囲が広がっているようです。だけど、無料ではなく販売していたツールが見当たらんですね。この辺は販売中止にさせられたんでしょうか、それともTechNetかなんかに入っているんでしょうかね。 その辺が本当の買収理由なんでしょうか。暇な時に探してみます。製品の名前を忘れてしまったのですぐにググれない。旧サイトはなくなっているし。
Posted in コンピュータ, ビジネス, 技術
Tagged microsoft, pstools, sysinternals, technet, コンピュータ, ビジネス
Leave a comment
Selenium – target=_blankのLinkへの対処方法
Seleniumを既存のWebサイトのテストへ適用しようとする場合に厄介なことの一つが、target=_blankでブラウザの別ウィンドウを開いてしまうようなリンクをテストしようとする場合があります。現バージョンでは、JavaScriptのOpenコマンドで指定するWindowIDがないとselectWindowコマンドが効かないため、新しく開かれたウィンドウを操作することができません。で、それの回避策として、target=_blankをやめてJavaScriptのopen()コマンドを使うように書き換えるという手が使えない場合の対処方法がOpenQAのフォーラム内の下記のスレッドにありました。 target=_blankのLinkへの対処方法 要は、JavaScriptを使って、現在のドキュメント内のtarget=_blankをtarget=’popup’みたいなウィンドウ名(タイトルではなくWindowID)で開くように動的に書き換えてあげてそれをやはりJavaScriptで新しいウィンドウをそのウィンドウ名で開いてから、目的のリンクをクリックすれば、そのウィンドウ内に開かれるので、先に付けた名前でそのウィンドウが選択可能になるというアイデアです。 SeleniumのHTML形式だと、概ね下記の手順がウィンドウを開いて目的のテストを実行してからウィンドウを閉じるという一連の処理となります。 storeEval javascript{“this.page().findElement(‘link=link on current page’).target=’popup'”} dummy storeEval javascript{“selenium.browserbot.getCurrentWindow().open(”, ‘popup’)”} dummy click link=link on current page selectWindow popup WaitorTitle title of popup page <<– ここに一連のテストが入る –>> storeEval javascript{“this.browserbot.getCurrentWindow().close()”} dummy storeEvalコマンドで指定している変数dummyはダミーの変数で後のコマンドでは使用しません。フォーラムのスレッドの途中で誰かが指摘しているようにウィンドウを閉じるのにはcloseコマンドだとちゃんと動かないことがあるようなので、上記のようにこれもJavaScriptのClose()を呼んでいます。 色々と試してみたのですがリンク先がスタティックなWebページだとこれでうまく動作するようですが、リンク先が更に動的コンテンツだったり、PDFを開いている場合にはうまく行きませんでした(先に開いた空白のウィンドウを無視してやはり別ウィンドウが開かれてしまう)。これは多分ブラウザがそのように処理しているのだと思うのですが、この辺にもtarget=_blankがなかなかなくせない理由の一つなのかも知れません。この辺の動きはIEでもFireFoxでもほぼ同じでした。 確か、selectWindowコマンドでタイトル名を指定しても動作するように次のバージョンではなるようなことも書いてあったので、それも試してみようと思いますが、一応上記回避策も使える場合はありがたいので、この問題に直面した方は試してみてください。