Do what you wish.

programmingのことだったり頭の整理だったり。

2015年やってよかった3つのコト

はじめに

2015年も残り少なくなってきたということで、 今年自分のためにやってよかったことを残しておきます。

また、この記事は 「2015」 ADVENT CALENDER 2015 の 6日目の記事です。

www.adventar.org

1.朝1時間早く起きる

朝1時間早く起きて勉強をすることを始めました。

メリットは勉強の時間を確実に取れる点です。 どうしても夜は仕事が押したり、やる気に左右されたりなかなか時間を確保することができません。 ですが朝ならばゆっくりとコーヒーを飲みながら勉強をすることができます。

ですが朝1時間早く起きるのってかなり苦痛でした。 そのために色々試しました。

  • 寝る時カーテン開けておいて、朝日光が入りやすくした
  • 1時間半早く寝て1時間早く起きる
  • サプリをとって睡眠の質をよくする
  • アプリを使って眠りが浅い時に起こしてもらう
  • 部屋の照明を起きる時間につくようにした
  • 寝る前にホットミルクを飲む

どれも劇的に効果があるものはありませんでしたが、少しづつ起きられるようになりました。 そうすると習慣が続き起きるのが少し楽になります。

一番辛いのは起きる習慣がリセットされたときです。 また起きるが辛くなってしまうのです。 ですので、寝る時間と起きる時間を守って、辛くならないようにすることが必要でした。

2.風呂で本を読む

湯船に30分〜1時間ほど浸かりながら、iPadkindleで本を読むようになりました。

メリットとしては、 本を読む時間を意識してとれること、 血行がよくなったのか、肩こりも若干なくなった気がするということです。

iPad2 にこの防水カバーをつけています。 一度つけたら外せなくなりました…。 諦めてつけっぱなしで使っています。

また「今年買ってよかったもの」に毎回見かける、クナイプバスソルトも使っています。 寝付きもよくなって、朝1時間早く起きることにも良い影響を与えているかもしれません。

クナイプBソルトGN850

クナイプBソルトGN850

3.水出しコーヒーを作る

家で、水出しコーヒーを作るようになりました。

僕はコーヒーは好きでよく飲むものの、 ドリップコーヒーは以外とめんどい…。 忙しい朝に入れてる暇なんてありません。

水出しコーヒーを作るメリットは、 美味しいコーヒーを作ることができて、 作ったコーヒーを冷蔵庫で数日保存できる点です。

気に入っているのはできたコーヒーを冷蔵庫で冷やしておけば、 アイスコーヒーはいつでも飲めるし、 ホットもレンジで1分ちょい温めれば、手軽で美味しく飲める点です なお、味は水出しの特徴か、どんな豆でもさっぱりめになります。

水出しコーヒーはこれをつかっています。 もうちょっと量作れるといいんですが、それ以外は今のところ不便はありません。

iwaki ウォータードリップコーヒーサーバー 440ml K8644-CL

iwaki ウォータードリップコーヒーサーバー 440ml K8644-CL

終わりに

2016年も日々改善していってよい習慣身につけたいですね。

Let's Chat の Chrome 拡張作ったよ

「シルバーウィーク中に何か1つ作ろう」と思って作っていた Let's Chat Notifier を公開いたしました。

chrome.google.com

Let's Chat Notifier は Let's Chat というチャットのための Chrome 拡張です。

Let's Chat とは

最近は ChatWork や Slack などとても便利なチャットがあるのですが、 社内の事情によって外のサービス使っちゃダメということがあったりします。

Let's Chat はオンプレミスな環境で使えるチャットです。 詳しくは公式をどうぞ。

Let's Chat Notifier の機能

チャットツールChrome 拡張としてよくある機能が使えます。

  • 任意の Let's Chat の URL を設定可能
  • 未読メッセージの数をバッジ上に表示
  • ボタンをクリックすると Let's Chat を開く

使い方

  1. こちらからインストールしてください。
  2. 拡張のオプションから、Let's Chat の URL と APIトークンを入力してください。
  3. あとは Let's Chat にメッセージがくればバッジ上に未読数が表示されるはずです。

開発してみて

javascript は遊びでいじったことがあるだけで、さらにChrome拡張の開発がはじめてだったので色々調べるのに時間がかかりました…。

ただ、単純な仕様なので、Chrome拡張の作りやすさもあり、4, 5時間くらいでできたのかな、と思います。

単純な仕様といいつつ、Let's Chat の API は未読数を取れるようになっていないので、メッセージを取得する API を使い色々と試行錯誤しました。

なお、コードは GitHub にあげています。

今後

時間あるときにでも、ルームごとに未読数の表示をON,OFFにする機能や、自分にメンションがあるものだけ未読数表示する機能をつけようかなーと考えています。

