スマートフォンをケーブルの軛から解き放つ! ケーブルレスでのスマホライフ

Posted over 1 year ago by yoosee.
  neta android

ここ最近のスマホ業界を眺めるに、USB Type-C だの Lightning だの「ケーブルの上下を気にしなくていい」などといつの時代なのだとツッコみたくなる事で盛り上がっていて見るに耐えない。むしろ嘆かわしい。21世紀を生きる現代人たるもの、ケーブルなどという過去の遺物にとらわれず、スマホはケーブルレスで使うべきである。

No Cable!

さてそう言われても諸兄らは困惑するかもしれない。ここに簡単ではあるがスマホをケーブルから解き放つ幾つかのステップを記載したい。

クラウドにデータがあるアプリを使う

賢明な皆さんであれば既に大抵のアプリはクラウド連携していることだろう。例えば写真のバックアップなら Google Photos でも Dropbox でも Amazon Cloud でも Facebook でも選び放題である。音楽もストリーミングサービスを使うなりクラウドにmp3を置くなりできる。クラウドにデータが保存されていればスマホのデータなどいつ消えても問題がないという安心もついてくる。ケーブルを繋いでローカルのPCと同期を行うなどの原始的行為はPalmOS時代の終焉と共に卒業すべきであろう。ぴろりーん。

PCとのファイルのやり取りをWi-Fi経由でする

それでもPCとファイルをやり取りしたい事情はまだあるかもしれない。例えば自炊した書籍のファイルを転送したい時などだが、わざわざそのためにケーブルを繋ぐ必要はない。NAS経由やPC側にLAN共有フォルダを作って X-plore File Manager のようなLANフォルダ対応のファイルブラウザで転送するもよし、AirDroid のようなアプリでスマホをブラウザから操作可能にしてもいい(X-plore にも同等の機能がある)。

Bluetooth ヘッドホンで音楽を聴く

次に消滅させるべきはヘッドホンケーブルであり、収納して取り出すとエントロピーの法則により必ず数カ所で絡まって人の神経を逆なでするケーブルは全ての人類の敵であり無くなるだけでも貴方の Quality of Life は 30ポイント以上改善する。最近はBluetoothヘッドホンの音質もだいぶマシになってきたし、また逆に音質にこだわらなければ2000円前後で手に入る。Taskerを使えば接続したBluetooth機器によって違う自動アクションを設定するなど、更に便利さを増すこともできる。惜しむべくはスマホをケーブルレスにしているのにBluetoothヘッドホンの充電にはケーブルを使わないといけない場合が多いことであろうか。

Qi でワイヤレス充電する

最後に残る最大の関門が充電であろう。こればかりはスマホ側がワイヤレス充電に対応している必要がある。ここは一般的な規格として Qi (チー) 対応スマホを選ぼう。悲しいことに新しい Nexus までもワイヤレス充電非対応になってしまったが、まだ Motorola や Samsung が最新機種でも Qi 対応端末を出している。また場合によっては Qi を外付できるケースの導入を検討しよう。幸い Qi 充電器は最近どんどん安くなっていて、充電台のみだと $10-20 程度で手に入るし、車載マウントにQiがついたモデルもある。スマホをホルダに置くだけで充電が始まる車載Qiは文明開化の音がする。

特に防水端末を使う場合は充電端子にカバーキャップが付いていることがあり、充電のたびにカバーを外して電源を差し込むなど現代人とはとても思えない野蛮な作業を強要される屈辱を味わう羽目になるのでワイヤレス充電は必須である。唯一の欠点は Qi は通常の充電と比べて充電速度が遅い(端末にもよるが手元の計測で 640mA/h)ことだが、充電ホルダをオフィスや自宅数カ所に置いておき、使わない時はポンとその上に載せる習慣にしてしまえばこまめに充電されるのでさほどは気にならなくなる。どうしても困ったら、まあポリシーを曲げてケーブルを繋げばいいのである。

このように幾つかの簡単なステップだけで貴方のスマートフォンもケーブルレスで運用できる。21世紀を生きる現代人として、ぜひケーブルにとらわれないスマートライフを目指していただきたい。

 

