Thursday, January 21, 2010

Got a NexusOne google phone


というわけで私もNexusOneを購入しました。

購入手段はコムギドットネットさんの記事を参考にVPN経由で。
転送業者はUS Microsoftのtechnet購入のときにつかったスピアネットを。

今さらレビューすることもないだろうけど、とりあえず1日つかってみた雑感を箇条で。
・騒ぎたてるほど動作が軽快ではない (3GSと大して変らないような)
・日本語入力は若干難がある (SimejiもOpenWnnも)
・画面外のスクリーン部分もタッチセンサーの範囲になってて、片手持ちだと意図せず指の腹が触れて誤動作する。(なんとかしてよ)
・液晶綺麗
・日本語フォントがキモイ
・解像度が高いのはいいことだ
・液晶保護フィルム欲しい
・付属のケースにいれてても、スルっと中から落ちそうなので注意

まぁiPhoneではできそうもないことをやれるのがいいですね。(legal的な意味で)

フォントがキモいのは漢字のグリフが簡体字と共通だからだそうです。
ようするに中国語風な漢字です。
まぁ追い追いカスタマイズしていきたい。

Saturday, January 16, 2010

VMware server やめました

仮想環境テクノロジの話題でもなく、Linux KVMのなんたるかを語るでもなく、ただのメモ記事なのであしからず。

これまでVMware Server 2でサーバを運用してきたけどやめました。
理由
・最新カーネルに正式対応しない(moduleのビルドがパッチなしでできない)
・パフォーマンスがよくない
・たまにHost側のカーネルがcall traceだしてて不安
・Javaで書かれた管理UIがあまりよくない

で、代替環境としてはXenとかOpenVZとLinux KVMなどがあるわけですが、XenとOpenVZはカスタムカーネルが必要だし、最新カーネルで使えるかといえば否になります。そこで、標準カーネルで使える(=最新カーネルに変更無しで使える)KVMを試すことにしました。
KVMは単なる仮想化支援機能でそれだけでは環境を構築できないので、KVMを利用した仮想環境ソフトウェアが必要になります。
とりあえず、PCエミュレータのqemuがKVM対応してるのでこれを使うことになります。
また、qemuはlibvirtといわれる仮想環境マネージャの上で動かすことで、管理が可能になります。

まぁ標準カーネルで使えて、ブリッジネットワークでIPv6が使えて、リモート管理ができれば何でも良いのですがKVMくらいしかなさそうです。

で、本題。
いかにしてVMwareから移行したかのメモ。

元環境
・VMware Server 2.0.x
・VMは2つ
・ストレージは raw block device, 単一ファイルのvmdk, 分割されたvmdkの三つ
・ネットワークはブリッジ

ぶっちゃけストレージの変換さえできればそれで終わったようなものです。

ともかく、関連するパッケージをいれる。
 # apt-get install qemu-kvm libvirt-bin

仮想マシンを定義するXMLは virt-manager とか virtinst とかで作ればよい。

まず raw block デバイスは変換の必要はない。そのままつかえる。
    <disk type='block' defice='disk'>                                      
<source dev='/dev/sdb' />
<target dev='vda' bus='virtio' />
</disk>

次に vmdk。これはまぁqcow2形式にするのがいいらしいということなので
 # qemu-img convert -f vmdk source.vmdk -O qcow2 dest.vmdk 

単一だろうが分割だろうかこれでOK
XMLは
    <disk type='file' device='disk'>                                       
<driver name='qemu' type='qcow2'/>
<source file='/storage/1/kvm/vm1.img'/>
<target dev='vda' bus='virtio'/>
</disk>

こんな感じで。
Guest側では /dev/vda? でマウント

次にネットワーク。ブリッジを使ってHostを含めて外部と通信するので、Hostの/etc/network/interfaces に
auto br0
iface br0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
bridge_ports eth0

こんな感じでbr0を作成。
VMのXMLでは
    <interface type='bridge'>                                              
<mac address='fe:ff:ff:7a:a7:4d'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>

こんなんで。

まとめ /etc/libvirt/qemu/vm1.xml

<domain type='kvm'>
<name>vm2</name>
<uuid>b7a82db2-d205-ae5c-021e-a43d21755a42</uuid>
<memory>2097152</memory>
<currentMemory>2097152</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686' machine='pc-0.11'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/storage/1/kvm/vm1.img'/>
<target dev='vda' bus='virtio'/>
</disk>
<interface type='bridge'>
<mac address='fe:ff:ff:7a:a7:5d'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
<console type='pty'>
<target port='0'/>
</console>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
<video>
<model type='cirrus' vram='9216' heads='1'/>
</video>
</devices>
</domain>

