‘default’ カテゴリーのアーカイブ

Let’s note J9の店頭モデルとマイレッツ倶楽部

SSDに換装してWindows7まで入れたLet’s note R5が、仕事で使うには遅すぎて遅すぎて耐えきれなくなったので、Let’s note J9を購入しました。Sandy Bridge搭載のLet’s noteとか待ちたかったけど、やむなし。

J9は店頭モデルとパナソニックの直販モデル(マイレッツ倶楽部)があるのですが、迷った末に店頭モデル購入。なにせ店頭モデルは10万を切る値段で、直販モデルは30万前後とかなり差があるので…

この店頭モデルと直販モデルの性能差を、あまり手間もかけずに縮めようとするのが今回の趣旨です。

とりあえず本体はPCボンバーの通販にて86,879円でした。Let’s note J9 CF-J9NYABHR シフォンホワイト。Amazonだと95000円くらいですか。

プレミアムエディションと店頭モデルの比較表をエントリの下の方に載せておくので参考までに。

CPUが上記モデルではCore i3 370M(2.40GHz)、直販のプレミアムエディションモデルだとCore i7 640M(2.80GHz)なのですが、これはまぁ、埋められません。でも経験上アーキテクチャが同じなら差は驚くほどは体感を得られないので、別にいいと思います。

必須なのはSSDです。J9では換装がすごくやりやすくなったので、おすすめです。体感速度が全然違う上に、振動にも強くなります。SSDは256GBにすると2011年1月現在で5万円前後というところでしょうか。120GBなら安心のIntel製でも2万円くらいで買えます。

あと、メモリですが、プレミアムエディションモデルでは元々4GBが載っているので、増設して8GBまで増やせますが、店頭モデルでは2GBなので増やせても6GBまでということになります。

自分の用途はChromeのタブを100個くらい開いてVisual StudioやEclipseでプログラムを書くのがメインなので、4GBくらいは必要なラインです。6GBあれば安心です。4GBの追加メモリモジュールも大抵5000円もしないので上限まで入れておけばいいと思います。

6GBのメモリを使うとなると、店頭モデルに標準でインストールされているWindows7は32bit版なので、上限的につらいところです。が、最近のLet’s noteではOSの32bitと64bitをBIOSメニューから簡単に切り替えができます。まぁ、切り替えというかBIOSメニューからリカバリーをする時にインストールするOSを32bitにするか64bitにするかを選択できるということなのですが。

SSDに入れ替える前にリカバリーディスクを作成して、復元領域をバックアップするのですが、その時OSが64bitでも、復元時には購入時に入っていたOSと同じになります。64bitにしてからリカバリーディスクを作れば後の手間がなくていいかと思ったのですが、単純に二度手間になるだけなので、64bit切り替えはSSDへのリカバリー後にやりましょう。

リカバリーディスクの作成にはDVD-Rドライブが必要になります。Let’s noteのマニュアルでおすすめされているのはBUFFALOのポータブルDVDドライブです。

個人的にはスロットインタイプが好きなので、以下のようなものを使ってます。

Windowsのプログラムから「リカバリーディスク作成ユーティリティ」を選択して、空のDVD-Rメディアをドライブに入れて実行するだけです。一層のディスクなら、2枚必要になります。「取扱説明書 準備と設定ガイド」にリカバリーディスクの作成について詳しく書いてあるので、そちらも参照してください。

SSDの換装は、こちらのブログが写真付きでわかりやすく解説されています。

Panasonic CF-J9のHDD を換装する | ゆめとちぼーとげんじつと

メモリの増設はこちらで。

レッツノート J9 メモリ増設 – satoweb_log

SSDを入れ替えたあと、リカバリーディスクを使ってSSD上にリカバリー領域を復元します。リカバリー領域を復元後に電源を再度入れると、セットアップが開始します。セットアップをしてもそのあとにWindowsを入れ直すことになるので、復元後、そのままBIOSメニューを開いて再インストールへと進むのが良いかと思います。