Scrum Boot Camp Premium に参加して

はじめに

機会がありまして、8/31にアジャイルアカデミー Scrum Boot Camp Premium を受講してきました。 勉強はアウトプットしないと風化してしまう…ということで、せっかくなので感想を残しておきたいと思います。

Scrum Boot Camp PremiumはSCRUMについての初学者向けのセミナーです。 詳しくは公式サイトを見ていただくとして、Scrum Boot Camp Premium では、大きくわけて3つのことを行いました。

最初にSCRUMがどういったものか、用語解説やどのように回すかといったことを丁寧に座学にて学びました。 次にワークショップを行いました。4,5名で1チームになり、実際にSCRUMを回して作業を行いました。 最後に、復習もかねて実際のケースではどうするかといったことを行いました。

これらを、10時から19時までみっちりフルに時間を使って行いました。

4つの良かった点

1.実際口頭で、利点・理由を教わることによる理解

本を読むよりも、口頭でメリットや事例を含めて説明して頂くことで、講師の西村さんの魅力的な解説も相まってわかりやすく理解できました。

また、SCRUMを本やWebで勉強していて気付かなかったのですが、SCRUMは常に改定されていっているとのこと。 (例えばグルーミングがなくなって、バックログリファインメントが入っているなど) 最新のSCRUMを知りたい場合は、スクラムガイドを見ると良いそう。

2.ワークショップによる自らの気付き

SCRUMを知ってはいても、実践するとやはり気付きがたくさんありました。

「完了の定義を作ることによって、当初予定していなかった作業が発生した」「プロダクトオーナーの優先度付はとても大事、これを間違えると影響がとても大きい」「1スプリント目では想定外のことがたくさんでる」などなど言葉にしてしまえば当たり前のことですが、ワークショップで起こった失敗を痛感できたというのがとてもよいことでした。

実際にSCRUMをプロジェクトで適用する前にチーム全員でワークショップを行うのは、SCRUMを知るためにも、慣れるためにもとてもよいかも、と思いました。

3.質問をする機会

実際僕も解答して頂きましたが、SCRUMについて熟知されている方に質問できる機会ということだけでもかなりのメリットがあると思いました。 会社にSCRUMのことを良く知る人がいない場合はなおのことです

また、このセミナーに参加後、Facebookグループに招待され、そこで質問もできるそうですので、アフターケアも素晴らしいな、と。

4.アジャイルをやろうとしている、仲間との話し合い

ワークショップを行うために4,5名でチームを組むのですが、昼食や休憩の時などにアジャイルを行おうと苦労している話が伺えました。

どこの会社でもアジャイルマスターが管理者を兼ねていて業務での管理とスクラムマスターの役割との調整に苦労していたり、チームメンバーの積極性をださせるのが大変だという話だったり…。 どこの会社でもスクラムをうまく回そうとして大変なんだな…という状況が垣間見えました。

こういったSCRUMをやろうとしている方との情報交換も収穫の1つでした。

終わりに

感想としては、行ってよかった!となるのですが、やはり値段が高かったり、1日フルで使うということだったり、バリバリSCRUMをしている人には物足りないかもということだったり、人によるとは思います。

セミナー中の質問に「スクラムの成功のコツは?」というものがありました。 解答としては「アジャイルは誤解されていることも多い。僕とキミのアジャイルは違うよね、とならないようにすること。そのためにチーム内で同じ本を使い勉強会をしたり、ワークショップをしたりするのがよい」というものでした。

これから始める方、チームで認識を揃えたい方は行ってみてはいかがでしょうか。

「パーフェクトRuby」の感想

はじめに

Ruby の知識が自分の中でまだ体系的になっていないと感じたので、改めて再入門のつもりで、パーフェクトRuby を読んでみました。

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

この本を選んだのは、おすすめが多かったのと、実際に gemパッケージや Webアプリケーションを実際に作ってみる章があったからです。 ちなみに kindle 版を買いました。

自分のスペックとしては、普段使っている言語は C++C#Rubyは解析だったり文字列加工に使うくらいでした。

感想

だいぶ Ruby のことは知っていたつもりだったけれど、改めて読むと結構知らないことがちらほらと…。
それ以外にもRubyの文法や標準ライブラリだけでなく、ツール類も網羅的に学べたのがよかったですね。

そしてやっぱり実践プログラミングの章が楽しかったです。
実際に 書きながら読み進めていきました。
gem のパッケージとしてコンソールアプリケーションを作成して、それをバージョンアップさせて sinatra を使いWebアプリケーションの機能を拡張するという流れで、手法をフォローアップできたのがよかった。

ちなみに kindle 版だと Mac で見ながらコードが書くことができるで、とても写経が捗りました。

github.com

実際に動くコード書きながら覚えるのがやっぱり一番楽しいですね!

