2010/01/26

Firefoxでブックマークを新しいタブで開く方法

Firefoxでブックマークを開く際に、
「新しいタブで開く」をデフォルトにするために、

Oretab
http://espion.just-size.jp/archives/09/181191625.html

というアドインを使わせていただいていたのですが、
Firefoxが3.6にバージョンアップして、
上記のアドインが使えなくなってしまいました。

代わりに以下のアドインで同様の機能が実現できるようです。

Tab mix Plus
https://addons.mozilla.jp/firefox/details/1122

2010/01/20

【ニコニコ動画】気象衛星ひまわり第三話「ひとりぼっちの宇宙」


list
( ;∀;)イイハナシダナー
アイマスがわかって、理系の人は楽しめるかと(対象セマッ!)
事業仕分け見てて思いましたが、税金を使う関係者はその重要性を洗脳レベルでわかりやすく説明する義務がありますね。
めちゃくちゃ重要で、評価されない仕事ですが...

2010/01/17

Mabinogi on Wine

Ubuntu 9.10にWindows APIエミュレータのWineをインストールしてマビノギを動かしてみました。
問題なく動いて驚き。さすがバージョン1.0を出すのに15年かかっただけあるw


以下はその手順。
まず、NVIDIAやATIのドライバをインストールする。

# aptitude install envyng-core envyng-qt


メニューの[アプリケーション][システムツール]からenvyngを起動して、自分が使っているビデオカードのドライバをインストールする。

リポジトリとパッケージリストを追加する。

# wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
# sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/jaunty.list -O /etc/apt/sources.list.d/winhq.list


リポジトリを更新する。

# sudo aptitude update


追加したリポジトリからWineをインストール。

# sudo aptitude install wine


Wine便利ツールのwinetricksをインストール

# wget http://www.kegel.com/wine/winetricks
# chmod 755 winetricks
# sudo chown root.root winetricks
# sudo mv winetricks /usr/local/bin


winetricksを使って、WineにフォントとDirectX9をインストールする。

# winetricks



d3dx9とallfontsにチェックをいれてOKを押す。
マビノギをインストールするため、jp_mabinogi_setup_167.exeをダウンロードしてWineから起動。

# wine jp_mabinogi_setup_167.exe


以上。

モリアンサーバに(何もできない)キャラがいるのでよろしく。

2010/01/15

東証システム、全面刷新の真相

東証システム、全面刷新の真相 @ ITPro
非常に楽しく読ませてもらいました。
世界が違いすぎて、こんなシステム屋さん達もイルノネーという感じですがw
一つびっくりしたのが


ITProより抜粋

2005年までの東証のシステム部門では、ITベンダーにシステム開発を依頼する際、RFP(提案依頼書)を書かずにITベンダーに口頭あるいは書面で大まかな要件を伝え、見積りを出してもらうケースが少なくなかった。要件定義の中身は、「現行業務を忠実にシステム化してもらいたい」、あるいは「現在のシステムを参考にしてもらいたい」といったレベル。実質的にはベンダーに要件定義書を作らせていた。

東証システムの開発体制丸投げ体質からの脱却を目指す

東証でこんなレベルなのか…と、思いました。
ですが…
実は別の考え方もできると思うんですよねー。
システム屋頭で考えれば駄目な事例ですが、丸投げをすることによって空いた時間をどこに費やすかが重要です。社員を利益生成機として考えると、丸投げは必ずしも駄目な事じゃなかったりすると思うのです。思想ノ問題デスケドネ。技術ブログなのであえて逆を書いてみましたw
補足でアクセンチュア視点の記事も書いて欲しいなぁーw

2010/01/11

ファイルサーバのデータを暗号化

個人情報をきっちりと暗号化することにした。
Debian lenny(と、Ubuntu 9.10)で構築したシステムをcryptsetup-luksを利用してファイルシステムごと暗号化したものに変更する(lennyからsqueeze、wheezyと安定継続稼働中)。

まず、現状を把握する(全く覚えてないのでw)。
現在利用しているファイルシステムを確認。

# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
procbususb on /proc/bus/usb type usbfs (rw)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /share type ext3 (rw,errors=remount-ro)

(ハードディスクを増設した場合や、mountしてない場合はfdisk -lが便利)

/dev/sdbを暗号化パーティションにしてext3のファイルシステムを作ることにする。

手始めに、暗号化したときのコストがどの程度か測るために、暗号化前の処理速度を測ることにした。
が…。
どんなハードディスクを使ってたっけな?w

# cat /proc/scsi/scsi
Attached devices:
...
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: Hitachi HDS72202 Rev: JKAO
Type: Direct-Access ANSI SCSI revision: 05


HitachiのHDS72202か。
カタログスペックを調べようと思ったらぐぐっても見つからない...
ま、いっか。
ベンチマークツールをインストールして速度を測ってみる。

まず読み込み速度。

# aptitude install hdparm
# hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 7408 MB in 2.00 seconds = 3707.32 MB/sec
Timing buffered disk reads: 396 MB in 3.00 seconds = 131.95 MB/sec