64bitへの切り替え方はマニュアルに書いてあります。Windows起動前にBIOSメニューを表示して、工場出荷時の状態に戻す途中で、32bitにするか64bitにするか聞かれるので、64bitを選択するだけでOKです。

ここまですれば、安い店頭モデルでもかなり快適になると思います。まぁ、実際そこまでしなくてもかなり快適ですが。

プレミアムエディションモデルと店頭モデルの抜粋した比較表は以下になります。bluetoothのモジュールの値段なんて大した額ではないでしょうから、ほぼCPUとSSD代とバッテリーパック代、OFFICE代、FOMA代ということになるでしょうか。OSの差額もありますが。

総額 86,879円+19,950円+4,476円=111,305円になりました。

ちなみにバッテリーパック(L)はこちら。

標準バッテリーパック CF-VZSU68JS 商品概要 | パソコン | Panasonic

直販よりはAmazonの方が3000円ほど安いですね。価格.comで見る限りだと20,129円くらいからあるようです。

品番 CF-J9LV4ADP(ワイヤレスWANモデル) CF-J9NYABHR
インストールOS Windows® 7 Professional 64ビット 正規版 (日本語版) (Windows XP Mode 搭載) Windows® 7 Home Premium 32ビット 正規版 (日本語版)
CPU インテル® CoreTM i7-640M プロセッサー インテル® Core™ i3-370M プロセッサー
(スマートキャッシュ 4MB、 動作周波数 2.80 GHz、ターボ・ブースト・テクノロジー利用時は最大3.46GHz) (インテル®スマートキャッシュ 3 MB、動作周波数 2.40 GHz)
チップセット モバイル インテル® HM55 Express チップセット
メインメモリー 標準4GB(オンボード) / 最大8GB(DDR3 SDRAM) 空きスロット1 標準2GB DDR3 SDRAM (最大6GB)、空きスロット1
ビデオメモリー 最大1696 MB(メインメモリーと共用) 最大763MB/2GBまたは4GBのメモリー増設時 最大1563MB(Windows 7[32ビット]の場合)(メインメモリーと共用)
グラフィックアクセラレーター インテル® HD グラフィックス搭載 (インテル® CoreTM i7-640M プロセッサーに内蔵) インテル® HD グラフィックス (インテル® Core™ i3-370M プロセッサーに内蔵)
HDD/SSD SSD256GB (Serial ATA) 160 GB HDD (Serial ATA、5400回転/分 2.5型HDD)
無線LAN/WiMAX インテル® Centrino® Advanced-N + WiMAX 6250
WiMAX: IEEE802.16e-2005 準拠(受信最大20Mbps:送信最大6Mbps)
無線LAN : IEEE802.11a(W52/W53/W56)/b/g/n 準拠 (WPA2-AES/TKIP対応、Wi-Fi準拠)
ワイヤレスWAN ワイヤレスWANモジュール内蔵(FOMA®HIGH-SPEED対応)(受信最大7.2Mbps:送信最大5.7Mbps) なし
Bluetooth Ver.2.1 +EDR/Class 2 なし
LAN 1000BASE-T/100BASE-TX/10BASE-T
ExpressCardスロット 搭載されていません
SDメモリー SDメモリーカード×1スロット (SDHCメモリーカード/SDXCメモリーカード対応 / 著作権保護技術対応)
拡張メモリースロット DDR3 204ピン SO-DIMM専用スロット×1(1.5V/PC3-6400/DDR3 SDRAM)
インターフェース USBポート×3(USB2.0)、LANコネクター(RJ-45)、外部ディスプレイコネクター(アナログRGB ミニDsub 15ピン)、HDMI出力端子、FOMAカードスロット USBポート×3(USB2.0)、LANコネクター(RJ-45)、外部ディスプレイコネクター(アナログRGB ミニD-sub 15ピン)、HDMI出力端子
バッテリー駆動時間 バッテリー(S)使用時:約6.5時間 約7.5時間
バッテリー(L)使用時:約9.5時間 約11時間(別売バッテリーパック[L]使用時)


