2015年1月25日日曜日

CYPRIS(キプリス)のコードバンの財布を購入

今までWhitehouseCoxのブライドルレザーの財布を8年以上使い続けてきた。
主に尻ポケットに入れて使っていたため汚らしい風合いになっていたが、
とても愛着があって変えるにも変えられない状態でいた。

最近になって気分一新の意味も込めて買い換えようと思い立ち、手間のかかる
ブライドルレザーはやめて艶のあるコードバンの財布を探していた。
7年ほどCYPRIS(キプリス)の定期入れを使っていて今でも綺麗な状態を
保っており、また馴染みがあったため同じCYPRISから選ぶ事にした。

今回購入したのはコードバンとヌメ革を合わせた小銭入れ付きの財布で、
カラーはワインという少し赤みがかったダークブラウンの財布を選んだ。


外箱はとてもシンプル。


中身はもちろん財布のみ。


財布の外側はコードバン、内側はヌメ革となっている。
コードバンは艶があって結構硬い。指紋が少し気になるかもしれない。
ヌメ革は最初肌色っぽくナチュラル感溢れているが、年月を経ると良い色合いに
馴染んでくるらしい。(店頭の財布と新品を比較して色合いの違いを確認した。)


財布の下の部分。使い込むとこの辺りが破れたり裂けたりしてくるので注意したい。


横から見た感じでは多少厚みがある。使い込めば少し落ち着いてくるだろう。



やはり新しい物を手にすると嬉しい気持ちになる。これからどうやって馴染んでくれるのか
期待しつつ、また長く付き合っていける財布になって欲しい。今度は尻ポケットはやめて
大事に使おうと思う。


ちなみに8年以上使っていたWhitehouseCoxの財布はこちら。




擦り傷、革の破れ、ギュウギュウに詰め込んだ小銭やカード類の跡が付いて
汚い限りだが、定期的にブライドルレザー用のフードを塗っていたため
酷い劣化はしていない。その気になればまだまだ使えるが、これにてお役御免。
本当にお疲れ様でした。

2015年1月10日土曜日

Android 4.4(KitKat)におけるホームアプリとバックボタンの挙動について

とても今更だがAndroid 4.4(KitKat)におけるホームアプリとバックボタンの
挙動について気になった所があったのでメモしておく。

ホームボタンで起動して、バックボタンで終了するホームアプリがある事を前提とする。
Android 4.4(KitKat)でホームボタンを押下してホームアプリを常時設定で起動した後、
バックボタンで終了したらどうなるか。

答えは別の実行中のホームアプリが表示される。
あるいは自分自身のホームアプリが再起動する。

本来ならばバックボタンで終了したらアプリ履歴順に使っていたアプリに遷移するのだが、
Android 4.4では挙動が異なるようだ。面白い事に、常時設定のホームアプリを起動すると、
その背後に別の実行中のホームアプリが遷移しているのである。以下に例を示す。

(1)ホームアプリ(非常時設定)が実行中にホームアプリ(常時設定)を起動する場合

例えば以下のようにアプリ履歴があった場合、

・アプリA
・アプリB
・ホームアプリ(常時設定)
・ホームアプリ(非常時設定)

Android 4.3(JellyBean)まではホームボタンを押下すると、

・ホームアプリ(常時設定)
・アプリA
・アプリB
・ホームアプリ(非常時設定)

という感じにアプリの階層が入れ替わる。
しかしAndroid 4.4でホームボタンを押下すると、

・ホームアプリ(常時設定)
・ホームアプリ(非常時設定)
・アプリA
・アプリB

という感じに何故かホームアプリ(非常時設定)がホームアプリ(常時設定)の背面に
遷移してしまう。これはホームアプリ(常時設定)の画面を透過させて起動すると
背面に遷移している事が確認出来る。よってホームアプリ(常時設定)の起動後に
バックキーを押下して終了するとホームアプリ(非常時設定)が表示されるのである。

(2)ホームアプリ(常時設定)を起動する場合

例えば以下のようにアプリ履歴があった場合、

・アプリA
・アプリB
・ホームアプリ(常時設定)

Android 4.4(JellyBean)以前、以降ともにホームボタンを押下すると、

・ホームアプリ(常時設定)
・アプリA
・アプリB

という感じにホームアプリ(常時設定)がトップに来る。この時にバックボタンを
押下するとAndroid 4.3まではアプリAに遷移していたが、Android 4.4では
ホームアプリ(自分自身)が再起動する。


