Code and Passion Take Me Anywhere

Android使いのiOSエンジニアが書いているブログ

宣伝効果抜群!! iOSDC2018でもらった協賛各社の素敵なノベルティグッズたち

iOSDC2018に参加しました

自分は今年始めてiOSDCに参加しました。

自分はiOSエンジニアになってまだ1年弱で、正直行って本当に楽しめるのかと不安でした。 しかし実際はどのセッションも面白くて、明日からの業務でも活かせそうな話もたくさんあって来てよかったと思えるカンファレンスでした!

ちなみにiOSDC2018期間中にブログを書くとプレゼントがもらえるらしく、せっかくなので久々に書いてみた次第です(笑)

自社でも真似したくなるような多種多様なノベルティグッズ

トークセッションの感想も書きたいのですが、自分はブースや受付で協賛各社さんにもらったノベルティグッズから「これは斬新で面白い!」と個人的に思ったものをピックアップしてみようと思います!!

というのも、自分の会社も今採用目的でイベント等に出るときにノベルティを作って配ろうという動きがあり、その参考にしたいと思ったからです。

とても面白いグッズが沢山もらえたので、ぜひ自社で何かノベルティ制作を考えている場合には参考にしてみてください。 頂いたもの全部は紹介しきれないでので、申し訳ないですがいくつかピックアップして紹介させていただきます❗

(ブースでもらえるものと受付でもらえるものが混じっているのでご注意を! またステッカーについても省略させていただきます、ごめんなさい 😢)

草サンダルと草パンツ (Findyさん)

Findyさんのブースではガチャポンをやっていて、大当たりの景品がこの草サンダルと草パンツ❗ 靴底が草というか芝のサンダルなんて初めて見ましたw これを履いて歩くと裸足で芝生を踏んでいる感覚で気持ち良いでしょうか... 自分は残念ながらサンダルを当てられませんでしたが、代わりにスマホスタンドをいただきました(後述のCookpadさんと同じタイプ)。

また大きなGitHubのコントリビューションをイメージしたボードにシールを貼って「草を生やす」ことができるコーナーも。 さらにステッカーも草でしたw

防弾繊維でできた丈夫なLightningケーブル (Yahoo! JAPANさん)

まず受付でもらえたのがYahoo JAPANさんのこのLightningケーブル。 2.4Aで急速充電対応で折り曲げに強い耐久性のある超実用的なグッズ! よくみると「防弾繊維」って書いてある...ミリタリー仕様?? とりあえず即カバンに入れました、明日から普段使いできる素晴らしい品 (^o^)

おしゃれなコースターとドロイドくんステッカー (eurekaさん)

eurekaさんのブースではおしゃれなコースターをいただきました。 これから寒くなる時期にはマグカップをよく使うのでぜひ家や会社で使いたいですね👍

ところでiOSDCでドロイド君ステッカーを配っているのってなんかすごくないですか!? しかも自社ロゴとのコラボです、結構貴重なのではないでしょうか (^^)

オリジナルキートップ (freeeさん)

ロゴ入りオリジナルのキートップをブースで頂いたのは会計ソフトでおなじみのfreeeさん。 さっそく最近買ったばかりのergodoxにはめてみました。

ぴったりでした!!

なお自宅にはRealforceもあるのですが、そちらは軸の形が違ったみたいでうまくハマりませんでした (^_^;) 軸が十字のやつならいいのかな? ブースでも領収書をアプリで読み取る体験ができるといったなかなかおもしろい企画をされていました。

スマホタッチペン&ボールペン (株式会社 bitFlyerさん)

これはありそうでなかった...もらったときは普通にスマホタッチペンだと思っていましたのですが実はこれ、中からボールペンが出てくるんです ❗

画期的 😆 お尻にタッチペンがついているタイプもありますが、持ち替える必要がなくて良いですね。 ただ間違えてボールペンを出した状態でスマホをつついてしまわないようにしましょう (^_^;)

エンジニアとのランチ無料招待券 (GMOペパボ株式会社さん)

エンジニアの採用には会食が効果が高いという話をよく聞くのでこれもいいですね。 カンファレンスだと採用目的でエンジニアを見つけても話す時間も限られてますし、後日落ち着いてランチで話すことで採用のKPIも高くなりそうです。 参加する側も気軽に知り合いを増やしたり情報交換ができて楽しそう、シンプルだけどなかなか良いアイデアですね。

ちなみにくじのデザイン(写真左上)もかわいいのがさらにGOODだと思いました。

XCodeチートシート付きホワイトボード (株式会社ミクシィさん)

ミクシィさんからはXCodeチートシートをいただきました。 これだけでもデスクにあればかなり嬉しいのですが、その裏側には...

ホワイトボードが ❗ ボード用のペンもセットで入っていました ✨

エンジニアはちょっとしたロジックや設計の説明にホワイトボードを使うことが多いので、これも日常的に使えそうですね 👍 これで何かの説明のたび、毎回ホワイトボード前に移動しなくて済みそうです。

木のお箸とスマホスタンド (クックパッド株式会社さん)

個人的にクックパッドさんは、学生のころからイベントで様々なグッズを配布しているイメージがありました。 IT系のグッズではないですが、エンジニア以外でも日常で使っていてサービスを思い出してくれるようなものという点でお箸とても画期的ですね。

