2019年のまとめ

はじめに

今回は仕事のお話です。バリバリ現場で働くことができるのは40代まで!なので40代は全力で駆け抜ける!と自分の中で宣言してからはや3年が経ちました。今年も自分なりに頑張ったと思います。会社の納会のあたりはヘロヘロだったからね。 というわけで、2019年最後のブログはマネージャーとして会社で何をやってきたのか振り返ってみようと思います。

自席でスマホが使えるようになった

うちの会社はよくあるセキュリティうんぬんの話で、開発者でありながら自席で自分のスマホを使うことができませんでした。カジュアルにアプリやWebサービスの話をするにしても廊下に出る必要があったのはとてもかっこ悪いなと思ってました。なので年のはじめから社内の会議で提案し、資料や制度を作ってなんとか権利を勝ち取ることに成功しました。 一度制度をきつく締め上げてしまうと、なかなか普通の状態に復帰させるのは難しいことがよく分かりました。 あと、いくら自分ひとりで頑張っても最後のひと押しをする人は必要で、その人を見極める能力って大事だなとも感じました。

会社で技術を磨くこと

会社で本を読んだり新しい技術を学習することについて、去年は「いいじゃんいいじゃん。やったれやったれ」と雑にOKを出していたんだけど、今年は一定の基準を設けることにしました。 それは「会社で働くということはつまりどういうことか?」という問いに自分の中で一定の結論に至ったからです。その結論とは「技術者は会社で自分の技術力を金に買えている」ということ。技術によりお客様の要望を叶え、その対価としてお金を頂いている。であれば、お金に変換できない技術は少なくとも会社では不要です。 ただ、将来を見据えて「こういう技術が必要なるからこういう理由で学習している」と言えるのであればウェルカムだし、みんなちゃんと言えるようになってほしいなと思ってます。

後輩への引き継ぎ

上に書いてる論理的に説明うんぬんと同じ話で、自分が携わった仕組みでなんでこういう仕組みになっているのかうまく説明できない業務がいくつかありました。そのせいで、うまく引き継ぎできずいつまでも私がズルズルと対応しているケースがあったので、まっとうにするべく努力しました。具体的に言うと

  • サブで使っているさくらVPSのOSをCentOS6系から7系にアップデート。デプロイスクリプトをinit.dからsystemdに一新
  • AmazonLinux2化を行いChefからAnsibleに構成管理ツールを移行(これはまだ途中だけど)

などが挙げられます。来年には一通りの業務はきれいな形にして引き継げそうです。

1on1

1年間続けてみたけど、合う人と合わない人がいるなとは感じてます。なので、自分の中でのベストプラクティスがまだ定まってない状態です。1on1をどういう場にするかは人によって微調整する必要があるのでこのあたりは2020年も探りながらベストを探っていく予定です。

アジャイル開発

新規開発の話が出てきたのでアジャイル開発に取り組むことにしました。お客さんありきの話ではなく自社サービスの話なのでプロダクトオーナーを社内に設定することができたのも採用理由としては大きいですし、他チームでアジャイル開発の経験があるメンバーがいるのも理由の一つです。 まだ2週間のスプリントを3回しか回してないので偉そうなことは言えませんが、スプリント計画会議はとても良いと思ってて手応えを感じてます。開発者はスプリント内での計画立案に責任を持つし、マネージャーはそれを達成させるために邪魔が入らないよう最大限協力する。このため、適度な緊張感が生じてチームが引き締まったと思います。 あとバーダウンチャートは残りのユーザーストーリをどれだけ実現できるか、つまり文字通り焼き尽くすことができるのかひと目で分かるのでとても良いですね。見ると気持ちがとても落ち着きます。

2020年は

チームの独立性を高めていきたいと思ってます。これは社内で孤立したいわけではなく「うちはこういうチームです」と言えるように個々のメンバーの力を見極めて最適化を進めていきたいという意味です。 あとは採用活動にも顔を出していきたいと考えてます。