上記(1)、(2)から分かった事は、どうやらAndroid 4.4ではバックボタンを押下して
アプリが遷移する際、常に1つ以上のホームアプリが実行している状態でないと
いけないらしい。本来ホームアプリはバックボタンで終了させないものなので、
このようにバックボタンでホームアプリを終了させた場合の挙動は気づかないと思う。

そのように作っているアプリが悪いのか、それとも挙動を変更したGoogleが
悪いのか知らないが、ホームボタン周りの挙動は鬼門だなぁと改めて思った。

2015年1月4日日曜日

QNAP TS-131によるOptwareとSubversionの自動起動の設定方法

TS-131ではOptwareがプリインストールされているが、初回起動以降に再起動すると
何故か/optに対してシンボリックリンクが有効とならない場合がある。私の環境でも
TS-110の時と同様に有効とならなくなってしまった。

そこでTS-131起動時に自動でOptwareを有効にして、ついでにSubversionを
自動起動する方法を以下にメモしておく。メモ中のマウントするデバイスや
ディスクボリューム名「XXX_DATA」のXXXは各端末で合わせる事。
/optのシンボリックリンクが有効な場合はOptwareの設定方法を読み飛ばして
Subversionの設定方法のみ読めばよい。


【Optwareの設定方法】
(1)コマンドプロンプトで下記領域をマウントする。
# mount -t ext2 /dev/mtdblock5 /tmp/config

(2)マウントした領域内に自動起動スクリプトを作成する。
# vi /tmp/config/autorun.sh

下記内容を記述して保存する。
rm -rf /opt
ln -sf /share/XXX_DATA/.qpkg/Optware /opt
echo "export PATH=$PATH:/opt/bin:/opt/sbin" >> /etc/profile

(3)自動起動スクリプトに実行権限を付与してアンマウントする。
# chmod +x /tmp/config/autorun.sh
# umount /tmp/config

(4)QPKGの設定ファイルにOptwareの設定を記述する。
# vi /etc/config/qpkg.conf

下記内容を記述して保存する。
[Optware]
Name = Optware
Version = 0.99.163
Author = QNAP Systems, Inc.
Date = 2015-01-04
Shell = /share/XXX_DATA/.qpkg/Optware/Optware.sh
Install_Path = /share/XXX_DATA/.qpkg/Optware
Enable = TRUE


【Subversionの設定方法】
(1)あらかじめipkgでSubversionをインストールしておく。
# /share/XXX_DATA/.qpkg/Optware/bin/ipkg update
# /share/XXX_DATA/.qpkg/Optware/bin/ipkg upgrade
# /share/XXX_DATA/.qpkg/Optware/bin/ipkg install svn

(2)Subversionのリポジトリを作成しておく。
# /share/XXX_DATA/.qpkg/Optware/bin/svnadmin create /share/XXX_DATA/<リポジトリ名>

(3)Subversionの自動起動スクリプトを作成する。
# vi /share/XXX_DATA/.qpkg/Optware/subversion.sh

下記内容を記述して保存する。
#!/bin/bash

PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

case "$1" in
  start)
    echo "Start Subversion server.."
    /opt/bin/svnserve -d -r /share/XXX_DATA/<リポジトリ名> &
    ;;

  stop)
    echo "Stop Subversion server.."
    PID=$(ps -ef | grep svn | grep -v grep | cut -d " " -f 1)
    kill -9 $PID
    ;;

  restart)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart}"
esac

(4)QPKGの設定ファイルにSubversionの設定を記述する。
# vi /etc/config/qpkg.conf

下記内容を記述して保存する。
[Subversion]
Name = SubversionServer
Version = 1.7.7
Author = The Apache Software Foundation.
Date = 2015-01-04
Shell = /share/XXX_DATA/.qpkg/Optware/subversion.sh
Install_Path /share/XXX_DATA/.qpkg/Optware
Enable = TRUE


以上で設定は完了となり、端末を再起動すると/optにシンボリックリンクが作成され、
同時にSubversionが自動起動されているはず。

2015年1月2日金曜日

QNAP TS-131を購入

現在使用しているTS-110の背面ファンから異音が発生するようになってしまった。
4年ほど使用しているので流石に買い替え時期かなと思い、いい機会だったので
昨年12月に発売された同じ1ベイ構成のTS-131を購入する事にした。


外箱はこんな感じ。購入したのは秋葉原のツクモexパソコン館という所で、
UNISTARというQNAP正規代理店経由の製品だった。


箱を開けた中身は、TS-131本体、簡易説明書、ACアダプタ、電源ケーブル、
HDDマウントネジ、LANケーブルといった構成。


