JVM の TieredStopAtLevel

jvm

64bitのJava VMにはClient VM(-clientオプション)が付属していなくて、Server VMだと32bitのClient VMほど速く起動しないなー、って思ってたんだけど、64bitでも-XX:+TieredCompilationと合わせてこのオプションつけると-clientとほぼ同じような最適化になる…

PPA リポジトリの登録削除

Simply run apt-add-repository again with the --remove option to remove a PPA added via the command-line, for example:sudo apt-add-repository --remove ppa:kernel-ppa/ppaThen update with:sudo apt-get update updates - How do I remove a PPA ad…

Intellij IDEA live templates に JUnit 関連のスニペット

Reformat according to style にチェックを要れておくと適宜インデント等してくれる

boolean で NullPointerException

boolean と評価する文脈でなぜか NullPointerException が起きるなーという場合は実際に null が Boolean として評価されているかもしれない。Auto boxing こわい。

autojump + ls

autojump でディレクトリ移動が快適になった。ls コマンドも頻繁に叩くので、autojump した後に ls もしておけるようにした。 function jl { j ${@} && l }l は ls -CF --color auto. ファイルが多いディレクトリにこれで飛び込むと不快かもしれない。それ以…

autojump 導入

apt で autojump をインストールしようとしたら python3 を要求されたので、手動インストールした。 $ git clone http://github.com/joelthelion/autojump.git $ cd autojump $ ./install.sh -d /opt/autojump/ -p / Installating autojump... Destination: …

getconf - システム構成変数表示

システム構成変数を表示するコマンド。 -a をつけると表示できるものすべてを表示する。 ページサイズ $ getconf PAGE_SIZE カーネルのbit数 (32/64) $ getconf LONG_BIT Web上で閲覧できる項目の説明。ただし AIX... http://publib.boulder.ibm.com/infocen…

long v = 0xFFFFFFFF は -1

Javaで、以下の変数 v を定義すると、その値は -1 になる。 long v = 0xFFFFFFFF; 一瞬、「え?」となったが、右辺は定数であり int と解釈され -1 となり、それが long に拡張されている模様。下位32bitがたっている long 型の変数が要るときは long 値であ…

OpenJDK のソースコードを取得する。

apt で openjdk-7-source を取ってくれば良さげだが、依存関係がいっぱい。とりあえずコードだけみたいので本家から直接取得。 mercurial が必要。 mercurial インストール $ sudo aptitude install mercurial forest.py 導入 $ hg clone 'http://bitbucket.…

visualvm のフォントにアンチエイリアスをかける

Linux(確認したのは Debian wheezy)で VisualVM (Home — Java.net)のフォントが汚い。とりあえずアンチエイリアスをかけるには以下のようなオプションを追加。 $ /path/to/visualvm -J-Dawt.useSystemAAFontSettings=on & Java アンチエイリアス有効化オ…

最近の Ubuntu は LightDM というディスプレイマネージャ

今まで何となく GDM を使いつづけていたが、ノートにインストールしていた Xubuntu (12.04) は LightdM freedesktop.org - Software/LightDM というディスプレイマネージャだった。設定項目の説明が Web 上に見つからないが、/usr/share/doc/lightdm/lightdm…

標準出力をクリップボードにのせることができるコマンド xclip

xclip をインストール。 $ sudo apt-get xclip $ xclip -h Usage: xclip [OPTION] [FILE]... Access an X server selection for reading or writing. -i, -in read text into X selection from standard input or files (default) -o, -out prints the selec…

JVM向けの -X や -XX の値を取得する

RuntimeMXBean (Java Platform SE 7 ) が使える。ただし、値だけでなくキーやその前の -X まで取れる。

gradleで生成するjarファイルの名前

java plugin を使っている時は jar.baseName で指定する。デフォルトのまま jenkins でビルドすると workspace-x.x.jar とか出来上がってビックリする。Jar - Gradle DSL Version 1.3]

ライセンス雛形

Licenses by Name | Open Source Initiativeコメントもついていて良い感じ。

vimrc

set number set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set smarttab set autoindent set smartindent set showmatch set list set listchars=tab:»-,trail:-,eol:↲,extends:»,precedes:«,nbsp:% syntax on colorscheme elflord 黒気…

vim インデントをスペース2個

~/.vimrc に以下を記述。 set tabstop=2 set softtabstop=2 set shiftwidth=2 set expandtab 範囲指定するときは Ctrl+Vで範囲指定してから =。 ファイル全体は gg=G。

jenkins で実行する gradle スクリプト