最後になりましたが今年は id:Soudai さんをはじめ、社外の方々に色々相談に乗っていただき大変ありがたかったです。この場を借りてお礼申し上げます。

【バイク】岡山のツーリングスポット

この記事は大都会岡山 Advent Calendar 2019の6日目です。

私の趣味はオートバイに乗ることです。季節や天候により、本当に気持ちよく走ることができる期間は年間数週間しかありませんが、暑い日も寒い日も休日はよく乗っています。ありきたりな言葉ですが風と一緒にストレスが後ろに流されるように感じています。

ということで、今回は岡山のバイクツーリングスポットを紹介してみたいと思います。

メジャー編

ドライブガイドにも掲載されている定番スポット

鷲羽山スカイライン

岡山南部のスポットとして鷲羽山スカイラインは外せないでしょう。1995年までは有料の観光道路でしたが現在は無料で走ることができます。アップダウンとワインディングのバランスが良い・道の状態が良い・瀬戸内海の眺めが良い。良い事づくしの素晴らしい道です。 県外からお越しの方はルート南部の下津井でたこめしを食べてみましょう。

f:id:tech-kazuhisa:20190302100712j:plain
鷲羽山ハイランド駐車場からの眺め


岡山ブルーライン

山東部からはブルーラインを紹介します。こちらも2004年まで有料道路でしたが、現在は無料で走ることができます。岡山側は広々とした平地にまっすぐかかる高架橋から眺める景色が美しいです。後半は山の中が中心なのであまり展望は良くないですが、備前にかかる橋から眺めるカキいかだは瀬戸内を感じさせてくれます。あと、ブルーラインには道の駅が2つあるのですがバイク乗りは岡山側の一本松展望園に集まる傾向にあります。 冬場は日生にカキオコ(牡蠣が入ったお好み焼き)を食べに行きましょう。私のオススメはきまぐれというお店です。牡蠣がこれでもか!と入っています。 時間に余裕があればみなとの見える丘公園に行ってみましょう。ちょっと急ですがバイクで登ることができます。備前♡日生大橋もきれいに見えますよ。

f:id:tech-kazuhisa:20190103115927j:plain
みなとの見える丘公園から眺める備前♡日生大橋


蒜山大山スカイライン&大山環状道路

さぁ、ここからが本番です。北部からは蒜山大山スカイライン&大山環状道路をおすすめします。岡山ではなく一部鳥取に入っちゃってるけど気にしない。 まず、蒜山ではジンギスカンを食べましょう!蒜山高原センターでは比較的待ち時間が少ないです。時間に余裕があればウッドパオがオススメです。お腹が満たされたら蒜山大山スカイラインを走りましょう。途中にある鬼女台展望台から愛車と一緒に大山の写真を撮るのも良いですね。 次は大山周遊道路に入ります。ツーリングマップルを見ると大山を囲む周遊道路はおすすめの道として記載されているのですが、北東側は道も狭く展望が開けないのであまりおすすめしません。行くなら南西部を走って大山寺を目指しましょう。途中にある鍵掛峠からは天気が良ければ大山の勇姿を拝むことができます。

f:id:tech-kazuhisa:20170715130749j:plain
鍵掛峠
更に進むと大山まきばみるくの里があります。バイクツーリングといえばソフトクリームは外せません!(プルプルプル)蒜山大山周辺ではソフトクリームを食べることができるお店は多いのですが、ここのソフトクリームは濃厚でとても美味しいです。列は長いですが回転が早いのですぐ買えます。頑張って並びましょう。
f:id:tech-kazuhisa:20191201223209j:plain
最高においしいソフトクリーム
最後は大山寺です。最近温泉もできたので旅の疲れを癒やすのも良いでしょう。時間に余裕があれば、ここから日本海側に出て、境港で海鮮を楽しむのも良いですね。 蒜山大山スカイライン&大山環状道路は岡山で外せないツーリングスポットです。県外から来た方はぜひ楽しんでくださいね。