もう一つはスマホの裏に付けるスタンド。 実は同僚がすでに別のイベントでGETしてたのを見て、いいなぁと思っていたところだったのでした!

こんな感じで、隆起させるとスマホが持ちやすくなります。 バンカーリングよりもスマートで見た目もきれいです 👍

Webカメラハイダー (株式会社ディー・エヌ・エーさんとアマゾン ウェブ サービス ジャパン株式会社さん)

FacebookのCEOはセキュリティ対策のためWebカメラにガムテープを貼っている...という噂を聞いたことがあります。 が、これがあればカメラ部分を汚さないですし、画面を閉じても厚みが気になることもありません(実際超薄いです ❗)

そしてつけてみてわかったのは、画面の上部にロゴがあるというだけで自然と何度も目に入るので、刷り込みというかサブリミナル効果がある気がしました(笑) サイズも小さいですし、配布のしやすい画期的なアイテムだと思いました 😆

クール&ホットアイマスク + たい焼き + eightロゴタブレット (Sansan株式会社)

最後に、今回自分が一番衝撃を受けたノベルティグッズがこちら 🔽

なんとジェル入りでクールダウンできるアイマスク❗❗  (目は隠れないのでマスクではない ❓) しかもこれ、冷蔵庫で冷やすのはもちろん、お湯で温めてホットにしても使えるらしいのです❗ すごくないですか 😂

ということで実際着けてみました...

特に冷蔵庫には入れてなかったのですが、目の周りがひんやりしてとても気持ち良い❗ 実はSansanの社員さんが実際に着用した様子がブログにて公開されていて、こちらには複数人でアイマスクを使うというもっとインパクトある画がありますのでぜひ見てみて下さい(笑)

[blogcard url="https://jp.corp-sansan.com/blog/2018/05/eight_ruby2018.html"]

社員の方が実際に使って使い心地を試したり既成品に縛られない斬新な発想が素晴らしいと思いました 👍 普通のアイマスクだと休憩はできるものの作業を中断しないといけなくなるので、このアイマスクのように目の部分を覆わないで動画でも見ながらクールダウンもできるのは大変便利です。

またSansan株式会社さんは出会いを大切にするというモットーを掲げているようで、「大切にしたい」というフレーズが書かれたたい焼きも配っていました🐟 食べたら消えてはしまいますが記憶に残る1品ですよね。 サービスのロゴ入りタブレットも配布していて、トータルで見てなかなか太っ腹なノベルティだなと感動しました。

まとめ

iosdc bag and towel

最後に受付でもらえるdipさんのバッグとブースで頂いたクックパッドさんのトートバッグ。 肩掛け式のものは珍しいですね。

ということで、iOSDC 2018で頂いたノベルティグッズをただひたすら列挙しました❗ 冒頭にも書いたとおり、自社でノベルティを制作する際にお手本にしたいものばかりでしたね。

本当はブースでの催し物も本当は載せたかったのですが、そちらはぜひ別の方が書いてくれることを期待します💧

またdepoloygateさんのように「ブースを出していないけれどエンジニアを捕まえて賞品GETしてね!」的な企画も、参加者が楽しめる素晴らしい企画だと思いました。 (来年こそGETしてやるぞ ❗)

https://twitter.com/DeployGate_ja/status/1035743998608998401

もちろんiOSDCはエンジニアが数百人も集まる大きなカンファレンスですし、きっとノベルティの予算も各社それなりに大きかったことでしょう。 中には限られた予算でやることが難しいものもありますし、ブースや企画を出すのが前提のノベルティもあるかもしれません。

ただ、ノベルティは採用やブランディングといった目的を達成するための手段です。 エンジニアへのブランディングに効果がありそうなのはどんなグッズか、採用につながりそうなのはどんなアイテムかを今一度考えて見る上で参考にしたいところですね。 自分の会社でもぜひ参考にしていきたいと思いました👍

テキストを複数コピーして好きなタイミングでそれらをペーストできることを知らない人が多すぎる

クリップボード拡張なしでコピペしようとするとウィンドウの往復とフォーカス切り替えが連続で発生する

コピーペーストでウィンドウを往復するのはやめよう

他人と一緒にスクリーンをシェアしながら作業すると、いつも新しい発見がある。 いわばペアプログラミングと同じで、知らないやり方を覚えたり逆に教えたりできる絶好の機会だ。 自分も今までプログラミングもそれ以外も含めて様々な人とスクリーンシェアリングをやってきた。

その中で自分がずっと気になっていることの一つが、未だに多くの人がクリップボードを素のままで利用しているという点である。 素のままとは、1度コピーしたテキストを1つしか記憶しておくことができないということ。

例えばWeb上のとあるフォームに情報(例えば名前と住所と電話番号とか)を入力することを考える。 そして入力に必要な情報は事前にテキストで与えられているとする。 このとき多くの人は以下のような作業を入力欄の数だけ繰り返している。

  • 1-1 郵便番号をテキストからコピー
  • 1-2 ブラウザに切り替え
  • 1-3 郵便番号をフォームへ貼り付け
  • 1-4 テキストエディタに戻る
  • 2-1 住所をテキストから住所をコピー
  • 2-2 ブラウザに切り替え
  • 2-3 住所をフォームへ貼り付け
  • 2-4 テキストエディタに戻る

