| @Mac/iPhone

choosy+canary-chrome.png

少し前に rebuild.fm で miyagawa さんが紹介1されていた Chrome の Canary チャンネル2と stable リリースで Profile を分けて使うやつやってみたらとても便利。 Choosy.prefPane3 などのブラウザー切り替えツールとセットでやる必要があるので $10 お布施した。 Chrome は stable や beta など様々なリリースがある4が、 Canary チャンネルのみ独立した User Profile を指定できるようだった。

Choosy.prefPane は参照元のアプリケーションごとにブラウザーを指定したり( Slack からは Chrome Canary とか、 Alfred からは Normal Chrome など)、 URL に応じて指定したり( twitter.com は Normal Chrome など)もできる。これでミスって仕事用の Google Account で SaaS にサインアップしてしまったりということがなくなる。 とても便利。

Chrome への依存度が高くない人は仕事用に Chrome 、プライベート用に Safari のような使い分けでもよさそう。

| @技術/プログラミング

Archive ページに React Router を導入して、年を切り換えたときにページ遷移なしで表示を切り替えられるようにした。あわせてカテゴリ一覧を表示して記事を絞り込み表示するようにした。

React はこれまで cdnjs からダウンロードしていて JSX の変換は Babel の browser.js を使ってブラウザーで行っていたけど JS の開発環境もちょびっとだけモダンにして npm モジュールをインストールして手元でいろいろやるようにした。一枚のスクリプトに書いていたコードはコンポーネントごとに分割して browserify で連結するようにした。 React を自前で配信するとファイルサイズも結構無視できない感じになったので minify なんかもするようにした。

F/E の情報収集、きらきらネームが多くて調べるのにかなり時間がかかった。 npm モジュールの名前とそれが何をやるためのものなのかがすぐに分からない。じいちゃんばあちゃんが横文字を覚えられないのに似てる。 Ruby もきらきらネーム gem は多いけど寿命が長いのである程度触ってれば覚えられる。 JS はライブラリの寿命が 1 年くらいだから雨後のたけのこのようにどんどん新しいやつが出てきて全然覚えられない。自分が高齢化してきてるだけで若い人だったらすんなり頭に入ってくるんだろうか。

| @Mac/iPhone

Contexts

アプリケーションスイッチャー使ってますか

Mac には標準で + でアクティブなアプリケーションを切り替える機能があるのをご存知ですか。こういうの。

macOS アプリスィッチャー

これは便利なんだけど、ブラウザーなどは複数のウィンドウ開くことがあり、アクティブなアプリケーションではなくアクティブなウィンドウを切り替えたいと思うことが度々ある。

Windows 7 には Win + でアクティブなウィンドウを切り替えられる機能があって、むかし仕事で苦痛に顔をゆがめながら Windows を使っていたときにもこの機能だけは Mac の方が負けてるなぁと思ってた。 UI が優れているというより、マウスに持ち替えずにキーボードだけで完結するのが良かった。

Mac ではこれは Exposé を使えということなんだろうけど、ささっとアクティブなウィンドウを切り替えたいだけなのにびろーっとアニメーションしつつウィンドウ一覧が表示されマウスカーソルでウィンドウを選択するのはだるい。キーボードから手を離したくない。

この要求を満たすのが Contexts というソフト。似たやつに Witch というのがあってこれも試したことはあったけど何かいまいち使い心地が好きになれなくて使うのやめてしまっていた。最近たまたま調べていたら Contexts というのを発見して少し使ってみたところすごく使いやすかったのでお金払ってライセンスキーを買った。

標準のアプリケーションスイッチャーの + のショートカットを Contexts のウィンドウスイッチャーが乗っ取っとる感じになる。

Contexts