マイナー編

地元民ならではのスポットを紹介

西粟倉

岡山県北東部に西粟倉村という村があります。ここのあわくら旬の里というバイキングのお店があるのですが安価で美味しくとてもオススメです。田舎にあるこの手のお店は地産地消にこだわるあまり、料理がヘルシーすぎる傾向にあるのですが、あわくら旬の里は唐揚げやグラタンなど若者の胃を満たすメニューがてんこ盛りです。

f:id:tech-kazuhisa:20190601121401j:plain
あわくら旬の里
お腹を満たしたらベルピール自然公園を目指してみましょう。西粟倉村が一望できる山の上にある砦(?)のような謎の施設です。結婚式も挙げることができるようですが、最近ではコスプレの撮影スポットしても有名みたいですね。巨大な鐘を思い切り鳴らしてみましょう! f:id:tech-kazuhisa:20161015142051j:plain この周辺は至るところに桜の木があり、春にツーリングするととても気持ちいいですよ。


かもがわ円城から奥吉備街道

吉備中央町にあるかもがわ円城岡山県で最初にできた道の駅です。 隣接する国道429号線岡山市街から津山に抜ける道として有名で、休日はバイク乗りがよく集まります。今回おすすめするのはここから約30kmに渡り西に伸びる広域農道です。展望はいまいちですが気持ち良いワインディングが続くとても良い道です。ただあくまで「農道」なので見通しの悪いカーブの先にトラクターが止まっている前提ぐらいの気持ちで気をつけて走りましょう。 途中にある石の風車は本当に石でできた風車が回っています。ぜひ見てみましょう。 f:id:tech-kazuhisa:20160820174031j:plain


美星町から神楽街道

どんどんマニアックになってきました。お次は、かつて旧山陽道の宿場町として栄えた矢掛から北上し、美星町を経由して成羽の神楽街道を通るルートです。 矢掛の小田駅から美星町に続く道はダイナミックに坂を駆け上がる感じでとても爽快です。星の里街道を北上し国道313号線を更に北上すると備中神楽発祥の地である成羽に着きます。ここらあたりに朝日堂という和食店があるのですが、約1,000円のランチが素晴らしいので一度食べてみてください。驚きの内容です。 成羽川沿いに県道33号線を北上していくと神楽街道に入ります。舗装も良くとても走りやすい道です。こちらも奥吉備街道と同じく見通しの悪い箇所があるのでスピードは控えめに。 途中脇道にそれると羽山渓という切り立った崖に掘られたトンネルを体験することができます。全国的にも珍しいスポットですのでぜひ行ってみましょう。

f:id:tech-kazuhisa:20150228132711j:plain
羽山渓


さいごに

自分がよく行くツーリングスポットを振り返ってみようと思い書き始めたのですが、止まらなくなってしまいました。気が済んだので今日はここまで。みなさんもおすすめスポットがあれば教えて下さい。

JBUG岡山で「心理的安全性」について学ぶ

2019年10月19日、倉敷のアイネットさんで開催された「JBUG岡山 #4 プロジェクトテーマパーク、心理的安全性ゲームから学びを得よう」に参加してきました。 実はJBUGという勉強会自体は知っていたのですが「Backlog使ってないしなぁ」という理由で参加してませんでした。しかし今回テーマに惹かれて参加してみると「プロジェクト管理」というテーマに沿っていればある程度何をやっても良い会とのこと。ゆるーい感じが良いですね。

心理的安全性ゲーム

安井 力(やっとむ)さんが作った4-5人で遊べるカードゲームです。 f:id:tech-kazuhisa:20191019145250j:plain カードは大きく分けると「状況カード」と「発言カード」があります。