...

  • n-1 項目Nをテキストからコピー
  • n-2 ブラウザに切り替え
  • n-3 項目Nをフォームへ貼り付け
  • n-4 テキストエディタに戻る

雑に図にするとこんな感じ

標準のクリップボードではウィンドウを往復する必要がある

しかし、この中で無駄な作業が発生していることに多くの人が気づいていない。 なぜなら、まずウィンドウ切り替えはそれだけでキーボードからマウスへと手を持ち替えないといけないので手や腕が疲れる。 仮にCmd+Tabのようなショートカットキーを知っていたとしても、フォーカスが変わるので結局マウスで次の入力欄をクリックしないといけない。 貼り付け位置や内容を間違えたらもう一度コピペをやり直す必要もあるし、場合によっては数回前にコピーした内容を再度貼り付けたいこともあるがそれを再度テキストから探さないといけない。

要するに、MacWindowsの標準機能では、過去のコピペの履歴を使い回すことはできないためこうしたウィンドウ移動をせざるを得ないのだ。 この「過去のコピペの履歴」を保存しあとでまとめて利用できれば上記の作業がかなり単純化される。 つまり

  • 郵便番号をテキストからコピー
  • 続けて住所をテキストから住所をコピー ...
  • 続けて項目Nをテキストから住所をコピー
  • ブラウザに切り替え
  • 郵便番号をフォームへ貼り付け
  • (Tab移動して) 住所をフォームへ貼り付け ...
  • 項目Nをフォームへ貼り付け

 

とすれば、ウィンドウの切り替えが1度で済むほか、貼り付けも項目切り替えはTabキーでできるのでキーボードから手を離す必要がない。 さらに同じ項目を別の場所に貼り付けようとしたとも、履歴から再利用できるので再度テキストへ戻る手間もない。

クリップボード拡張なら往復は一度だけで済む

クリップボード拡張アプリを使おう

2018年にもなってなぜかMacWindowsiOSAndroidも、標準でこのコピペ履歴の保存を標準では用意してくれていない。 なのでちゃんと問題意識を持たないと「コピペは一度に1項目しかできないもの」と人は思い込んでしまう。

そこで、クリップボード拡張アプリを使えば過去にコピペした項目を履歴として保存し、再度使い回せるようになる。 ここでは自分が使っているアプリしか紹介できないが、以下に代表的なものを上げてみる。

Mac

履歴を保存するだけならClippyが最もシンプルだろう。 日本人が作っているということもありとても使いやすいと思う。 このアプリはダウンロードして開くだけで使えるようになり、設定画面をいじらなくてもすぐに使えるのが良い。 また定型文の登録もできるので、よく使う住所やメールのテンプレ等のテキストも保存しておくと良いだろう。 呼び出しは標準だとCmd + Shift + V でできるが、こちらは設定で変更可能 ただ高度なテキスト(今の時間を整形して入れるなど)はできない。

[blogcard url="https://clipy-app.com/"]

クリップボード拡張を使ってコピペするとまとめてコピーしペーストのタイミングも自由なので操作量もミスも少なくなる

そこで自分は今Alfredというアプリに切り替えている。 上のGIFではAlfredのクリップボード履歴からテキストを呼び出している。 MacにはSpotlight(Cmd+Space)で起動するアプリランチャーが標準でついているが、Alfredはそれをより便利にするアプリ。 その機能の中にクリップボード拡張があり、過去の履歴を指定した期間内は全て保存させることができる また定型文の中に指定したフォーマットの日時や直前にコピーしたテキストを入れて貼付けできるといった高度な設定があるので、設定に自身がある方はこちらを試してほしい。

[blogcard url="https://pc-karuma.net/mac-app-alfred/"]

Windows

数年前Cliborというアプリを使っていたが、こちらは上記のClipperと同じコピペ履歴保存に特化したシンプルなアプリ。 インストールするだけですぐに使え設定しなくてもそれなりに使えた記憶がある。

[blogcard url="https://forest.watch.impress.co.jp/library/software/clibor/"]

ただ上記と同様の理由で、自分は長い間ArtTipsというアプリも使っていた、 ArtTipsはWindowsの右クリック(コンテキスト)メニューを拡張するアプリで、右クリックから過去の履歴を見て好きなテキストを再利用し貼付けできるアプリだ。 こちらも高度な分設定が複雑で、しかも設定画面がかなり分かりづらい。 慣れるとなんともないがひとまずはCliborを使い、飽きたり不便と感じるようになったらArtTipsという流れをおすすめする。

[blogcard url="http://www2s.biglobe.ne.jp/~sahmaro/ArtTips.html"]

Android

今の所「Android クリップボード 拡張」というキーワードで調べると、このaNdClipというアプリがトップに出てくる。 基本的な使い心地は良く、設定で端末起動時に自動でアプリが起動するようにもできる。 ただデザインが少々古いのと、通知バーから一度アプリに飛んでコピーしないといけない。

[blogcard url="https://play.google.com/store/apps/details?id=com.amazing_create.android.andclipfree&hl=ja"]

そこで最近は切り取り箱というアプリに切り替えてみた。 こちらはマテリアルデザインで最近のUIに慣れていると使いやすさが高い。 また通知のプルダウンから直接テキストをコピペできるので少しだけタップ数を節約できる。