TeslaUnread が Galaxy S5 Email のカウントを更新してくれなくなった問題への対応

Posted over 1 year ago by yoosee.
  android

しばらく前から Nova Launcher + TeslaUnread のバッジ表示が Galaxy S5 の Email 未読数を更新しなくなる問題が発生していて困っていたのだが、ようやく解決できた。

一度問題が起こると、Email アプリ側で未読数がどう変わろうともバッジの数字が全く更新されなくなる。TeslaUnread や Email の Cache, Data を消去したり再インストールしてみたりしても全く修正されず、一度故あって Factory Reset した際にようやく直ったのだがしばらくしたら再発してしまい、仕方がなく諦めて Email のバッジ自体を無効にするハメになっていた。

その後ふと思いつきで改めて調べてみると、そのものずばりの解決方法が見つかった。

Teslaunread no longer updating - Android Forums at AndroidCentral.com

分かってみれば単純な話で、Galaxy S5 の Email は Email 自体ではなく、Samsung 独自 Launcher である TwLauncher に Badge Count を供給するための Badge Provider というプログラムがあり、TeslaUnreadも恐らくこれから Count を取得している。これは設定から “Applications → Manage Applications → (右から左にスワイプして) All” を探すと出てくる。

BadgeProvider

こいつを “Clear Data” して “Force Stop” し、改めて Email を起動するとバッジのカウント数が正しく表示されるようになった。…Galaxyはハードウェアはよく出来ているんだけどソフトウェアにこういう無駄な癖があるのが嫌なんだよな。

 

My EDC キーチェイン

Posted over 1 year ago by yoosee.
  edc keychain

EDC という言葉をご存知だろうか。Every Day Carry の略で、つまりは「毎日持ち歩く(もの)」の意味になる。「俺はこんな格好良い○○を持ち歩いてるぜ」とか「この組み合わせが素晴らしいのだ」とか「この小さいパッケージにサバイバル用品をまとめたぜ」とか、そういう自慢をする趣味だと思えば大体あってる。米国ではそこまでマイナーではないが、とは言え職場でランチの話題に出る程でもない。

EDC自体は「毎日持ち歩くもの」なので範囲が広いが、定番になるのはナイフ、ツールナイフ、LEDライト、ペンとノート、それにキーチェインといった辺りだろうか。米国なので銃というのもあるがさておき、EDCForums というのがこちらだとメジャーな掲示板であり、そこにもキーチェインのスレッドがある。写真を眺めるだけでも結構楽しい。

Keychain Pics, the Fourth Installment. | EDCForums

なんだかんだと前口上を述べているが、なんのことはない、自分のEDCキーチェインを自慢したいという話である。ということで今のキーチェインはこんな感じだ。日本でも売っているのを見つけたものは (JP) で主にAmazonへリンクしている。

2016年3月のキーチェイン

写真左側とキーホルダー

写真右側上から

ホイッスルは都市でのサバイバルでは必須のアイテムで、地震などの災害で瓦礫に閉じ込められた際に大変重要な役割を果たす。防犯にも使えるので、諸兄らもひとつ持ち歩くことをお勧めする。Nano Light は超小型だがそれなりに光量の大きいライトで、今時ならスマホを使ってしまうかもしれないが、これも役に立つシーンはある。Swiss+Tech Utili-Key はナイフやドライバーが鍵型のフォームにまとまったツールで、この素晴らしさは別記事を起こそうと思っている。

KeySmart は何年か前に KickStarter で手に入れたがその後製品化され、最近は類似品も結構見かけるキー整理アイテム。鍵を折りたたんでしまうことができるので、比較的場所を取らずに複数の鍵を持ち歩くことが出来る。

EDCたるものキーホルダー側にもこだわりを持つ(まあ上記フォーラムの人達はこんなアピールばっかりだしチタン大好きである)。TECのP7 Clip と GambleMade FM1 Titanium の組み合わせは、ポケットの縁に Clip を引っ掛けて FM1 がアイテムをフラットに配置することで、キーチェインがポケットを膨らませずにスマートな収納ができる。Isotope Fob は中に発光体を入れて夜間落とした時でも灯りでキーチェインを見つけられるように付いている。