定番の FindBugs, PMD, Cobertura, Checkstyle でチェックをかける gradle スクリプトのサンプル。外に出れない不自由な環境向けに必要 jar は所定のディレクトリに格納してあるとする。build.gradle は手元で簡易ビルドするために使って、jenkins-build.gra…

Java アンチエイリアス有効化オプション

-Dawt.useSystemAAFontSettings=on Intellij IDEA にこのオプションを与えるときは、 bin/idea64.vmoptions に追記。

VMWare Tools の取得〜インストール

http://softwareupdate.vmware.com/cds/vmw-desktop/player/5.0.1/894247/windows/packages/tools-linux-9.2.2.exe.tarをダウンロード。5.0.1の部分までURLを削ると各バージョンのアーカイブまでたどれる。 tar cf tools-linux-9.2.2.exe.tar (要Windows)t…

はてなブログ1周年おめでとう!

はてなブログ1周年おめでとう! id:hatenablog

GTKアプリケーションのキーバインドをEmacs風にする

GTK+2 系 $ echo 'include "/usr/share/themes/Emacs/gtk-2.0-key/gtkrc"' > ~/.gtkrc-2.0 GTK+3 系 以下の内容を ~/.config/gtk-3.0/settings.ini に記述 [Settings] gtk-key-theme-name = Emacs ソース:Emacs bindings [LWN.net] The GTK+ Projectをパッ…

openssl で自己書名証明書を作る

# openssl genrsa -des3 1024 >/etc/pki/tls/private/redmine.key # openssl rsa -in /etc/pki/tls/private/redmine.key -out /etc/pki/tls/private/redmine.key # chmod 400 /etc/pki/tls/private/redmine.key # openssl req -new -key /etc/pki/tls/privat…

gradle コンパイル時に -Xlint:all を指定する

compileJava.options.compilerArgs = ['-Xlint:all']

はてなブログへ引っ越しました。

ihiroky's blog

Hudson / Jenkins ビルド時にビルドする git の branch を選択する

ジョブの設定で、「ビルドのパラメータ化 (This build is parameterized)」を有効化 パラメータの追加から「選択」を選択 名前を GIT_BRANCH 選択値を develop master ソースコード管理システム (Source Code Management) の Git 設定 Branches to build の …

gitolite authorized_keys から呼ばれる gitolite-shell のパス変更

Solaris で稼働させている gitolite のバックアップを Linux にとり、緊急時はバックアップ側の Linux でも gitolite を使える環境を作った。ホームディレクトリのパスは、Solaris は /export/home/gitolite, Linux は /home/gitolite。authorized_keys から…

Source Code Pro フォントを Linux にインストール

Source Code Pro | Free software downloads at SourceForge.net より SourceCodePro_FontsOnly-1.009.zip をダウンロードして、インストール。 $ unzip SourceCodePro_FontsOnly-1.009.zip $ sudo mv SourceCodePro_FontsOnly-1.009 /usr/share/fonts/truet…

Chromium on Linux に自己書名証明書を取り込む

libnss3-tool がインストールされていなければ、インストールする。 $ sudo aptitude install libnss3-tools証明書をインポートする。証明書が手元に無いときは、該当 URL に chromium でアクセスし、URL 入力フィールド左の鍵アイコンをクリック -> Certifi…

Hudson ( ≠ jenkins) から Redmine 2.0 の issue を参照できるようにする

アップデートが面倒になっている Hudson に Redmine プラグインを導入する際、redmine の issue を参照する URL が Redmine 2.0に合わなかったのでいじった。Maven なし。 The Central Repository Search Engine から redmine-0.9-sources.jar をダウンロー…

Gradleのディレクトリレイアウト作成と build.gradle 作成を行うスクリプト

AlMinium (Redmine) redmin_hudson プラグイン導入

nobiinu_and / redmine_hudson / downloads — Bitbucket から redmine_hudson-2.0.0.zip を取得し、Redmine の plugins 以下に展開 plugins/redmine_hudson/Gemfile を以下のように編集。redmine_backlogs とぶつかる部分。redmine_backlogsに定義されて、re…

nixnote (nervernote)の依存関係 (openjdk-6-jre等)を取り去った deb を作る

http://sourceforge.net/projects/nevernote/files/Current/ よりdebパッケージを取ってくる。64bit環境なので nixnote-1.2_amd64.deb . deb を解凍して依存関係の定義を削除する。 $ mkdir tmp $ cd tmp/ $ ar xv ../nixnote-1.2_amd64.deb x - debian-bina…

Lavie G type Z に xubuntu をインストール

Xubuntu から64bitイメージをダウンロードし、LinuxLive USB Creator を用いてライブUSBを作る BIOS で boot mode を Legacy に変更して、非UEFI状態でインストール実行。grub は / にインストールしておく。 ライブUSBの起動時に F6 を連打し起動オプション…