[blogcard url="https://play.google.com/store/apps/details?id=com.catchingnow.tinyclipboardmanager"]

iOS

現在のところClip & Pasteというアプリで落ち着いている。 iPhoneのSpotlightに出るので通知からのクリップがやりやすい。 まだiOSはあまりこの手のアプリを試していないのでもう少しいろいろ試してみたい。

[blogcard url="https://itunes.apple.com/jp/app/id960945224"]

よく使うテキストは定型文にして使い回そう

Alfredで定型文を使うとクリップボードの中身を使ってよくあるテキストを簡単に貼り付けできる

この前にも述べたが、自分の名前や会社の住所、さらには「了解です、よろしくおねがいします」といったよく使う文章は、これから何度も使うことがわかっているのでそのたびにコピペや手打ちするのは無駄でしかない。 手打ちは結局一定の割合でミスをするので、重要なテキストであればなおさら定型文に頼ったほうが良い。 なのでクリップボード拡張の定型文に登録しておこう。

自分はAlfredのSnippetsに大量の定型文を保存しCmd + Shift + Mで呼び出している。 Alfredでは現在のクリップボードの内容や今の日時と合わせた定型文を出力できるので、上記のような特定のフォーマットで入れるテキストも簡単に入れられる。 どこまで入れるかは個人情報に対する感度次第ではあるが、住所や電話番号はこれのおかげでかなりの入力時間を節約できたと思っている。

パスワードは管理ソフトに記憶させてオートフィルを使おう

さらにパスワードもアプリに記憶させる 自分はLastpassというサービスを使って、パスワードを管理したりオートフィルで自動入力をさせている。 この手のサービスには1PasswordやMac標準のKeychainなどもある。 もちろんパスワードを管理するソフトなので安全性を高めるためのマスターパスワードや指紋認証といった設定はしっかりやっておく必要があるが、自分はこれが手放せなくなっている。

まずは簡単なクリップボード拡張アプリから始めよう

クリップボードに1つしか値を記憶できない」という思い込みをまず捨てよう。 そしてまずは簡単なクリップボード拡張アプリを入れてみてアプリやウィンドウの切り替えを減らしてみる。 これだけでも十分今までの非効率さが認識できるはずだし、入力ミスも減るはずだ。

macOS システム設定の「ダウンロードしたアプリケーションの実行」の許可ボタンを何度押しても反応しないのは非純正マウスが理由だった!?

ダウンロードしたアプリケーションの実行」の許可ボタンが何度押しても反応しない

High Sierraにアップグレードした後に、Karabina Elementsを開いた所、システム設定で外部アプリケーションの実行を許可するようにダイアログが出た。

[blogcard url="https://github.com/tekezo/Karabiner-Elements"]

そこで システム設定>セキュリティとプライバシー>外部アプリケーションの許可 に飛んで許可ボタンを押したのだが、ボタンを押しても何も怒らない。

https://twitter.com/felix_schwarz/status/908690187219283970

この方の動画にあるような現象が自分にも起きた。

なおこの方はスクリーン共有機能を提供しているアプリをOFFにすれば直るとおっしゃっているが、自分は特にそういった設定はしていないので違う模様。

もちろん、OSはあの悪名高きHight Sierra、バグ多すぎだろ...

mac純正の入力デバイスからでないと反応しない⁉

そこでさらに調べたところ、Karabina Elementsのgithub issueにも同様の現象で困っている方たちが。

[blogcard url="https://github.com/tekezo/Karabiner-Elements/issues/1017"]

上記issueでの回答を見たところ、トラックパッドからの入力でないとというものが目についた。

実は自分もクラムシェルモードmacbook Proを動かしていてbluetoothマウスを接続していたので、試しにトラックパッドでクリックしたところちゃんと反応した。

コメント内での回答は例えば

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-335165442

...(略)... If you have this problem try to disable any apps that my capture and forward clicks. The click must come from the touchpad directly. << pulling my hair out >> (訳) ... 問題があるなら、クリックイベントをキャプチャーしてフォワードしているアプリを全部切ってみて。クリックはタッチパッドから直接入力されたものじゃないとダメみたいだ

 

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-363904363

FWIW, I had a similar issue in 10.13.3. ...(中略)... It was ultimately due to the use of a third-party mouse from Logitech. I plugged in my Magic Mouse, click on the "approve" and things started to work as advertised. (訳) 役に立つかわからないけど自分も 10.13.3 で似たようなことになっている ... これは完全にLogitechのようなサードパーティー製マウスを使っているのが原因だ。自分はマジックマウスを接続して「許可」を押したら他の人みたいに直ったよ。

なるほど、どうもサードパーティー製のポインティングデバイスを使ってはダメらしい。

しかし、少し手前にはワコムペンタブレットなら動いたという声も

https://github.com/tekezo/Karabiner-Elements/issues/1017#issuecomment-344077728

I was clicking like crazy that button and nothing happened then I tried clicking with a wacom pen using my wacom tablet and it worked!!! (訳) 死ぬほどクリックしまくってたけど何も起こらなくて、ワコムのペンタブでやってみたらうまくいった!!!

あと、会社のmacbook proも普段はクラムシェルモードでマウスをつなげて操作しているが、上記の問題は発生していない。