nanoSTRIKERファイアスターターとUtili-Key

nanoSTRIKERは、その、なんだ、火打ち石である。そう、火打ち石。ファイアスターター。こすると火花が飛び散るアレだ。諸兄らはこれを何に使うのかと疑問に思うだろうが、もちろん普段の使いみちなど無い。ロマン、そうロマンのためだけだ。どこでも何かあれば火を起こせる、男子たるものそうしたロマンも必要なのだ。それが分からぬ者は Man vs Wild でも見てサバイバルとは何かを学ぶのがよかろう。

キーチェーンに限らず EDC に何かしら興味のある人は、 Everyday Carry あたりが面白い EDC 紹介をしているのと、また日本でも インマイバッグ という「カバンの中身をシェア」するサイトがあるので覗いてみると楽しめると思う。他のEDCについてはまたそのうち記事を書くつもり。

 

Let's Encrypt + Nginx の導入

Posted over 1 year ago by yoosee.
  ssl nginx security letsencrypt

Update: この記事中のやり方は古くなっているので2017年7月現在は以下の記事を参考。 Let’s encrypt の証明書を certbot を使って更新する - W3er

このブログをSSL化するにあたって Let’s Encrypt - Free SSL/TLS Certificates の証明書を導入しているのでその備忘録。Let’s Encrypt は最近のブラウザであれば標準で利用できる証明書(ドメイン認証:DV)を無料で発行してくれる。現在 Public Beta の状態だが、登録すれば誰でも利用が可能だし、Valid な Cert が提供されている。

SSL in blog.yoosee.net

登録後に必要なツールを持ってきてセットアップする。下記を実施したのは 2016-03-09 だが、去年12月にやった時と少しやり方が変わっている気がするので、実施時にはドキュメントや –help などを見てやったほうがいいかもしれない。

% git clone https://github.com/letsencrypt/letsencrypt
% cd letsencrypt
% ./letsencrypt-auto 

Debianであれば必要なパッケージがインストールされる(当然内部で sudo が求められている)。libssl-dev などが入るので予め apt で入れておくといいかも。letsencrypt 自体は何も指定しなければ ~/.local の下にインストールされるようだ。

SSL Cert の作成は、Apache であれば設定ファイルの変更まで勝手にやってくれるらしいが、Nginx 対応はまだのようなので certonly --standalone オプションで Cert の作成のみを行う。

% sudo ~/.local/share/letsencrypt/bin/letsencrypt certonly --standalone -d blog.yoosee.net
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/blog.yoosee.net/fullchain.pem. Your cert will
expire on 2016-06-07. To obtain a new version of the certificate in
the future, simply run Let's Encrypt again.
- If like Let's Encrypt, please consider supporting our work by:

上記の通り、中間証明書を merge した fullchain が /etc/letsencrypt/live/blog.yoosee.net/fullchain.pem に生成される。有効期限は生成日より約3ヶ月といささか短いので、Let’s Encrypt でも cron などで更新を自動化することを推奨している。例えば下記のような cron を仕込んでおくと /etc/letsencrypt/live/blog.yoosee.net.conf に自動生成されている設定ファイルに従って renew をかけてくれるようだ。

0 4 1 * * /home/yoosee/.local/share/letsencrypt/bin/letsencrypt renew

Nginx の SSL 関係の設定はこんな感じ。上記コマンドは Certificate Key も /etc/letsencrypt/live/blog.yoosee.net/privkey.pem に作っているのでそれを指定する。

server {
        listen 443; # listen for ipv4
        server_name blog.yoosee.net;
#...
        ssl on;
        ssl_certificate /etc/letsencrypt/live/blog.yoosee.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/blog.yoosee.net/privkey.pem;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
        ssl_dhparam /etc/nginx/ssl/dhparam.pem;
#...
}

上記ではついでに Diffie-Hellman key exchange のパラメータも作成して指定している。これをやっておかないと Key Exchange の強度で Cipher DHE 関連で微妙にディスられたのだが、ちゃんと設定すると SSL Server Test: blog.yoosee.net (Powered by Qualys SSL Labs) でも今のところ A 判定をもらっている。

