2015/12/16 (水)

2015-12-16:ELECOM Bluetoothマウス CAPCLIP 3ボタン IRLED搭載 充電式

日常のデスクワークで Bluetooth のマウスを使ってるんだけど、ちょいちょい反応しなくてイライラすることがある。
で、今週は段取り失敗やら自分のミスやらがつのっててそもそも機嫌が悪く、そこに急遽反応しなくなるマウスにかなり苛立ってしまい、「あーもうっ!」と床に向かって投げつけたところ、お陰様できちんと壊れてくれました。ちーん。。。

しばらくレッツノートの静電タッチパッドでのポインティング入力。ただ、やっぱり使いづらい。
しょうがないので(って、自業自得なんだけど)、新しいのを買ってきた。
それがこの ELECOM の CAPCLIP というマウスで、見た目おもちゃ。
が、これがなかなかどうして買い物でした。

IMG_2421IMG_2422

本体とキャップからなるこの製品、使うときはキャップを本体のおしり側にはめる。
大きさはかなり小さいのだけど、キャップとあわせると長さがあるので持ちづらいということはない。分解能も1200あるのでそれなりにカーロスが大きく動いて嬉しい(自分の仕事場は20インチモニタ2枚含めて4画面構成)。
使わないときは電源おとしてキャップをかぶせる。これまで使ってたマウスは移動時にむき出しで鞄に放り込んでいたのでホイールボタンのところがおかしくなりがちだったり、不用意にスイッチが入ってたりということがあったんだけど、それがないのは嬉しい。いや、前のも商品パッケージとしては収納ポーチがついてたんだけど、

そんなものはすぐに失くす

IMG_2423のよね。今回の場合、使用時も使用してないときも常に一緒にいさせるデザインなのが安心。
あと、今回のは本体にリチウムイオン電池搭載の充電式。おしりのカバーを開けると microUSB 端子がある。いままでのは単4電池2本だったので、eneloop 使ってたんだけど、これの充電からも解放されるな。
というわけで、期せずして(?)新しいマウスに変えたけど、いい結果になりました、というポストでした。
ちなみにいままでのより値段は安い。。。

参考に、いままでのはこちら(←)です。
別にこれも悪い商品というわけじゃない。これまで2年くらい使ってた気がするし。

comment

2015/11/16 (月)

2015-11-16:KB3081320 で VirtualBox が rc=-22919

Windows Update をして再起動したら、Virtual Box が起動しなくなった。
Oracle VirtualBox 4.3.28 on Windows 8.1。

WinVerifyTrust faild on stub executable: WinVefiryTrust failed with hrc=Unknown Status -x8009200D on ‘\Device\HarddiskVolume4\Program Files\Oracle\VirtualBox\VirtualBox.exe’ (rc=-22929)
virtualbox_rc22919

で、ググるとお仲間がいて、KB2081320 をアンインストールしたらいいよ、とあったので、その通りにして再起動して、復帰。
コントロールパネル→プログラムと機能→インストールされた更新プログラムを表示→KB2081320 を選択してアンインストール。

KB3081320 (10Nov15) breaks VirtualBox 4.3.30 (WinVerifyTrust
https://forums.virtualbox.org/viewtopic.php?f=6&t=74536

とりあえずは起動するようになってよかったね、なんだけど、今後どうしたらいいんだろう、これ。

comment

2015/10/15 (木)

2015-10-15:OpenBlocks AX3 with SSD

OpenBlocks AX3 に 16G の SSD を搭載したのを入手。
ruby 環境を rbenv で入れようとして、いきなりはまった。/tmp の容量不足!
SSD 搭載の場合、/etc とか /usr とかもろもろは /dev/sda1 な SSD を ext4 フォーマットで /.rw とマウントされたとこの下に aufs でマウントされているんだけど、それでも /tmp は本体 RAM 上なのね。

$ mount
/dev/root on / type ext2 (rw,relatime,errors=continue,user_xattr,acl)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=103444k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=10240k,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=206880k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sda1 on /.rw type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered,discard)
aufs on /etc type aufs (rw,relatime,si=8baef055)
aufs on /bin type aufs (rw,relatime,si=88e78055)
aufs on /home type aufs (rw,relatime,si=976ea055)
aufs on /lib type aufs (rw,relatime,si=82ec9855)
aufs on /sbin type aufs (rw,relatime,si=b8e83855)
aufs on /usr type aufs (rw,relatime,si=82ec9055)
aufs on /var type aufs (rw,relatime,si=b8e83055)
aufs on /root type aufs (rw,relatime,si=86e5a855)
aufs on /opt type aufs (rw,relatime,si=86e5a055)
aufs on /srv type aufs (rw,relatime,si=82ebd855)
aufs on /media type aufs (rw,relatime,si=82ebd055)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)

