読者です 読者をやめる 読者になる 読者になる

面白コンテンツ探求日記

ラーメン食べたい

2016年買ってよかったもの

買い物 AdventCalendar

これは 今年買ってよかったもの Advent Calendar 2016 - Adventar 6日目の記事になります。

今年もそういう時期が来たのでこの一年で買ってよかったものを並べます。

食洗機

今年ダンドツで一番ライフチェンジングだった買い物。もうこれ無しの生活には戻れない。これについては以前こんなエントリを書いた。

食洗機買ったらライフがチェンジした - 面白コンテンツ探求日記

買う前はちゃんと洗えるのかとか、運用費結構かかりそう・・とか考えていたけど全く問題無し。汚れが残っていることは滅多にないし、メーカー曰く水道代も手洗いより少なく済むらしい。多少電気代かかるかもだけど浮いた時間のこと考えると全然気にならない。おすすめ。

Roost Laptop Stand

f:id:horimislime:20160809125327j:plain

Roost Industries Corp. | Roost Laptop Stand: Portable, Lightweight, Adjustable, Ergonomic Stand

会社でずっとMacbook一台で作業してたんだけど、どうも肩こりがひどかったので高さ調整のため購入。効果は抜群で、これを使うようになってから定時ごろに襲ってくる肩こりや頭痛がほぼなくなった(本当に)。

海外から自分で取り寄せるとなると大変だけど、Rakunewで注文するとすごく楽だった。ちょうど東京に在庫があったらしく、注文して2, 3日で到着。

Roost Laptop Stand|首の痛みを解消するノート型PC用スタンド「ルースト」 - ガジェットの購入なら海外通販のRAKUNEW(ラクニュー)

BOSE QC35

仕事で作業に集中したいときに使う用に購入。つけ心地良く、ノイズキャンセリング能力もそこそこあるので満足してる。

Apple Watch Series2

Suica目的で買ったんだけど大満足。ポケットから財布を取り出す必要がなくなるだけ、と思ってたけど、たったそれだけの事がすごく便利に感じてる。

Suicaの使い心地についてはこのエントリに感想を書いた。

Suica狙いでApple Watch Series2を買って1週間使ってみた感想 - 面白コンテンツ探求日記

ちなみにSuica以外の使い道は・・・一応たまにジムで走るときに使ってる。たまに。

パワーポジションボール

パワーポジションボール

パワーポジションボール

健康器具。これの上に寝転がって自重でゴリゴリする。肩甲骨がよくこるんだけど、これはすごい効く気がする。

新しめのLEDシーリングライト

家の照明は地味にQoL高まった。上京したての頃に買った、安い六畳くらいの家用のLEDを使い続けてたんだけど、さすがに色々無理があった。まともな照明にするとご飯も美味しそうに見えるし、なんか気分も良くなる。 ケチって照明を買い換えない人はけっこういそうな気がするんだけど、本当に買い換えを勧めます。最近はLEDでも安いし。

Mornin

朝決まった時間にカーテンを開けて気持ちよく目を覚まさせてくれるやつ。取り付け簡単で4000円程の低価格。アプリも使いやすくて満足してます。

カーテンの開け閉めを自動化できるmorninというガジェットを買った - 面白コンテンツ探求日記

ただ、最近慣れてしまったのかカーテンを開けても起きれなくなってきた気がする...。

Dash Button

シーバ Dash Button

シーバ Dash Button

昨日買ったやつ。消耗品はだいたい近所で買ってるんだけど、ペット用品だけAmazon使ってるし便利そうだと思った。

Amazon開くとついwishlistに入ってるものも一緒に買おうかな・・・とか考えてしまうんだけど、Dash Button使うようにすればそんな雑念の入る余地がなくなりそう。

まとめ

以上、個人的に今年買ってよかったものでした。

ふりかえってみると、今年は趣味とかモノ以外へお金をよく使ってて、あまり便利グッズやガジェットの類は買ってなかったっぽい。

esaの記事をステータスバーから見れるMacアプリを作った話と、個人開発で心がけたい4つの事

Mac 趣味開発

この記事はトレタ Advent Calendar 2016 5日目の記事になります。昨日はサーバサイドエンジニアの@seri_k自分が2016年に作ったrails拡張系gemとその解説 - seri::diaryでした。

この記事に影響され「ワイも1日目に書いた記事の内容をgem化するぞ!」と息巻くもiPhoneの画面をバキバキに割って具合が悪くなり、未達のまま週末を終えました🌚


EsaMenuというアプリを作っていた