ただこのマウスは有線マウスなので、もしかしたらサードパーティー製でもワイヤードマウスは大丈夫なのかもしれない...

まとめ

上記をまとめると、システム設定のボタンが正しく動く入力デバイスは以下の通りと思われる。

日本語の情報がなく1ヶ月くらい困っていたのでまとめておきました。

Google Home Mini / IRKit / Wemo で一人暮らしでも快適に冬場を過ごせるスマートホームを実現した、しかも予算たったの1万円!

朝起きたら部屋が暖かく、家に帰ったらお湯が沸いている生活

昨年から都内で一人暮らしを始めた。

やってみると、意外にも生活で困ることはなく順調に秋までは過ごせていたのだが、冬になるとどうしても部屋が寒くなり生活リズムに支障をきたすようになった。

当たり前だが、一人暮らしだと誰かが先に起きて部屋を温めてくれている...なんてことは起きない。

もともと冬季うつ病の傾向がある自分は、冬の朝にはめっぽう弱く、仕事で何もなくても朝起きるのがかなり辛くなってしまった。

なのでタイトルのスマートホームを実現するまで、自分は願わくば

  • 朝起きる30分前にエアコンを付けてくれて
  • 起きる時間には照明を付いていて
  • そのまま台所ではお湯が沸いており
  • 帰宅した時も部屋は温かくお湯が沸いていてほしい

そんな生活が送りたいと思っていたのだった。

そんな生活が1万円で実現できてしまった

というのは、前置きで、結論としては、上記の生活は全てスマートホームによって実現できてしまった。

しかもかけた総額は...なんとたったの1万円!

何をどう実現しているかは次の図をご覧いただきたい。

我が家のスマートホームのシステム構成

いろいろと書いているが、要は

  1. スマホGoogle Home Miniを入力にして
  2. アプリまたはIFTTT経由で
  3. IRKitやWemoにリクエストを飛ばし
  4. それらが家電の電源・赤外線入力を操作する

というのが上記の流れだ。

その際、新たに自分が購入したツールは次の3つである。

  1. Google Home Mini
  2. IRKit (現在販売停止中ですが中古ならAmazonで手に入ります!!)
  3. Belkin WeMo 家庭用電源リモートスイッチ

タイトルにある「1万円で」というのには、昨年ビックカメラでGoogle Home Mini半額キャンペーンをやっていて自分はその時に3,000円でGetできたのに加えて、Wemoのスイッチを社内のイベントで景品としてもらっているという事情はある。

だがそれらを元値で買ったとしても、IRKitが7,000円程度だったので総額2万円に収まるのであれば良い投資ではないだろうか (残念ながらIRKitは2018年1月現在Amazonでの取扱が停止しているが)。

どうやって実現しているかの詳細

ステップ1: IFTTTへの入力

Google Home Mini

家ではGoogle Home Mini、外出先ではスマートフォンから、IFTTTへHTTPリクエストを送る。

リビングのモニター下にGoogle Home Miniを置いているが、家は6.5畳の1Kなのでキッチンや玄関からでも音声操作ができる。

スマートスピーカーに声が届きやすいという意味では、狭い家も悪くない。

ステップ2: IFTTTからWemoやIRKitへ通知する

Google Home Miniやスマホを経由してスマートスイッチを操作するIFTTTレシピを作成している

続いてIFTTT上でIRKit / Wemoを操作するためのレシピを作成する。

"If" についてはGoogle Home Miniのキーワード、GPS、時間などなど好きなものを設定すれば良い。

次に "Then" について、Wemoの場合は既にインテグレーションがあるのだが、IRKitはインテグレーションがない。

そのため、WebhookでHTTPリクエストを飛ばす必要があるが、肝心の「どのようなパラメータを付けてどこにリクエストを飛ばせばよいか」については、以下のポストを参考に設定したのでここでは割愛させて頂く。

[blogcard url="https://qiita.com/jyoshida/items/cf550d6b645ef69aae28"]

[blogcard url="https://qiita.com/ikeyasu/items/dfb991007a31d5aa03c2"]

やってみた感じ、clientkeyの取得部分が若干面倒ではあったものの、一度やってしまえばコピペで使いまわせるし、リモコンの信号もコピーペしてどこかに保存しておくことをオススメする。

ステップ3: IRKitからエアコンと照明に赤外線で信号を送信

話が前後するが、IRKitはインターネット経由で赤外線を操作できる小型のスマートリモコンで、赤外線で操作できるものは何でも対応している。

家電に付属しているリモコンからIRKitに赤外線を送信することで、IRKitがそれを覚えてくれる。

よって

  • エアコン
  • 照明
  • 扇風機
  • テレビ

などが操作できる。

自分は机の下にこんな感じで雑多に置いている (下のNTTルーター横にある白いのがIRKit)

小さくて軽い故に向きがずれて赤外線が届かなくなることがあるため、テープかなにかで固定するのがベター。

IRKit

これでようやくインターネット経由で赤外線が操作できるようになる、めでたしめでたし。

前述の通り、IRKit自体が簡易のHTTPサーバーとなっていて、リモコン信号をパラメータにくっつけてリクエストを外から送ることで、他のサービス(ここではIFTTT)からの操作も可能である。