さいごに

すでにいくつかの言語を知っている方や、簡単なRubyの入門書を触った方によい印象でした。

Rubyは触ったことあるけど、RubyでコンソールアプリケーションやWebアプリケーション作ったことないという僕のような方にもとてもおすすめです。

メタプログラムについてはもう少し詳細を知りたいと思ったので、次はメタプログラミングRuby でも買おうかな。

良いものを作りたいなら何ができるのか

僕はプログラマとして働いています。 プログラマなので開発ではコードを書くという業務が一番多いですが、 良いものを作りたいと思ったら、何ができるのでしょうか。 自分の頭にあることをまとめたいと思います。

良いものを作るためにできる事

良いものを作るために、自分がプログラマとしてできることは色々あると思います。 コードを書くのはもちろん、テストして、レビューして… それらの中で、良いものを作るため何ができるのかをバッサリと2つに分けると、 品質を上げること魅力を高めること に分けられると考えています。

1. 品質を上げること

プロダクトを作成していくとき、色んなものがマイナスとして積もっていきます。 一番わかり易いのはバグですね。それ以外にも、読み込みが遅いなどといったユーザーを不便にさせているものなど、品質を下げる要因が発生してきます。

これらの要因は作品の良さをマイナスにしていくものです。 いくら魅力的な作品でもバグですぐ落ちるアプリや、遅いWEBサービスは誰もやらなくなるでしょう。

これらのことを改善していくことを、品質をあげること、と捉えています。 品質をあげることは、例えるならば、積もっていくマイナスを少しでもゼロに近づけていく作業です。

品質をあげるために具体的に何をやるかというと、バグなどのマイナス要因をなくすためにテストやコードレビューなどを行い、ソースの品質をあげていきます。

2. 魅力を高めること

マイナスをゼロにしたからって、作品が良いものになるわけではありません。 できたばかりの仕様は、荒削りなものが多いです。 UIが意外と使いづらかったり、機能がわかりづらかったり…。

そういった、できあがった仕様はブラッシュアップしていく過程で良くなっていきます。UIを使いやすくしたり、わかりづらい箇所に説明を足したり、様々な問題の解決を行います。

これらを魅力をさらに高めていく行為と捉えています。 それはプラスをさらに伸ばしていく作業です。

具体的には、レビューをして当初の仕様より良いUIや挙動に改良することが一番多いですね。 繰り返しレビューをしていき、魅力を高めていきます。

さいごに

こうして言葉にしてみると当たり前な感じですね。 ですが、日々開発をしていくと、マイナスをゼロにすることに注力してしまい、プラスを更に伸ばしていくことはおろそかにすることがあるんではないでしょうか。

プログラマにとってバグや欠点というものは目につきがちですので治そうと思う機会は多いのですが、プラスにする作業は意識的にしないと意外と見落としがちなことがあるんですよね。

縦軸と横軸の関係のようなもので、片方だけをやっても魅力的な製品にはなりづらいと考えています。 意識的に両方をおこなっていきたいものです。

Apple Watch で手放せない2つのおすすめアプリ

僕は、Apple Watch を1ヶ月使いつづけています。 そんな僕がこの2つだけは手放せない!と思ったサードパーティ製アプリを2つ紹介いたします。

1つめ「Yahoo!乗換案内」

Yahoo!乗換案内

Yahoo!乗換案内

  • Yahoo Japan Corp.
  • ナビゲーション
  • 無料

何が良いって、通勤タイマー機能ですよ。 朝は電車の時間覚えていても、 夜疲れて帰るときに、間違って各停に乗りたくない…。そんなあなたに通勤タイマー機能。

特に駅について電車のベルがなっているときに iPhone をポケットから取り出して…なんて遅いことやっていられない。 Apple Watch ならばグランスからさっと確認できます。

どんな機能なの?と疑問に思った方、詳しくはこちら! blogs.yahoo.co.jp

もう一つのおすすめが「乗降アラーム機能」 わからない所にいくときはベル機能をつけておき 到着駅間近になれば、優しくApple Watchが教えてくれます。 いちいち駅につくたび、ここはどこだろう…と調べる必要もなくなりますね!

2つめ「Spark」

最近色んな所で話題のメーラーアプリ。 なんといっても、Apple Watch との親和性の高さです。 簡単な返信なら、Apple Watch 上でもできてしまう手軽さ。

そして InBox との相性もばつぐんです。 PC では Google の InBox を使っているのですが、Spark 上で完了にしたものは InBox 上でも完了になります。 InBox は Apple Watch 対応をしていないので、InBox と Apple Watch を使っている人は Spark 一択かも。

2つのアプリの共通のよい点は グランスから操作できる って所ですね。 アプリの起動が遅い現在、グランスからアプリを扱えるととても使いやすいですよね。