virsh create /etc/libvirt/qemu/vm1.xml  などとして起動。
コンソールは VNC でremoteからopenできる。

結局のところ、VMwareに比べてネットワークのパフォーマンスがかなり上がった。
block I/Oはそれほどでもない気がする。若干VMwareよりいいかなというくらい。
すこぶる安定して動いてくれてるのでそれが一番。

あと 2.6.32 から Kernel Samepage Mergingという機能が追加されたのでこれを使うと消費メモリを抑えられる。(らしい)
複数プロセスでの共通ページをマージして重複を排除するという機能。
VMなんかでは比較的共通のメモリ領域が発生しやすいので有効だとか。
# echo 1 > /sys/kernel/mm/ksm/run

それほど効いているような気はしない。

あとはlibvirt, virt-managerの出来次第か。まだ発展途上なのでこれからに期待。

Thursday, December 10, 2009

Clock widget with Japanese holiday for SmartScreen


Objective-CというかiPhoneプログラム開発の勉強がてらに作りました。
高専の課題レベルのプロダクトですが。

祝日になるとスクリーンショットのように表示されます。
それ以外はClock Widgetと同じです。
祝日にならないと何が違うのかまったくわかりません。

自前のcydia repositoryにて配布しています。
http://ideb.northeye.org/
をCydiaのSourceマネージャで追加してください。

ソースコードは整理したらgithubで公開します。ライセンスはたぶんBSDかLGPLです。
今後は有料のウィジェットを駆逐できるようなモノを作っていきたい所存。

Tuesday, December 1, 2009

Twitter for Gruppled Lockinfo


Gruppled LockinfoつかっててTwitterを表示したい人へ。

ところで、Blogのコメントで質問をされても返事をするかわかりません。
仕事の依頼は御遠慮ください。
ちなにみわたくしは最早GruppledもLockInfoも使ってませんし、LockInfoは購入もしてないので今後の改修もとくにしません。



さて。

てっとり早く導入する方法。
Cydiaからlockinfoとclockhideとgitをインスコロール。
git はdeveloper modeじゃないと表示されない(たぶん)。(sudo apt-get install git でもオケ)
terminalあるいはsshでログインして次のコマンドを実行。
$ mkdir src
$ cd src
$ git clone git://github.com/takuo/iPhone.git
$ cd /Library/Themes/
$ sudo ln -s ~/src/iPhone/WinterBoard/GruppledLockInfo.theme .

git cloneでいらんもんまで取得されてますが気にしないか、消すかする。
WinterBoardのテーマセレクタで有効にする。

設定(抜粋)
GruppledLockInfo.theme/Bundles/com.ashman.LockInfo/config.js
 var sections = [
"Clock",
"Weather",
"Mail",
"Calls",
// "Voicemail",
"SMS",
// "Twitter",
"Calendar",
];