% sudo openssl dhparam 2048 -out /etc/nginx/ssl/dhparam.pem

過去に仕事でやった商用Certの導入や更新に比べたらものすごく簡単で素晴らしいことである。

 

Taskerは2016年現在もまだまだ現役で便利で手放せないという話

Posted over 1 year ago by yoosee.
  tasker android

以前のブログでTaskerを紹介したのはもう5年以上前のことだが、2016年現在も全くもって現役でTaskerを使っている。Android も以前よりだいぶましになったとはいえ、自動化で楽ができるタスクはまだ少なくない。これのおかげで日常生活で味わうであろうスマホを使う細々とした苦痛が幾つも回避されている。素晴らしいことだ。

Tasker

最近だとTasker系と呼ばれるアプリも色々とあるし、Taskerで実現していた機能をAndroid自身が実装していたり、単体アプリとして同等の機能を簡単使えるように提供しているものもある。またFTTTのように外部サービスとの連携を主眼としたものもあり、Taskerだけが選択肢という訳ではではなくなった。とは言え別にTaskerにできることが減ったわけでもないので未だに全く手放せない。使い方に関しては下記のあたりが参考先になるだろう。

Tasker Profile Example

例えば最近愛用しているこんな設定がある。スマホが車載スピーカーに接続された時点でPodcastのプレイリスト自動再生が始まり、その後にWaze (カーナビSNS)が起動するプロファイルだ。

  • トリガー:Bluetoothが車載のBtスピーカーに接続される
  • タスク:
    1. Wi-Fiをオフ
    2. Podcast Addictを起動
    3. 5秒のウェイト
    4. Podcast Addict に Playlist 再生の Intent を送信
    5. 14秒のウェイト
    6. Wazeを起動
    7. Media Volumeを13に設定

これは本当に便利で、車に乗ってスマホをワイヤレス充電Qi搭載のホルダーに載せ(Taskerとは関係がないが車載時の充電もこれだけだ)、エンジンをかければBluetoothスピーカーがスマホに接続されて自動的にPodcast再生とカーナビ起動が行われる。スマホの操作的にはほぼ完全自動、ゼロタッチである。

最近のAndroidは過去にTaskerを使って自動化していたようなこと、例えば「夜間は通知音・LEDをOFF」「電話着信時に裏返すと着信音をOFF」「イヤホンプラグを抜くと音声再生を一時停止」「カレンダーでミーティング時間内は通知音をオフ」「外部からの命令で端末の位置情報を送信」「特定環境下で自動的にアンロック」などが標準で実装されるようになったが(そう、以前からこういうことはTaskerを使えばできたのです)、まだ以下の辺りが現役のProfileである。

  • 自宅Wi-FiのSSID接続時に画面輝度をAutoから特定輝度へ変更
  • オフィスWi-FiのSSID接続時に画面輝度をAutoから特定輝度へ変更、Mediaボリュームをゼロにする
  • Bluetooth Headset接続時にScenesでPodcastAddictとPowerAmpの選択起動ダイアログを表示
  • Youtubeなどの音量が必要な特定アプリの利用時のみMedia Volumeを一定値に上げる
  • Photosなどの特定アプリの利用時のみScreen Rotationを有効化
  • 子供向けゲーム起動時にタイムアウトを長くしMedia Volumeを上げ、Gravity ScreenやSwipe Padなどを停止する
  • スマホを前後に数度振ることでLEDライトを点灯・消灯

なおこの辺りは実際は Extended Variables & States - Tasker Wiki で環境変数を使ってStateの管理をしている。大変個人的な定義としてはTaskerの習熟度をこんな感じで考えている。

  • 初心者: State変更などでシンプルな設定変更などができる
  • 初級者: 複数処理の連結などである程度複雑なProfileを作成できる
  • 中級者: 環境変数を使った状態管理や複数Profile間の競合解決などができる
  • 上級者: 上記に加えてIntentの呼び出しやSceneを使ったUI拡張を活用できる

特に意味のある分類ではないが、上級の辺りまで使いこなすと色々と楽しいので是非チャレンジして欲しい。