もちろんIRKitの専用アプリもあり、IFTTTなどの連携が必要ない場合はアプリ上でボタン化すれば良いのでそれだけでも自分は十分便利だと思っている。

IRKitのアプリを使えば操作を簡単にボタン化できる

今の家ではエアコンと照明が赤外線リモコン操作に対応している。

なので、IFTTT経由で平日朝起きる30分前にエアコンをONにし、かつ起きる時間には照明を付けられるというわけである。

これはもちろん帰宅時も同じで、IFTTTでGPSによるフックが可能なため、家に近づいたらエアコンと照明を付けるのもお手の物。

(自分は家が駅から近く、かつ最寄りよりも先の駅まで行く用事が頻繁にあるためここはIRKitのアプリで操作している)

ではGoogle Home Miniの出番はどこか。

Google Home MiniもIFTTTへの入力になれるので、音声でのエアコン/照明操作はコマンドとして登録しておく。

そうすればいつもより早い時間に起きることになっても、布団から出ずにエアコンと照明を操作できるし、何よりいちいちリモコンを探す必要もない。

なので最近はほとんどリモコンは使わずに、Google Home Miniの音声コマンドのみで操作している感じである。

ステップ4: Wemoでお湯を沸かす

ではお湯を沸かす件はどうなったか。

これはWemoの方で実現している。

wemoは電気ケトルと繋いでいる

Wemoはインターネット経由で操作できるスマートスイッチで、自分が持っているのは通電を切り替えるだけのものである。

これ以外にも、最近は電球や遠隔モニターなどいくつかのラインナップがあるらしい。

現代の多くのデジタル家電では電気的にスイッチを入れなければいけないため、通電を切り替えるだけのスイッチは正直使い道がないと思っていた。

ところが最近、自宅の電気ケトルのスイッチ部分がアナログであるという点に気づいた。

これを利用すれば、通電がOFFの状態で水を入れた電気ケトルのスイッチをONにしておき (もちろん沸騰はしない)、通電したタイミングでケトルを沸騰させることが可能である。

よって、朝起きた瞬間に暖かいコーヒーを飲み、寒い夜も帰宅したらお茶を飲める生活が実現できたわけである。

...え、ホットミルクが飲みたい? なら電子レンジでも良いのだ!

そう、なぜなら我が家の電子レンジはアナログなゼンマイ式(?)のタイマー式電子レンジだからである (7,8時間牛乳を冷蔵庫から出すことにはなるが)

以上を考えると、意外とアナログな家電ほど、スマートホームには向いているのではないかと思い始めた。

電源を入れるだけのような家電の方が割安なスマートスイッチでIoT化を実現できてしまう気がするのは自分だけだろうか。

もちろんIRKitやWemoなしで、家電を直接Wifi経由で操作できるならそれがベストだし、Chrome Castのように別の端末から繋いだ家電のコマンドを操作(自動でテレビを付けてHDMI入力に切り替える的な)してくれば理想だ。

でもそこまでできる未来は少なくとも5年, 10年はかかると思うし、何より家電ごと買い替えないといけないので単純にお金がかかるというのも難点だ。

まとめ

  • Google Home MiniとIRKitとWemoで冬場も快適な生活を実現できる!
  • Google Home は汎用性も高くこれからもアップデートが来るのでとりあえず買っておこう!
  • IRKitは売っていないので代替品を探すか持っている人から買い取ろう (それくらいの価値はある!)
  • アナログな家電を持っている人こそWemoスイッチを買ってみよう!

ぜひ一人暮らしであまり金銭的余裕がない人でも、快適な生活を実現する方法があるということを知ってほしいと思う次第である。

 

macOS High Sierraでスクリーンロックのやり方がちょっと便利になっていた件

KeyChain Accessがメニューバーに表示できない

先日自宅のMacbook PromacOS High Sierraにアップグレードした。

自分のマシンは自宅のみで使うためスクリーンをロックする必要が無く、KeyChain Accessのメニューを表示させていなかった。

詳しくは以下のリンクを見ていただければわかるが、簡単に言うとKeyChain Accessの設定画面に「メニューバーに状況を表示」という項目があり、チェックするとメニューバーにアイコンが追加されて、そこからスクリーンロックができるようになっていた。

[blogcard url="http://inforati.jp/apple/mac-tips-techniques/application-hints/how-to-lock-keychain-or-display-easily-in-macos.html"]

 

自分はHigh Sierraにした後に、上記のような方法で簡単にスクリーンロックできるよう設定したかったのだが、自分の設定画面ではなぜか上記のメニューが表示されなかった。

最初なぜ項目がなくなっていたのか分からなかったが、どうもHigh Sierraに上げたのが原因ではないかという仮説に行き着き調べてみることに。

スクリーンロックはAppleメニューに追加されていた

すると同じような問題で困っている人を発見!

[blogcard url="https://apple.stackexchange.com/questions/300006/high-sierra-10-13-keychain-access-menubar-item-missing"]

 

その答えは

"Lock Screen" is now available via the Apple menu. (訳: Appleメニューに「スクリーンロック」が追加されたよ)

 

なんと、KeyChain Accessの機能だったものがAppleメニュー (電源OFFとかを表示するメニュー) に追加されたとのこと 😄

Hight SierraでAppleメニューにスクリーンロックが追加された