ここらのマウントは /etc/init.d/openblocks-setup の中でやっているみたいで、

        # if using DEBIAN storage, /tmp directory mount under storage.
        #if [ -n "$rwdev" ] ; then
        #        UNIONFS_DIRS="$UNIONFS_DIRS tmp"
        #fi

という部分があったので、この下三行のコメントを外して再起動。。。してみたが、うまくいかない。残念。
いいや、手動でやっちゃえ、と

mount -n -t aufs -o xino=/.aufs.xino.tmp,dirs=/.rw:/tmp=ro aufs /tmp

を実行。これで /tmp が SSD 上になった。

で、rbenv install 2.2.1 みたいにビルドができるようになったけど、、、さすがに1時間コースだな。けっこう重い。^^;
ちなみに、ruby 環境を作った後、rails 入れて、Gemfile 書いて bundle install しようとしたら、therubyracer でこける。
ググッたら github の作者のとこにスレを発見。

unable to build therubyracer/libv8 on arm A10 #255
https://github.com/cowboyd/therubyracer/issues/255

ここの2013年8月24日の投稿のやり方で therubyracer のインストールに自分も成功。
事前に sudo gem uninstall libv8 しておいて、git clone してから、の手順。

bundle install で必要な gem が一通り入り、手製の rails アプリが動くことまで確認。
ちょっと重いけど、使えなくはなさそうだ。

comment

2015/10/14 (水)

2015-10-14:WindowsUpdate で勝手に Windows10 にされかける(回避方法追記)

Windows7 を入れてるデスクトップ機で ESET SmartSecurity が「お使いの Windows が最新じゃないです」言うので Windows Update の更新プログラムの確認をしたら、「Windows10 にアップグレードしろ」の表示。
なんだそりゃ。
windowsupdate_to_win10
利用可能な更新プログラムを確認すると、ご丁寧にオプションの中の「Windows10Proにアップグレード」があらかじめチェックされているという始末。
update_to_win10_checked
これで、気づかずにOKしちゃうと、アップグレードされちゃうわけよね。。。
どうなんだ、こういう姿勢って。

デフォルトでチェックされるのを外せないかと、いくつか調べたんだけど、

How to Block Windows 10 Upgrade Downloads If You’re Not Ready For Them
http://lifehacker.com/how-to-block-windows-10-upgrade-downloads-if-youre-not-1730024570

このやり方では勝手なダウンロードを防ぐだけで、今回の勝手にチェックには効果ない模様。

[企業ユーザー向け] Windows Update からの Windows 10 への無償アップグレードを管理する方法
http://blogs.technet.com/b/askcorejp/archive/2015/07/23/windows-update-windows-10-1.aspx

ここに抑止する方法が書かれているけど、該当するレジストリキーが見つからない。。。

うーん、なにかやり方ないのかな。
どなたかへぷる~

[10/15 10:00追記]
「(レジストリの)キーがなければ作ればいいじゃない」と twitter で教えていただきました。
cmd.exe を管理者権限で起動して、

reg add HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate /v "DisableOSUpgrade" /t REG_DWORD /d 00000001 /f

を実行。
そのあとの Windows Update で、無事にオプションの中から「Windows10Proにアップグレード」が消えました!
ご指摘に感謝♪

comment

