lubuntu 14.04 には ax88179_178a.ko がデフォルトで存在する

usb 有線LANアダプタ では Amazon.co.jp: Anker Uspeed USB3.0 LANアダプター 10/100/1000BASE-T ギガビットイーサネット対応 USB2.0/1.1にも互換性あり MacBook Air動作確認済 ASIX AX88179チップセット: パソコン・周辺機器 のためにドライバをインストー…

Lubuntu 14.04でインストールしたパッケージ

lxkeymap CapsLockをCtrlに変更. 永続化は.config/autostart xcompmgr XのCompositeを有効化. .confing/autostartで自動起動 ibus-anthy 日本語入力 guake ワークスペースまたぎターミナル vpnc VPNクライアント xtightvncviewer VNCビューア rdesktop Windo…

行内差分をハイライト

git

diff-highlight で公開されている git-contrib の1つ. $ cd ~/bin $ wget https://raw.github.com/git/git/master/contrib/diff-highlight/diff-highlight $ chmod +x diff-highlight $ vi ~/.gitconfig .gitconfigあたりに記述 [pager] log = diff-highligh…

gradle から umlgraph を使う

要は、UMLGraphの doclet を javadoc タスクで指定し、gradle javadocすればいい. UmlGraphが依存しているgraphvizパッケージをインストール $ sudo apt-get install graphviz build.gradle に依存関係追加 configurations { doclet } dependencies { doclet…

アサーション時、 ListのtoString()がObjectのtoString()っぽくなる

Listのアサーションを記述したとき、 java.lang.AssertionError: Expected: is <[1]> but: was <java.util.ArrayList@35ffcd64> の様にObjectのtoString()っぽい表記になることがあった. 原因は toString() 内部で NullPointerException が発生していたこと. この時、org.hamcrest.BaseDisc</java.util.arraylist@35ffcd64>…

Cassandra クライアントサンプル

プロジェクトサイト The Apache Cassandra Project インストール ダウンロードしたアーカイブを展開するだけ $ tar zxvf /tmp/apache-cassandra-2.0.3-bin.tar.gz -C /opt/java $ cd /opt/java $ ln -s apache-cassandra-2.0.3 cassandra 設定変更 設定が示…

Gradle プロジェクト初期化

build.gradleのサンプルや、gradle wrapper, 基本的なディレクトリまで生成してくれる. ihiroky@LZ750HS:~/t$ gradle init --type java-library :wrapper :init BUILD SUCCESSFUL Total time: 4.28 secs ihiroky@LZ750HS:~/t$ ls build.gradle gradle gradle…

Gradle 1.10

Gradle 1.10がリリースされた. GCCやVisual Studioに対するサポートが強化されている感じ. 気になるところでは、テスト実行について、コマンドラインで指定したテストだけを実行するオプション (test タスクの --tests) がついた. 今までは -Dtest.singleton…

正規表現にマッチする文字列のカウント

find()の連続呼び出しでマッチする部分文字列を巡回することができる. 実行結果 find 0 : 0, 2 find 1 : 3, 5 find 2 : 6, 8

Object#wait()に関連するテスト

タイムアウト可能な同期をとって処理を行うメソッドを定義するとき、うっかり時間単位間違えて使ってエンバグすることがある. private final Object mutex_ = new Object(); // モニタ private String value_; // ガードする変数 public void method0(long t…

CIFSマウント先がいなくなる?と親ディレクトリまで操作不能になる

CIFSでマウントしていたWindows7にWindowsUpdateをあてて再起動したら、マウントしているディレクトリを持つ親ディレクトリ毎 ls すら不能になる. 何もできなかったので再起動して回復. つまり、Windows側を落とすときは明示的にアンマウントしておかないと…

NotificationBroadcasterSupportにExecutor

JMXの通知で使えるサポートクラス javax.management.NotificationBroadcasterSupport に、リスナ呼び出しをExecutorで行う機能がついていた. 適当な Executor を渡すと、リスナ毎に Executor の呼び出しを行うようになっていた. 未指定時はそのまま Runnable…

mockito で可変長引数に Matcher を使うときに注意すること

mockito で使って可変長引数を持つメソッドをモックしたとき、明示的に配列を使うとMatcherを使う/使わないで挙動が違う. 例えば、 public class Hoge { public int varArgsMethod(String...args) { return args.length; } } という定義がある時、 Hoge hog…

coveralls-gradle-plugin 0.2.1

coveralls-gradle-plugin が 0.2.1 になって coveralls-gradle-plugin に JaCoCo でカバレッジをとれる機能を追加した もmavenに登場した. ためしてるけどビルド自体がうまくいってない模様で確認しきれてない.

'use strict';

JavaScriptにもstrictモードがありました. 2009年からあったそうで、今更ながら知りました. 使用するには スクリプト先頭もしくは関数スコープの先頭にに 'use strict'; を記述. でも JSLint は必須. “use strict”(厳格モード)を使うべきか? JSLint,The J…

coveralls-gradle-plugin に JaCoCo でカバレッジをとれる機能を追加した

Coveralls(というか Travis CI)で Gradle を使いつつ JaCoCo でカバレッジを計測したかったが頃合いのライブラリが無かったので、coveralls-gradle-plugin に機能追加してプルリクエストをしてみた. ちょっと恥ずかしいコミット漏れをしてしまったが無事マ…

JMXの属性や操作に簡単にアクセスする

JMXの属性を取得したり操作を呼び出したりしようとすると非常に面倒. 属性の場合複合オブジェクトだとCompositeDataを再帰的に降っていかないといけないし、操作に関してはいちいちメソッドのシグネチャを特定しなければならない. この辺は型が分かっていれ…

SoftRefLRUPolicyMSPerMB

IntelliJ IDEAのJVMオプションの変更点をチェックしてみると $ diff idea64.vmoptions idea-IC-133.193/bin/idea64.vmoptions 5a4 < -XX:+UseCodeCacheFlushing 9c8,11 > -XX:+UseCodeCacheFlushing > -XX:+UseConcMarkSweepGC > -XX:SoftRefLRUPolicyMSPerM…

IntelliJ IDEA 13

リリースされたそうです。 http://blog.jetbrains.com/idea/2013/12/intellij-idea-13-is-released-work-miracles-in-java-and-beyond/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+jetbrains_intellijidea+%28JetBrains+IntelliJ+IDEA+Blo…

Intellij IDEA javac オプション

Intellij IDEAでコンパイラのオプションにオプションをつけるには、 Settings -> Compiler -> Java Compiler -> Additional command line parameters に記載する. プロジェクトを開く前の Settings から設定すると Template project settings になるので、常…

端末エミュレータカラーコードサンプル

見た目はこんな感じ

Citrix receiver linux 64bit版でも32bitライブラリが必要

Install Citrix Receiver on debian amd64 にあるとおり、 Citrix Receiverのダウンロードサイト に64bit版パッケージ(deb)が置いてあるけど、実行には32bitライブラリ (ia32-libs ia32-libs-gtk) が必要だった. ここで諦めて32bitPCでセットアップしてしま…

vncserver の xstartup

デフォルトコメントに記載されていたとおり以下とおり記述. xinitrc には実行権限がついていなかったので bash を明示する. 後、クリップボード共有ができないので、vncconfig も起動する. alternatives の x-session-manager が呼び出されるが実際に使って…

パッケージの更新を定期的にコンソールに通知する

以下のスクリプトをrootのcrontabに仕掛ける. GUIを使えないところで使った.

Jacocoプラグインが便利

使い慣れてた cobertura を使ってカバレッジを測っていたけど、gradle に jacoco プラグインが標準搭載されているのでこれを使ってみた。至極お手軽だった・・・。 プラグインを読み込んで apply plugin: 'jacoco' jacocoReportTaskを実行するだけ $ gradle …

同じポートにバインドした複数のソケットでマルチキャストパケットを受信する

1ホスト上で同じポートに対して複数のソケットをバインドし、そこにマルチキャストパケットを流し込んだときのCPU使用率. Cpu0 : 32.2%us, 22.7%sy, 0.0%ni, 8.2%id, 0.8%wa, 0.0%hi, 36.1%si, 0.0%st Cpu1 : 29.3%us, 26.4%sy, 0.0%ni, 43.5%id, 0.7%wa, 0.…

vncserver の起動停止スクリプト

Debian系でvncserverの起動停止を行うスクリプト.一般ユーザーで.

DatagramChannel#read(ByteBuffer) は空データパケットを読めない

データをDatagramChannelで送る import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.DatagramChannel; public class Hoge1 { public static void main(String[] args) throws Exception { final DatagramChannel cha…

Redmine backlogsの設定が変更できないのはDBがおかしかった

久しぶりにbacklogsの設定を変更しようとしたがいくら変更しても一向に変更されない状態になった。保存時のログは以下のような感じで特段エラーっぽくみえない。 Started POST "/settings/plugin/redmine_backlogs" for 192.168.0.12 at 2013-11-21 17:09:43…

Jenkins (winstone) を Apache と連携させる

Apache設定 ProxyPass /jenkins http://localhost:8080/jenkins ProxyPassReverse /jenkins http://localhost:8080/jenkins ProxyRequests Off Jenkins (winstone) 起動 /jenkins をつけてApacheのproxy設定に合うようにするところがポイント。外部からはApa…

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. …