書き込みも測ってみる。

# time dd if=/dev/zero of=/share/hoge ibs=1M obs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.8181 s, 281 MB/s
real 0m3.823s
user 0m0.156s
sys 0m2.256s


さて、本番。

カーネルをコンパイルする。

2010/01/17 追記
Ubuntu 9.1やDebian6以上などの、最近のディストリビューションの場合はカーネルの再コンパイルの必要はない。
カーネルがサポートしていない場合、cryptsetup時に以下のようなエラーメッセージが出る。その場合はカーネルを正しく作り直すべし。

Command failed: Failed to setup dm-crypt key mapping.
Check kernel for support for the aes-cbc-essiv:sha256 cipher spec and verify that /dev/sda3
contains at least 258 sectors



カーネルコンパイルの手順は次のようになる。

# aptitude install make gcc
# aptitude install kernel-package fakeroot
# aptitude install linux-source
# cd /usr/src
# tar xvjf linux-source-2.6.26.tar.bz2
# cd linux-source-2.6.26


設定を引き継ぐため古いコンフィグファイルをコピーする。

# cp /boot/config-2.6.26-2-amd64 .config


昔のコンフィグをマージする。

# make oldconfig


続いて、暗号化モジュールをカーネルに組み込む。
グラフィカルなカーネル設定(gconfig)を立ち上げるため、以下のライブラリをインストールする。

# aptitude install libgtk2.0-dev libglade2-dev


続いて、設定画面を呼び出す。下記のコマンドは、Root Terminalから呼び出せばXの設定は必要ない。

# make gconfig


[Device Drivers]->[Multiple devices driver support(RAID and LVM)]->[Device mapper support]
[Device Drivers]->[Multiple devices driver support(RAID and LVM)]->[Device mapper support]->[Crypt target support]
の2つをYにして、カーネルに組み込む。
コンパイルして、インストールする。

# make-kpkg clean
# fakeroot make-kpkg --initrd --revision=20100111.1224 kernel_image kernel_headers modules_image
# cd /usr/src
# dpkg -i linux-headers-2.6.26_20100111.1224_amd64.deb linux-image-2.6.26_20100111.1224_amd64.deb


再起動後、やっとこさ暗号化ファイルシステムを作成。
まず、dm-cryptの設定ツールであるcryptsetupをインストールする。

# aptitude install cryptsetup


暗号化アルゴリズムにaes、ハッシュアルゴリズムにsha256、キーサイズに256を指定する。

# cryptsetup --verbose -y luksFormat -c aes-cbc-essiv:sha256 --key-size 256 /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.


ここで気をつけなくてはいけないことは、大文字でYESと答えないとCommand failedというメッセージが表示されて終了してしまうことである。
なんつーユーザーフレンドリーなインターフェース。まるでおいらが作ったアプリケーションみたいだ。

論理パーティションを作成して適当な名前(encrypted_sdb1)をつける。

# cryptsetup luksOpen /dev/sdb1 encrypted_sdb1
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.


Device-Mapperに暗号化レイヤが用意されたか確認。

# ls -l /dev/mappaer
crw-rw---- 1 root root 10, 59 2010-01-11 15:41 control
brw-rw---- 1 root disk 254, 0 2010-01-11 15:45 encrypted_sdb1


後は通常のパーティションと同じように扱える。パーティションを他と同じようにext3でフォーマットする。

# mkfs.ext3 /dev/mapper/encrypted_sdb1


マウントする。
※/dev/sdb1を直接mountして使うと壊れてしまうらしいので注意

# mkdir /share
# mount -t ext3 /dev/mapper/encrypted_sdb1 /share
# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 59526528 4525292 51977404 9% /
tmpfs 3551324 0 3551324 0% /lib/init/rw
udev 10240 860 9380 9% /dev
tmpfs 3551324 76 3551248 1% /dev/shm
/dev/mapper/encrypted_sdb1
1922857324 200160 1824981616 1% /share


よしよし。
さて、暗号化によりどの程度遅くなったか確認する。

# hdparm -Tt /dev/mapper/encrypted_sdb1
/dev/mapper/encrypted_sdb1:
Timing cached reads: 6934 MB in 2.00 seconds = 3469.98 MB/sec
Timing buffered disk reads: 228 MB in 3.03 seconds = 75.35 MB/sec


読み取り速度はcachedで7%の速度低下、bufferedで43%の速度低下。両極端な結果が出たな。cachedの速さもびっくりだけど、bufferedの速度低下もびっくりだ。
続いて書き込み速度のテスト。

# time dd if=/dev/zero of=/share/hoge ibs=1M obs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 14.2425 s, 75.4 MB/s
real 0m14.245s
user 0m0.160s
sys 0m2.240s


74%の速度低下。キッツー。
用途によっては使い物にならないですね、コレ。

今後マッピングの解除とunmountは以下のようにする。

# umount /share
# cryptsetup luksClose encrypted_sdb1


今後マッピングとmountしたい時は次のようにする。