gitolite.conf チェックスクリプト

gitolite.conf にタイポを残したままコミットするととても恥ずかしい。コミット前にチェックできるよう、スクリプトを書いた。

ALMinium (Redmine) Gitリポジトリ追加に必要な設定

SCM Creator Pluginの設定変更が必要。ALMINIUM_HOME/config/scm.ymlに allow_add_local: true を追加する。plugins/redmine_scm/config/scm.yml ではないので注意。 $ cat /opt/alminium/config/scm.yml production: auto_create: true deny_delete: true p…

Git 環境準備

git aptitude install git で進められたパッケージをインストール(debian squeeze)。 gitolite GitHub : sitaramc/gitolite · GitHub Manual等 : Hosting git repositories インストール手順 server : repository管理ホスト、client : 作業端末 server# us…

オープンベータということで

とりあえず作ってみました。

LinuxMint Debian Edition 201109 セットアップ メモ

インストール usb 作成 UNetbootin - Homepage and Downloads を用いてbootable usbを作成。元となるイメージファイルは Download - Linux Mint からダウンロード。軽い方がよいので xfce 版。なお、このイメージファイルが壊れていると当然ながら作成するus…

Ubuntu 11.10 と LG L-05A, vpnc

L-05A 設定 /lib/udev/rules.d/40-usb_modemswitch.conf のLG L-05A向けの行を以下の通り編集 # LG L-05A # ATTRS{idVendor}=="1004", ATTRS{idProduct}=="613a", RUN+="usb_modeswitch '%b/%k'" ATTRS{idVendor}=="1004", ATTRS{idProduct}=="6124", RUN+="…

プラグインのカスタマイズ

eclipse/plugin_customization.ini にパラメータ設定を記述 eclipse 起動時引数に -plugincustomization "/path/to/eclipse/plugin_customization.ini" を追加 /cygdrive/c/bin/eclipse/eclipse.exe -showsplash "$@" -plugincustomization "c:\bin\eclipse\…

more emacs

いつも eclipse 標準に搭載されている emacs キーバインドをカスタマイズして使用していたがいい加減面倒なので More Emacs Plugin を導入。今後アップデートも必要なさそうなので dropins 配下に投入。 eclipse +dropins +features +jp.sourceforge.moreema…

乱数取得

$ echo $RANDOM 16065知らなかった。

ant + cobertura でカバレッジを計るときは、jvmをforkさせることは必須

It is important to set fork="true" because of the way Cobertura works. It only flushes its changes to the coverage data file to disk when the JVM exits. If JUnit runs in the same JVM as ant, then the coverage data file will be updated AFTE…

あるプロセスが利用しているファイルディスクリプタの情報

lsof コマンドでファイルディスクリプタの一覧を出力させることができる。 [hoge@test10 ~]$ /usr/sbin/lsof -p 22405 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME java 22405 sdc cwd DIR 104,3 4096 82575383 /opt/hoge/bin java 22405 sdc rtd DIR 1…

LocateRegistry#createRegistry() は作成したRegistryをエクスポートする

LocateRegistry#createRegistry() で RMI の Registry を作ったらそれはエクスポートされる。以下LocateRegistry#createRegistry(int) の javadoc。 Registry インスタンスと指定された port を引数に指定して static メソッド UnicastRemoteObject.exportOb…

variable byte code

Javaで実装。単なる関数なのであまりJavaっぽくないけど。都合でバイト列は引数渡し。 public class VariableByteCoder { public static void encode(int n, byte[] target, int offset) { int t = n; int i = 0; // 7ビットごとに分割 for (; t > 0x7f; t >…

標準出力のファイルハンドルを取得する

ファイル名として - を渡すとopenで標準入力のリファレンスを取れる。標準出力は -> open(my $stdin, "-"); // $stdin は標準入力 open(my $stdout, "->"); // $stdout は標準出力

csv ファイルインポート

フィールドが , (カンマ)区切りでHOGE.csv の内容をテーブル HOGE に取り込む。ただし、先頭の1行を取り込まない場合のコマンド。 mysql> load data local infile "HOGE.csv" into table HOGE fields terminated by "," ignore 1 lines;

Windowsでシンボリックリンク

Windows Vista(以降?)ではシンボリックリンクが作成できる。 ただし、cmdの組み込みなのか、mklink.exe っぽいものは見つからず、cygwinから使うことはできなかった。 K:\hoge>mklink シンボリック リンクを作成します。 MKLINK [[/D] | [/H] | [/J]] リ…