Author Archives: admin

Visual C++ 2005でデータブレークポイントを使う

データブレークポイントとはある変数の値が変更されたりしたときにブレークするブレークポイントです。以下のソースにおいて19行目のf3()の呼び出し後、iの値が変わったときブレークしたいとします。

まず普通にステップ実行して19行目まで来ます。ここでiのアドレスを知る必要があります。メニューからデバッグウインドウ逆アセンブルを開きアセンブラでステップ実行すると以下のようになります。


このときeaxレジスタに入るのがiのアドレスです。メニューからデバッグブレークポイントの作成新しいデータブレークポイントを選択し、この値を以下のようにデータブレークポイントで設定します。


(この例では実際にアドレスを調べる必要はなく、上のダイアログでは&iと打ち込めばよかったみたいです)

OKをクリックして、実行を再開すれば、以下のようにiの値が変化した直後にメッセージボックスが表示されブレークします。

Nautilusで常にフォルダを表示する

FedoraやCentOSのNautilus(ファイルマネージャ)は起動したときにフォルダビューを表示してくれない。コマンドラインで以下のように起動すればフォルダビューを表示できるが、それをパネルやデスクトップから起動した場合でも、デフォルトで表示させる方法。

コマンドラインでフォルダビューをつけて起動させる。

$ nautilus –browser

デフォルトでフォルダビューをつけて表示させる

デフォルトで表示させるためにはgconfの設定を変えればいい。gconfとはWindowsでいうところのレジストリみたいなもの(参考)。gconfの設定を変えるにはgconf-editorを使うのが簡単。

gconf-editorを起動して、以下のように/apps/nautilus/preferences/always_use_browserをチェックすればフォルダビューつきで起動するようになる。

Fedora9でAudaciousを使ってmp3を再生する

audaciousはwinampライクなサウンドプレイヤー。

1、事前準備 リポジトリへlivnaを追加

livnaのページからFedora 9用のリポジトリRPMをダウンロードしてインストールする。以下のように直接URLを指定しても可能。

# rpm -Uvh http://rpm.livna.org/livna-release-9.rpm

2、audaciousとプラグインをインストール

# yum install audacious audacious-plugins\*

3、再生してみる

普通に再生

ディレクトリを指定してもいい

m3uを指定

m3uはshift-jisで記述してあるとうまく開けない。utf-8に変換すると開ける。改行もlinuxスタイルに変える必要がある。以下の方法で変えられる。

4、日本語が化ける

タグの日本語が化ける。以下の設定で直す。

プレイヤー部分も化ける場合は、外観の設定でビットマップフォントを使わないようにする。

5、スキン

スキンはwinamp2系のスキンを利用できる。wszファイルをダウンロードし、~/.local/share/audacious/Skins/ に置けばいい。

また、xmms-skinsパッケージにスキンがあるので以下のようにして持ってこれる。

ここで中にあるzipファイルをスキンのディレクトリへもってくる。

MySQLでrootのパスワードを変更する

WindowsのMySQL 5.0を想定しています。

MySQLのユーザ名とパスワードはMySQL自身が管理している物で、OSのものとは関係がありません。

1,コントロールパネル管理ツールサービスを開き、MySQLを停止させます。

2,以下のようなテキストファイルを用意し、C:\mysql-init.txtとして保存します。MyNewPassのところは実際のパスワードに変えます。

3,管理ツールのサービスのMySQLをダブルクリックして開き、「実行ファイルのパス」を確認します。ここでは以下のようになっています。

4,コマンドラインから以下のコマンドを実行します。このとき上記のパスを参考にします。

入力待ちになったらCtrl+Cを押して停止します。

5,管理ツールのサービスからMySQLを起動します。

参照元

csrss.exeとサブシステム

Windows2000やWindowsXPのNT系で必ず動いているcsrss.exe。

Windowsにはサブシステムという概念があり、WindowsアプリケーションはWindowsサブシステムの上で動いている。WindowsサブシステムはKernel32.dllやUser32.dllなどの基本的なDLLと上記のcsrss.exeによって提供されている。

世に出ているほとんどのWindows用の実行ファイルはWindowsサブシステム上で動くアプリケーションで、通常はほとんどの稼動しているWindowsはWindowsサブシステムしか動いていない。

Windows Services for UNIXはPOSIXサブシステムを提供する。3.5から無料でで利用できるようになった。

POSIXサブシステム用に作られたアプリケーションはkernel32.dllなどとリンクしていないのでWin32APIが呼び出せない。そのかわりにforkなどのWin32では作りづらい機能を提供している。

POSIXサブシステムが動くとpsxss.exeが動く。これはcsrss.exeに対応するプロセス。

postfixでバーチャルドメイン覚書