確認してみると、確かにメニューに追加されていた ❗

しかも嬉しいことにCtrl + Cmd + Qでロックできるショートカットまでついていてこれは便利、めでたしめでたし。

会社のマシンもアップグレードしたら、離席する時ちょっと楽になるかも 😉

普通に「High Sierraでできること」的な記事に書いても良いレベルの機能だと思うのだが、特に調べてて引っかからなかったのはなぜだろうか。

Android 7.1.1 のアップデートで音量ボタンが動かなくなったらアクセシビリティメニューのスイッチアクセスをOFFに

Android 7.1.1 にアップデートしたら音量ボタンが壊れた(と思っていた)!

Nexus 5Xを使っていて、1ヶ月ほど前にAndroid 7.1.1へアップデートしてから音量ボタンが使えなくなって焦った。 普段携帯をジプロックに入れて風呂でYouTube鑑賞している(良い子は真似しないでね)ので最初はてっきり浸水しのだと思っていたが、先日ようやくこれが設定の問題だったことが判明したので対処法を載せておく。

アクセシビリティメニュー内の『スイッチアクセス』をOFFにしたら解消

似たような症状の人はけっこういるっぽくて、いくつか試した中でここに載っていたアクセシビリティメニューの「スイッチアクセス」をOFFにするというのを試したら解消した。

