Socketのバインド判定

java.net.Socket では isBound() でバインド済みか判定できる。java.nio.SocketChannel では getLocalAddress() の戻り値が null ならば未バインド、null でないならばバインド済み。ServerSocket と SocketChannel、DatagramSocket と DatagramChannel でも…

grubでUEFIのWindowsをブートするメニューを作る

以下のコマンドで Windows の efi があるパーティションのUUIDを調べる。EFIパーティションがマウント済みの状態で実行する。UUIDでマウントしていれば既知のはず。 $ sudo grub-probe --target=fs_uuid /boot/efi/efi/Microsoft/Boot/bootmgfw.efi B281-13D…

usb 有線LANアダプタ

Amazon.co.jp: Anker Uspeed USB3.0 LANアダプター 10/100/1000BASE-T ギガビットイーサネット対応 USB2.0/1.1にも互換性あり MacBook Air動作確認済 ASIX AX88179チップセット: パソコン・周辺機器 を Xubuntu 12.04 on Lavie G type Z で使用。手元にGbit…

tail -f

GNUのtailが無い環境向けの、ファイル追記内容出力するツール。

Gist投稿/削除スクリプト

何が悪いのかよく分からないけれど、Firefoxからgistの投稿ができないときがある。なので、gistに投稿などするスクリプトを書いた。Ubuntu(Xubuntu) 12.04で追加モジュールなし、スクリプトファイル一つで動く。ihiroky/gist.pl · GitHub

compiz gtk-window-decorator 設定変更

透明度変更 $ gconftool-2 -s /apps/gwd/use_metacity_theme -t bool true $ gconftool-2 -s /apps/gwd/metacity_theme_opacity -t float 0.5 $ gconftool-2 -s /apps/gwd/metacity_theme_active_opacity -t float 0.75 metacityテーマ変更 $ gconftool-2 -s…

コミットヒストリグラフ表示(テキスト)

git

コミットログを全部表示するなら --oneline は要らない。 ihiroky@ihiroky-PC-LZ750HS:~/projects/niotty$ git log --oneline --graph

awkでgrepっぽいこと

ihiroky@ihiroky-PC-LZ750HS:~$ awk '$2 == "^Y" {print;}' .screenrc bind ^Y eval 'command -c layout' 'layout show'

Tyrus サンプル

JSR 356 - Java API for WebSocket のリファレンス実装である Project Tyrus のサンプルをクライアント付きで書き起こした。サーブレットコンテナは面倒なのでスタンドアロンモード。実際のものは ihiroky/tyrus-sample · GitHub に置いてあるので、下記引用…

開発版 GNU Screen インストールメモ

sudo apt-get install autoconf # autoreconf sudo apt-get install libncurses5-dev # configure says 'error: !!! no tgetent - no screen' git clone git://git.savannah.gnu.org/screen.git cd screen/src/ ./autogen.sh ./configure --prefix /opt/scre…

ファイル内行の合計を計算する

paste というコマンドを初めて知った。入力を行にまとめて、デリミタを + にする。それを bc に食わせると計算されるという仕組み。paste の入力に標準入力 (-) が使えるのでパイプで用意につなげる。行数が多いときはbashのバッファに注意。$ head /tmp/log…

cvsファイルダウンロード時にExcelを開かせるレスポンスヘッダ例

Solaris10 にmysqlをインストールする

やったこと。/etc は使っていない。 tar.gz を展開する /usr/local/mysql でアクセスできるようにシンボリックリンクをはる mysqlユーザーを作る DBを置くディレクトリを作り、mysqlユーザーでアクセスできるようにする /usr/local/mysql/scripts/mysql_inst…

Untracked files 以外を index に追加する

git

追記:これなんて言う git add -u...status が modified と deleted なものを集めて add/rm するだけ。

vim キャリッジリターンを落とす

:set fileformat=unix でOK。ちょっと前は :%s#^M##g ってやってた気がする。

ia32-libs-i386, ia32-libs-gtk-i386 パッケージ

これらのパッケージがインストールできないのだが、それはアーキテクチャ依存だからという話。 debian - ia32-libs : Depends: ia32-libs-i386 but it is not installable - Server Fault # aptitude dist-upgrade 以下のパッケージが更新されます: ia32-lib…

Cygwin の X をアップデートしたらリモートのWindowにカーソルが出なくなった

Cygwinを久しぶりにアップデートしたら X のバージョンも上がって 1.13.2-2 になった。この状態で DMCP でリモートにアクセスしたら、マウスカーソルが表示されなくなった。右クリックするとメニューがでるのでイベントは発生している様子だった。簡単に戻せ…

符号付き Variable Byte Codes

ある値の付近を動くデータを符号化する必要があったので、Variable byte codes の符号付きを書いた。2の補数は用いず、マイナス0に相当する符号が null に対応させている。niotty/src/main/java/net/ihiroky/niotty/buffer/AbstractCodecBuffer.java at deve…

バッテリ駆動時にCPUをpowersaveにする

/etc/laptop-mode/conf.d/cpufreq.conf の BATT_CPU_MAXFREQ, BATT_CPU_MINFREQ, BATT_CPU_GOVERNOR を以下のように編集 BATT_CPU_MAXFREQ=slowest BATT_CPU_MINFREQ=slowest BATT_CPU_GOVERNOR=powersave cpufreq-info の出力が以下のような感じになる。 an…

JVM switch文とバイトコード

Java で switch 文を書くと、バイトコードとして tableswitch か lookupswitch が生成される。tableswitch 生成条件と、tableswitch と lookupswitch の挙動について調べた。参考にしたコードは OpenJDK の jdk7u。 tableswitch と lookupswitch Chapter 3. …

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 アンチエイリアス有効化オ…