参加者は順番に「プロジェクトに波風立てる人」となり「状況カード」を出します。その状況カードに対して、他の参加者が「発言カード」を出します。「発言カード」の中には辛辣な事が書かれていることもあり、そのまま出すと明らかに空気が悪くなりそうなものもあります。

そんなときは、一言加えて出すと場の雰囲気が良くなります。

例えば、

状況カード:「クレーム発生!この件誰が担当するの?」

に対して

発言カード:(そもそもこんなのクレームに値しないよね。対応するだけ)「ムダだね」

みたいに前半を付け足すと否定から同調にがらりと変わります。もちろん、実際の仕事の現場だとそれなりに権限がある人が発言しないとムダでしょうけど。

さて、一通り発言カードを出し終えたら、状況カードを出した人はその時の気持ちを話します。

「この言葉はキツかった。でも、他の人が同調してくれたので頑張れそう」みたいな感じです。

その後、ボード上にこのチームは将来どうなっていくのかを考えながら石を置きます。参加者全員が石を置き終わったらゲーム終了です。ボードにはチームの将来図が描かれているはずです^ ^

なお、上の例では発言カードに言葉を付け加えて出していますが、付け加えずそのまま出す縛りを設けるのもアリです。

心理的安全性とは?

このイベントに参加するまでは「言い出しにくい事柄を用意に言える雰囲気を作っていく事が心理的安全性だ」というふんわりとした考えがありました。しかし心理的に安全で安らかな状態は「刺し身にタンポポを乗せる仕事」のように学習が無い状態です。人の仕事を手伝ったり知らないことを調べていく行為が学習へと繋がっていくことを今回の勉強会で学習することができました。自発的に心理的安全性を作り出せるようになるまでこのゲームで理解を深めていくのも面白いなと感じました。

参考リンク: games.yattom.jp

仕事をする上で普段考えていること

はじめに

今の会社に転職してはや8年。Ruby on Railsプログラマーからスタートしたキャリアだけど、1年半前から前任者の引き継ぎというカタチで管理職をやってる。管理職と言っても100%マネージメントに振っているわけではなく、コードも書くしインフラ構築もするような状況。チームメンバーも増えマネージメントについて意識する機会も増えてきた。世の中の流れ的にも「エンジニアリングマネージャ」にフォーカスする書籍やイベントも増えてきて、私と似たようなキャリアを歩み疑問にぶち当たっているのかなという印象を受ける。最近マネージメントについて意識して仕事する機会も増えてきた。 そんな中で普段から仕事について意識してることについて語ってみる。

自分にしかできないと思っている仕事こそ移譲する

「この仕事は私にしか分からない」そう思っていた時期が私にもありました。実は私にしか分からない訳ではなく、他人に教えるのが面倒なだけだったりした。 手順書を一通り揃えれば自分が思っていたより遥かに楽に仕事を移譲できることが分かった。ついでに私より効率の良いやり方でやってくれる事があることも分かった。

ストレス無く仕事する方法

何がストレスかって言うと長期的な段取りが必要なタスクをぼんやりと考えているとき。あのプロジェクトを進めるにはあの人と打ち合わせして、この資料を作成して... ああ、でもあっちの締切のほうが優先度高いからこの資料を先に作って...なんて考えるのが一番ストレス。無駄に時間が過ぎていく。しかも、家族との団らんやクルマの中でリラックスしてるときに急に思い出してイライラしてしまう。 これを解消するためにGTDという手法を随分前から取り入れている。タスクを実行可能な領域(「Excelシートを開く」・「PDFを読む」など)まで細分化して記録、それを日々振り返りながら実行するべきタスクをその場で決めている。リラックス中にふと長期タスクを思い出しても「ああ、これはとりあえず月曜日に資料読むところから始めればいいや」って思える。 随分長い間 Doit.imというサービスを使ってたんだけど、数年前からメンテナンスされなくなってしまい、現在は Trelloを使ってカンバンで管理している。間違えないでほしいのがGTDは「タスクを効率的に処理する」方法では無く「タスクをストレス無く処理する」方法なので、頭の良い人やストレス耐性高い人はもっと別の効率的な手段があると思う。興味のある人は全面改訂版 はじめてのGTD ストレスフリーの整理術を読んでみてほしい。

