Author Archives: admin

.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などで設定を変える。

Frama-C C言語のソースコードを解析するツール

Frama-CはC言語のソースコードを解析し、おかしいところをチェックしてくれるツール。Ubuntu,Window XP, Mac OSで動作する。またACSLという、ソースコードにコメントの形で付加する行動記述言語も備えており、例えば以下のように関数の前に記述しておくと、この関数の戻り値\resultの値の条件を示しておくことができる。

ソースコードの解析方法は色々なものがあり、それぞれプラグインで提供されており、デフォルトでも実験的なものも含めて16個くらいある。

Windows XPで使うにはmingwとocaml for mingwがインストールされている環境でmsysから使うことができる。解析の際GCCでプリプロセスを実行するため対象のCソースファイルが含むヘッダがないとエラーになってしまう。

実行は、frama-cコマンドまたはframa-c-guiコマンドで行う。以下はサンプルでついてきたwin_iconv.cに対して行った例。

$ frama-c-gui.exe win_iconv.c
[preprocessing] running gcc -C -E -I. win_iconv.c
Parsing
Cleaning unused parts
Symbolic link
Starting semantical analysis


ソースコードにACSLが記述してある場合、プラグインのValViewerによって評価、解析ををすることができる。

relatime マウントオプション

Linuxのファイルシステムではファイルの時刻情報としてatime,ctime,mtimeがある。

  • atime : 最終アクセス時刻
  • ctime : 作成時刻
  • mtime : 修正時刻

atimeはファイルの読み込みの時も書き込みされるため、これが大きなボトルネックになる。そのため高速化としてマウントオプションにnoatimeをつければatimeが書かれなくなる。しかし一部のアプリで問題が出てしまう可能性がある。そこでrelatimeが登場した。これはもしatimeがmtimeやctimeよりも古かったら書き込む。こうすることで書き込みは頻発しなくなり、アプリ問題も緩和される。

wordpressでdp.SyntaxHighlighterを使う

dp.SyntaxHighlighterを使えばhtmlやC言語やjavascriptのソースコードを綺麗に表示することができる。

wordpressにはSyntaxHighlighterプラグインがあり、これを使えば簡単に使うことができる。

wordpressにインストールするにはダウンロードして展開し、/wp-content/plugins以下にsyntaxhighlighterディレクトリを置けばいい。

・使い方
以下のように[sourcecode]タグの中にコードを書きます。

この様に書くと以下のように表示されます。

[sourcecode language=’vb’]
Visual Basicのコード
[/sourcecode]

languageにはコードの種類を書きます。現時点でサポートされているのはSyntaxHighlighterのページに書いてあります。

ubuntu 8.04 でeclipseを使う

eclipseはパッケージで提供されていますが、これは最新のものではなく、インストールする時は当然ルート権限でインストールするため、eclipse自体のアップデートがユーザ権限で起動しているとうまくいかなくなることも考えられます。そこでここではeclipseは本家から持ってきてインストールします。javaもsunのものを使います。sunのjavaはパッケージで提供されており、alternativesによる切り替えも出きるのでそれをつかいます。

またインストールする場所も、/usr配下ではなく、ホームディレクトリ配下にした方がいいと思います。プラグインなどもインストール時にトラブる確率が低くなると思います。

1、sunのjava-jdkをインストール

$ sudo apt-get install sun-java6-jdk

2、galternativesをインストール

$ sudo apt-get install galternatives

3、galternativesを起動してjavaをsunのjavaに切り替える。javacも切り替えた方がよいかも。

java -versionコマンドで切り替わっているか確認する。

4、本家からeclipseをダウンロードして展開後、eclipseコマンドで実行できる。展開するディレクトリは最初に書いた問題があるのでホームの下にした。

findとnkfをつかって文字コードをShift_JISからutf-8へ一括変換

ディレクトリold以下を一括変換してnewにする場合。

$ls
old
$

まず全部のコピーをとる(ディレクトリ構成をコピーするため)
$ cp -a old/ new

変換用スクリプトrun.shを作成。
$ find old -type f \( -name '*.php' -or -name '*.c' -or -name '*.js' \) -printf 'nkf -S -w -Lu %p > new/%P\n' > run.sh

ここでは拡張子php c jsに対して行っている。

nkfの引数は-Sが入力をShift_JISを想定させ、-wでutf8を出力し、-LuでUnix改行に変更している。変換元がshift-jisでない場合はnkfの-Sを削除する。

run.shを実行してoldからnewへ変換する。

$ sh run.sh

html内ののcharset=…を変えたい場合は、findコマンドのnkfの部分を

sed s/charset=Shift_JIS/charset=utf-8/ %p > new2/%P\n

みたいに変えて同じようにやる。

eclipseのエディタの文字コードの指定

1、ファイルごとに指定する方法

左のプロジェクトツリーからファイルを右クリックし[property]を選ぶ。以下のダイアログの[Text file encoding]のところで指定する。”utf-8″, “shift-jis”, “euc-jp”などと指定する。

filebase.jpg

2、プロジェクトごとに指定する方法

プロジェクトツリーのプロジェクトを右クリックし[property]を選び、以下のダイアログで指定する。

projbase.jpg

ただしこの方法だとプラグインによっては、この設定が無視されることがある。

3、全体の設定を変える方法

メニューから[Window][Preferences] を選択しダイアログを表示し、左のツリーで[General][Content Types]を選択する。

defaultbase.jpg

右上のツリーの[Text]ノードから対象のタイプを選び、下のリストから拡張子を選択し、一番下で設定する。