# cryptsetup luksOpen /dev/sdb1 encrypted_sdb1
# mount -t ext3 /dev/mapper/encrypted_sdb1 /share

もし、

Command failed: No key available with this passphrase.

というエラーメッセージが出た場合は、dm_cryptモジュールが読み込まれているか、lsmodを実効して確かめる。

次はUPS買うかな...

2013/06/28 追記:
squeezeに移行すると、lennyで作った暗号化ファイルシステムがマウントできないという悲鳴の声がネット上でちらほら見かけました。どうも暗号化するときのデフォルト設定が、変わったのが原因(?)ぽいですね。とりあえず上記の暗号化アルゴリズムとハッシュアルゴリズムを選択した場合は、再マウント時に何もトラブルなりませんでした。カーネルも再コンパイルが必要なくなり、modprobe dm_modしてからcryptsetupするだけで問題なしです。また、Debian7ではそれすら必要なかったです。楽になったなぁ…。

2013/06/04 追記:
他のベンチマークがあったので追記 - The Cost Of Ubuntu Disk Encryption
結構いろいろな測定方法が紹介されてる。今度参考にしようっと。

2011/07/29 Debian squeeze環境下でlennyで暗号化したシステムをマウントする方法を末尾に追加。

2009年 下半期 分析

2009/07/01〜2009/12/31までのアクセス状況を振り返ってみた。

総セッション数5,684で2008年下半期の上半期の3,346に比べれば60%増。少ないながらも、なかなか順調です。

2009年下半期の人気のあるコンテンツは以下の順位でした。
1. EnterキーでTabキーのようにフォーカスを移動させるJavaScript(prototype.js使用)
2. VMWare guest OS(CentOS 5)の解像度変更
3. KAKASI - 漢字→かな(ローマ字)変換プログラム
4. 学生は無料でWindows Server 2008をもらえる
5. VMWareゲストOS(Windows2000)の解像度をワイド対応にする
6. VC++ 2005でコンパイルしたexeが配布できなくなった
7. MRTGでYAMAHA RT57iの転送量を監視
8. VMWare ゲストOS上のlinuxの時刻が狂う
9. 日めくり美人
10. Direct3D on VMWARE

ちなみに…、このブログを訪れる人で一番多い検索キーワードは「日めくり美人」でした。待てやw

2010/01/05

@icon変換を使ったWindowsアイコンの作成の仕方

画像ファイルからwindows アイコンファイル(.ico)を生成するのに
「@icon変換」というツールを使わせていただいているのですが、
http://www.vector.co.jp/vpack/browse/pickup/pw5/pw005478.html

多数の解像度/色数を含んだicoファイルの作り方が意外と難しくて
いつも困るのでメモ。

詳細はここを参考に。
http://msdn.microsoft.com/ja-jp/library/ms997636.aspx

1. @icon変換を起動
ドラッグドロップで画像ファイルを@icon変換に放り込む。

本来は
サイズ 48x48, 32x32,16x16 + 色 4,8,24 bit
の組み合わせがあるのがベスト。

色数&サイズの小さいものから並べ、たほうがいい?かも。

2. リスト→ライブラリ編集

3.一連のアイコンをすべて選択し、
 右クリック→選択アイテムをグループ化する。

4.ツール→グループごとにマルチアイコンに保存

普通に「マルチアイコンとして保存」すると「.ico」ファイルでなく、
 「.icl」ファイルができてしまう。

Windows XP SP3 + @icon変換 ver 1.21で確認

C#のエスケープシーケンス

C#で使えるエスケープシーケンスをよく忘れるのでメモ。

> http://www.melma.com/backnumber_120830_237603/

\' シングルクォーテーション
\" ダブルクォーテーション
\\ 円マーク
\0 null
\a ビープ音
\b バックスペース
\f 改ページ
\n 改行
\r キャリッジリターン
\t 水平タブ
\v 垂直タブ
\x16進数 16進エスケープシーケンス
\u16進数 UNICODE文字 0000 ~ FFFF

エスケープシーケンスを使いたくない場合には、
以下のように””の前に@をつけると
エスケープシーケンスが効かなくなる。

NG> filepath="c:\temp\test.text"
OK> filepath="c:\\temp\\test.text"
OK> filepath=@"c:\temp\test.text"

2010/01/03

64bit対応Adobe Flash PlayerをIceweaselにインストール

現在メインの趣味用OSをWindows XPからDebian Lenny(64bit版)に移行テスト中。
ブラウザはFirefox(Iceweasel)を愛用してるんだが、64bit版のflashプラグインは用意されていない様子。
おいらは趣味がニコニコ動画というリア充なのでとても困る。Adobe Labsから拾ってインストールする方法を覚書。

Adobe Labs - Downloadsから、Adobe Flash Player 10 for 64-bit Linuxをダウンロード。解凍して、$HOME/.mozilla/pluginsにlibflashplayer.soを置けば終了。pluginsディレクトリがなければ作るべし。

追記
2010/02/08 上記のライブラリはアホほど安定していない。普通に32bit版を使うべし。