f:id:tech-kazuhisa:20190916104837p:plain
TrelloによるGTD。パニガーレのリアタイヤが見えてればまぁまぁタスクはこなせてる

コミュニケーションツールの特徴をよく理解する

Chatwork・Teamsなどのチャットツール、RedmineGithubのIssueなどのタスク管理ツール、メール、電話(ボイスチャット、TV会議)など会社では様々なツールを使ってコミュニケーションを取っている。それぞれ特徴があり相手や情報の内容によって使い分けるべきだと思ってる。

  • チャットツール(Chatwork、Teams)
    • 非同期のコミュニケーションで良い場合に選択。タスクを決定するまでに感情を挟まない論理的な会話ができる場合、つまりはほとんどはこれでOKだと思う。表情が伝わらないので顔文字や口調はとても重要。
  • Redmine
    • 詳細に記載されたタスクの内容、ボールが誰にあるのかを認識するときに必要。初めの頃は他人にタスクを割り当てるのが苦手な人が多いけど「だれのボールか明確にすることが重要なので容赦なく私にアサインしちゃってください!」と他部署の人には説明している。
  • メール
    • WebサービスからのNotificationとしか機能しなくなった感じがあるメールだけど、相変わらず社内外問わず使われている。可能であればチャットツールの世界に引きずり込んでるけど、難しい場合もある。せめて相手の事を考えてタイトルは工夫して送るようにしよう。工夫と言っても大したことは無く先に本文を書いてから3行目をコピペするだけ。簡単でしょ?
      f:id:tech-kazuhisa:20190916110935p:plain
      メールのタイトルは本文からコピペする
  • 電話(ボイスチャット、TV会議含む)
    • 利点が2つある。
      • 一つは相手の声色を伺うことができるし、こちらの感情を伝えやすいから。障害発生時はもとより頼みづらいと自分が感じているタスクを遠隔地の人にお願いするときは大抵電話を添えている。仕事は相手の気持ちになって考えることが重要。声から相手の気持ちを感じ取ってほしい。
      • もう一つは相手の出方によって条件が複数分岐する内容を話し合うとき。if,then,elseぐらいで処理できる2パターンならRedmineのIssueで議論するのも良いが、予めif文が3つ以上登場することが想定される場合は電話のほうが手っ取り早いし効率的である。
    • ただし、声での会話は後に残すことができない。会話の後にはチャットやRedmineなどで「さっきの電話で話したことを共有します」と内容を共有するようにしょう。

20代の若い人に伝えたいこと

  • いまはがむしゃらにタスクをこなしていけば良い
    • 仕事の内容を考えるのは上司の仕事。与えられた仕事をそのままこなしてくれれば良い。もちろん自分に合う仕事、合わない仕事はあると思うので、ちゃんと上司に伝えよう。一番良くないのが不満の矛先が社外に向いてしまうことだと思ってる。そうならないようにコミュニケーションの場は提供しているし、その場を大切にしてほしい。
  • 分からない事はちゃんと調べよう
    • 求められた結果を出すことに注力しすぎて、その過程を疎かにすると後々苦労することも。プログラミング中に詰まってQiitaに書かれている別のやり方で回避するのも時には良いだろう。しかし、自分が本来やりたかったやり方ではなぜダメだったのか。本来どう処理するのが正解だったのかを追い求めてほしい。
  • 会社でやるべきことの線引
    • 業務時間中に本を読んで学習するのも、新しいWebサービスを試すのも良いと思う。その際に一つ気にかけてほしいことがある。それは「今やっていることが会社のためになっているか?」 という点。別に利益を上げることを最優先で考えろと言っているわけではないが、我々は価値あるサービスをお客さんに提供し、お客さんはその価値をお金として会社に支払ってくれている。私達の給料は会社から出ているわけではなくお客さんのお金だということを考えなければいけない。なので、「今何やってるの?」と聞かれたときに「会社の価値をこういう方向で高めてます!」って胸を張って言えるように準備しておいてほしい。その言葉さえあれば大抵の上司はOKするんじゃないかな。