f:id:horimislime:20161205120756p:plain

ここ2ヶ月ほどちまちまとMacアプリを書いていて、ようやく普通に動く状態になってきたので公開しました。名前のまんまで、Macのステータスバーに常駐しesa.ioの新着記事を表示してくれるというものです。残念ながらMac AppStoreはまだ申請中で間に合わなかったんですが、以下からアプリケーションのzipを落とせます。

Release Release 0.1.0 · horimislime/EsaMenu

iOS開発をしているとMacアプリも簡単に作れそうに見えるんですが、AppKitは結構クセモノでなかなかツラい事もありました。またGUIアプリをストア配布まで持っていくには割とやることが多く骨が折れます。今回はそんなMacアプリを挫折せずリリースまで持っていくため心がけてよかった事について書きます。

手に馴染んでいる技術しか使わない

これを作り始めたのが9月末で、もうじきXcode8がリリースされSwift3が使えるタイミングでしたが、あえて使わずXcode7.3.1・Swift2.1構成で開発を始めました。言語仕様の変更以上に、多くのライブラリがSwift3対応と同時にメジャーアップデートを実施し、API仕様が変わっているケースが多かったからです(Alamofire4などまさにそれ)。AppKitを使う時点で慣れてないことをやっているのもあり、せめてここらへんは慣れたものを使わないと結構時間を使いそうだなと思い我慢しました。

自分の好きな技術や新しいもので開発できるのが個人開発の楽しいところです。けれど「アプリを作りたい」という願望と「新しい技術を試したい」という2つの願望を同時並行させると失敗しがちです。

なので使ったことのないライブラリはもちろん、小規模プロダクトで大げさなライブラリを入れるのもアレだと思い、GUI周りも素のAppKitで組み立てています(Rx系がないとツラいな・・という気持ちは正直あった。)

書いてるコードは面白みに欠けても、一度出してから何度でも作り直すチャンスはあります。最初はミニマムでスピードを優先する我慢も必要かなと思います。

デザインなど、できない事は「やらない」

gnu-and-penguin-color-300x276.jpg (300×276)

ソフトウェア - GNUプロジェクト - フリーソフトウェアファウンデーション

せっかく作ったものが誰かに使いたいと思ってもらえるよう、ついアイコンやUIもカッコ良くしたいと欲が出てしまうものです。しかし、デザイン知識に乏しいエンジニアがこだわったUIやアイコンを作ろうとすると地獄っぽいものができてしまいがちです(GNUロゴ、本職のデザイナーが作ったものか知らないんだけどもしそうだったら例に出してすいません)。

アプリアイコンがカッコいいと使ってみようかな!と思ってしまう事は確かにあります。けど逆に無理してヒドいアイコンだとパッと見でこのアプリなんかダメそう・・・と感じてしまい、内容も見ずに試す気が失せることがあります。素人が無理して作った感のあるデザインは、プラスどころかマイナス印象にしかならないと思ってます。

なのでデザインに関しては「何もしない」というスタンスを取ることにしました。UIに関してはSDK標準で用意されているものを使い、アイコンに関してはすごくシンプルかつ無難で、フリーでそのまま使えるものを利用するといった感じです。

幸いAppKitではUIKit以上に標準的なUIパーツが最初から揃っているので、アプリを作る上で凝ったカスタムViewを作る場面は少ないと思います。

f:id:horimislime:20161204191141p:plain

デザインにこだわっても使ってもらえるとは限りません。そんな部分に執着してプロダクトがリリースできなくなるくらいなら、そもそも凝らないと割り切る方がよっぽどマシに思えます。昔Yo.が一躍話題になりましたが、これなんて未だにアイコンが紫一色です。だけどダサいとかアイコンを見た瞬間に「このアプリはダメそう・・」なんて全く思わないし、むしろYoのシンプルさをよく表したアイコンとも思えます。こういう事例もあるし、無理ならデザインは無に近いものでも問題ないと思っています。 

必ず3ヶ月以内にリリースする

開発期間が長くなるほどプロダクトへの熱量は減り、モチベーション維持が難しくなります。個人的な感覚だと3ヶ月を超えるとやる気が無くなったり、似たものを他の誰かが出してきたり様々な理由でリリースを諦める確率が高くなる気がしています。

今回作ったEsaMenuは当初考えていた機能の半分も実装できません。そもそも最初はesaの新着記事を通知センターで受け取りたいというのがスタート地点だったので、主目的が果たせてません。しかしもうじき3ヶ月になってしまうこと、年をまたぐと大きくモチベーションが低下する危険性があるので機能をそぎ落として年内に出すことにしました。