左がTS-131、右がTS-110で、TS-131の方がやや1周り大きいのが分かる。


ここでTS-131とTS-110のスペック比較表を記載しておく。
5年も経てば廉価モデルでもスペックアップしてるのは当たり前だな、と。
デュアルコアでクロックアップしているので、トランスコード等の
処理は高速化されているのではないかと思われる。
またUSB3.0で外付けHDDの速度が上がるので外部バックアップの
ストレスも軽減されるはず。

TS-131TS-110
発売開始日2014/12/05 2009/10/30
CPUFreescale™ ARM® Cortex®-A9 dual-core 1.2GHz Marvell 800MHz
RAM512MB 256MB
HDD1 x 3.5 or 2.5 SATA 6Gb/s, SATA 3Gb/s HDD or SSD 1 x 3.5 HDD
USB/eSATA3 x USB 3.0 port (Front: 1, Rear: 2), 1 x eSATA port (Rear) 3 x USB 2.0 port (Front: 1, Rear: 2), 1 x eSATA port (Rear)
LAN1 x Gigabit RJ-45 1 x Gigabit RJ-45
寸法(高さ x 幅 x 奥行)168.5 x 73 x 225 mm 165.5 x 60 x 218.4mm
重量(ネット/グロス)1.04kg/1.80kg 0.79kg/1.7kg
電源消費量(スリープ時/運転時)6.26W/13.31W 5W/7W

ここで早速旧環境から新環境に移行させる訳だが、QNAPの素晴らしい所は
同じHDDドライブを使用するのであれば、HDDドライブを差し替えるだけで
移行出来てしまうのである。(今時こういうのは当たり前なのだろうか?)

という事でTS-110の筐体のネジを外す。


続けてTS-110のHDDマウンタのネジを外してHDDを取り外す。


そしてTS-131の前面マウンタにHDDを取り付ける。



取り付けたHDDマウンタをそのまま前面に差し込む。
これだけでハードウェアとしての移行は完了となる。


TS-131を設置して電源ケーブル、LANケーブルを取り付けて電源をオンにする。


しばらく経ってQNAPの旧ログインページにアクセスすると、以下のQNAPの
移行ページが表示される。旧環境のIPアドレスそのままでアクセス出来る事に
ちょっと感動してしまった。


「移行の開始」ボタンを押すとシステム移行開始ページが表示されるので、
「開始」ボタンを押す。


そうすると最新のファームウェアのダウンロードが始まって、システムの移行処理が
開始される。この間20分ほど待つ事になる。


システムの移行処理が終わるとQNAPが再起動される。


再起動後はIPアドレスの設定が固定からDHCPに初期化されていたため、
QFinderを使ってTS-131にアクセスし、固定IPアドレスを割り振り直す。
固定IPアドレスでアクセスするといつものログイン画面が表示されて、
無事に移行作業は完了となった。



以上、簡単にQNAPの移行手順を追ってみた。HDD速度や機能の細かい部分は
他のブログにお任せする事にする。こんなに簡単でいいのだろうかというくらい
簡単な移行作業で、逆に何か物足りなさすら感じてしまった。今はASUSTORやら
Synologyなどの新興NASメーカーが話題になってきているが、個人的には
使い慣れたQNAPがやはり一番いいと感じた。

新年初の買い物はトラブルもなく気持ちよく済んでよかった。
次はXperia Z4 compactを狙おうかと思う。


【2015/1/3 追記】
トラブルは無いと思われていた…が、、
移行作業後にWindows7から共有フォルダにアクセスしようとしたら拒否されてしまい、
おかしいと思ってネットワーク周りを散々調べた挙句、最終的に分かった事は
smbdとnmbdが起動していなかった。/etc/init.d/smb.shを直接実行してみたら
起動に必要な共有ライブラリが見つからないとエラーが出まくっていた。
TS-110時代からアップデートにアップデートを重ねていたため、いつ欠落したのか
さっぱり分からなかった。仕方なくデータを一時的にデスクトップPCに退避させ、
クリーンインストールする事にした。おそらく移行時に欠落したものではないと思うが、
同じような作業をする人は今まで使えてた機能が全部使えるかどうかチェックした方が
いいと思う。


【2015/1/4 追記】
せっかくなのでHDDのRead/Write速度だけ測定してみた。
正直遅いのかどうなのか不明だが、SATA300(SATA2)ならばこんなものだろう。

測定PC:Windows7 x64 SP1
使用ソフト:CrystalDiskMark 3_0_3b
ルータ:NEC WR8300N
TS-131のHDD:HGST HDS721050CLA362 500GB SATA300 7200rpm



