yuu_nkjm blog


2010-10-01(Fri) [長年日記] 編集

2007年くらいから個人としてはopenSUSEを使っているのだが,某所にはFedoraの6と7が多少生き残っている.管理ログを気合いを入れて記事にまとめ直す気はないが,メモを残しておく.

[Fedora 6-7] ネットワークインタフェースの設定ファイル

ネットワークインタフェース(ネットワークカード)の設定は,/etc/sysconfig/network-scripts/ifcfg-eth0に書かれている.

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.2
GATEWAY=192.168.0.1
ONBOOT=yes
NETMASK=255.255.255.0

2010-10-10(Sun) [長年日記] 編集

[command][SVN] 作業コピーの情報を取得する

"svn info"とすれば,作業コピーに関する情報を取得できる.svnのコマンドについてザッとさらうなら,SVNコマンドメモ(Hishidama's Subversion command Memo)を見ると良さそう.

普段はtortoisesvnを使っているけど,バッチ処理をするためだったり,何かとコマンドライン版も必要.Subversion Binary Packagesに色々なsvnのバイナリパッケージが紹介されている. Subversion for Windows | Download Subversion for Windows software for free at SourceForge.netからダウンロードしたsvn.exeを使っている.

[E:/workspace/] svn info matsim
Path: matsim
URL: https://matsim.svn.sourceforge.net/svnroot/matsim/matsim/trunk
Repository Root: https://matsim.svn.sourceforge.net/svnroot/matsim
Repository UUID: c88ec2e0-6d1a-0410-bfb1-b076d2d10ec3
Revision: 11430
Node Kind: directory
Schedule: normal
Last Changed Author: ****
Last Changed Rev: 11430
Last Changed Date: 2010-05-07 03:29:33 +0900 (金, 07 5 2010)

2010-10-11(Mon) [長年日記] 編集

[Linux][command][bash] サブディレクトリにある全ての(任意の範囲の)shファイルを起動する

execというディレクトリのサブディレクトリにシェルスクリプトが複数あり,それを起動したい.

ディレクトリ構成
exec/000/simulation.sh
exec/001/simulation.sh
…
exec/010/simulation.sh

全てのshを起動

find exec/ -print|grep sh|sort

上記のコマンドを叩くと,スクリプトの一覧が獲得できる.このコマンドの実行結果を変数xに格納し,forループで回しながら,各スクリプトをevalで評価する.

#!/bin/bash
x=`find exec/ -print|grep "sh"|sort`
for i in $x
  do
    `chmod +x $x`
    eval $i
  done

指定した範囲のshを起動

複数台のPCで実行をすることを考えると範囲指定が出来たほうが便利だと言うことで,別バージョンも作った.FIRSTとLASTの値を決め打ちではなく,lsやfindを使って決定したいが,ひとまずはいいや.

#!/bin/bash
 
FIRST=$1
INCR=$2
LAST=$3
 
if [ ! -n "$2" ]
then
    echo -n "Input FIRST [def val = 0]: "
    read FIRST
    echo -n "Input INCR [def val = 1]: "
    read INCR
    echo -n "Input LAST [def val = 200]: "
    read LAST
fi
 
if [ ! -n "$FIRST" ]
then
    FIRST=0
fi
 
if [ ! -n "$INCR" ]
then
    INCR=1
fi
 
if [ ! -n "$LAST" ]
then
    LAST=200
fi
 
for i in `seq -f "%03g" $FIRST $INCR $LAST`
do
    x=`find settings/exec/$i -print|grep "sh"|sort`
    if [ ! -n "$x" ]
    then
        break
    fi
    `chmod +x $x`
    eval $x
done

起動例

[usr@hoge ~/workspace]$ ./execSimulations.sh 5 1 7
settings/exec/005/simulation.sh
settings/exec/006/simulation.sh
settings/exec/007/simulation.sh
[usr@hoge ~/workspace]$ ./execSimulations.sh
Input FIRST [def val = 0]: 3
Input INCR [def val = 1]: -1
Input LAST [def val = 200]: 0
settings/exec/003/simulation.sh
settings/exec/002/simulation.sh
settings/exec/001/simulation.sh
settings/exec/000/simulation.sh

それにしても,Windowsでもbash欲しい….win-bashってどうなんやろうか.NYACUS(今はNYAOSなのか)ってWindows上でのシェル拡張を使っているけど,乗り換えてみようかな.


2010-10-13(Wed) [長年日記] 編集

[Java][log4j] log4jで生成するログファイルの位置をJavaシステムプロパティで切りかえる

ある環境でlog4jを使ってログを吐かせようとしたとき,log4j.xml内で絶対パスを使ってファイル指定をしてしまうと,違う実行環境(特にWindowsとLinuxとか異なるOS環境)では,困ったことになってしまう.

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="E:/hoge/log/sim.log"/>

Linux上では普通"E:/hoge/log"なんてディレクトリは存在しない.

Java/Log4j - きのさいとを参考にして,Javaのシステムプロパティを用いることで,ログファイルの生成場所を変更することが出来た.

<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="file" value="${log.home}/sim.log"/>

上記のようにlog4j.xmlに書く.そして,実行時にJVMの引数に "-Dlog.home=E:/hoge/log"や"-Dlog.home=/home/usr/hoge/log"という様な形式で,log.homeに値を代入する.

JavaのシステムプロパティはSystem (Java Platform SE 6) getPropertiesなどを参考のこと.

つか,javaの実行ディレクトリからの相対パスにするのが簡単だな.



2010-10-15(Fri) [長年日記] 編集

[Firefox][Windows 7 (64bit)] Windows 7でFirefoxのプロファイルフォルダを指定する

"C:\Users\xxxx\AppData\Roaming\Mozilla\Firefox\profiles.ini"を編集する.[Profile0]セクションのPathというエントリで指定する.

[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=0
Path=E:\Application Data\Firefox\nkjm.default
Default=1

2010-10-22(Fri) [長年日記] 編集

[Windows][Shell][FreeSoft] Windowsのコマンドプロンプトシェルを別のシェルに差し替える

Windowsのコマンドプロンプトは,スクリプトを書くにもインタラクティブに使うにも,不便すぎる.

Cygwinは入れるの大げさだし,何か意図しないファイルロックが行われたりするし,好みでない.win-bashもほんのちょっと触ってみたけれど,Tab補完がきかないようだった.

結局,2005年ごろから,NYACUS(現NYAOS)+ckw改造版の修正版を使っている.今はckw(ckwのプロジェクトを登録してみた)のレポジトリもあるようだ.

nyaosとckwの組合せで,インタラクティブシェルとしては文句はないのだが,nyaosがcsh系なのが痛い.bash系だったら僕のニーズに完璧にマッチしていたのに.

ckwの具体的な設定はこんなかんじ.Ckw*execエントリにnyaosを指定して,ckwを被せて,nyaosを使っている.

!
! ckw setting
!
 
Ckw*foreground: #F5F5F5
Ckw*background: #1E1E1E
!Ckw*cursorColor:     green
!Ckw*cursorImeColor:  red
!Ckw*backgroundBitmap: ckw_background.bmp
 
Ckw*title: ckw[cmd]
Ckw*exec:  C:\Hoge\nyaos\nyaos.EXE
!Ckw*exec:  cmd
Ckw*chdir: E:\
 
Ckw*scrollHide: no
Ckw*scrollRight: yes
Ckw*internalBorder: 1
Ckw*lineSpace: 0
!Ckw*topmost: yes
Ckw*transp: 0
Ckw*transpColor: #000000
 
#Ckw*font: ""
Ckw*fontSize: 12
 
Ckw*geometry:  100x30
Ckw*saveLines: 10000
 
Ckw*color0:  #000000
Ckw*color1:  #6060A0
Ckw*color2:  #008000
Ckw*color3:  #008080
Ckw*color4:  #800000
Ckw*color5:  #800080
Ckw*color6:  #808000
Ckw*color7:  #C0C0C0
 
Ckw*color8:  #808080
Ckw*color9:  #0000FF
Ckw*color10: #40DD40
Ckw*color11: #00FFFF
Ckw*color12: #FF0000
Ckw*color13: #FF00FF
Ckw*color14: #FFFF00
Ckw*color15: #FFFFFF

2010-10-24(Sun) [長年日記] 編集

[Eclipse][Java][Windows 7 (64bit)] Eclipse(64bit)のインストールと初期設定

Java 64bit

Java SE ダウンロード - Sun Developer Network (SDN)からJ2SE6の最新のJDK(64bit)をダウンロード.

Eclipse 64bit

Eclipse.org homeから最新版(今はHelios Windows/64bit)を頂いてインストール.普通にJavaを使うなら「Eclipse IDE for Java EE Developers」という版で良いと思う.

日本語化パッチ

Pleiades - Eclipse プラグイン日本語化プラグインからダウンロード.Eclipseのインストールディレクトリ配下にある,dropinsに突っ込む.32bitマシンにインストールするときは,all in one eclipseを使うのもあり.

dropinsへのインストールでうまくいかないときは,pluginsとfeaturesにコピーする.その場合,iniファイル中のパスもそのようにする.

eclipse.iniの設定

eclipse.iniには,以下の様に記載.初回は,eclipse.exe -clean.cmdで起動する.
-vm
E:/hogehoge/jdk1.6-64bit/bin/javaw.exe   # 64bitのVMを指定
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.0.v20100503
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512M
--launcher.defaultAction
openFile
-vmargs
-javaagent:dropins/pleiades_1.3.1/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
-Dosgi.requiredJavaVersion=1.5
-Xms2048M
-Xmx2048M
eclipse.exe -clean.cmdの中身は,
:******************************************************************************
: eclipse -clean 起動コマンド (Windows 用)
: eclipse.exe と同じディレクトリに置いて使用。
:******************************************************************************
start .\eclipse.exe -clean %*

インストール済みのJRE

今はどうだか知らないが,以前はjreのjavaw.exeとjdkのjavaw.exeは異なり,jreの方だとメモリに制限があった.一応,jdkの方を使う様に,インストール済みのJREで指定.

文字コードの変更

最近は文字コードUTF-8,改行コードCR+LFで統一している.改行コードはLFの方が良かったかもしれん.ワークスペース→UTF-8

コンソール

コンソールにログを吐きまくることもあるので,「コンソール出力の制限」をoffにする.

コンソールに何かがあったとき,フォーカスが移るのがだるいので,コンソール枠のアイコンをクリックして,「標準出力に変化があったとき」をoffにする.

Javaのコンパイラ

Java→コンパイラー→エラー/警告→使用すべきではない制限されたAPI→禁止された参照(アクセス・ルール)を警告にする.

実行構成

"-Xmx2048M -ea"メモリの使用量の上限とアサーションの使用をオンに.

Webブラウザー

「外部ブラウザーを使用」にチェック

必須プラグイン

  • Subversive回りをインストールする.Subversive SVN JDT 無視拡張,Subversion SVN チーム・プロバイダー,SVNコネクタをインストール.SVNコネクタは1.3.5をインストールした.「ソフトウェアの更新->Subversive SVN コネクター」を選択すると,後で追加インストールができる.検索に時間がかかるので,反応がなくても待つこと.
  • 既存のプロジェクトで,SVNレポジトリに接続していた場合,「プロジェクトを選択->チーム->プロジェクトの共用->プロジェクトの設定の使用をオン」で再接続できる.
  • FindBugsはとても便利.

2010-10-27(Wed) [長年日記] 編集

[Windows 7 (64bit)][FreeSoft] Windows 7以降で使えるtclock

TClock Light 改造版公開 (kt070321)@K.Takata's BBSで紹介されているtclocklight-kt100204-custom.7zはWindows 7以降で使用可能なようだ.安全性については未検証.

見た目はこんな感じにしてます.タスクバーは右端に縦方向にする派です.

画像の説明

書式の設定は以下.

平YY\nyyyy\nmm/dd\n(ddd)\nhh:nn\n:ss\n-------\n"CPU" CU"%"\n"MEM"\nMAPMM\n△NSSKkB\n▼NRSKkB\n"VOL"VOL__xVMT(%|黙)

ダブルクリックするとミュート,スクロールボタンを回すとボリュームを変更できるように設定してます.


2010-10-28(Thu) [長年日記] 編集

[Linux][command][Script][find][nkf] findとnkfを使って,ファイルの文字コードを一括変換

ディレクトリorig以下の文字コードを一括変換したものを,new以下に格納する場合を考える.

origを全コピーする.これにより,ディレクトリをコピーする.

cp -a orig new

run.shを作成.

find ./orig -type f \( -name '*.java' -or -name '*.xml' \) -printf 'nkf -S -w %p > new/%P\n' > run.sh

nkfの-Sは入力がShift-JIS,-wはUTF出力である.改行コードをUNIX改行(LF)に変更したい場合は,-Luをつける.中身を確認して,run.shを実行する.

他にも,sedにファイルを喰わせても色々出来る.

find ./orig -type f \( -name '*.java' -or -name '*.xml' \) -printf 'sed s/charset=Shift_JIS/charset=utf-8/ %p > new/%P\n' > run.sh

最初はxargsを引数を一つずつ実行するオプションをつけて使おうと思ったけど,参考記事の様にfindに直接コマンドを実行させた方が分かりやすいと思った.リダイレクトを使って結果を書き出そうとすると,リダイレクト先のディレクトリが存在しないといけない.これも参考記事の様に,cp -aでコピーをとって,そこに流し込むようにすれば,間違えなさそう.

コピペ用

Javaのソースコード+XML変換.Shift-JIS→UTF-8

cp -a orig new
find ./orig -type f \( -name '*.java' -or -name '*.xml' \) -printf 'nkf -S -w %p > new/%P\n' > run.sh
. run.sh

なんでも変換.EUC→UTF-8

cp -a orig new
find ./orig -printf 'nkf -E -w %p > new/%P\n' > run.sh
. run.sh

手抜き

オプション 
 -w utf-8
 -s shift-jis
 -e euc-jp
 -Lu UNIX(LF)
 -Lw Windows(CR+LF)
 
nkf -w -Lw --overwrite *.java

2010-10-29(Fri) [長年日記] 編集

[Eclipse][Maven][Java] mavenの初期設定(Eclipseとの連携,プロキシの設定など)

Mavenは大がかりすぎてあんまり好きじゃないんだけど,利用したいとあるオープンソースプロジェクトがMavenを利用しているので,MavenをEclipseから利用できるようにしてみる.

プラグインのインストール

"Help > Install New Software"で, http://m2eclipse.sonatype.org/sites/m2eとhttp://m2eclipse.sonatype.org/sites/m2e-extrasを指定."Maven Plugin"と"Maven SCM handler for Subclipse"と"Maven SCM Integration"を入れる.

mavenでproxyを設定する

Maven2を実行する環境によっては、proxy経由でアクセスしないとインターネットへアクセス出来ない場合がある。その際、proxy設定をsettings.xmlに記述する。

<settings>
  <proxies>
    <proxy>
      <active/>
      <protocol>プロトコル(httpなど)http</protocol>
      <username>ユーザ名</username>
      <password>パスワード</password>
      <port>ポート番号(8080等)</port>
      <host>ホストURL</host>
      <id/>
    </proxy>
  </proxies>
</settings>
Maven2のTipsを集めるWiki - CookBookより

デフォルトのレポジトリへのパスの変更

デフォルトのパスは"c:\Users\[username]\.m2\"になるようだ.設定->Maven->User Settingsで変更できる.


2010-10-30(Sat) [長年日記] 編集

[Eclipse][jad] Eclipseのjadプラグイン

Jad(Javaの逆コンパイラ,デコンパイラ)をEclipse上で使うJadClipse(Eclipse3 インストールメモ(Hishidama's Eclipse3 install Memo))プラグインなんてものもあるんですね.Eclipseつえー.


トップ «前月 最新 翌月» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|