applemtp.sysのブルースクリーンの解決方法

隣の席の人がMacBookにBootCampでインストールしたWindows XPで、ブルースクリーン(BSOD)に悩まされてたので解決メモ。applemtp.sysのエラーで、タッチパッドのドライバらしい。XPとVistaで頻発するとか。

Apple – Support – Downloads

まぁ、つまり、アップデートしろ、と。

自分で試したわけではないので、何ら保証はできませんが。

一応このエラーだけを修正するアップデートは

Multi-Touch Trackpad Update for Windows XP & Vista

これなんだけど、普通のBoot Camp Updateを当てればOKなのかな?

訂正:

逆らしい。

graっちぇgraっちぇ: Trackpad patch v 2.1.2.100はスルーの方向で。(泣)

2.1.2.100のパッチを当てた人がエラー起きてるらしい。隣の人はBoot Camp Update 2.1を当てたらエラーが起きなくなったと言っていたが…

バージョンが戻って安定するようになったのか、もしくは気のせいか。

追伸:

やっぱ安定してないらしい。

とりあえず古いapplemtp.sysを持ってきて差し替えたらいいんじゃないでしょうかね。


pygletのHIDモジュールを使う

Mac OSXのPythonでHIDを使う系の話の流れで、Python2.5+SWIG+libHIDUtilities.dylibを追っていたのだけど、ここに来て問題発覚。

SWIG Basics

SWIGってコールバック呼べないのね…コールバック関数の結果を変数として得ることはできるみたいだけど。HIDの入力イベントを通知とかはできないみたい。一応、フラグをずっと監視とかしたらできそうだけど。

しょうがないので、アプローチを変更。HID関係のメソッド名で検索をかけていたらpygletなるものを発見。クロスプラットフォームのマルチメディアライブラリ。OpenGLから動画の再生から色々できるらしい。日本語のドキュメントもあり。結構メジャーなのかな。

pyglet プログラミングガイド

HID部分だけ引っ張り出して使えそうな雰囲気なので、これで試してみる。

ちなみにさっくりHIDのデバイスリストを列挙するテストをしてみた。

>>> import pyglet.input
>>> pyglet.input.get_devices()
[DarwinHIDDevice(name=Apple IR), DarwinHIDDevice(name=***)]

マーヴェラス。


OSXのlocateデータベースを更新する

Mac OSX 10.5 Leopardでlocateコマンドのデータベースを更新する方法のメモ。

$ sudo sh /etc/periodic/weekly/310.locate

で、おk。


TortoiseSVNをMac OSXで使う

ニーズは結構あるんですよね。デザイナとかMacユーザ多いし。Macユーザに聞くとMacのSubversionクライアントには決定打がないとも。

TortoiseSVN for Apple OSX

Wineとかで何とかTortoiseSVNをMac上で動くようにしてしまおうという記事。まだ試してないですが、時間があるときにMac miniにインストールしてみよう。


PythonでWebカメラから静止画を撮影してみる

あ、Windows Live Writer新しくなってから始めて使ったわ…

VideoCapture(名前ないのか…)を使うと楽にカメラが扱える。

PILをインストールしてから、VideoCaptureの当該バージョンを自分のPythonインストールディレクトリに上書きすればいいだけ。

実行環境はWindows Vista Ultimate+Qcam Pro for notebook+Python 2.5

ソースは以下。超簡単。

import re
import time
from VideoCapture import Device

def main():
    t = time.time()
    cam = Device(devnum=0,showVideoWindow=1)
    print time.time() - t
    cam.setResolution(640,480)
    print time.time() - t
    for i in xrange(100):
        print time.time() - t
        cam.saveSnapshot('testtestimage%d.jpg' % i)
    print time.time() - t

if __name__ == '__main__':
    main()

実行結果は以下の通り。わりと早いし安定してる気がする。初回のsaveSnapshotで時間がかかるのか。以降は0.02秒程度なので余裕。今後実用してみて耐久性を見る予定。