【2015/1/11 追記】
TS-110と比較した超適当な雑感。

・Web設定画面へのアクセス、設定画面内の操作速度が向上した。
・FileStationのダウンロード、アップロード速度が若干向上した。
・端末起動してから起動完了(ビープ音が鳴るまで)の時間が若干長くなった気がする。
・Win7でNetBIOS over TCPを有効にしているが、エクスプローラでIPアドレスを直接打たないと共有ドライブにアクセス出来ない。TS-131がスタンバイしているせい?

2014年12月26日金曜日

2014年購入したガジェットは何もなかった

年末なので1年を振り返って今年はどんなガジェット買ったのかと思い返してみらた、
意外にも何も買っていなかった。Xperia A2欲しい、Xperia Z3の5インチ超の
スマホもいいかも、Nexus 9のデザインがシンプルでいい、でも安くなった
iPad mini2も捨てがたい、などと思いを巡らせていたら結局何も買わずに
相変わらずXperia Aで十分な生活だった。Xperia Aは電池パックあんしんサポートで
新しいバッテリーをもらったのであと1年は使えそうだ。

ガジェットではないけれど、唯一購入したのは「PC TV with nasne」だった。
もはやTVの電源を入れる事がなくなって、スマホで録画予約してパソコンでTVを見る
という形が自分の中で当たり前になり、おかげでTVを見る時間が増えた。

1年を振り返ると「物を増やすより既存の物をより使いこなす」という方向に
シフトしていった気がする。物欲が無くなって来たのかもしれない。
それはそれで楽しいけれどちょっと寂しいので、来年は衝動買いさせてくれる
ようなワクワクする製品が出る事を願いたい。

2014年12月22日月曜日

Android Bazaar and Conference 2014 Winterに行ってきた

何となく時間もあったので久々にABC2014 Winterに行ってきた。
ブログエントリーをたどってみたら、最後にABCに行ったのは
2011年夏の早稲田大学で実に2年半ぶりだった。
今回は東海大学高輪キャンパスで品川からちょっと歩いた所にあった。

最初この看板を見かけるまでは正直本当に開催されてるのか分からなかった。
以前に比べて規模が小さくなったのかな?という印象を受けた。


午前は起きるのが面倒だったので午後一のAndroid Studioライブコーディングの
講演から観る事にした。12月にAndroid Studio 1.0の正式版がリリースされた事もあり、
移行しようと思っていた所だったのでちょうどよかった。移行期かつAndroid界で
有名な方の講演でもあったため会場は満員で立ち見が出るくらいだった。


Android StudioはEclipse同様にJava、XMLの構成は変わらないが、ビルドシステムに
Gradleというものが使用されており、Eclipseとプロジェクトのファイル構成なども違う。
ライブラリの依存関係やapkの生成方法等はbuild.gradleに記述してビルドする。
IDEとしての補完機能やショートカットは覚えれば楽かもしれないが、Eclipseから
すぐに移行するには時間がかかりそうだなと感じた。


次に先日Android 5.0がリリースされた事もあって、Material Designについての
講演を見に行った。こちらもヒゲがトレードマークの有名な方で、過去にソニーで
タブレット戦略事業に関わっていた事もあるそうな。


Material Designはただのデザインガイドラインではなくビジュアル言語である、という
Googleのコンセプトの話から始まり、GoogleがMaterial Design採用に至るまでの
遍歴の紹介、流行のフラットデザインに近いデザインにどうやって奥行き感を出して
強調するか等の説明が行われた。個人的にはMaterial Designの色使いがあまり
好みではなく既存のHoloデザインの方が落ち着くのだが、世間でリリースされている
アプリは段々とMaterial Designを採用し始めている。中には明らかにデザインコンセプトを
勘違いしているようなアプリもあるが、流れは明らかにその方向に向かっているのは
確かだと思った。個人的にもし新しいアプリを作る時は採用してみようと思う。


この後バザールのための空き時間が出来たので会場に向かってみた。
会場に入っていきなり目に飛び込んで来たのはコスプレしたお姉さんで
どうやらGMOのConoHaの宣伝のようだった。他にもAndroid秋葉原支部の
ブースでもコスプレの人がいて、この辺りは2011年とは大きく雰囲気が
変わったなぁと思った。とりあえずお姉さんを撮るのは恥ずかしかったので
裏に展示されてた痛車だけ撮っておいた。