JAWS-UG Okayama 2019 × SORACOM-UG Okayama vol.1に参加してきた

倉敷物語館で8/17に開催された「JAWS-UG Okayama 2019 × SORACOM-UG Okayama vol.1」に参加してきました。 午前中はAWSの技術をテーマにした勉強会JAWS-UGで、午後からはSORACOM LTE-Mボタンを使ったハンズオンという感じでした。

JAWS-UG Okayama 2019

今回から「第n回」ではなくタイトルに年が入るようになりました。年次イベントに格上げです(違)。 印象的だったお話をいくつか。

AWS での機械学習

AWSジャパンの藤原さんから、AWSで利用することができる機械学習関連のソリューションを紹介していただきました。

Amazon Rekognitionを使えば、顔認識や有名人の認識、アダルトコンテンツの認識など画像解析ができるそうです。動画にも対応しているのが素晴らしい。

また利用者自身の機械学習の理解を深める仕組み作りもAWS DeepLensAWS DeepRacer取り揃えているところがすごいですね。

私は偶然にも前日にSoftware Design9月号の「ひとりで始めるPythonプログラミング入門」を読んでいたので、「Jupyter Notebook使ってる人?」という質問に胸を張って手を上げることができましたよ!(理解しているとは言ってない)

機械学習をバリバリ使いこなすつもりは無いですが、作業の流れや用語は仕事をする上でも抑えておく必要があるなぁと最近感じています。

ECSとSQSでスケーラブルなバッチを作った

ツイートがアッコにおまかせ!で取り上げられたことで有名な、クラスメソッドの吉田タカさんの発表。

お客さんの情報を安全に扱うために、客先アカウントでIAMを作るのではなくRoleを作って、自社アカウントからSwitch Role(って理解で合ってるかな?)したり、AWS SSMを使って機密情報を安全に格納したり、クラメソ内の安全性を確立する手順がよく分かる良い発表でした。

また、SQSを使った大量データの処理についても、Dead letter Queを正しく使うことで不正なデータを正しく扱うことができることを学べました。

AWS DMSを利用した今風DBリファクタリング

オミカレの高橋さんからRDSのMySQLからPostgreSQLDMSを使ってデータを移行している話を聞かせていただきました。

ざっくり書くと、

DBのリファクタリングをトリガーを用いてやりたい。ただSQLでトリガー処理は書きたくないのでJavaScriptが使えるPostgreSQLが使いたい。だからMySQLからPostgreSQLにDMSを利用してリアルタイムにデータを移行している。

という内容でした。IT系勉強会では新しいものを作る発表はよく聞くのですが、実業務の世界では既存システムを新しい仕組みにじっくりゆっくり合わせていく作業が必要不可欠です。中国地方DB勉強会ではこういったお話がたくさん聞けるので好きなのですが、JAWS-UG参加メンバーの心にもきっと響いたと思います。

まだまだ完全移行まで闘いは続くようですが、頑張って欲しいです!応援してます。

Jets ~Rubyで始めるServerless生活~

ソニックガーデンの遠藤さんからRuby on RailsライクなサーバーレスフレームワークJetsのご紹介でした。 ご本人様は「発表とか苦手でして...」って言われていましたが、Jets愛を感じる熱い発表でした!

AWSでサーバーレスでWebサービスを作ろうと思うと次のようなツラミがあります。

  • リクエストごとにLambdaのプログラムをアップロードしないとだめだよね。
  • リクエストごとにAPI Gatewayの設定も必要だよね。

