2016-01-01から1年間の記事一覧

なぜクレジットカード払いを使わないのか? → 主に管理が手間だから

カードを持ってるのに現金払いを好んで使う30代の友人に、その理由を聞いてみた。『なぜクレジットカード払いを使わないのか?』 - クレジットカードの読みもの を読んでの感想文。 よく言われるクレジットカード払いのメリットは 現金の支払いは基本的に後…

XBee 送信ステータス 0x26 の意味

XBee でブロードキャスト送信していると、その送信ステータスで 0x26 が返ることがあるんですよ。公式リファレンス によると、 0x26 = Broadcast source failed to hear a neighbor relay the message ということで、ご近所がリレーしたメッセージが聞こえな…

XBeeの通信チャンネルの指定の仕方

2016/9/12 修正 当初 S2C で ch 26 が使えないとしてましたが対応しているようです。 XBee and XBee-PRO ZigBee RF Modules - Digi International Channels, Zigbee - Digi Developer 元記事 XBee ついでなので、XBee ZB S2C が使う通信チャンネルの指定の仕…

Arduino + XBeeシールド + XBee で勝手にリセット

Arduino + XBee ZB S2C で遊んでて、時々勝手に Arduino がリセットするので何故だ、ということで。結論を先に書くと、XBee のハードフロー制御動作と XBee シールドの回路の影響で、フロー制御がかかるとリセットしますよというお話。 環境は Arduino Uno R…

CentOS7 の USB インストール

1. 公式サイトから Minimal の iso をダウンロードしてくる。 2. DD for Windows - Tech Info を使い、1. でダウンロードした iso を USBフラッシュメモリに書き込む 3. USB メモリをつっこんでターゲットを起動するNetInstall イメージを使うと、ダウンロー…

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 環境向けのコードを出さないといけない場合に…