2015/10/01 (木)

2015-10-01:HTTPSなサーバのサーバ証明書とその署名中間CA

Cybertrust でサーバ証明書を作って最近更新したサーバが、PC のブラウザからは問題なく閲覧できるも、Android スマホや iPhone からだと証明書エラーの警告言われるよ、と指摘されてあわてる。
今回のサーバ証明書は Cybertrust Japan Public CA G3 という中間CA証明書で署名されたもので、これは Baltimore CyberTrust Root というルート証明書で署名されている。Baltimore CyberTrust Root は各端末に入っているのよね。なんでだー、と。

サーバは nginx。
で、設定ファイルで証明書を指定するのは ssl_certificate のなんだけど、これ、Cybertrust からもらったサーバ証明書だけじゃなく、中間CA証明書も Cat でつなげたファイルにする必要があったというのがオチ。
PC でしか確認してなかったのは失敗だった。。。

comment

2015/09/17 (木)

2015-09-17:curl: (58) Unable to load client cert -8018.

例によって年イチくらいでハマる PKI まわり。
クライアント証明書を使って WebAPI を叩くサービスで、クライアント証明書を SHA-2 に移行しましょうね、というテストをしていて、タイトルのエラー。

$ /usr/bin/curl -E ./client.pem:xxxx -X POST -H 'Content-type: text/xml' -d 'aho' https://dokkano/api
curl: (58) Unable to load client cert -8018.

ちなみにクライアント機は CentOS6。
エラーメッセージをぐぐると、NSS に絡んだエラーらしい。CentOS6 の curl な NSS を組み込んだものなのね。

$ curl -V
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 

でもって、ググってでてきたページたちを参考にクライアント証明書を /etc/pki/nssdb/ 以下に突っ込んでみたりと半日ほど試行錯誤するも、、、うまくいかず。
NSS よく分からん、なんなのこれーーーー、と詰まったので、

もういい、野良ビルドしたる!

と、ソースもってきて、/usr/local/src 以下でビルド。
で、できた /usr/local/bin/curl を使うようにしたら、あっさり動いた。
うーん。。。

$ /usr/local/bin/curl -V
curl 7.44.0 (x86_64-unknown-linux-gnu) libcurl/7.44.0 OpenSSL/1.0.1e zlib/1.2.3 libidn/1.18
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets 
comment

2015/08/20 (木)

2015-08-20:LoadError: libMagickCore.so.2: cannot open shared object file

とある rails のプロジェクトを更新するときに rake assets:precompile RAILS_ENV=production しようとして

rake aborted!
LoadError: libMagickCore.so.2: cannot open shared object file: No such file or directory - /usr/local/rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/rmagick-2.14.0/lib/RMagick2.so
/xxxx/config/application.rb:17:in `'
/xxxx/Rakefile:4:in `'
(See full trace by running task with --trace)

というエラーを喰らった。

けど、No such file or directory 言われたファイルはちゃんとあるのよね。
gem でいれた rmagick をリコンパイルすればいいのよ、ってのをググって見つけたので、

$ sudo gem pristine rmagick

したら、無事解決。

comment

2015/08/17 (月)

2015-08-17:wordpress の「無効な投稿タイプ」と nginx 設定

実はしばらく前から wordpress のダッシュボードで新規投稿をしようとすると「無効な投稿タイプ」と言われて何もできない、という状況に陥っていた。
いい加減なんとかしようと調べたら、原因は nginx の設定がよろしくなかったね、というオチ。
nginx + php5-fpm + wordpress という構成で、さらには wordpress をサブディレクトリ運用という通常でないカタチにしているもので、うまく動作しているようでたまに罠があるのね。
結論としては nginx の設定で

    location ^~ /person/waasuke {
        index index.php index.html;
        try_files $uri $uri/ /person/waasuke/index.php?$args;

        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_split_path_info ^(/person/waasuke)(/.*)$;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;
        }
    }

とすることで解決(/person/waasuke の部分は読み替えてください)。

以下、経過。
原因を探るために、wordpress にログを吐かせる。
これは wordpress の wp-config.php に