Jetsを使えば、ローカルではまるでRuby on RailsのようなRubyコードを書くだけで、デプロイ時に自動でLambdaへのプログラムの設置、API Gatewayの設定を行ってくれるそうです。また、静的なファイルはs3に置いて、HTMLからは自動でそちらを見に行くように設定もしてくれるとのこと。まさに神!

あと、CloudWatchを使ってcronライクな動作を設定できたりAWS上の様々なサービスと連携できる点が素晴らしいですね。しかも、めんどくさいYAMLやらJSONを書かなくてよいのがなお良いです。

私も近いうちにJetsを試してみようと思います。

SORACOM-UG Okayama vol.1

株式会社ソラコム テクノロジーエバンジェリストの松下さんからソラコムのサービスの説明とLTE-Mボタンを利用したハンズオンがありました。 通常の携帯電話の通信では

  • 端末→インターネット→AWS

ですが、ソラコムの場合は

  • 端末→AWS→インターネット

というようにダイレクトコネクトを利用して直にAWS内に接続しているそうです。こうすることで、セキュアな通信でもhttpsという重いプロトコルを使うことなく、少ない通信量(バッテリーの持ちも良くなる)で送信できるというわけです。

他にもIoTソリューションを構築する上で必要な様々な仕組みを提供されていました。懇親会では松下さんからLTE通信の興味深いお話が聞けてとても楽しかったです。

さて「LTE-Mボタン」ですが、先に発売されている「AWS IoT エンタープライズボタン」の通信がLTEになったようなデバイスです。AWSからはIoT エンタープライズボタンと同等に扱われます。

面白いのがAWS IoT 1-Clickからはデバイスがどこの プレイス にあるか設定できるという点です。IoT エンタープライズボタンはWiFi接続しかできないので「台所」とか「リビング」とか設定するのでしょうが、「LTE-Mボタン」は電波が入ればどこでも使えます!プレイス=地球と言っても過言ではありません。

f:id:tech-kazuhisa:20190818143503p:plain
LTE-MボタンでLambda経由でメール送信してるところ

こんな感じでボタンを押すことでlambda経由でメールを送ったり、IFTTT経由でLINEしたり楽しく実験することができました。

「ボタンを押すことしかできない」というのは多様性が無く、一見不便なようにも思えますが、アイデア次第でシンプルに問題を解決することができる面白い仕組みだということが分かりました。

MacBook Pro 2019のThunderbolt 3ポートが2つのモデルはおすすめしない!

先日会社で購入したMacBook Pro 2019の下位モデルがイマイチだったのでご紹介しておきます。

ポート数の違い

f:id:tech-kazuhisa:20190815095345j:plain
左がMacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)
右がMacBook Pro (13-inch, 2018, Four Thunderbolt 3 Ports)

ハードウェア的な違いは2つ。

一つは名前の通りThunderbolt 3のポート数

f:id:tech-kazuhisa:20190815095408j:plain
MacBook Pro 2019の下位モデルの右側にはThunderbolt 3 ポートは無い

f:id:tech-kazuhisa:20190815095404j:plain
MacBook Pro 2018の右側にはThunderbolt 3 ポートが2つ

この情報はオンラインのアップルストアからも見て取れます。

2019年下位モデルがイマイチな理由

ファンがうるさい

普段Ruby on Railsで開発したりExcelやWordを使って文章書いたりしているのですが、なにか処理をするたびにファンがうなりをあげます。rbenvでRubyのインストールを行ったり bundle install する際にファンがうるさくなるのはしょうがないとして、rails sするだけでファンが高速回転するのはおかしくないですかね?

キーボードが熱い!!

2018年モデルもTouch Bar周辺が熱くなるのですが2019年下位モデルではキーボードの右側がとても熱くなります。キートップはかろうじて触ることができますが、キーの間の本体金属部分はやけどしそうなぐらい熱くなります。

違いは本体下部のスリットの有無

