'use strict';

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

“use strict”(厳格モード)を使うべきか?
JSLint,The JavaScript Code Quality Tool

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

Coveralls(というか Travis CI)で Gradle を使いつつ JaCoCo でカバレッジを計測したかったが頃合いのライブラリが無かったので、coveralls-gradle-plugin に機能追加してプルリクエストをしてみた. ちょっと恥ずかしいコミット漏れをしてしまったが無事マージしていただけた. Maven に反映された使う. JaCoCo プラグインは Gradle 本体に含まれているので、coveralls-gradle-plugin の Readme にある buildscript のおまじないをした後

apply 'jacoco'
apply 'coveralls'

を build.gradle に含めれば JaCoCo で Coveralls ライフがすごせる. Cobertura 関連の設定は無くても大丈夫.

2013/12/10 追記: JaCoCoの結果xmlに依存しているので、

jacocoTestReport {
    reports {
        xml.enabled = true
    }
}

も必要でした.

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

JMXの属性を取得したり操作を呼び出したりしようとすると非常に面倒. 属性の場合複合オブジェクトだとCompositeDataを再帰的に降っていかないといけないし、操作に関してはいちいちメソッドのシグネチャを特定しなければならない. この辺は型が分かっていればすべて解決できるということでMBeanインターフェースの型を用いてMBeanの属性ないし操作にアクセス出きるようにするプロキシを生成する手段が javax.management.JMX クラスに存在する.

HogeMBean mBean = JMX.newMBeanProxy(mBeanServerConnection, objectName, HogeMBean.class);

javax.management.MBeanServerInvocationHandler を使うユーティリティクラスで、実質的にはリフレクションの Proxy を使ってプロキシオブジェクトを生成している. MBeanが通知を受け取れる場合ようにNotificationEmitterを実装したプロキシオブジェクトが生成な可能なメソッドも存在している.

SoftRefLRUPolicyMSPerMB

IntelliJ IDEAのJVMオプションの変更点をチェックしてみると

$ diff idea64.vmoptions idea-IC-133.193/bin/idea64.vmoptions
5a4
< -XX:+UseCodeCacheFlushing
9c8,11
> -XX:+UseCodeCacheFlushing
> -XX:+UseConcMarkSweepGC
> -XX:SoftRefLRUPolicyMSPerMB=50
> -Dawt.useSystemAAFontSettings=lcd
---
< -Dawt.useSystemAAFontSettings=on

awt.useSystemAAFontSettings=onは自前で追加していたもの。SoftRefLRUPolicyMSPerMB ってはじめてみたけど、What determines when softly referenced objects are flushed? によると空き領域に対するソフト参照のフラッシュ間隔を決めるオプションらしい. デフォルト値が1000なので積極的にフラッシュするようにしているということ.

awt.useSystemAAFontSettings がとりうる値は [「Java SE 6完全攻略」 第17回 文字に対するアンチエイリアス (http://itpro.nikkeibp.co.jp/article/COLUMN/20070205/260649/) で解説されている

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+Blog%29

GroovyやGradleのサポート強化、デバッガも進化したらしい。そろそろ買ってもいいか迷うところ。

Intellij IDEA javac オプション

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

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

見た目はこんな感じ

f:id:ihiroky:20131203064057p:plain