Gradle で依存設定しているローカルjarファイルにはソースjarなどを紐付けできない?

Gradle、ローカルに置いた jar を依存設定するのはいいのだけれども、その jar のソースjarやJavadoc jarを紐付けできないのでちょっと不便。Gradle というか Eclipse プラグインの Buildship の問題と見るべきかもだけれども…。Can the Gradle Eclipse Plug…

シーケンス番号の連続性チェックのやりかた

UDP パケットとかドロップが起き得るデータにシーケンス番号を振っておいて、受け側でドロップがないか検査したりすることはよくあると思いますが、そのよくあるはずの検査アルゴリズムの知識がなかったので、頭をひねった結果をメモ。 int[] seq = new int[…

Win32 Disk Imager Error 32

Win32 Disk Imager を使っていて、「Error 32: プロセスはファイルにアクセスできません。別のプロセスが使用中です。」が出たらパスが悪いのかもしれないので、イメージファイルをルートに置いてやり直してみよう。

Listen 0.0.0.0 in Java

Java で Socket Listen するときのアドレスを InetAddress.getByName("0.0.0.0") で与えると、 IPv4 の 0.0.0.0 と IPv6 の [::] の両方を Listen しちゃって、v4v6の両方で接続できちゃう ようになるような(今更)

eclipse のデフォルト文字コードの変更

eclipse で開いて文字化け、「ふぁっきんms932!」と叫んだときに。eclipse.ini に -Dfile.encoding=utf-8を追加設定→一般→ワークスペース で変更する手もあるけど、そちらはワークスペース単位なので。「eclipseで開くのは UTF-8 に決まってるだろぉぉぉぉ…

Raspberry Pi 2 から 3 への移行

Pi 2 から Pi 3 の移行は、Pi 2 に挿していた microSD を Pi 3 に差し替えるだけで動いちゃったので驚いた。細かいところはさておき、バイナリ互換なのね(ARMの互換関係よく知らない勢並感)。

Raspberry Pi 3 の消費電流計測

『Raspberry Pi 3 って 2.5A 食うらしいし、電源周り難しいよね』って不安だったので、計測してみた。先にまとめ。 Pi3 vs Pi2 で起動時の電流計測してみた まとめ 起動時ピーク電流は Pi 2 がやや少ない。 アイドル状態では大差無い。 shutdown 後の待機電…

2016-07-14

最近、久々に C# 使ってるのよね。Java と似て非なる部分がちょろちょろあるから怖い。

InnerException の再スローには ExceptionDispatchInfo を使おう

単発タスク(Task.WaitAllとかで集約していないタスク)を使った非同期処理を扱うメソッドでの例外を投げる場合、 AggregateException をそのまま出すと、メソッドを呼ぶ側で InnerException をチェックしたりしないといけないので面倒です(面倒ですよね?…

C# の long は読み書き Atomic じゃないから Interlocked 使おう

複数のスレッドから触られる long 変数(64bit変数)の取り扱い。 Java メインの人は引っかかりそうなのでメモ。Java ではできる「volatile long」が C# では未サポート(コンパイルエラーになる)なので、 long 変数への Atomic な読み書きをするには読み書き…

TcpClient#Connect のタイムアウト制御

TcpClient でコネクションを張る際の接続時タイムアウトをユーザコードで任意に指定しようとすると、次のようなコードが今風(C# 5.0 以降風)なのだろうか? try { int timeout = 接続タイムアウト(ms); TcpClient client = new TcpClient(); Task con_task =…

C# 非同期メソッドを作るにあたり、例外が出るタイミングでハマったメモ

通常のメソッドを非同期化しようとしてハマった罠。 普段 C# を使いこんでる人は既知だろうからスルー推奨。次のような感じのコードで hoge を非同期化しようとする場合、 void Main() { try { hoge(); } catch (Exception e) { ※ 例外処理 } ※ 続きの色々な…

Commons CLI でソートせずにオプション一覧を出力する

Commons CLI で設定したオプションをソートせずに help 表示・出力する方法。HelpFormatter#setOptionComparator に null を渡せばソートが無効化される。HelpFormatter のデフォルトでは、 Options に設定したオプションが通常の文字列順序にソートされて出…

JSON の Jackson が勝手に Stream を close してしまう問題

問題 JSON ライブラリ Jackson の ObjectMapper を使ったシリアライズ・デシリアライズで、Stream や Reader/Writer を対象にしたメソッドを使うと、そのStream, Reader/Writer が自動的に close されてしまうので、再び読み書きしようとした際に IOExceptio…

カード切替による e-TAX 登録の電子証明書の更新

住基カードからマイナンバーカードに切り換えると、 e-TAX 用の電子証明書の再登録が必要になります。 Q. どうすんの? A. ここで再登録 (リンクは2016/6/1時点のもの)必要なもの Internet Explorer 新しい電子証明書が入ったカード カードリーダー e-TAX の…

ゲスト無負荷時のKVMプロセス(qemu-kvm)高負荷問題と対応方法

2016/5/30 時点情報CentOS6 の KVM 仮想化環境において、ゲスト無負荷時でもKVMプロセス(qemu-kvm)のCPU利用率が比較的高くなる問題と対応方法。 症状 ゲストが無負荷状態にもかかわらず、ホスト上の qemu-kvm プロセスが常時 10〜20% 程度のCPU利用率(topコ…

Raspberry Pi で GW-450D を使う @ 2016.2

Raspberry Pi で GW-450D を使う のアップデート まとめ 基本は Raspberry Pi 2 + RASPBIAN JESSIEでPLANEXのGW-450D(無線LANドングル)を使う - Qiita の手順に従う そのままだとドライバのコンパイルでエラーになるので 「カーネルのダウンロード」には rpi…

Java InputStreamReader、 Windows でのデフォルト文字コード

Java の InputStreamReader、 Windows 環境ではデフォルト文字コードは UTF-8

Elasticsearch + head のブラウザで geo_point 見えない問題

Elasticsearch の head プラグインのブラウザBrowserですが、どうも geo_point のフィールドの表示は対応していないようです。なので投入に成功していてもブラウザ上のカラムそのものが表示されなかったりします。 そのため、見た目はレコードのPOST/PUTにfa…

ansible で逐次実行する

通常ansibleは操作対象のホストグループのノード全てに対して並列にタスクを実行しようとする。そのため、サービスを順番に立ち上げていく、というような逐次実行させるにはserial文1行の追加が必要。 - hosts: webs serial: 1serial文の意味としては、並列…

Gradle で外部設定ファイルを使ってデフォルト設定を上書きする

build.gradle 内でデフォルト値を設定しておき、 gradle.properties の設定値があればそちらで上書きする。build.gradle の頭のあたりにデフォルト値と gradle.properties からの読み取りコードを以下のように書いておく。 configDir は def なり ext { } な…

Gradle でタスクの途中で中断させる方法

質問『Gradle のビルドスクリプトで、処理環境が整ってないとかでタスク途中で中断するにはどうすればいいの?』答え『例外投げろ』例えば、実行環境は Java8 に移行済みなんだけれど、大人の事情の都合で Java7 環境向けのコードを出さないといけない場合に…

Could not fetch model of type 'EclipseProject' using Gradle distribution 〜 エラー

Could not fetch model of type 'EclipseProject' using Gradle distribution 'http://services.gradle.org/distributions/gradle-2.6-bin.zip'. → \.gradle を削除してみよう eclipse + buildship で、Gradleプロジェクトを新規で作ったりインポートしたり…

Gradle でソースの一部を除外した jar ファイルの作り方

Gradle で Ant の jar タスクで言うところの exclude のやりかた。 task jarTare(type: Jar) { baseName = 'Tare' from sourceSets.main.output exclude('jp/ne/hatena/d/samples/shell/**') } baseName は出力する jar ファイルのファイル名。 src/main/jav…

Eclipse Gradle plugin の Buildship が依存ライブラリを解決してくれない問題

いまさらながら Gradle に手を出しはじめたので、コマンドラインでちょこちょこと弄ってみた後、Eclipse + Buildship plugin な環境でインポートしたところ、依存ライブラリが解決されない。 maven の m2e 環境のように自動的に依存ライブラリダウンロードし…

LaTeXに取り込むEPSファイルの上や右が書ける問題

PowerPoint で絵を作って WMF2EPS で EPS に落として LaTeX で PDF を作ると EPS 画像の上端、右端が欠けてまるでずれたような図になってしまう問題。どうも EPS ファイルの BoundingBox が怪しいようで、対症療法だけれども %%BoundingBox: 56 56 437 245 …

しいたけたべた

はてブ界隈で有名な話題の椎茸id:watto氏をファミリーマートで見かけたので確保した。フジパンのマウントホイップケーキぐらいのサイズかと思いきや、以外に小さい。 RaspberryPi B+ 比でこれぐらい。 切れてるパンケーキ? 知らない子ですね。これはしいた…

金融アグリゲートサービスが怖いところ

複数の銀行やらクレジットカードの履歴情報を集約してくれる金融アグリゲートサービスについて、『いやー、家計簿アプリ業界、そのうち絶対にヒドい事件がおきると予想します - ツイナビ | ツイッター(Twitter)ガイド』が ブコメ を賑わしていますが、ネット…

Java での AES-NI の効力とか性能とか

『Java って AES-NI 効いてるの?』って17歳女子高生の素朴な疑問から。結果: 128KB のバイト配列を食わせた結果 AES-NI あり 663,478 ns AES-NI なし 1,880,994 ns 2.8 倍ぐらいはやい。OpenSSLを使ったベンチ のことを思うと振るわないけど効果はあるのね…

今時の W32TeX には IPAex フォントが必要

結論から。 今の W32TeX 環境を導入したら IPAex フォントも一緒に入れておこう。 閑話休題、意識が 3 ケタレベルに低いので Windows 環境で LaTeX 使ってたりするんですが、ふと思いつきで TeX 環境を現時点(2015/3/25)最新のものに更新したんですね。 オヤ…