f:id:tech-kazuhisa:20190815095507j:plain
2018年モデル
f:id:tech-kazuhisa:20190815095515j:plain
2019年下位モデル
なんと2019年下位モデルには本体下部にスリットがありません。このせいで排熱が間に合わず本体内部に熱が滞っているのではないですかね?

まとめ

ブログを書いたりWebを見て回るだけならともかく、プログラムのコンパイルや写真現像など重い処理を行う予定がある人は2019年上位モデルをおすすめします。そもそもMacBook Proは「プロ」向けのハズなんですけどねぇ。世の中には私が知らない分野でいろんなプロがいると思いますけど、アップルが想定するプロが分からないです☺️

sakura.io体験ハンズオン@岡山に参加してきた

2017年9月2日、岡山のKLabさんで開催されたsakura.io体験ハンズオンに参加してきました。 f:id:tech-kazuhisa:20170903093912j:plain ▲利用したキット一式

ハードウェアシロートの私は今回のハンズオンに参加する前にIoTについて次のように考えていました。

  • IoTというからにはあらゆるものがInternetに繋がるはず
  • 電源が確保できない場合はバッテリーで動作させる必要がある
    • と、なると消費電力の点からRaspberryPiよりArduinoがよいかな?
  • ネットワーク接続はワイヤレスLANかLTE
    • でもArduinoで使うC言語でネットワークの制御までできるのかな?

参加してみて感じたのはsakura.ioは一番面倒なネットワークの制御をいい感じに面倒見てくれるソリューションだという事です。

f:id:tech-kazuhisa:20170903094526j:plain ▲温度センサーを接続

右の緑色のカタマリは3層構造になっています。一番下はArduino、一番上はLTE通信モジュール、真ん中はその2つを接続するための「シールド」という基盤です。

ArduinoArduino IDEも初体験だったのですが、Arduino IDEがとても良くできていて、ネットワーク経由から必要なライブラリを簡単にダウンロードすることができます。おまけにライブラリに付属するサンプルコードを実行するだけで、ある程度動くものができてしまいます。ライブラリの仕事はセンサーを制御することなので、できることが非常に限られているわけです。 今回も温度センサーとsakura.ioのライブラリをダウンロードして付属するサンプルコードを実行するだけで、センサーが取得した値をsakura.ioまで届けることができました。

f:id:tech-kazuhisa:20170903095337j:plain ▲sakura.ioのWeb画面でセンサーが取得した値をJSONで表示しているところ

ここからがsakura.ioの面白いところで取得したデータをどのように利用するか、あらゆる手順が用意されています。今回は特定の企業のWebサービスではなく汎用的に利用できるWebsocketを利用して、現在の温度をツイートするところまで作成しました。

Arduino + さくらLTE
↓
(LTE)
↓
sakura.io(Webサービス)
↓
(Websocket)
↓
さくらクラウドに立てたNode-RED
↓
Twitterでツイート

Node-REDを利用することでWebsocketで受け取ったJSONを加工してTwitterでつぶやくところまでをほぼノンコーディングで実現することができました。

質疑応答で感じたWeb系とモノづくり系の違い

最後の質疑応答で活発な意見が交わされました。 特にシビアなコンディションで利用された場合の課金、時刻の誤差、通信のリトライ等、Webに関わっている人間からすると、正直細かすぎるのでは?という内容が多かったです。 しかし、どんなサービスでも長期間利用していると想定外の事態が発生するものです。ハードウェアは容易にアップデート出来ないため、事前に様々な事態を想定して利用する必要があるのだと感じました。

まとめ

個人的な印象ですがarduino側ではセンサーから取得した値を投げることに徹して、sakura.ioから先で様々な集計・分析を行うのがうまい使い方かなと感じました。極端なシビアコンディションでの利用を考えなければWeb系エンジニアだけでも一気通貫でIoTを実現できる世界がやってきた!と実感できました。