機能がショボすぎると出す意味あるのか・・とも考えてしまいます。しかし一度使える状態にして出すとモチベーション再燃につながると思います。自分でドッグフーディングすれば気づくこともあるだろうし、ブログなどでアウトプットすれば何かしらフィードバックが得られるかもしれません。

毎日最低1分プロジェクトの事を考える

仕事が忙しかったりして、どうしても個人プロジェクトに手がつけられない時期があります。今回まさにそうだったんですが、この期間が長くなるにつれて空き時間ができた時に「よし、プロジェクトの続きやるぞ!」という気持ちが湧きづらくなってきます。

そこで毎日無理のない範囲でプロダクトのことを考えるようにしました。今年のApple Design Awardsを受賞したSTREAKSというiPhoneアプリを気に入って使っているんですが、これに毎日「プロダクトの事を最低1分考える」というタスクを作って消化するようにしていました。

習慣づけを手助けしてくれるタスクアプリStreaks | AppBase

どんなに忙しい日でも1分くらいは好きな事を考える時間は作れます。そして「1分だけ・・」と思って考え始めると、意外と10分、30分とのめり込んで考え続けられたりします。「今日は忙しすぎるから考える時間がない...」なんてのが単なる言い訳だということがよくわかります。

毎日たったの数分だけ○○をする、みたいな目標は馬鹿げているように見えるんですが、意識すると意外と一定の成果が出せる気がしていてオススメです。

まとめ

最近作っていたMacアプリを通して感じた、個人開発をする際心がけておきたい点について書きました。

技術にこだわりすぎたり挑戦的な事をやりすぎない事、ファーストリリースまでは短期勝負…って読み返してみると仕事でのセオリーと同じですね。また「短期間で動くものを作る」という事と「良いコードを書く」という二つの事を両立させることの難しさを改めて感じます。GitHubのコードを見返して、ホンマはこんなはずちゃうんや!と思う箇所が多々。

個人開発でイチからリリースまでのプロセスをやってみると、仕事での開発とも照らし合わせられる部分が多くて面白いです。


明日は@m_nakamura145で「herokuでデプロイと同時にrake db:migrateを実行する」です🙋

エンジニア立ち居振舞い:重箱の隅をつつかない

お題「エンジニア立ち居振舞い」

自分は重箱の隅をつつかないというのを意識してる。

重箱の隅をつつく問題はコードレビューの現場でよく聞く。レビューの場で所詮「書き方レベル」の指摘が横行してしまうというやつ。

誰しも綺麗なコードを追求したい気持ちはあると思うし、自分もそうなんだけど、あまり良くないなと思ってやらない事にしてる。理由は3つ。

  • 時間の無駄
  • 指摘される側の精神衛生上よくない
  • そもそも意味ない

細かい指摘でも修正してマージするまでには結構時間がかかる。コードを直し、手元でビルド・動作確認し、pushしてCIを回し、「修正しました」と報告し、LGTMが付いてやっとマージできる。このプロセスが日に何度も発生すると確実に時間を食ってしまうし、Nitsな内容を何度も何度も受けると精神的にも疲弊してしまう。それで生産性が下がってしまえばもっと大きな問題になる。

こうした指摘をしたくなる時、「コードの統一性がなくなる」とか「可読性が失われる」といった気持ちが心の中にある。確かに統一感のある記法や名前付けだと読みやすいけど、それをチーム開発で維持し続けるのはとても難しい。いくら今のメンバーで維持していても、開発メンバーが入れ替われば書き方レベルの統一性は失われる可能性が高いし。それに、自分が過去に見てきたコードで辛かったのは書き方なんかじゃなく、もっと根本的な設計だったり、技術選定の失敗といったより大きな問題だった。些細なコードの書き方にこだわって時間を使うより、こうした大きな問題の改善に力を注ぐのがよっぽど良い。

もちろん手を抜く事が正しいと言いたいわけじゃない。けど自分もチームメンバーも限られた時間の中で成果を出さないといけないし、全てを完璧にはこなせない。こうしたレビューの現場に限らず、細かすぎるところは目をつぶってより成果につながるところに注力しよう、というのが最近思っているところ。

・・・とはいえ自分もすごく細かいところが気になってしまう性格で、指摘したい気持ちをぐっとこらえる事もある。そういう時は指摘せず、後日自分がそのコードを触る時があればしれっと直す程度に留めてる。些細なところは将来何かのついでに直せばいいや、くらい気楽に考えるのも悪くないんじゃないかな。

