• Javaで文字種を指定してURLエンコード

    2014年02月20日 18時45分
    URLエンコードと言えばRFC 3986みたいな仕様が有るものの
    言語や実装によって変換される文字種がとってもファジーな感じです。

    そのため対向システムとのやり取りの障害となることが頻繁に発生します。

    例によって今回も発生したので対応方法をメモっておきたいと思います。
    使用言語はJavaです。


    この場合の対応方法は基本的に変換する文字種を指定してURLエンコードを行うことです。

    URLエンコードの処理はそれほど難しくもないので
    自分で全部書いてしまってもいいと言えばいいのですが
    車輪の再発明を何度もするのもアレなので既存のライブラリ(Apache Commons Codec)を使用する方法です。

    1public String myUrlEncode(String source)
    2{
    3    StringBuilder sb = new StringBuilder();
    4
    5    // URLで安全な(変換しない)値を指定する
    6    // 以下は英数字のみの指定
    7    BitSet urlSafe = new BitSet();
    8    urlSafe.set(0x30, 0x3a);
    9    urlSafe.set(0x41, 0x05b);
    10    urlSafe.set(0x61, 0x07b);
    11
    12    // URLCodec.encodeUrlを上記の設定を使って実行する
    13    // 返される値は変換済み文字列のASCIIコード
    14    for (byte b : URLCodec.encodeUrl(urlSafe, source.getBytes(StandardCharsets.UTF_8)))
    15        sb.appendCodePoint(b);
    16
    17    return sb.toString();
    18}
  • プログラマの知恵袋 寝具編

    2014年01月13日 23時11分
    とあるプロジェクトが大変な状態になってしまっため
    社畜である私は久しぶりに生贄として捧げられました。

    その際実に役立つ発見をしたので広く知らしめておこうと思います。


    生贄として捧げられてしまった場合睡眠は会社で取ることになります。
    (まあまだ睡眠を許される程度の危険度です。)

    その場合に枕が無くて寝にくいなあと思っていたのですが
    たまたま隣に置いてあったシュレッダーのゴミ袋を使用したところ
    大変快適になりました。

    構造は実質クッションのような物なので当然ですね。
    中身の量を調整することにより高さの変更も容易です。

    会社にあることが一般的な代物なので覚えておくと役立つと思います。


    また、私は床で寝るよ派だったのですが
    冬場は床に体温を奪われて大変なことになったので
    椅子を並べるよ派の方が有利かなと思いました。

    冬に床で寝る場合は下に段ボールを敷くなどの工夫が必要だと思います。
    新聞紙をかけるのも保温に効果があるので覚えておきましょう。
  • avs2wav 1.0.3

    2013年08月13日 22時23分
    44Byteほどメモリリークするバグがあったので修正しました。

    avs2wav 1.0.3


    起動してすぐ終了するプログラムでたった44Byteリークしたところで
    特に何がどうというわけでもないので直すか迷いましたが
    一応バグには違いないので直しました。



    2013-11-05追記

    原因不明で再現も出来ないのですが
    ファイルがダウンロード出来ない場合があるようなので
    Blogプログラムを通さない場所にファイルを置きました。
    上のファイルと同じファイル

    こちらでも失敗するようだともうだめです。

    あと、このファイルは適当に置いただけなので
    将来的にサーバ再インストールとかしたときに存在を忘れてたら消えます。
  • Mad CatzのCyborg M.M.O. 7を買いました。

    2013年08月04日 00時09分
    Mad CatzのCyborg M.M.O. 7を買いました。
    買う前に気になっていたポイントについて
    実際にどうだったかを書いておきます。

    重い?

    レビューを見ていると重いという意見が多いようですが私は特に気になりませんでした。
    ケーブル含まず140g弱ですので他のゲーミングマウスに比べて著しく重いということは無いと思います。
    普段からLogicoolのマウス使ってたりするとむしろ軽いと感じるかもしれません。

    持ち上げる時に親指どこに置くのよ?

    5Dボタンの前あたりに置くのかと思ってましたが実際そこだけだと面積たりません。
    どれかのボタンに指が当たることになります。
    ただ、どのボタンもそれなりに堅いので、持ち上げる程度の力なら間違って押してしまうということはありません。

    左右ボタンの根元のボタンは割り当て可能?

    ActionLockというボタンですが割り当て可能です。

    不可能というのは初期バージョンの話です。
    初期バージョンもファーム書き換えで割り当て可能になるようです。
    新型、白、赤、黒では何もせずとも最初から割り当て可能です。

    割り当て可能15ボタンというのは結局どれなのか

    1. 左ActionLockボタン
    2. 右ActionLockボタン
    3. マウスホイールボタン(ホイール回転は割り当て不可)
    4. 進むボタン
    5. 戻るボタン
    6. 1ボタン
    7. 2ボタン
    8. 3ボタン
    9. 親指ホイール左
    10. 親指ホイール右
    11. 5Dボタン押し込み
    12. 5Dボタン上
    13. 5Dボタン下
    14. 5Dボタン前
    15. 5Dボタン後

    割り当て不可能なボタンはどれなのか

    1. modeボタン(左クリックの左にあるボタン)
    2. shiftボタン(右クリックの右にあるボタン)
    3. DPIボタン(ホイールの後ろにあるボタン)

    5Dボタンは押し分けられるのか

    押し分けは可能です。
    押し込みと前後は割と押しやすいです。
    下もまあ押せます。
    上はマウスが持ち上がってしまうのでかなり押しにくいです。

    親指ホイールは使えるのか

    回せないことはないですが結構窮屈です。
    ただし、指の長さで結構使い心地が違ってくると思います。

    Shiftボタンについて

    これ手の小さい人だと遠くてすごく押しにくいです。
    レビューを見ると押しやすいのに割り当てがという人も居ますので手の大きさ次第だと思います。

  • LogicoolのG700sを買いました

    2013年08月03日 23時03分
    LogicoolのG700sを買いました。
    買う前に気になっていたポイントについて
    実際にどうだったかを書いておきます。

    親指の4ボタンは押し分けられるのか?

    親指のところに4つボタンが密集しておりすごく押しにくそうですが
    実際は形状のおかげで余裕で押し分けられます。

    人差し指の3ボタンは押し分けられるのか?

    こちらも形状のおかげで押し分けは余裕です。
    私の場合手が小さいので一番遠いボタンが若干押しにくかったですが
    普通の人は特に問題ないでしょう。

    マウスホイールの後ろについているボタン

    ホイールの動きを変更するボタンの後ろに
    設定可能なボタンが一つ付いているのですが
    指をかなり折りたたまないと押せないのでかなり押しにくいです。
    ボタンが多いマウスなのでわざわざこれを使う気にはなりません。

    予想外の事態が!

    各種ボタンは思っていたよりも押しやすくいい感じだったのですが
    予想外に致命的な弱点がありました。

    すごく持ち上げにくいですこのマウス。

    私は普段MX-Rを使用しており、
    重量がそれとほとんど同一だったため大丈夫だろうと思っていたのですが、
    サイドの素材が滑りやすく持ち上げにくい。

    あと小指側の傾斜が上にいくほど細いのでよけい滑りやすい気がします。

    元々MX-Rでも重い・でかいは他のメリットと比べて我慢していたのですが
    ここに持ち上げにくいというのも追加されて結構なストレスだったので使用を諦めました。

    このあたり気になりそうな人は事前に実物を触ることをおすすめします。