"// Twitter", のコメントをはずす (// を消す)

var twitter_username = "";
var twitter_password = "";

アカウント情報を入れる
その他適当に。

たぶんこんだけで表示されます。


今使ってるテーマにインテグレートしたい人はそれなりに知識ありそうなので勝手にやってください。
js/init.js の case "Twitter": あたりをごっそりコピる。
js/twitter.js をコピー、lockinfo.html でロードなりしてやればいいかと。
あーあと、strings/ja.jsだけでしか定義してない変数呼んでるので注意。

js/twitter.jsの著作権は放棄しませんが、改変再配布などは御自由にどうぞ。

ついでにお天気の都市名を日本語にしたい方は strings/ja.js の
var string_city_names = { "yokohama":"横浜" };

となってるとこで連想配列を定義すればいいです。
var string_city_names = { "yokohama":"横浜", "tokyo":"東京" };

みたいな。これは js/weather.js にも手を入れて実装しております。

なにか情報が足りないようでしたらTwitterなどで聞いてみてください。

Saturday, November 28, 2009

MTBをメンテナンスした

すっかり乗らなくなったMTBですが、暇だったので一応洗車してメンテナンスしておこう、と。

といってもたいしたことはやってなくて、前輪後輪を外してバイクウォッシュで丸洗い。
パーツクリーナーで細部のオイルを洗浄。
ブラシはFinishLineのものを用意しました。

まっくろだったカセットスプロケットがピカピカに。

ビフォアの写真がないのだけど、ほんと真っ黒状態でした。

チェーンはチェーンクリーナーキットを使ってがりがり洗浄。

グリスを注油してディレーラの調整とブレーキの調整。

最後はドライオイルで締め。

気がついたらクイックリリースのナットキャップが紛失していた。うーん。


つかったアイテム。

Wednesday, November 25, 2009

かまくらサイクリング

ようやく eneloop mobile booster KBC-L2ASが届きました。
というわけで、こいつの性能確認を兼ねて、先週末は鎌倉方面へサイクリングへ。
デジイチE-620も携行です。軽くはないのでけっこう負担になりました。

由比ヶ浜まで at EveryTrail

Map created by EveryTrail: Geotagging Community

存亡がかかってるらしい。


秋も終盤ですがサーファーがいっぱいおりました。


このへんはロード乗りも結構おおいですね。集団ともすれ違いました。

鎌倉から帰路 at EveryTrail

Map created by EveryTrail: Geotagging Community

鶴岡八幡宮はカオスだったのでスルー。
円覚寺で紅葉を撮影したり。


というわけで、往復80kmくらいでした。

後で会社の方から聞いたのですが、鎌倉方面へは境川サイクリングロードを使うといいよ、ということと、鎌倉からもうちょっといくと「ゆうき食堂」という自転車乗りには有名な食堂があるのでいってみて、ということでした。
あと飯田牧場もいい、と。
なるほど、境川サイクリングロードは盲点だったわ。というかグーグルさん自転車モードをたのみますよ。

そうそう、L2ASは大変良好で、帰宅した時点でiPhoneのバッテリ残量が80%でしたから、たいしたものです。
1日ならこれ一個で十分持ちそうですね。

Wednesday, November 18, 2009

AKG K450 Review

AKGのヘッドホンK450を買いました。

今まで使っていたのがaudio-technicaの安物ATH-SJ5で、その前がAKGのK414Pです。
どちらもケーブルの断線による故障で廃棄してます。

ATH-SJ5は、それはそれは貧相な音質で評価するまでもない機種でした。
それにくらべてK414Pは恐るべきコストパフォーマンスを持った、かなり良いものでした。
が、側圧が強すぎて耳がいたいです。それに、見た目がチープです。
まぁそれを差し引いても評価できる音が鳴ってくれてよかったんですが、残念ながら猫にケーブルを噛み切られてしまったのでした。

そして、今回買ったのが K414Pの後継機種でもあるK450なわけです。

装着感はK414Pと違ってソフトで大変良好です。見た目も概ね改善されております。
しかしながら、プラスチック部分の造りのチープさは否めません。
それが価格帯の問題なのかMADE IN CHINAのせいなのかはわかりません。



さて音質のほうですが、低音域の主張が半端ないです。
それと、ソフトめのイヤーパッドと密閉型の特徴もあいまって、若干籠った感じがします。
が、音の解像度はとても高いので、わりと自然に鳴ってるように感じます。
まれに音がヘッドホンの外から聴こえてくるような錯覚にさえ陥いります。
籠った感じもエージングを熟せば、より自然な音になってきます。
まぁ低音域が強調されすぎな感はあるので、プレイヤーのイコライザで高音域を強めにしてあげると、慣れた音で聴けるかもしれません。

最初は籠りすぎって感じたのでiPodのイコライザを「Treble Booster」にしていたのですが、今では「Rock」でも不快感なく聴けてます。
まぁとにかく低音が強調されるヘッドホンなので、そういう音が好きな人にはとてもいいものかと思います。



音漏れのほうはほとんど気にならないレベルかと思います。ていうか聴こえません。
それと、ケーブルが方出しなのと着脱式なのも評価できますが、ヘッドホン側のプラグは独自形式なので注意です。スペアパーツを購入できるかは知りません。
あとプラグは長いので長い襟だとあたるとかそのへんは好みがわかれるかもしれません。

キャリングケースも付属していますが、ケースがぶ厚くてかさばるので携行には厳しいかと思います。

ヘッドホン自体はポータブル志向なのでコンパクトに収まってよいのですが。

そんなわけで、大変満足のいく製品でした。
自分は外観も含めてK450にしましたが、コストパフォーマンスはK414Pのほうが高いかと思います。1万円以下でしたら間違いなくK414P(まだ買える)あるいはK420。それより少し上を求めるならK430かK450になるんではないかと。