Suica狙いでApple Watch Series2を買って1週間使ってみた感想

Apple ガジェット

f:id:horimislime:20161028211603j:plain

今秋のAppleイベントで発表された製品はすべて見送ろうと思ってたんだけど、WatchだけはSuica用途で欲しくなり急遽購入。モデルはNike+の黒バンドにした。

そろそろ使い始めて1週間経ったので感想を書く。

良かった点

腕をかざすだけで決済できる素晴らしい体験

元々VIEWカードオートチャージを重宝していたので、AppleSuicaをサポートすると聞いた時も「ふーん」程度の感想しか出てこなかった。

しかしiPhone7は見送ったものの、やっぱりWatchで決済できるのは面白そうだな・・・という興味本位で購入してみたところ、これが素晴らしかった。普段薄いマネークリップにVIEWカードを入れて持ち歩いていたので、もともと改札などで取り出すのに煩わしさは感じてなかった。だけど、Watchを使えば腕を出すだけで決済できるようになり、マネークリップさえもポケットに入れる必要がなくなりとても身軽になった。小さいものでもポケットに入れるものは限りなく少ないほうがいいに決まってる。あれだけVIEWカードでいいじゃん、と思っていたけど、もう元の生活には戻りたくない。

いつでもどこでもSuicaにチャージできる便利さ

WatchのSuicaオートチャージ設定をしていても、Walletで手動チャージできるのは意外とメリットあり。

オートチャージカードの欠点として、エリアや改札によってオートチャージできないという問題がある。

Suicaのオートチャージご利用可能の場所・エリア:ビューカード

首都圏・新潟・仙台の各SuicaエリアとPASMOエリアにてオートチャージをご利用いただけます。

※自動改札出場時、一部の簡易Suica改札機、私鉄との乗換改札機、新幹線自動改札機を除きます。

※下記エリアのうち、仙台市地下鉄のicscaエリアでは、オートチャージをご利用いただけません。

自分は特に西日本へよく行くんだけど、そっちもオートチャージが対応されていない。なので旅行中に残高が足りなくなり駅の券売機を使う事がよくあるんだけど、Watchを使っていればどこでもWalletから簡単にチャージできる。あと決済した際に残高のPush通知が来るので、残りの額が枯渇しかかっている事にも気づきやすい。

不便な点

やはり左手で改札をくぐるのは不利

右利きなのでWatchは左手に付けているけど、Suica端末は思っている以上に距離があっても反応するのでそこまで使う上で無理な感じはしない。

しかし、早歩きで素早く改札を通るのは結構難しい。 左手だとどうしてもリーチが短くなる分、右手でタッチする時よりはだいぶ端末の近くにいないとタッチができない。改札を通過する時も、ゆっくり歩かないとSuicaが読み取られる前に左手が端末から離れてしまい、ゲートに阻まれてしまう。自分の体感だと、うまくSuicaを認識させるためにほぼ一時的に立ち止まらないと厳しかった。朝の通勤ラッシュとかだとちょっとツラいかもしれない。

またApple Watchでドヤ顔で改札を通過しようとして失敗した時の恥ずかしさは大きいので、なおさら改札を通る際は慎重になってしまう。一週間使ってみて、改札をスピーディに通過できないのは思いの外ストレスだったのでWatchを右手に付けるのも検討し始めてる...。

ここら辺が気になる人は、iPhone7(plus)でSuicaを利用した方が良いかもしれない。

パスコードロックは盲点

意外に見落としがちだけど、WatchにパスコードロックがかかっているとSuicaが使えない。先日家を出て最寄り駅の改札を通ろうとしたところ、Suicaが全く反応せずあたふたした事があった。恥ずかしい。

iPhoneのロック解除と連動してWatchのロックも解除されるよう設定してあるからそれまで気にならなかったんだけど、この時は駅に着く手前で一度Watchを腕から外したせいでロックがかかってしまっていた。改札を通る前には一度ロック状態を確認しておきたい。

まとめ

いろいろ不満も書いたけど、総合的にみて今回のApple Watch Series2は非常に買いだと思う。既にオートチャージカードやモバイルSuicaを持っている人でもこの便利さを実感できるはず。ポケットから何も出さずにウェアラブルバイスで決済ができるという体験は感動的。

初代はPebbleなど他のスマートウォッチと比べてメリットを感じられず全然活用してなかったけど、今回は長く使っていくことになりそう。