Author Archives: admin

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]ノードから対象のタイプを選び、下のリストから拡張子を選択し、一番下で設定する。

Visual Basic 2005 でテキストのドラッグアンドドロップ

ドロップターゲット(ドロップされる方)の作り方です。

1、コントロールのAllowDropプロパティをTrueにする。

2、DragEnter, DragOver, DragDropのイベントハンドラを追加する。

3、DragEnterとDragOverを以下のように実装する。

4、DragDropを以下のように実装する。

DragDropでドロップされたデータを取り出せる。

Fedora9 インストール リポート

vmwareにインストールした。インストールはすんなり終了。

GDMでログインのウインドウの左側が少し欠けてるよ。日本語のせい?

Firefoxが3b5になってる。しかしネットワークにつながらない・・・。pingもとおるし名前解決もできる。tracerouteすると connectで失敗している。インストール時にIPv6を無効にしたので、そのせいかと思いネットワーク設定でそれを有効にしたら直った。

# yum update

やっぱりおそいので、

# yum install yum-fastestmirror
# yum update

いきなりカーネルが2.6.25.3-18にアップデート、coreutilsもアップデートしてた。vmwareのconfigやらなくてよかった。

アップデートが終わり再起動。で、またネットワークにつながらない。ifconfigでeth0がないです。service network startでなんなり動いた。なんなんでしょうか?

vmware-toolsのインストール。 というかそのまえにデスクトップのフォルダ名が”デスクトップ”になってる。使いづらい。いったんログアウトしてgdmで言語を English(United States)へそしてログイン。フォルダ名を変えられた。再びログアウトし日本語にもどす。ってネットワークがまたつながってない。chkconfig networkが全部offになってる。とりあえずchkconfig network onする。でservice network startしたら、RTNETLINK answers: File exitsとか言うエラーでた。でもrestartしたら直った。

# yum install kernel-headers
# yum install kernel-devel
# yum install gcc

# vmware-config-tools

コンパイル関係はやっぱりエラー。でも無視。解像度を1600×1200に設定してリブート。

なんかマウスが外にvmwareの外に出れない。ってまたネットワークがつながってないよ。service restart networkして直った。xorg.confにマウスの設定が一切ない。Fedoraってそうだったのか?とりあえずxorg.confに以下を追加。

Section “ServerLayout”
Identifier “Default Layout”
Screen 0 “Screen0” 0 0
InputDevice “Keyboard0” “CoreKeyboard”
InputDevice “VMMouse” “CorePointer” <-これはここだけ追加
EndSection

Section “InputDevice”
Identifier “VMMouse”
Driver “vmmouse”
Option “Device” “/dev/input/mice”
Option “Emulate3Buttons” “yes”
EndSection
やっぱりまだおかしい。マウスが途中で止まるし、クリッピングされているみたいに動かなくなる。

/usr/lib/xorg/modules/inputにあるvmmouse_drv.soを/usr/lib/vmware-tools/configurator/Xorg/7.1 にあるもので置き換えてみた。マウスは外に出れなくなるが、とりあえず動いてるのでもうこれでいい。

ネットワークがまたつながってない。IPv6を無効にしたのがいけなかったのか?

というより日本が打てない。うすうす気がついていたが今再確認した。あのバーがでてこない。

# yum install scim-lang-japanese

してログインし直したら直った。って言うかインストールできた。デフォルトでインストールされてなかった?それとも違うのが入ってたのか?

相変わらずCtrl+Spaceは使いづらい。設定から削除。

つぎはsamba。共有しないと何もできない。autofsでやる。

# yum install samba-client
[root@localhost /]# yum install autofs
[root@localhost /]# chmod 755 /etc/auto.smb
[root@localhost /]# mkdir /sambaauto
[root@localhost /]# chmod 777 /sambaauto/
[root@localhost /]#
# echo ‘/sambaauto /etc/auto.smb’ >> /etc/auto.master
service autofs start
# chkconfig autofs on
# ls /sambaauto/192.168.x.x

これはすんなり成功。

Firefoxのflashが入らない。livnaにあるのか?

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

livnaにはないみたい。とおもったらadobeがyumのレポジトリのrpmを公開してる。

# rpm -Uvh adobe-release-i386-1.0-1.noarch.rpm

絵は出るけど音が鳴らない。いつものことだけどね。いまは無視ししてxmmsを入れてみる。

# yum install ‘xmms*’

livnaおせー。とうかネットワークが不安定だからautofsもまともに動かないよ。マウスもやっぱりときどきおかしくなる。

つーかもうあきた。

アプリケーション終了時に音を出す

Windowsがデフォルトで持っている機能ですが、これが結構便利です。終了させたつもりなのに音が出なかったりすれば何かおかしなことが起こってるかもってなりますし、いきなり音が鳴れば何かが終了したことがわかります。

設定はコントロールパネルの[サウンドとオーディオデバイスのプロパティ]を開き、以下のように設定します。

サウンドとオーディオデバイスのプロパティ

CUIアプリだとちゃんと鳴りません。lsとか打つたびに鳴ってたらウザイでしょうし。

scriptコマンドでコマンドの記録を見る

scriptコマンドを使うと、自分がシェル上で実行したコマンドの入力や出力をファイルに書き出すことができる。

$ script
スクリプトを開始しました、ファイルは typescript です
$ ps
PID TTY TIME CMD
22452 pts/4 00:00:00 bash
22462 pts/4 00:00:00 ps
$ exit
スクリプトを終了しました、ファイルは typescript です
$ cat typescript
スクリプトは 2008年05月15日 08時26分06秒
に開始しました$ ps
PID TTY TIME CMD
22452 pts/4 00:00:00 bash
22462 pts/4 00:00:00 ps
$ exit
スクリプトは 2008年05月15日 08時26分13秒に終了しました$

scriptコマンドをオプションなしで実行すると、ファイル名がtypescriptとして保存される。ファイル名をaaaとしたい場合は、

$ script aaa

とすればよい。

scriptコマンドから出るにはexitを入力するか、Ctrl+Dを入力する。

-aオプションを用いるとファイルへの追加がおこわなれる。

-fオプションを用いるとファイルへの出力が即座に行われる。これを用いると他の端末からtail -f などでリアルタイムに入出力を見ることができる。(マニュアルには行単位で出力と書いてあるが実際にやってみると即座に行われるようだ)

-tオプションを用いると入出力のタイミングデータを標準エラー出力に出力する。

$ script -t 2> timing
.....
$

scriptreplayコマンドを使うと、このtimingファイルとtypescriptファイルを使ってリアルに再現することができる。

$ scriptreplay timing
...

ただしUbuntu日本語環境だとタイミングがうまく動かないみたいなので、scriptコマンド実行のときのLANGを消したらうまくできた。

$ LANG= script -t 2> timing