• 俺が・・・俺たちが・・・MX Masterだ!!

    2015年04月13日 19時02分
    その昔MX Revolutionというマウスがありまして、
    私はこれを発売日に買って去年まで使っていました。

    発売が2006年らしいので8年くらい使っていた計算になります。
    その8年間も仕事とプライベートでずっと使い続けているわけでかなりの密度と言えるでしょう。

    さすがにこれだけ酷使するとボタンにはチャタリング出てきますし、
    充電の接点がうまく接触しなくなったりして、限界を感じた為引退させました。

    そうしますと新品を買い直し・・・と行きたいところですが、
    だいぶ前に生産終了していて手に入りません。
    予備を購入しようしようと思いつつ放置していたのが失敗でした。
    時既に時間切れ。私は深い悲しみに包まれた。


    何故MX Revolutionにこだわるかと言えばSmart shiftの1点に尽きます。

    一度これに慣れてしまうともう他のホイールは使う気にならないのですが、
    MX Revolution以降のどのマウスにもこの機能が付いていなかったのです。

    調教してそれ無しでは生きられない体にしておいて
    全くフォローしないLogicoolは鬼のようだと思っていたのですが、
    先日ついにSmart shiftが復活しました。


    MX Master


    SetPointの再インストールのたびにアンケートでSmart shift復活させろと送り続けたかいがありました。

    とりあえず買ってきてしばらく使ったので、
    MX Revolutionを使い続けて来た、MX Revolutionマスター。略してMXマスター視点の感想を書きます。


    まず形状ですがMX Revolutionと比べて背が高いと感じます。
    スペック的には大差ないはずなのですが・・・
    親指付け根の辺りが高い形状のせいでそう思うのかもしれません。
    まあでもこれが困るという人は居ないんじゃないかなと思います。


    注目のホイールですがMX Revolutionと同じ感覚で使えます。
    気持ち軽くなったような気もします。
    新品だからか個体差だからかもしれませんが。


    進む・戻るボタンの配置は最初違和感ありましたが、
    押すのが窮屈というわけではないのですぐに慣れました。


    サムホイールはスイッチ的なホイールから本当のホイールになったので、
    MX Revolutionでスイッチ的に使っていた人はボタンが足りなくなって困るかもしれません。
    私の場合殆ど使っていなかったので水平スクロールは便利だなあという感じです。


    ジェスチャーボタンは使い道を考えれば便利かもしれない・・・?
    今のところ未使用です。
    他の人のレビューを見ても割と持て余し気味な気はします。


    充電が専用の充電台からUSBケーブルを刺す形に変わりました。
    充電しながら使うことも出来ますし、
    充電台はすぐ接触が悪くなって困っていたのでうれしい変更だと思います。


    という感じで概ねMX Revolutionの正当後継と言っていいと思います。
    MX Revolution生産終了でお困りの方にオススメです。
    私もとりあえず3個くらい買っておこうと思います。
  • HHKBをAXキーボードレイアウトで使っているFF14プレイヤーの話

    2015年01月13日 20時28分
    この記事はタイトルに関係無い人には全く役に立たない内容と予めお知らせしておきます。

    問題

    FINAL FANTASY XIVでパッチ2.4アップデート以降、
    半角/全角キー押下でAltキーが押されたままの状態になる。

    ∧∧∧∧∧∧∧∧∧∧      ___/ ̄ ̄ ̄\
    < ┌┐  ┌───┐ >   /  / / ̄ ̄ ̄ ̄\
    < ││  └──┐│ >  /    ̄          \
    < ││  ┌──┘│ >/    □            \
    < ││  └──┐│ >// ̄~\ / ̄ ̄ ̄\      |
    < ││  ┌──┘│ >|//\ヽ ∨〃/\   \   /\
    < ││  └───┘ >//(・) \ゞ/ /(・)  〉   |  | ∩|
    < ││           >| \_/ノ  \_/ ノ し|:   | ∪|
    < ││   □   _  >l:::::::::∠~         ⌒ |   \/
    < ││   □  //  >|:::::::::r~~‐、ヽ      /   /
    < ││     //   >|:::::::::)jjjjjjjjjjjヽヽ   /   /
    <   ̄    //     >|:::::::::|,,    || /   /
    <.  ロロ┌┐ ̄ _ □□ >!:::: ヽiiiiiiiii//  /   /
    <   ┌┘│  / /     >ヽ  ヽ~~"/   /
    <     ̄ ̄  /  ̄ ̄フ  > ヽ、__,,,_∠__/
    < ┌┐┌┐ / /ニ/ /  >  _]:::::::   [_
    < ││││/┌っ /   > ̄~        ゙ ̄ ̄ ̄ ̄ヽ
    < ││││ ̄ / /    >               ,~ヽ
    < └┘└┘  / /      >             ~ ノ ̄\
    <   []  []    ̄       >           ’ノ⌒⌒⌒⌒



    原因

    HHKB Professional2をAXキーボードレイアウトで使っているためと思われる。

    AXキーボードレイアウトというのは、基本的にUSレイアウトのキーボードとして使えるが
    右Altキーを半角/全角キーとして使えるようになる設定。

    おそらくFF14のキー情報取得はスキャンコードを取っているが、
    IMEがONになったときにそのキーのUPを取りこぼすようなバグがあるんだと思う。

    Altキーは各種ショートカットで頻繁に使うので押しっぱ状態だと色々と困る。


    対応

    一応公式に不具合報告は出しているが、未だに修正されないし修正されるのかもわからないので自分で対応する。

    ちなみに私はWindowsのキーボードがどういう仕様で動いているかよく知らないし、
    こんな全国でも数人レベルしか困っていない問題に労力を割くのも馬鹿らしいので
    理論や理屈はかなり適当だと断っておく。動けば良い。
    あと文章もほぼ自分用のメモ代わりなので結構雑になるとも断っておく。


    周りに同様の現象で困っているような人は居ないので、半角/全角キーのスキャンコードのキーに半角/全角キーのレイアウトを割り当てれば良いっぽい。
    たぶんゲーム内部的には半角/全角キーのスキャンコード(0x0029)が押しっぱになっていると思うのだが、
    そのキーはIMEのON/OFFにしか使わないので表に問題として出てきてないんだと思う。

    なので、まずはキーボードのレイアウトをを日本語106キー(kbd106.dll)に戻す。
    基本的には日本語のWindowsは最初これになっていると思う。

    そうすると、HHKBの右上のキー(`キー)が半角/全角キーになるので、
    レジストリのスキャンコードの設定を変えて、右Altがこのキーになるように設定すればよい。
    ついでに同じキーが2個あっても仕方ないので、右上のキー(`キー)を日本語キーボードの|キーに変更する。

    つまりこうなる
    • 右Altキー(スキャンコード=0xe038) → 半角/全角キー(スキャンコード=0x0029)
    • 半角/全角キー(スキャンコード=0x0029) → |キー(スキャンコード=0x007d)


    ひとまずこれで右Altキーを押してIMEの切り替えが正常に行われるようになる。


    ただ、この状態だと基本的に日本語レイアウトなので、
    Shift+数字キーとか記号キーの辺りが違って非常に使いにくい。

    そこで、kbd106.dllのレイアウトを一部改造してUSレイアウトっぽくする。

    具体的にはkbd106.dllのソースがMicrosoft公式に置いてあるのでそれを取ってくる。
    (厳密には違うのかもしれないけどだいたい同じっぽいのでよしとする)

    このソースはVisual Studio 2013とWDK8.1をインストールすれば簡単にビルドできる。
    (両方とも同じくMicrosoft公式からダウンロード出来る。)


    C++/fe_kbds/jpn/106の、キーボードレイアウトを設定してるっぽいところを
    適度にエスパーしつつ書き換える。

    --- kbd106.c    2015-01-13 20:23:39.000000000 +0900
    +++ kbd106mod.c 2015-01-13 20:26:22.739691347 +0900
    @@ -237,14 +237,14 @@
     static ALLOC_SECTION_LDATA VK_TO_WCHARS4 aVkToWch4[] = {
         //                               |          |   SHIFT  |  KANA  | K+SHFT |
         //                               |          |==========|========|========|
    -    {'0'          ,          KANALOK ,'0'       ,WCH_NONE  ,WCH_WA  ,WCH_WO  },
    +    {'0'          ,          KANALOK ,'0'       ,')'       ,WCH_WA  ,WCH_WO  },
         {'1'          ,          KANALOK ,'1'       ,'!'       ,WCH_NU  ,WCH_NU  },
         {'3'          ,          KANALOK ,'3'       ,'#'       ,WCH_A   ,WCH_AA  },
         {'4'          ,          KANALOK ,'4'       ,'$'       ,WCH_U   ,WCH_UU  },
         {'5'          ,          KANALOK ,'5'       ,'%'       ,WCH_E   ,WCH_EE  },
    -    {'7'          ,          KANALOK ,'7'       ,0x27      ,WCH_YA  ,WCH_YAA },
    -    {'8'          ,          KANALOK ,'8'       ,'('       ,WCH_YU  ,WCH_YUU },
    -    {'9'          ,          KANALOK ,'9'       ,')'       ,WCH_YO  ,WCH_YOO },
    +    {'7'          ,          KANALOK ,'7'       ,'&'       ,WCH_YA  ,WCH_YAA },
    +    {'8'          ,          KANALOK ,'8'       ,'*'       ,WCH_YU  ,WCH_YUU },
    +    {'9'          ,          KANALOK ,'9'       ,'('       ,WCH_YO  ,WCH_YOO },
         {'A'          , CAPLOK | KANALOK ,'a'       ,'A'       ,WCH_TI  ,WCH_TI  },
         {'B'          , CAPLOK | KANALOK ,'b'       ,'B'       ,WCH_KO  ,WCH_KO  },
         {'C'          , CAPLOK | KANALOK ,'c'       ,'C'       ,WCH_SO  ,WCH_SO  },
    @@ -271,14 +271,14 @@
         {'X'          , CAPLOK | KANALOK ,'x'       ,'X'       ,WCH_SA  ,WCH_SA  },
         {'Y'          , CAPLOK | KANALOK ,'y'       ,'Y'       ,WCH_NN  ,WCH_NN  },
         {'Z'          , CAPLOK | KANALOK ,'z'       ,'Z'       ,WCH_TU  ,WCH_TUU },
    -    {VK_OEM_1     ,          KANALOK ,':'       ,'*'       ,WCH_KE  ,WCH_KE  },
    +    {VK_OEM_1     ,          KANALOK ,'\''      ,'"'       ,WCH_KE  ,WCH_KE  },
         {VK_OEM_2     ,          KANALOK ,'/'       ,'?'       ,WCH_ME  ,WCH_MD  },
    -    {VK_OEM_3     ,          KANALOK ,'@'       ,'`'       ,WCH_VS  ,WCH_VS  },
    -    {VK_OEM_7     ,          KANALOK ,'^'       ,'~'       ,WCH_HE  ,WCH_HE  },
    +    {VK_OEM_3     ,          KANALOK ,'['       ,'{'       ,WCH_VS  ,WCH_VS  },
    +    {VK_OEM_7     ,          KANALOK ,'='      ,'+'        ,WCH_HE  ,WCH_HE  },
         {VK_OEM_8     , 0                ,WCH_NONE  ,WCH_NONE  ,WCH_NONE,WCH_NONE},
         {VK_OEM_COMMA ,          KANALOK ,','       ,'<'       ,WCH_NE  ,WCH_IC  },
         {VK_OEM_PERIOD,          KANALOK ,'.'       ,'>'       ,WCH_RU  ,WCH_IP  },
    -    {VK_OEM_PLUS  ,          KANALOK ,';'       ,'+'       ,WCH_RE  ,WCH_RE  },
    +    {VK_OEM_PLUS  ,          KANALOK ,';'       ,':'       ,WCH_RE  ,WCH_RE  },
         {VK_TAB       , 0                ,'\t'      ,'\t'      ,'\t'    ,'\t'    },
         {VK_ADD       , 0                ,'+'       ,'+'       ,'+'     ,'+'     },
         {VK_DECIMAL   , 0                ,'.'       ,'.'       ,'.'     ,'.'     },
    @@ -294,10 +294,10 @@
         {VK_BACK      , 0       ,'\b'      ,'\b'      ,'\b'    ,'\b'    , 0x7f      , 0x7f      },
         {VK_CANCEL    , 0       ,0x03      ,0x03      ,0x03    ,0x03    , 0x03      , 0x03      },
         {VK_ESCAPE    , 0       ,0x1b      ,0x1b      ,0x1b    ,0x1b    , 0x1b      , 0x1b      },
    -    {VK_OEM_4     , KANALOK ,'['       ,'{'       ,WCH_SVS ,WCH_OB  , 0x1b      , 0x1b      },
    -    {VK_OEM_5     , KANALOK ,'\\'      ,'|'       ,WCH_PS  ,WCH_PS  , 0x1c      , 0x1c      },
    +    {VK_OEM_4     , KANALOK ,']'       ,'}'       ,WCH_SVS ,WCH_OB  , 0x1b      , 0x1b      },
    +    {VK_OEM_5     , KANALOK ,'`'       ,'~'       ,WCH_PS  ,WCH_PS  , 0x1c      , 0x1c      },
         {VK_OEM_102   , KANALOK ,'\\'      ,'_'       ,WCH_RO  ,WCH_RO  , 0x1c      , 0x1c      },
    -    {VK_OEM_6     , KANALOK ,']'       ,'}'       ,WCH_MU  ,WCH_CB  , 0x1d      , 0x1d      },
    +    {VK_OEM_6     , KANALOK ,'\\'      ,'|'       ,WCH_MU  ,WCH_CB  , 0x1d      , 0x1d      },
         {VK_RETURN    , 0       ,'\r'      ,'\r'      ,'\r'    ,'\r'    , '\n'      , '\n'      },
         {VK_SPACE     , 0       ,' '       ,' '       ,' '     ,' '     , 0x20      , 0x20      },
         {0            , 0       ,0         ,0         ,0       ,0       , 0         , 0         }
    @@ -306,9 +306,9 @@
     static ALLOC_SECTION_LDATA VK_TO_WCHARS8 aVkToWch8[] = {
         //                      |          |   SHIFT  |  KANA  | K+SHFT |  CONTROL  |  K+CTRL   | SHFT+CTRL |K+SHFT+CTRL|
         //                      |          |==========|========|========|===========|===========|===========|===========|
    -    {'2'          , KANALOK ,'2'       ,'"'       ,WCH_HU  ,WCH_HU  , WCH_NONE  , WCH_NONE  , 0x00      , 0x00      },
    -    {'6'          , KANALOK ,'6'       ,'&'       ,WCH_O   ,WCH_OO  , WCH_NONE  , WCH_NONE  , 0x1e      , 0x1e      },
    -    {VK_OEM_MINUS , KANALOK ,'-'       ,'='       ,WCH_HO  ,WCH_HO  , WCH_NONE  , WCH_NONE  , 0x1f      , 0x1f      },
    +    {'2'          , KANALOK ,'2'       ,'@'       ,WCH_HU  ,WCH_HU  , WCH_NONE  , WCH_NONE  , 0x00      , 0x00      },
    +    {'6'          , KANALOK ,'6'       ,'^'       ,WCH_O   ,WCH_OO  , WCH_NONE  , WCH_NONE  , 0x1e      , 0x1e      },
    +    {VK_OEM_MINUS , KANALOK ,'-'       ,'_'       ,WCH_HO  ,WCH_HO  , WCH_NONE  , WCH_NONE  , 0x1f      , 0x1f      },
         {0            , 0       ,0         ,0         ,0       ,0       , 0         , 0         , 0         , 0         }
     };


    書き換えたらビルドしてdllを設定すればよい。
    (上書きは怖いので別の名前で設定したほうがいいと思う。)
  • Firefox 33.0 でメニューとかブックマークがニョキっとなるのを止める

    2014年10月22日 20時03分
    先日Firefoxを33.0にアップデートしたところ
    メニューとかブックマークがニョキっと出るようになったのですが
    これが気になって気になって仕方ないのでアニメーションを止める方法を調べました。


    この手の設定はだいたいabout:configなのですが、
    タブのアニメーションを止める設定は有ったものの
    今回のメニューとかブックマークの設定はありませんでした。

    なので、CSSからアニメーションの記述を取り除くという方法になるわけですが
    それをしてくれるプラグインが見事に有ったので入れました。


    Kill Panel Animations


    アニメーション止めるためだけにプラグイン入れるのかよ!とも思いましたが
    ソースを見たところ本当にただCSSをOFFっているだけだったのでまあいいかという結論になりました。

    このプラグインは今回の現象にも効果があるものの
    元々は31.0で追加されたアニメーションを止めるためのものらしいので
    その部分にも当然影響があるという点は注意です。
    (31.0でアニメーションになったところってどこでしょう?)



    こういうエフェクトって最初見たときはおおっ!となるのですが、
    普段使っているとうざったいだけなんですよね。

    長い処理時の体感時間を減らすとかなら良いと思うのですが
    今回のケースだとバージョンアップ前はすぐ出てたわけですし・・・

    あまり良くないアップデートだなと思います。
  • ARROWS Tab QH55/Mを買った人はBIOSをアップデートしておきなさい

    2014年08月06日 23時02分
    半年ほど前にARROWS Tab QH55/Mを買いました。
    また富士通のタブレットです。

    私は別に富士通信者ではないのですがスペック厨ではあるので
    富士通製品は割とストライクに来ることが多いのです。


    ARROWS Tab QH55/Mも安定と信頼の富士通クオリティに違わず
    購入直後からクレードルでの充電ができないため新品交換となり
    交換された2台目はスリープから復帰が失敗する個体という状態でした。

    再度交換も面倒くさいし、シャットダウンと起動はそこそこ速いので
    毎回電源OFFにしてごまかしつつ使っていたのですが
    たまたまBIOS更新情報を見たところスリープからの復帰が改善とあったのでアップデートしてみました。


    BIOSのバージョンは1.24で
    セットでアップデートせよとあるドライバと共にアップデートしたところ
    見事スリープからの復帰が直ったので
    同じ被害者のために広く知らしめておこうと思います。


    あとついでなので富士通の悪口を書いておくと
    最近携帯電話をArrows NX F-05Fに変えたのですが(私は別に富士通信者ではありません)
    SIMカード入れる所のキャップがしっかり閉まらずキャップ交換になりました。
    富士通製品を買う時はまず何かあると覚悟して買った方が良いです。

  • VP9とvideoタグを試す

    2014年03月22日 22時22分
    Firefox 28のリリースノートの中にVP9に対応したというのが書いてあるのを見て
    VP9をいつか試そうと思っていたのを思い出したので試しました。


    VP9にエンコードするにはリファレンスエンコーダのvpxencがあります。
    vpxencはlibvpxに含まれているので、さっそくソースを入手してきたのですが
    ビルド手順はまずCygwinをインストールして~から始まっていたので面倒くさくなってやめました。

    古いドキュメントだとVSのプロジェクトファイルを使ってビルドしてねとか書いてあるのですがそんなものは入っていません。
    たぶんCygwinでええやん?みたいなノリで切られたのだと思われます。

    Unix系の環境の方は普通にlibvpxをビルドすればいいと思いますが
    私の環境ですとエンコ出来るパワーを持つマシンはWindowsなのでWindowsで動くものが欲しいわけです。


    その他の手段としてFFmpegがlibvpxを取り込んでいるのでこれを使うのが簡単だと思います
    自分でビルドするのは面倒なのでもちろんZeranoe FFmpeg Buildsを使います。

    今回はとりあえず動けばいいのでエンコードオプションは特に詰めてません。
    このあたりこだわり出すときっと大変なので・・・

    ひとまず品質だけ適度に指定してエンコードしました。
    VP9でエンコードするにはvideo codecにlibvpx-vp9を指定します。
    ffmpeg -i test.avi -f webm -vcodec libvpx-vp9 -b 2048k -level 100 -threads 4 -acodec libvorbis -aq 8 test_20140322.webm


    完成した物がこちらです。FirefoxとChromeは見られると思います。(映像ソースはFF14を録画した1920 * 1080 FPS30の動画です)

    ※回線がやばそうだったりディスクがやばそうだったりした場合このファイルは予告なく削除されます。ファイルが無くなったらそういうことです。


    エンコードして驚いたのが速度です。
    FPS 1.1とか衝撃的なスピードが出ています。
    一応使用したマシンのCPUがCore i7 3770というそこそこいい奴にもかかわらずです。

    level設定失敗したか?と思って300でも試してみたのですがFPS 3とかで大差ありません。(いやまあ3倍といえば3倍なのですが)
    いくらなんでももう少し早くないと実用には厳しいのではないでしょうか。(設定調整で改善するか?)

    映像のクオリティについては私はよくわからないので何とも言えません。
    この先は君の目で確かめてくれ!!