[blogcard url=https://productforums.google.com/forum/#!topic/nexus/zBUCfSh0rNo;context-place=topicsearchin/nexus/category$3Amic-and-voice-actions]

 

Also, Can you check at Settings > Accessibility to see if Switch Access is enabled? This accessibility feature lets you use the volume keys for navigating, which disables using them to control volume.

(訳: "設定 > アクセシビリティ > スイッチアクセス" がONになっているとボリュームキーが音量コントロールではなく、ナビゲーションに使われてしまうよ)

こういう特にONにした記憶が無い設定が原因で突然現れるバグは本当に困る。 しかも自分はBluetoothヘッドセットも使っていて、そちらについている音量ボタンではなぜかUIには出てこないけど音量調節はできたのと、Kindleのページめくり機能も使えなくなっていたのもあって、対処法がわからず完全にハードウェアが死んだとばかり思っていた。

調べてみたところ、日本語だと7.1.1のバグに関する情報自体が少なく、海外のスレだと同じバグでスレがたくさん立っていて盛り上がっていた。 そもそもキャリアのAndroidスマホでは Nougat にアップデートできる機種がまだ少ないからなのかな。

このバグの原因にはいくつかのパターンがあるみたいなので、上記の方法で解決しない人は他の海外サイトもググってみると良いかも。 例えば自分は最初に「トークバックの設定をOFFにする」というのをやってみたけれど特に効果はなかった。

本当に壊れたと思ったので iOS の Assistive Touch 的なアプリで代用していた

音量ボタンがマジでダメになったと思ったので、実はiPhoneのAssitive Touchと同じ、ハードウェアボタンを画面上にソフトウェアボタンで配置する機能をAndroidで実現するアプリまで入れてしまっていた。 しかもかなり気に入ってしまったので有料版まで買ってしまったという(笑) カメラとかスクショの機能も同じメニューから使えて有料版だとボタン配置も変えられるから、アプリとしてはとても便利で気に入っているし、本当にハードウェアボタン壊れたらこれはなかなか使えると思う。

Button Savior Non Root
価格:0  平均評価:4.2(7,177 件)

 

Google Play で手に入れよう

 

Ruby Silver取ったので例によって合格体験記書きました

Ruby Silver ゲットだぜ!!

昨年末にRuby Silver試験を受験して合格した。 75点合格ラインのところ、自分は84点でパスしたのでちょっと危なかった。 実際、試験終了ギリギリまで悩んだ問題も10%くらいあったことを考えるとこの結果には納得。

これで晴れて「俺はRuby書けるんだぜ」  (...え、何それ自慢??) というのを卒業し「俺はRuby Silver持ってるんだぜ!!」とドヤれる ( ̄¨ ̄) ...というのは嘘で、まぁSilverは基本レベルなのでそこまでドヤる程のものではない(汗)

さてRuby Silverの試験勉強で参考になるのが、ブログやQiitaに上がっている受験者の合格体験記。 知っての通りRuby SilverやGold試験は参考書がクソ参考書を解いただけでは独特の傾向や重点的に学習すべき部分が分からないので、そういうときには試験を受けた方の話が参考になった。 ということで、自分も試験を体験記を書いてみた。

前提条件

自分の体験記を書く前に、アドバイスが適切な人に届くよう自分のRubyに対するスペックを書いておく。 というのも人によって持っている前提知識がいろいろ違うと思うので、開発経験が浅い人はできれば違うポストを参考にしてほしい。

  • Rubyでの開発経験
    • 年数: 3年
    • 触れる頻度: 平均して週3,4日
  • 用途

こんな感じで、日常的にRubyに触っていて、ブロック渡しとかArray#mapとかの関数も割と普段から使っている点に注意されたい。

合格するまでに使った教材

ではお待ちかねの合格までの道のりを

Ruby技術者認定合格教本

これについては説明不要ですね。 とにかくこれで出題範囲をおさえて、知らない知識をどんどん取り入れていきましょう。 古いバージョン(Ruby 1.8対応)ではなく2.1対応のもの買うこと。

自分はこの本を1周して、知らないところにバンバン付箋を貼っていった。 そして知らなかったところをpryを使ってコードを打ち込みひたすら確認してを繰り返していくと知識の「穴」が埋まっていく。 本書では初めにirbの使用方法が紹介されているが、補完やシンタックスハイライトが効くし公式も推しているのでpryの方がオススメ。

[blogcard url=http://labs.timedia.co.jp/2011/12/rubyist-should-use-pry.html]

最後に演習問題がついているので、こちらも活用して出題傾向の把握に努める。

あとGold試験の教科書としてメタプロ本が推奨されているけれど一部はSilverに通じるところもある。 オープンクラスとか変数のスコープの話が参考になるので、Gold試験を受けるなら事前に買って読んでおいても損はないが、覚える必要も特にはない。

メタプログラミングRuby 第2版
Paolo Perrotta オライリージャパン 売り上げランキング: 76,543

公式サンプル問題

教本の問題だけだと足らないので、試験に慣れるためにも公式が出している模擬試験問題はやっておくべき。 以下のページ内の「模擬問題PDF(Silver) 」からPDFがダウンロードできる。

[blogcard url=http://www.ruby.or.jp/ja/certification/examination/]

ちなみに試験前日にこれを解いてみたときの正答率は50問中41問だった。 正直コレを見てかなり焦ったが、幸いここで外した問題を復習したことが当日にいくらか役に立った。

Ruby資格試験対策アプリ (Android)

なぜかAndroid限定なのだけれど、同じく公式が問題アプリを出してくれているのでこちらは移動時間に活用

無料で30問、課金すると全100問の問題が解けるらしい。 自分はこのアプリを使うのが試験直前になってしまったので結局課金しなかったけれど、30問で足らない人は是非課金しよう。

Google Play で手に入れよう

ミニツク

ミニツクというプログラミングドリルを無料で提供してくれているサイトがあり、アプリ同様参考書が開けない外出時等にスマホで問題を解くことができてとても重宝した。 出題の形式も、大体が4~5択の選択問題で実際の試験に合った形になっていたのが良かった。

[blogcard url=http://www.minituku.net/?locale=ja]

Ruby初心者だったら、ここの他の講座の練習問題も解いてみるのも良い。

 

以上が自分が使った教材。 読み物の数は教本だけだったし、演習用の教材は探せばもっと出てくるかも。

傾向と対策

とりあえず思ったことを書くと

  1. 実は「満遍なく出ない」=特に出題されやすい部分を重点的に覚える
  2. 似たような名前のメソッドもできるだけうまく整理して覚える
  3. 予約語とか変数の命名規則とか偽の値を選ぶ問題はボーナス問題と捉えよ
  4. 試験当日に解いた問題は教材でやった演習よりも優しく感じた (たぶんそういう風につくってあるのかな??)

まず1について。 実際に問題で出る範囲はある部分に集中しているので、早めに教本を一周して演習で傾向をつかむこと。 特によく出ると思った部分は

  • chopchompで最後の文字列を切り取るかどうか
  • StringArray の [] メソッド (範囲選択して部分文字列や配列を切り取らせるやつ)
  • Array#map や 和集合、積集合の演算
  • 正規表現と日付のパターン (英数字空白と行頭行末表現、年月日と時刻くらいは最低限覚えよう)

このあたりは重点的に覚えて可能な限り落とさないようにしたいところ。

次に2については、これがこの試験の特徴かつ関門と言える部分。

  • index, match, scan (String)
  • chomp, chop (String)
  • delete ファミリー, reject, slice (Array, Hash)

この辺りがしっかり区別できると高得点が期待できるし安心できる。

あとは

  • each_with_indexで渡すブロックで変数は |index, value| それとも |value, index| ??
  • Array(3,4)は [3,3,3,3]?それとも [4,4,4] ???
  • ArrayやHashの生成方法って[]{}以外に何があったっけ??

このあたりも忘れがちだけれどちょくとく聞かれるので忘れないようにする。

それから3についてだけれど、よく聞かれる問題はややこしいものばかりではない。 nilfalse を選べば良い問題や、_と英字で始まる単語を選べば良い問題などは、覚えることがとても単純なので、ボーナスと捉えて絶対に落とさないように。

4については個人的な感想なので絶対言い切れるわけではないけれど、参考書の方が難しく作ってあるというのはフツーにありそうなので、練習で9割取れるようになれば十分自信を持って試験に臨んで良いと思う。

まとめ

  • 考える問題はあまりないので、90分という時間は気にしなくて良い(大抵の場合たぶん余る)
  • 覚えるための近道は
    • 教本は1周でわからなかった所だけ付箋でメモる
    • その後はとにかく練習問題や演習をやる
    • 間違えた所はirbやpryで写経する
  • エディタ上では書けても、選択問題で出されると意外とわからなくなるよ (なのでしっかり演習をやること)

自分は直前まで修論の提出とかいろいろあって演習時間が思うように割けなかったが、それでも80点には届いたのであと2,3倍ちゃんと演習していれば90点は確実だっただろうなと思う。

次はGold試験を年度内に受ける予定。 覚える範囲広がる上に、メタプロ要求してくるとかなかなかハードル上がるなぁ...