全体を簡単に回ってみたが、Google、Microsoft、富士通、BIGLOBE等の大手企業、
ロードバイクに独自の電子計測器を搭載したものを展示している方々、ジョルテで
おなじみの企業、FirefoxOSの技術書を売っている方々等、色々なブースがあって
時間が惜しいくらいだったが、次の講演があったので手帳やポスターのノベルティを
しっかり頂いて会場を跡にした。


次は個人的に全然追いかけてないけど気になっていたAndroid Wearに関する
講演を観に行った。こちらも有名な方だそうで、全員有名なのは当たり前か。


Android Wearは通知、音声認識、単体アプリの動作という3つの役割があるそうで、
基本的にはスマートホンがメインで、Bluetoothで接続して周辺機器として使用するのが
主な使い方のようだ。今後は拡張されてGoogle MusicからAndroid Wear単体?で
音楽が聞けるようになるかも、という話があった。

個人的にはAndroid Wear単体で出来る事が増えないと普及しないのではないかなぁと
思っている。例えばGPSのトラッキングデータのログが取れたりすると嬉しいけれど、
そもそもバッテリーが持たないので無理だろうか。

ちなみに会場内でAndroid Wearを保持している方は約半数、その中で専用アプリを
公開している方は1、2割程度だった。まだまだこれからという感じ。


最後に開発とは関係ない緩い講演として、モバイル業界の今後はどうなっていくかと
題した講演を同じ会場で観た。角川アスキー総合研究所の方と自称モバイル機器を
2千台所有してるという有名な方?の対談だった。


モバイル機器の変遷や昔話、コンテンツ課金ビジネス、これから何が流行っていくのか等の
話がされた。最後はヘルスケア関連の情報収集とそれを利用したビジネスが流行って
いくだろうとの認識で、医療機関も巻き込んだ大きなものになっていくのではないか、と。
日々の体の状態をログに取って自身の健康状態を知ったり、それが医療機関で
共有されて、総合的な視点で病気の診断が出来たりすると便利な世の中になるだろうと
思っている。果たしてそういう時代は来るのだろうか?


というわけで約4時間ほどであったが、久々に技術的な講演を聞く事が出来て
新鮮な気分になった。外を出ると暗くて凍えそうだったが、大学らしからぬ
ライトアップがされていて年末が近い事をしみじみと感じた。
また機会があれば参加して情報収集して行きたいと思う。


2014年11月11日火曜日

Android 5.0でタスク切り替え系アプリは終わった

そろそろAndroid 5.0がリリースされるなぁと思ってふとエミュレータで
自作のタスク切り替えアプリを起動してみた所、何故か他のアプリの
タスク履歴情報が取得出来ない現象に遭遇した。厳密には自分自身と
ホームアプリ等のタスク情報しか取れなくなっていた。
何の不具合かと思ってよく見てみると、Android 5.0で下記APIが
deprecatedに変更されていた。

 ActivityManager#getRecentTasks
 ActivityManager#getRunningTasks

ググって調べてみるとAndroid Lで上記APIの挙動が変わっており、
自分自身とホームアプリ等のタスク情報しか返さなくなったらしい。

■ Android L getTasksの挙動変更
http://www.taosoftware.co.jp/blog/2014/07/android-l-gettasks.html

■ Alternative to getRunningTasks in Android L
http://stackoverflow.com/questions/26400469/alternative-to-getrunningtasks-in-android-l


履歴タスク、実行中タスク、フォアグラウンドのタスク等、これらAPIを多用
していたため、もはやAndroid 5.0では全く動作しない物となってしまった。
他の競合アプリ(名前は伏せておく)もおそらく同じような実装をしているため、
動作させる事は困難だろう。タスク切り替え系アプリは完全に終わってしまったのだ。

ただし唯一生き残れるのはランチャー系アプリであろう。インストールアプリの
一覧は取得可能で、ActivityManager#getRunningAppProcessesで実行中の
プロセス情報も取得可能だ。またタスクキルも可能であるため何ら問題ないと思う。


これを知った時は「もういいや…」と素直に諦めた。どうにも出来ないから。
だったらランチャー系アプリに作り直そうかとも考えたが、そもそもタスク
切り替え系アプリを作ろうとした意図、目的から完全に外れてしまうため、
仕方なくAndroid 4.0~4.4のみ動作対象とした。後は不具合修正のみ行う予定。

プライバシーだかセキュリティーだか知らないが、今まで使えてた物が
突然何らかの意図、理由で使えなくなるのはとても悲しい。Android 5.0で
標準タスク管理機能が使いやすくなっているならまだしも、そんな事は
全くなかったので尚の事腹立たしい。