0.680999994278
0.891999959946
0.891999959946
2.18300008774
2.20499992371
2.22799992561
2.25200009346
2.27399992943
2.29699993134
2.33400011063
2.35700011253
2.38000011444
2.40300011635
2.42499995232
2.4470000267
2.46900010109
2.49099993706
2.5150001049
2.53699994087
2.56100010872
2.58599996567
2.60800004005
2.63100004196
2.65700006485
2.6779999733
2.70199990273
2.72499990463
2.74699997902
2.77200007439
2.79399991035
2.81900000572
2.84200000763
2.86400008202
2.88800001144
2.9240000248
2.94600009918
2.96900010109
2.992000103
3.01399993896
3.03900003433
3.06399989128
3.08800005913
3.11100006104
3.132999897
3.15499997139
3.18700003624
3.20900011063
3.23200011253
3.25699996948
3.27999997139
3.30500006676
3.32699990273
3.34899997711
3.37199997902
3.39299988747
3.41400003433
3.43600010872
3.45900011063
3.48000001907
3.50300002098
3.52500009537
3.54600000381
3.56900000572
3.59100008011
3.61299991608
3.63499999046
3.65799999237
3.68000006676
3.70300006866
3.72399997711
3.7460000515
3.76900005341
3.79099988937
3.81299996376
3.83500003815
3.8599998951
3.88199996948
3.90599989891
3.92700004578
3.9470000267
3.97799992561
4.0
4.02200007439
4.04500007629
4.06699991226
4.09100008011
4.11500000954
4.13599991798
4.15899991989
4.1819999218
4.20399999619
4.22600007057
4.24900007248
4.27200007439
4.29299998283
4.31699991226
4.33899998665
4.36299991608
4.38400006294
4.40499997139
4.42499995232
4.44900012016
4.47000002861

ちなみにshowVideoWindow=1はカメラのウィンドウを表示するモードなので、0にしてテストもしてみたが、時間の増加量は大差ない模様。

あと、Qcamのオートフォーカスを効かせるためには一度saveSnapshotしてから、しばらくおかないとダメらしい。試してないけど、getImageでも多分平気。

キャプチャボードとかのソースでもいけるっぽいので、何かできそう。というか、DirectShowソースか。画面キャプチャで何かできるかな…


PythonでHIDからiSerialNumberを取得

USBデバイスからiSerialNumberを取得するべく悪戦苦闘していた。

kernelのDeviceIoControlで何とか取得することには成功したのだけど、さらに調べてみるとhid.dllにHidD_GetSerialNumberStringという関数があるのを発見。

hid = windll.hid
buf = c_ubyte * 0xff
buf = buf()
print hid.HidD_GetSerialNumberString(handle, byref(buf), 0xff)
print buf[0:]

こんな感じでOK。Pythonの場合。バッファは適当。最大128ワイドキャラクタとか書いてあったけど。

HidD_GetSerialNumberString(MSDN)


Pythonで簡単にXML-RPCクライアント

Pythonでxmlrpclib使うと、簡単にXML-RPCが扱える。

FlashとサーバサイドでXML-RPC使おうとしたときに、サーバ側のAPIのテストと、XMLのサンプルをFlash作る人に渡したりするのだけど、それがちょこっと書くだけでできるので便利。何せ2行で済む。

# -*- encoding: utf-8 -*-
import xmlrpclib

print xmlrpclib.dumps(
    (
        {'image':xmlrpclib.Binary('hoge')},
        {'username':u'name'},
        {'title':u'item title'},
        {'mail':u'user e-mail'},
        {'comment':u'item comment'},
        {'itemlist':[3,2,3,1]}
    ), 'sample.hogehogeAPI')

結果はこんな感じに。

<?xml version='1.0'?>
<methodCall>
<methodName>sample.hogehogeAPI</methodName>
<params>
<param>
<value><struct>
<member>
<name>image</name>
<value><base64>
aG9nZQ==
</base64></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>username</name>
<value><string>name</string></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>title</name>
<value><string>item title</string></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>mail</name>
<value><string>user e-mail</string></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>comment</name>
<value><string>item comment</string></value>
</member>
</struct></value>
</param>
<param>
<value><struct>
<member>
<name>itemlist</name>
<value><array><data>
<value><int>3</int></value>
<value><int>2</int></value>
<value><int>3</int></value>
<value><int>1</int></value>
</data></array></value>
</member>
</struct></value>
</param>
</params>
</methodCall>