これでも便利なのだけど、ウィンドウごとに表示されると選択対象が増えてしまって目当てのアプリケーションを探すのが大変になる。これに対しては二つ解決方法が用意されていて、一つは現在アクティブなアプリケーション内でアクティブなウィンドウを切り替えるコマンド( + ` )。以下は Google Chrome がアクティブな状態で + ` した状態。

Contexts selecting window from active application

とても探しやすい。

さらにアプリケーション名かウィンドウ名で絞り込み検索する機能も付いている。これで沢山ウィンドウを開いていても目当てのウィンドウを探しやすくなる。 + でウィンドウ一覧を開いているとき + S で検索モードに入ることもできる。

Contexts window filtering

どうです、便利でしょう?

アクティブなウィンドウを切り替えるという作業は一日何回もやるにもかかわらず、キーボードからマウスなりトラックパッドなりに手を伸ばして切り替えると、一回あたりは 0.5 秒くらいでも塵も積もれば山となっているかもしれない。日頃、 Mac を使っていてウィンドウやアプリケーションの切り替えでストレスを感じている方はお試しください。

| @技術/プログラミング

合同勉強会 in 福岡という勉強会があって、 Nulab の人やクラスメソッドの人たちが福岡に来て発表するということだったので行ってみたいと思ったけど参加者枠が埋まってたので LT 枠で申し込んで行ってみた。まえブログに書いた BitBar の話をした。

以前一緒に仕事していた Rudolph Miller 先輩がインタビューで「勉強会は勉強しに行くところじゃなくて自分が普段勉強してることが合ってるか確認しに行くところ」みたいなことを言ってたけど、今回は普段勉強してないことがありありとなった感じでやばいなと思った。皆さん AWS とか Azure とか Terraform とかに詳しすぎる。きしだなおきさんの機械学習についての発表とかさっぱりわからなかった。平川 剛一さんの Server-side Swift の話は面白かった。 Server-side Swift の開発、 Apple じゃなくて IBM が主導しているそう。ぼちぼち Web フレームワークなんかもできてきてるみたい。

LT は皆さんレベルが高く、ネタに走りつつも技術的に高度な内容で自分の LT が一番しょぼかった。発表もうちょいうまくなりたい。

| @技術/プログラミング

ブログの管理画面にファイルアップロード機能をつけてみた。 GitHub の Issue みたいにドラッグアンドドロップでアップロードしてくれる。こんな感じ。

file upload demo.gif

いまのところ埋め込みフォーマットは Markdown にしか対応してない。

Lokka は heroku とか PaaS を使うことを前提に作られているのでファイルをアップロードする機能が提供されてこなかった( heroku は永続的なファイル書き込みができない)。 heroku で動かしている人でも使えるように Amazon S3 に上げるようにしてみた。 AWS のアカウント作成とかが必要なのでレンタルサーバーに設置してある WordPress にファイルアップロードするのに比べたら敷居が高いけど、設定するのは1回だけだし全くアップロードする手立てがなかったこれまでに比べたら劇的に快適になるはず。自分で使ってみたけどめっちゃ便利になった。

ファイルアップロード、ちゃんと作るなら Paperclip みたいにファイルのチェックを厳密に行なわないと危ないと思うけど、管理画面から上げるの前提なのでチェックなしで雑にアップロードできるようになっている。 AWS の token 系の設定画面を作ったら Lokka 本体に Pull Request 出します。

なお一つ前の記事でアプリケーションサーバーを puma に変更 - portal shit!というのを書いたけど、このファイルアップロード機能がうまく動かなかったので unicorn を捨てたのだった( pow で動かしている環境や bundle exec rackup して WEBRick で起動しているサーバーではちゃんとアップロードできる)。なぜか unicorn で multipart/form-data な POST リクエストを rack アプリケーションに適切に渡すことができず EOFError が発生してしまう。

仕事で unicorn で動いてるサーバーにファイルアップロードする仕組み入れたことは何度かあるけどこんなエラーになったことはなかったのになぁ。謎い。

| @散財

iPhone 7

iPhone 7 を買った。 iPhone 6 を買ったのは 2015 年 7 月で買い換えサイクルからするとだいぶ早いのだけど、いい加減両親にガラケーを卒業してもらおうと思って、弟も少し前に iPhone を買い換えたので自分のと弟のを両親に渡して docomo から MVNO に引っ越してもらおうという算段。弟の iPhone 6 は docomo のやつで自分の iPhone 6 は SIM フリーなので問題ない。いい世の中になった。

一括払いで 9 万円も払えるような富裕層ではないのでオリコのローン( 20 回分割まで金利が 0% のやつ)で買った。 iPhone 6 を買ったときは転職したばかりで社会的信用ゼロだった& iPhone 5 をクロアチアでなくしてしまって一刻も早く電話が必要だったためクレジットカードの分割払いで買っていたので、今回が人生初のオリコローン。審査結果出るまでに結構時間がかかり、ベンチャー企業に勤めてるせいで審査通らないのかなとやきもきした。急いで欲しい人はローンは使わない方がいいと思う。ひょっとすると一部上場企業勤務の人だと一瞬で審査降りるのかもしれない。

Suica on iPhone 7

iPhone 7 では Suica を Wallet に登録できるはずなので ANA VISA Suica を登録して電子マネーはこれに一本化しようかと思っていたけど、 ANA VISA カードの Suica を吸い出して Wallet に追加することはできないみたいだった。調べてみたところ JR 東日本の Suica アプリでモバイル Suica を新規発行し、そのチャージ用のカードに ANA VISA Suica をクレジットカードとして指定すればよいっぽい( Suica が一枚増える感じ)。 ANA VISA Suica は View カードでもあるのでモバイル Suica の年会費はかからない。これでいつでも iPhone からチャージできて便利。オートチャージの都合で JR 九州の SUGOCA を使っていたけど( Suica は関東でないとオートチャージできない)、 iPhone からいつでもチャージできるとなれば Suica でも困らなそう。ほかの電子マネーの Apple Pay 対応が遅れたら Suica が交通系電子マネーの乱世を統一するかもしれない。

ハードとしての iPhone 7 の感想は、とにかくめっちゃ速いのがいい。 Touch ID とか一瞬で認証される。 Force Touch もよい。 iPhone で長い文章を入力中にカーソル位置を動かすの、結構ストレスだったんだけど Force Touch だと押し込んだだけで Vim のビジュアルモードのようにするするとカーソルを動かせて便利。ストレージが増えてるのもいい。いわゆる "竹" スペックの 128GB のやつを買ったのだけど、これだけあれば Eye-Fi で写真転送しまくっても iPhone がお腹いっぱいになったりしないだろうから安心。音楽もいっぱい入れられるので飛行機に乗ったときに iTunes Match 使えなくてほとんど聞ける音楽がない、という事態も避けられる。

一方で残念な点。ホームボタンが物理ボタンじゃなくなったのは慣れない。押し込んだ時のバイブレーションが MacBook Pro のトラックパッドの完成度とは大違いで残念。あとこのホームボタン、風呂で使える系のケースに入れてると押せないことが判明して愕然とした。無印良品の風呂スマートフォンケースに入れてみたところ押しても反応せずホームボタンはお飾りとなった。防水とはいえ風呂で使って水漏れ判定されたという話を聞くので風呂 iPhone するときは防水ケースに入れたいもの。ホームボタン効かないと全く使えないわけではないけど著しく操作性が低下する(Today widget を呼び出して適当なアプリを開きロック解除、 Force Touch でアプリ切り替えを呼び出しホームスクリーンに切り替え)。

Silicone case for iPhone 7

ケースは Apple のシリコーンケースを買ってみたけどめっちゃすべって良くない。 iPhone 5 や iPhone 6 には革のケースを使っていて、滑るということはなかった。革ケースは高いし(安い Android が買えそうな値段) 2 年近く使ってると破れてくるので次はシリコーンケースにしてみようと変えてみたけど失敗だった。やっぱり iPhone は裸が薄くて持ちやすくて最高。ケースを付けずに iPhone を使えるような精神力が欲しい。ガラスの保護には Anker のやつを買った。 iPhone 6 使ってるとき 2 回くらいコンクリートの上に落としたことあるけど iPhone のガラスは何ともなかったのでこれは頼りになると思う。

不満なところ、不便なところもあるが、 iPhone 6 に比べると格段に良くなっている。地方に住んでて Suica 使えないので iPhone 7 はパス、と思ってる人も実は使えて便利になる可能性があるのでご一考をお勧めします。

| @WWW

Transmit iOS

iPhone からブログ書くときに画像もアップロードしたいと思って iPhone から S3 にアップロードできるやつを調べた。 Lokka にはデフォルトでは画像をアップロードする仕組みないので自分の場合は手動で S3 に画像をアップロードするか Flickr に上げて参照するようにしてる。 iPhone からだと Flickr に上げても embed 用のコードを取得できない( Flickr の iPhone アプリでもモバイルサイトでも embed コードは表示されない)ので、 iPhone から S3 にアップロードするのが最適解となる。本当は投稿画面から S3 にダイレクトアップロードできるような仕組みがあればいいんだろうけどまだやれてない。そのうちやりたい。

で、 iPhone 用の S3 クライアント探してたんだけど、無料のやつはたいていウェブサービスになってて、複数のクラウドストレージを一元管理できるとかそういうやつだった。 AWS の Access Key Id と Secret Token を第三者に渡して万が一それが流出したら一瞬で巨大 EC2 インスタンスいっぱいたてられて Bitcoin 掘りに利用されてクラウド破産しそうだと思った。こういうの使うにしても AWS のルートアカウントではなく S3 だけにアクセスできる IAM アカウントを使うべきだと思う。面倒くさいと思ったのであきらめて 1200 円払って Panic の Transmit の iOS 版を買った。インターネットでも金がない者や情弱が危険に身を晒さなければならない。

Transmit 自体は良くできてて便利。 Mac ではケチって Transmit よりも安い ForkLift ってのを使ってるけど、S3 にアップロードしてあるファイルの URL 取得するときにバケットに独自ドメイン当ててあったら独自ドメインの URL で取得してくれたりと Transmit の方がおもてなしされてる感がある。細かいところが親切。ブログ用の画像のアップロード以外にもいろいろ使い道ありそう。

Panic, Inc.「Transmit」 https://appsto.re/jp/IPUR2.i

2019-09-22 追記

残念なことに Transmit は開発を終了していた。儲からないのだそう。 35,000 ドルの売上では人件費の半分も回収できないとのこと。