一つのマシンでいくつかのホスト名をapacheなどのVirtual Hostを使ってホスティングしていて、それぞれのホスト宛のメールを受け取りたいときのpostfixの設定。

設定方法は簡単なものから複雑なものまで色々あるがここでは簡単な2つの方法を示す。ここではa.example.comとb.example.jpをホスティングしているとする。

1、もっとも簡単な方法。

以下のように、/etc/postfix/main.cfのmydestinationにホストを加える。

上記のようにした場合、info@a.example.com宛のメールとinfo@b.example.jp宛のメールは両方共OSアカウントのinfoさんのメールディレクトリ /home/info/Maildir/に入る。inaiuser@a.example.com宛でinaiuserのOSアカウントがない場合はエラーが返る。

2、もうちょっと複雑な方法

以下のように、/etc/postfix/main.cfに記述する。

/etc/postfix/virtualを以下のように記述する。

こうすると、info@a.example.com宛のメールはOSアカウントのabeさんのメールディレクトリに入り、info@b.example.jp宛のメールはOSアカウントのfukudaさんのメールディレクトリに入り、xxx@a.example.com宛のメールなどのここで定義されていないのもはkoizumiさんのメールディレクトリに入り、yyy@b.example.jp宛などのメールはエラーになる。

この方法を使う場合は、1のようにmydestinationを定義しないこと。

元ネタともっと複雑な方法についてはこちら

JavaScript 配列の基礎

・配列を作成する。


・配列の要素にアクセス


・配列の長さを知る


・境界を考えないでいきなりアクセスできる


・配列の末尾に要素を追加する。push
・配列の先頭に要素を追加する。unshift
・配列の末尾から要素を削除する。pop
・配列の先頭から要素を削除する。shift


・配列に配列を追加する。concat(追加する配列)


・配列内の部分配列を取得するsliceメソッド。slice(開始インデックス,終了インデックス)


・配列内の部分配列に別の配列を挿入する。splice(開始インデックス、削除する要素数、追加する要素、追加する要素、・・)


・配列を文字列に変換する。join(separator) デフォルトのseparatorは”,”


.NETのWebBrowserコントロールでflashがクリックできなくなる

WebBrowser上のflashを一回クリックすると、クリックしてもflashが反応しなくなる現象。

とりあえずの直し方

WebBrowserのWndProcをオーバーライドして、WM_L・・・をスルーする。

ネタ元はここ

サンプルソリューションwindowsapplication1

Ubuntu 8.04でWineを使う

WineはWindowsプログラムをLinuxなどのX Window System上で動かすためのソフトウェアでWindowsプログラムが必要とするWin32APIの実装を提供しています。またネイティブのDLLをWine上に持ってきて使うことも出来ます。

しかし実際にはなかなか動かないことが多かったり、動くとしてもコツが必要だったりするみたいで、そのためかAppDBなどを用意して有名ソフトが動くのかどうかをデータベースとして提供していたりもします。

また「なぜWineが必要なのか」としてWindowsの蔓延に対する警戒として以下のようなことも書いています。

同種の人間達は各個人が同じ脆弱性を共有する。たった一つの脆弱性を見つければその人間達すべてを滅ぼすことが出来る。我々はこのことをからよく学ばなければならない。

(途中省略)

Wineは別の手段でのWin32APIの実装であり違うOSで動作する。Wineは同じ欠点を共有せず、それにより必要な多様さを提供している。

ここではUbuntu8.04を使ってWineを動かしてみます。まずインストール。

$ sudo apt-get install wine

スタートメニューにWineが現れ、その中に「notepad」(メモ帳)がありますので起動してみます。


起動はしましたが、改行が入力できず、日本語も入力できませんでした。

これはとりあえず置いておいて、日本製の有名フリーウェアが動くかどうか試してみます。Terapadというテキストエディタをダウンロードして、~/winapps/terapad/に置いて以下のように実行してみました。

$ cd ~/winapps/terapad
$ wine TepaPad.exe

改行は出来ますが、日本語入力がやはり少しおかしくてキャレットが戻ったりしてしまうようです。

つぎにファイルマネージャのMDIEを同様に起動してみましたが以下のようなエラーがでて起動出来ませんでした。

世界最高峰ダウンロードマネージャirvineを試してみました。

これはちゃんと動くようです。

Continue reading

debianでデフォルトのブラウザを設定する

デフォルトのブラウザの設定の方法は色々あるみたいでアプリによってどこを見るのかが違うようです。

1、httpプロトコルハンドラを見る場合

gconf-editorを起動して、/desktop/gnome/url-handlers/http/commandの値を”firefox %s”などに設定する。

2、デフォルトのブラウザを設定を見る場合

gconf-editorで/desktop/gnome/applications/browser/execの値を”firefox”などに設定する。

3、x-www-browserを見る場合

以下のようにupdate-alternativesやgalternativeなどで設定を変える。