簡単すぎる…

んで、この結果をFlashの人に渡して、こんな感じで送ってくれと言える。

サーバのAPIをテストする場合は

# -*- encoding: utf-8 -*-
import xmlrpclib

server_url = 'http://sample.dev/add';
server = xmlrpclib.Server(server_url);

result = server.sample.hogehogeAPI(
        {'image':xmlrpclib.Binary('hoge')},
        {'username':u'name'},
        {'title':u'item title'},
        {'mail':u'user e-mail'},
        {'comment':u'item comment'},
        {'itemlist':[3,2,3,1]}
    )

こんな感じで書き換えてやればOK


RHEL 5.2でSkypeを使う

ニーズ度外視エントリシリーズ。

Skype for Linuxをダウンロード – 最新バージョンをダウンロード

SkypeのサイトにRedHat Enterprise Linux版はないので、一番可能性のありそうなCentOS版を持ってくる。

LinuxにRPMで公開鍵をインポートしてyum経由でSkypeをインストールするメモ – Knowledge Database IT

ほぼまんま、こちらの情報でOK。

$ wget http://www.skype.com/go/getskype-linux-centos
$ wget http://gd.tuwien.ac.at/infosys/phone/skype/rpm-public-key.asc

# rpm –import rpm-public-key.asc
# yum -y install skype-2.0.0.72-centos.i586.rpm

Loading "rhnplugin" plugin
rhel-x86_64-server-5      100% |=========================| 1.4 kB    00:00
Excluding Packages in global exclude list
Finished
Setting up Install Process
Parsing package install arguments
Examining skype-2.0.0.72-centos.i586.rpm: skype – 2.0.0.72-centos.i586
Marking skype-2.0.0.72-centos.i586.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package skype.i586 0:2.0.0.72-centos set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
skype                   i586       2.0.0.72-centos  skype-2.0.0.72-centos.i586.rpm   19 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 19 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: skype                        ######################### [1/1]

Installed: skype.i586 0:2.0.0.72-centos
Complete!

こともなくインストール完了。

vncserverを起動して確認してみる。

$ vncserver -geometry 1024×769 -depth 16

で、WindowsマシンからこのサーバのIPアドレス:5901に接続してvncの画面上で

$ Skype &

見事Skype起動完了。簡単。チャットを使いたいだけなのでこれでOK。


Windows Vistaでシンボリックリンクを削除する

Vistaではシンボリックリンクを簡単に作成できる。

ローカルのApacheに色々開発環境移すのにシンボリックリンクを作った方が、全部htdocs以下に配置するより、開発単位でフォルダを一元管理できるので、ちょっとやってみた。

何より開発フォルダ名には日本語入ってるしね。

C:\xampp\htdocs> mklink /D hoge d:\dev\ほげ\htdocs

で、さっくりと c:\xampp\htdocs\hoge というシンボリックリンクディレクトリが作られる。

最初作る場所を間違えたので、移動しようと思って

C:xxx> move hoge C:\xampp\htdocs

とかやったら

アクセスが拒否されました。

とか表示されて移動できなかったので、一度消すことにした。

で、うっかり

C:\xxx> del hoge
C:\xxx\hoge\*、よろしいですか (Y/N)? y

としたらオリジナルの方の中身だけ消えてしまった…

そういえばディレクトリの削除はrmdirでしたね…

まぁ、当然といえば当然、なのかな?昔はこんなに親切に中身消してはくれなかったような気が?

delする前にそんな予感がして、バックアップを取ってあったので何も問題はなかったですが。

C:\xxx> rmdir hoge

とすればシンボリックリンクのディレクトリだけ削除できてOK。

…またうっかりやりそうだな…