define('WP_DEBUG', true);
if ( WP_DEBUG ) {
    define( 'WP_DEBUG_LOG', true );
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors',0 );
}

と書き込む。これで wp-contents/debug.log にログが吐き出されるようになる。
この設定でログを監視しながらくだんの新規投稿のページに行くと、

PHP Notice:  Undefined offset: 1 in /xxxxxx/wp-includes/vars.php on line 31

と気になる出力が。
当該行を見に行くと、

if ( is_admin() ) {
        // wp-admin pages are checked more carefully
        if ( is_network_admin() )
                preg_match('#/wp-admin/network/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        elseif ( is_user_admin() )
                preg_match('#/wp-admin/user/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        else
                preg_match('#/wp-admin/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
        $pagenow = $self_matches[1];

どうやら、$_SERVER[‘PHP_SELF’] のチェックでうまくいってない模様。
で、nginx から値がうまくわたってないのね、ということで冒頭の設定になった次第。

comment

2015/08/10 (月)

2015-08-10:Xperia Z3 Compact

IMG_1162というわけで、粘って使ってた Xperia SX から Z3 Compact に機種変更。
横幅60mmを上限と思っている自分は「どこがコンパクトなんだよ!」と思うも、世の流れには逆らえずということで。
まぁ、最近のアプリだと動作がつらいというのは正直あったしね。。。

SIM が micro から nano に変わるため、変更には新機種で開通操作が必要。
が、その前に必要なデータを移行。自分の場合はモバイル Suica だけだけどね。
変更前の機種でモバイル Suica アプリを立ち上げ、会員メニューで機種変更を選ぶと、センター側で受付がされる。
あとは新機種で開通後にモバイル Suica アプリをダウンロードして立ち上げてログインして、初期設定を実行すればよい。

あとは仕事場帰りにヨドバシでも寄って保護フィルムとかジャケットとか充電ケーブルとかを買おう。
最近の Xperia ってマグネット付の専用の充電端子があるのね(そんなことすら知らない程度に浦島さんな旧機種 Xperia ユーザーなり。。。

comment

2015/06/01 (月)

2015-06-01:mysql gem

ruby で mysql 操作をするのに gem install mysql したライブラリを使っている。
mysql2 の gem だと SQL のプレースホルダ使えないのよね。。。

で、とあるクエリを実行しようとしてて

./hoge.rb:107:in `execute': unsupported type: 18 (TypeError)

というエラー。
なんじゃらほい、と1時間かかってしまった。
Boolean なカラムにデータを入れようとして、true をつっこんでたのがいけなかった。
1 にしたら通った。

comment

2015/04/07 (火)

2015-04-07:fail2ban memo

pop3 に対してパスワードアタックかけてくるおバカがいそうなログを qpopper が出していたので、iptables でどけてしまおうと思いつつ、手動の iptables コマンドでしくじるのも怖いので fail2ban でやってもらうように。

手順

  1. sudo apt-get install fail2ban
  2. qpopper の出すログから相手ホストを切り出すフィルタを書く
  3. そのフィルタを使えるようにする
  4. sudo /etc/init.d/fail2ban restart

フィルタはこんな感じ。

$ cat /etc/fail2ban/filter.d/qpopper.conf 
[Definition]
failregex = qpopper.* \(<HOST>\):.* Password supplied.* is incorrect

フィルタの動作チェックは↓のようなコマンドで。

$ sudo fail2ban-regex /var/log/mail.log /etc/fail2ban/filter.d/qpopper.conf 

大丈夫そうなら jail.conf に今回のフィルタを追加して、fail2ban 再起動。

$ tail /etc/fail2ban/jail.conf 
...

[qpopper]
enabled = true
port = pop3
filter = qpopper
logpath = /var/log/mail.log
maxentry = 10
bantime = 3600

あとは iptables -nL とかして、アタックくんが BAN されてるのを見てニヨニヨしよう。

# iptables -nL
...
Chain fail2ban-qpopper (1 references)
target     prot opt source               destination
DROP       all  --  xxx.xxx.xxx.xxx      0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
...
comment

2015/04/03 (金)

2015-04-03:WindowsUpdate の不具合の修正をあてる

ここしばらく、普段遣いの RZ4 でタスクバーの動作が非常に重かったり、ウィンドウのフォーカス変化がトロくなる事象が散発してた。
常時というわけではなく、気が付くとそうなってて、でも待てばそのうち復活する。
待てないときは「えいや」で再起動してたけど。

なんなんだろうこれ、とタスクマネージャーを開きっぱなしにして様子を見てたら、当該事象発生時にエクスプローラーが30%ぐらいの CPU を奪ってることを発見。
「タスクバー エクスプローラー CPU」でぐぐったら、3月の Windows Update の不具合というのがポロポロ出てくる。
なんだ、みんなもはまってる事象だたのか。もっと早く調べればよかった。。。

Microsoft のサポートページに「更新プログラムの修正プログラム」があるので、入れてみる。
これで事象が再発しなくなると嬉しいな。大丈夫かな。

3033889 の更新プログラムが Windows のエクスプ ローラーで、日本語または韓国語の IME を使用するシステムに応答を停止するには
https://support.microsoft.com/ja-jp/kb/3048778

しかし、このサポートページのタイトル、日本語が???なんだが。^^;

comment

2015/04/02 (木)

2015-04-02:vsftpd の anonymous 接続での root の実体パス

外のネットにはつながない環境内で FTP サーバが入り用になり、使用用途なくころがっていた OpenBlockS 600D に sudo apt-get install vsftpd した。

。。。のはいいんだけど、クライアントが anonymous で ftp://192.168.0.xxx/ でつないだときに見えるディレクトリの実体はドコ?と探すのに一手間だったので、備忘でメモ。

  • デフォルトは ftp ユーザーの home directory。
  • /etc/vsftpd.conf に anon_root=/path/to/root で別のところにも指定できる。
comment

2015/04/01 (水)

2015-04-01:pecl install ではまった

とあるマシンで pecl install json しようとして、

$ sudo pecl install json
No releases available for package "pecl.php.net/json"
Cannot initialize 'json', invalid or missing package file
Package "json" is not valid
install failed

と言われて失敗。
なんで見つからないんだ?と検索かけてみたりもする。

$ sudo pecl search json
File http://pecl.php.net:80/rest/p/packages.xml not valid (received: HTTP/1.1 301 Moved Permanently)

あれれ?
pecl.php.net が落ちてたりするのかな、と思って、別のマシンでやってみると、そこでは問題なく成功。
問題はサーバ側ではなく、手元のマシンの模様。

名前解決の問題かと、成功したマシンと失敗するマシンそれぞれで dig pecl.php.net するも、どちらも 104.236.228.160。
サーバが見つからないわけではないらしい。
なんでじゃーーーー。

で、いろいろググったりすること半時間、解決策をとある QA サイトで発見した。
曰く、

/etc/hosts に “76.75.200.106 pecl.php.net” という行を足せ

なんだそりゃーーーーー

でも、やってみたら pecl install 成功したよ。。。
なにこの解決方法。

comment

2015/03/20 (金)

2015-03-20:Windwos でマウススピードをとにかく速く

マウスのカーソルスピードを上げたくて、コントロールパネルでゲージをいっぱいにするも、まだ自分としては遅いので、レジストリを直接いじってしまった。
regedit でレジストリエディタを起動し、いじるのは以下。

HKEY_CURRENT_USER -> Control Panel -> Mouse ->
  MouseSpeed, MouseThreshold1, Mousethreshold2

MouseSpeed はそのものズバリスピードで、当初1だったのを2に。これで倍速になる。
MouseThreshold1 は2倍速になるまでのマウス移動のピクセル移動量で、当初は6。半分の3にしてみた。
MouseThreshold1 は4倍速になるまでのマウス移動のピクセル移動量で、こっちの当初は10。これも半分の5にしてみた。

いまのところ、これで悪くない感じ。

comment