フォルダーを仮想ドライブ化(パーティション化)する方法

環境: Windows XP Pro SP3

D:ドライブを作りたいがC:ドライブに全て容量が割り当てられているため
新たなドライブが作れない。

そこでMS-DOSコマンドの「subst」を使う。

C:ドライブ直下に「d」というフォルダーを作成。

mkdir C:\d

そのフォルダーをD:ドライブに割り当てる。

subst d: "C:\d"

割り当てられた仮想D:ドライブを削除するには「/d」オプション。

subst d: /d

ASP.NET(VB.NET)でダウンロード時に日本語ファイル名が文字化けする。

Windows (NT系)はカーネルUnicodeをアプリケーションはShift_JISを使っている。


HTTPリスポンスヘッダーのファイル名指定で日本語を使うと文字化けする場合があるが、URLエンコーディングを使うと回避できる。

Dim strFile As String = "テスト.xls"

Response.ContentType = "application/octet-stream"
Response.AddHeader("Content-Disposition", "attachment; filename=" & HttpUtility.UrlEncode(strFile))
Response.TransmitFile("D:\" & strFile)
Response.End()

Firefox 4.0でタブをタイトルバーに表示する方法

Firefox 4.0が正式にリリースされました。


しかしインターフェースの気に入らないところがあったので改造メモ。


旧バージョンよりかなりすっきりしたインターフェースだけど、タブをタイトルバーに移動させたい・・・。今の時代タイトルバーなんて要らない。


調べてみてまず分かったことは、Firefoxのウィンドウを最大化するとディフォルトでもタブがタイトルバーに表示される事が判明。


ただしウィンドウをサイズ変更するとまた元に戻るという意味不明の仕様。


そこで自分でプロファイルを追加することにする。


まず場所(Windows 7 64bit)は以下になる。

C:\Users\\AppData\Roaming\Mozilla\Firefox\Profiles\.default\chrome\userChrome.css


このcssプロファイルに以下を追加。ファイル自体がなければ新規作成。

#toolbar-menubar{
padding-left: 110px !important;
margin-right: 110px !important;
padding-top: 8px !important;
margin-top: -30px !important;
}

#appmenu-button-container{
position: fixed !important;
}

#navigator-toolbox[tabsontop="false"] #nav-bar{
margin-left: 108px !important;
margin-right: 140px !important;
padding-top: 12px !important;
}

#navigator-toolbox[tabsontop="true"] #TabsToolbar{
margin-left: 108px !important;
margin-right: 140px !important;
padding-top: 8px !important;

これでスッキリした。

参照: http://davidnaylor.org/blog/2010/08/move-tabs-to-titlebar-in-firefox-4/

CentOS5.4 / PHP5.1.6 / MDB2 / SQLite2の設定

CentOS 5.4にyumphpをインストールする。

yum -y install httpd php php-pear

しかしSQLitePECLでインストールするも失敗する。

pecl install SQLite

そこでソースをダウンロードしてインストールする。

cd /usr/local/src/
wget http://pecl.php.net/get/SQLite-1.0.3.tgz
tar zxvf SQLite-1.0.3.tgz
cd SQLite-1.0.3
phpize
./configure

問題のある部分のソースを以下のように修正

cp -a sqlite.c sqlite.c.org
vi sqlite.c

diff sqlite.c sqlite.c.org
56c56< //static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };

    • -

> static unsigned char arg3_force_ref[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE };
125,128c125,126< //PHP_FE(sqlite_open, arg3_force_ref)< PHP_FE(sqlite_open, third_arg_force_ref)< //PHP_FE(sqlite_popen, arg3_force_ref)< PHP_FE(sqlite_popen, third_arg_force_ref)

    • -

> PHP_FE(sqlite_open, arg3_force_ref)
> PHP_FE(sqlite_popen, arg3_force_ref)

インストール成功

make
make install
service httpd restart

PEARMDB2sqliteのドライバのMDB2_Driver_sqliteをインストールする。

pear install MDB2
pear install MDB2_Driver_sqlite

しかし何故かSegmentation Faultが起こってMDB2が動かない。

そもそもPECLSQLiteはメンテナンスされてないので、PHPのソースに付属してくるSQLiteを入れる。

cd /usr/local/src/
wget http://museum.php.net/php5/php-5.1.6.tar.gz
tar zxvf php-5.1.6.tar.gz
cd php-5.1.6/ext/sqlite
phpize
./configure
make
cp modules/sqlite.so /usr/lib/php/modules/
echo extension=sqlite.so > /etc/php.d/sqlite.ini
service httpd restart

しかしphpinfo();をしても何故かSQLitePHPに認識されない。

色々と試してみてPHPのPDOのインストールが必要なことが判明。

yum -y install php-pdo
service httpd restart

これでphpinfo();にもSQLiteがロードされる。

MDB2SQLiteも問題無く動いた!

32-bit CentOSにPAEカーネルを入れ4GB以上のメモリーを使う

PAEカーネルを入れると32-bitのOSでも64GBまでのメモリーを扱える。

PAEカーネルをインストールする。

yum -y install kernel-PAE

grub.confを書き換えブートの順番を変える。

GRUB_CONF='/boot/grub/grub.conf'
cp -a $GRUB_CONF $GRUB_CONF.org
sed -ie "s/default=1/default=0/" $GRUB_CONF

再起動

shutdown -r now

成功

uname -r
2.6.18-164.6.1.el5PAE