Author Archives: admin

phpMyAdminを使ってMySQLにユーザを追加する

phpMyAdminを使ってMySQLのユーザを追加できる。

phpMyAdminを開き、[特権]をクリックする。

[新しいユーザを追加する]をクリックし、ユーザ名などを入力し、実行するをクリックする。

ユーザを追加したら、コマンドラインからmysqlコマンドで以下のようにして、ログインできるかまたはデータベースが操作できるか(できないか)確認する。

$ mysql -u user -p

ユーザの権限の編集は、特権ページから、ユーザのエントリの一番右の[特権を編集]をクリックし、希望の動作を行う。通常1つのデータベースに対して、特権を与える。それを行うには[データベースに固有の特権]からデータベースを選択すればいい。

assocコマンドとftypeコマンド

これらのコマンドはWindowsの関連付けを表示したり変更するコマンド。拡張子txtに関連付けられているアプリケーションを調べるには以下のように実行する。

拡張子txtにはnotepad.exeが関連付けられていることがわかる。%1は開かれるファイルに置き換えられる。

Windowsにrubyスクリプトのファイル.rbを関連付けるには以下のようにする。

まず、拡張子rbにファイルタイプを関連付ける。

次に、ファイルタイプに対してruby.exeを関連付ける。

%*は残りのすべてのパラメータに置き換わります。

環境変数PATHEXEに.rbを追加すれば、拡張子を省略して起動できます。ここでは省略。

SetRedrawを使ってちらつきを抑え、処理を速くする

MFCとWin32の話です。

TreeViewやListViewに多くのアイテムを追加したり、アイテムを全部削除する場合、結構時間がかかります。どうもこれは一個足したり消したりする毎に描画処理が走ってる様なので、SetRedrawを使ってこの描画を抑えることにより、処理が高速化し、ちらつきも抑えられます。

サンプルプログラム(ツリービューのアイテムを全部削除)

Win32APIの場合はWM_SETREDRAWを使います。

実際にコードを書く場合は、SetRedraw(FALSE)を呼んだあとはSetRedraw(TRUE)が必ず呼ばれるようにしたほうがいいかもしれません。また、処理が終わったら以下のようにウインドウを再描画したほうがいいかもしれません。

diffを色付きで表示するcolordiff

colordiffはdiffを色付きで表示してくれるコマンドラインツール。diffのラッパープログラムでdiffのすべてのオプションを受け取れるためdiffをcolordiffとaliasしても使えるし、例えば以下のようにdiffの出力をパイプしてcolordiffに送ることもできる。

$ svn diff aaa | colordiff

lessを使う場合は-Rオプションを付けなければならない。

$ colordiff aaa bbb | less -R

マニュアルには書いてないがsdiffの結果を渡しても動く。

$ sdiff aaa bbb | colordiff

devconコマンドをつかってドライバファイルを一覧表示

Windowsの話です。

devconコマンドを使えば、現在システムで動いているドライバのファイル一覧を取得できる。ただこのコマンドはドライバを無効にしたりもできるみたいなので、使用には注意が必要かも。ここからダウンロードできる。

以下のコマンドでドライバの一覧が表示できる。

> devcon driverfiles *

taskkillコマンドを使ってIEを一括終了する

IEがたくさん開くと全部閉じるのがめんどくさいので、Windows XPで使えるtaskkillを使って一括で強制終了させる方法。

以下のようなファイルを作成。

taskkill /f /im iexplore.exe

なまえをkillallie.batなどとして保存して、実行すればIEを全部強制終了させることができる。

Windows XPでDNSキャッシュを無効にする

現状のDNSキャッシュを見るにはコマンドプロンプトを実行して、以下のように打ち込む。

> ipconfig /displaydns

DNSキャッシュをクリアするには以下のように打ち込む。

> ipconfig /flushdns

DNSキャッシュ機能をを無効にするには以下のように打ち込む。

> net stop dnscache

有効に戻すには以下のようにする。

> net start dnscache

DNSキャッシュが有効な期限はDNSリソースレコードのTTLとレジストリの設定値に依存する。DNSがポジティブレスポンスを返したときは、TTLとレジストリの設定値の低いほうの値が使われる。このレジストリのキーはHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\ParametersにあるMaxCacheTtl(REG_DWORD)でデフォルトで86400秒になっている。

ネガティブレスポンスのときは同じキーのMaxNegativeCacheTtl(REG_DWORD)で設定されデフォルトでは900秒になっている。ネガティブレスポンスをキャッシュしたくない場合はこの値を0にすればいい。

参考:http://support.microsoft.com/kb/318803

tarで特定のディレクトリを除外して圧縮する

/home/fff/の下をすべて圧縮したいが、/home/fff/xxxと/home/fff/yyyは除いて実行したい場合は以下のようにする。

$ tar cfvz fff.tar.gz ls -1d /home/fff/* | egrep -v '/home/fff/(xxx|yyy)'

cfvzは順にアーカイブ作成、ファイル、冗長出力、gzipを意味する。cfvjとすればbz2を作成する。

DISPID_NEWWINDOW2でURLが取得できない

このイベントを受けた段階では取得できないです。そこで考えられる対策は以下。

  • DISPID_NEWWINDOW2はあきらめて、DISPID_NEWWINDOW3を使う。しかしこれは比較的新しい仕様なのであんまり使いたくない。
  • DISPID_NEWWINDOW2で開くIEが自アプリなら、開かれたときにbeforenavigateなどでやりたいことをやる。
  • DISPID_NEWWINDOW2で開くIEが自アプリでなくデフォルトの動作だと困る。ステータスバーなどの最後の変更を捕まえる方法もあるが、これも完全ではない。自アプリで開いてからやろうとすると、refererなど必要な情報が足りなくなってうまく開けなくなるかもしれない。
  • それにしてもなぜurlを渡す仕様にしなかったのか不思議だ。

Ubuntuで”firefox is already running”と表示される

firefoxが異常終了したあとに、メッセージが表示されfirefoxが起動しなくなることがある。これを直すには以下のようにする。

$ killall firefox
$ killall firefox-bin

killallは指定されたプロセスをすべて終了させる。上記のどちらかでいいはずだがバージョンによって異なるようなので両方かいてあります。このコマンド後正常に起動できるようになると思います。

Windowsの場合はタスクマネージャからfirefox.exeを終了させればいい。

タスクマネージャでfirefoxを終了させる