give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

【告知】「Qiita夏祭り2020 オンライン」でQiita運営に突撃してきます!(2020年7月22日・水)

お知らせ

2020年7月22日(水)に開催される「Qiita夏祭り2020 オンライン」というライブ配信イベントのパネルディスカッションに参加させてもらうことになりました。

connpass.com

f:id:JunichiIto:20200713075503p:plain

イベントの概要は以下のとおりです。

  • 開催日:2020年7月22日(水)
  • 時間: 18:00〜19:30
  • 主催:Increments株式会社
  • 場所:Zoomにてオンライン配信
  • 参加費:無料

パネルディスカッションは18:25-19:00に開催される予定です。
このディスカッションには僕だけでなく、Qiitaの上位コントリビューターである広木 大地さんやsuinさんも一緒に参加されます。

f:id:JunichiIto:20200713075212j:plainf:id:JunichiIto:20200713075228j:plainf:id:JunichiIto:20200713075222j:plain
左から広木大地さん、suinさん、伊藤淳一

パネルディスカッションでは何を話すの?

リハ無しのぶっつけ本番でやるので、どんな話が飛び出すのかはわかりませんが、いちおう以下のようなテーマが用意されています。

  • 近頃のQiitaが変わってきていることについて
  • Qiitaに技術的じゃない話を載せることについて
  • トップコントリビューターに聞きたいこと(視聴者質問)

イベントのサブタイトルが「トップコントリビューターが近頃のQiita運営に切り込む!」なので、Qiita利用者のみなさんが「最近のQiitaってどうよ?」と思われている部分にグイグイと切り込んで行けたらなーと思っております😅(Qiitaの運営に関する話題はその場で中の人が答えてくれる予定です)

また、質疑応答タイムもあるので、トップコントリビューターの面々に何か聞いてみたい、という方もぜひどうぞ。
この3人が同じイベントに登場することは、そうそうないはずです!

まとめ

というわけで、今回は2020年7月22日(水)に開催される「Qiita夏祭り2020 オンライン」についてお知らせしました。
新型コロナの影響で今年はイベント登壇などもほとんどないと思うので、このイベントはきっと貴重な機会になると思います。

日本全国(または世界各国)、どこからでも参加できる無料のライブ配信イベントですので、ちょっとでも興味を持った人は気軽に参加してもらえると嬉しいです。
みなさんの参加お申し込みをお待ちしています〜!😄

connpass.com

ルンバのiPhoneアプリで「クラウドサービスがルンバにアクセスできません」と言われたときに試したこと

はじめに

我が家では去年からルンバi7+を使っています。

f:id:JunichiIto:20200427082456j:plain

基本的に快調に動いてくれているのですが、昨日から急にiPhoneアプリからルンバを発信させようとすると「クラウドサービスがルンバにアクセスできません」というエラーメッセージが出て、スマホから操作ができなくなってしまいました。

自分ではなかなか解決できず、サポートセンターに電話したのですが、それでもダメでした。
公式のヘルプページもありますが、これもやはりダメです。

いろいろ試行錯誤した結果、なんとかまた接続できるようになったので、備忘録として直し方(?)を残しておきます。

免責事項

この手順に従って問題が解決しなかったり、別の新しい問題が発生したとしても筆者はいかなる責任も負いません。
不安な場合はこのブログの内容を参考にするのではなく、公式のサポートセンターにお問い合わせください。

「クラウドサービスがルンバにアクセスできません」と言われたときの対処法

1. ルンバのiPhoneアプリを削除する

ルンバのiPhoneアプリ(iRobot HOME アプリ)を削除します。
アプリを削除しても記録された部屋の間取り情報は削除されません。
ただし、あとでWifiの再設定を行う必要があるので、Wifiのパスワードがわからない場合はアプリを削除する前にWifiのパスワードを確認してください。

2. iPhoneを再起動する

iPhoneを一度電源オフにして、再度電源オンします。

3. ルンバのiPhoneアプリを再インストールする

iPhoneのApp StoreからルンバのiPhoneアプリ(iRobot HOME アプリ)を再インストールします。
なお、「アプリの削除」「iPhone再起動」「アプリの再インストール」はサポートセンターの人に言われた手順です。

4. iPhoneのWifiを2.4GHzに切り替える

ご自宅のWifiルーターの周波数帯が2.4GHzと5GHzの2種類ある場合は、2.4GHzを使います。
iPhoneのホーム画面 > 設定 > Wi-Fiで接続先を2.4GHzにしてください。

5. iPhoneアプリを起動してルンバのWifiを設定する

ルンバのiPhoneアプリ(iRobot HOME アプリ)を起動します。
「居住国の選択」や「利用規約の確認」などは、そのままOKをタップして先に進めてください。

いつものホーム画面に戻ってきたら、以前と同じように「クラウドサービスがルンバにアクセスできません」というメッセージが表示されていると思います。
アプリの画面右下に「設定」ボタンがあるので、これをタップし、ルンバのWi-Fi設定画面に進みます。

iPhone本体が2.4GHZ帯に接続していれば、ルンバも2.4GHz帯に接続しようとするはずです。(念のためアクセスポイント名を確認してください)
Wi-Fiのパスワードを入力して設定を進めてください。

あと、Wi-Fi設定の過程でルンバの名前を変えてみました。
果たしてこれが本当に役に立ったのかどうかわかりませんが、これも僕が試してみたことのひとつです。

最後にルンバ本体のHomeボタンとSPOTボタン(CLEANボタンの左右にある小さなボタン)を同時に2秒間押さえるように指示が出ます。
設定がうまくいけば「クラウドサービスがルンバにアクセスできません」というエラーが消えて、いつも通りルンバが使えるようになるはずです。

6. iPhoneのWifiを5GHzに戻す(任意)

普段iPhoneのWifiを5GHz帯で使っていた場合は、Wifiの接続先をまた5GHz帯に戻しておきましょう。

まとめ

手順は以上です。
もしかすると一回ではうまくいかないかもしれませんが、何回かやっているとエラーが解消されるかもしれません。
(僕も同じような手順を何度か繰り返しました)

僕と同じように「クラウドサービスがルンバにアクセスできません」というエラーが出て困っている人の参考になれば幸いです!

余談:クリーンベースの紙パックは思った以上に長く使える

ルンバ i7+ではクリーンべースに自動的にゴミが収集される仕組みになっています。

f:id:JunichiIto:20200703091002j:plain:w300
Image: https://www.irobot-jp.com/irobothomeapp.html

このとき、収集したゴミはクリーンベース内の紙パックに吸い込まれます。
この紙パック、いったいどれくらいの頻度で交換しなきゃいけないんだろう?と思っていましたが、かなり長持ちしますね!
我が家ではほぼ毎日のようにルンバを使っているにもかかわらず、3ヶ月以上経っても満タンになりませんでした。

ただ、満タンにならなくても、あまり長期間使用していると、ゴミを自動収集するタイミングでだんだんと臭いがするようになってきます。
なので、結局4〜5ヶ月目ぐらいで「臭いがダメ」という理由で紙パックを交換しました。

とはいえ、4ヶ月ぐらいもつのであれば、下の紙パック3枚セットを買っておけば1年ぐらいは大丈夫、という計算になります。

紙パックの交換頻度が気になっている人はこちらの情報も参考にしてみてください〜。

【JS完全に理解した】JavaScript PrimerとプログラミングTypeScriptとレガシーフロントエンド安全改善ガイドを読んでみた

はじめに

僕は仕事でRuby on Railsを使ってWebアプリケーションを開発しているので、JavaScriptはそれなりに使えます。
ですが、サーバーサイドで使っているRubyに比べると、JavaScriptの習熟度はそれほど高くありません。
とくに、文法が一気にブラッシュアップされたES2015(ES6)以降の知識は「なんとなく把握はしているが、あくまでなんとなく」といった感じです。
また、最近よく名前を聞くようになったTypeScriptも「名前は知っているが使ったことはない」というのが現状です。

というわけで、「そろそろちゃんと勉強しておかないと」という思いから、以下の本を購入してみました。

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

  • 作者:Boris Cherny
  • 発売日: 2020/03/16
  • メディア: 単行本(ソフトカバー)

また、それらを使った実践的なノウハウを学ぶためにこちらの本も購入しました。

このエントリではこの3冊を読んだ感想をざっくりまとめてみます。

「JavaScript Primer」はJS版のチェリー本かも!

最初に読んだのは「JavaScript Primer」です。

f:id:JunichiIto:20200630073838j:plain

いやあ、この本は良かったです!
僕みたいに「すでに他の言語のプログラミング経験はあるし、JSもある程度触れるが、ES2015以降の機能は雰囲気でしか理解していない」という人間にはピッタリの一冊でした。
その点で本書はJS版の「プロを目指す人のためのRuby入門(通称・チェリー本)」と呼んでいいかもしれません。

本書を読むことで、「なるほど、それはそういう仕様になっているのか!」とか「この機能はES2017で導入されたのか」といったふうに、様々な知識を得ることができました。
とくに、JSにおける真偽値の定義やthisの挙動、Promiseやawaitを使った非同期処理などは、いかに自分が雑な理解しかしていなかったのかが、本書を読んでよくわかりました。

かなりボリュームがあるので読み切るのはなかなか大変ですが、それはそれだけJSの仕様が奥深いということの裏返しでもあります。
いずれも知っておいて損はない、というか知っておくべき!という内容が満載だったので、僕みたいなJSレベルの人は必ず読んでおきましょう!

Web版なら無料で読めます

ちなみに、本書の内容はWebでもほぼおなじものが無料で公開されています。
jsprimer.net

僕は紙の本の方が自分自身に「読め」というプレッシャーを与えられる、という理由で紙の本を買いましたが、Webでも大丈夫という人は上記サイトを読破するのもアリです。

TSって完全に独立した言語やん!ということがよくわかった「プログラミングTypeScript」

その次に読んだのが「プログラミングTypeScript」です。

f:id:JunichiIto:20200630075739j:plain

前述のとおり、JSはもともとある程度の経験がありましたが、TypeScriptの経験はゼロでした。
TSについては「JSに型が付けられるやつで、文法的にはJSの上位互換になってるらしい」ぐらいの知識しかありませんでした。

というわけで、本書を読んでみたわけですが、いやあ、TypeScriptってすごいですね。これって完全に独立した言語やん!って思いました。
「ちょっと進化したJSぐらいやろ」と思っていた僕の予想を大きく裏切られました。

それだけに、かなり難しい内容もたくさん出てきます。
僕はJavaやC#の経験があるので、静的型付け言語のコードを読むのもそれほど苦労しないのですが、それでも内容によっては「うひー、なんじゃこりゃ」と思うようなややこしい内容が結構ありました。(特に6章)
プログラミング初心者でなおかつRubyやPythonのような動的型付け言語の経験しかない人は、いきなりこの本に進むと面食らうかもしれないので注意してください。

対象バージョンは3.4(一部3.8)です

ちなみに、本書にはTypeScriptのどのバージョンを対象にしているのか明記されていなかったのですが、監訳者の今村 謙士さんに確認したところ、原著はバージョン3.4を前提に書かれているそうです。
ところどころに監訳者による補足説明が入っているのですが、その情報はバージョン3.8までの内容を反映しているとのことです。(参考

なお、現時点(2020年6月末)での最新バージョンは3.9.5です。

おまけ:RubyMineでTypeScriptを動かしてみた

サンプルコードを動かすときは、使い慣れたRubyMineにTypeScript用の環境をセットアップして動かしてみました。

RubyMineでTypeScriptを動かす方法は公式ヘルプで説明されています。

手取り足取りモダンJSへの移行方法を教えてくれる「レガシーフロントエンド安全改善ガイド」

最後に読んだのは「迷わない!困らない!レガシーフロントエンド安全改善ガイド」です。

f:id:JunichiIto:20200630082954j:plain

本書はES5(class構文とかがないレガシーなJavaScript)とjQueryで書かれたTODOアプリケーションを、Webpack、TypeScript、Vue.jsといったモダンなフロントエンド技術を使ったアプリケーションに移行させる手順を解説した本です。

ベースとなっているのは技術書典6で同人誌として頒布された「レガシーフロントエンド安全改善ガイド」で、本書はそれを商業出版向けに加筆・修正したものです。
mugi1.hateblo.jp

「同人誌ベースなの?クオリティ的に大丈夫?」みたいに心配する人がいるかもしれませんが、その心配はまったくありません!
むしろ「同人誌ベースなのに、こんなにハイクオリティなの!?」と逆の意味でビックリします。
それぐらい懇切丁寧に、モダンJSへの移行方法が説明されています。

内容はとっても実践的です。
「なぜ改善したいのかを考えよう」「移行を始める前にまずテストを書こう」といった地に足の付いたアプローチで、一歩ずつレガシーなJSアプリケーションを改善していきます。

僕が昔からメンテしているRailsアプリケーションのフロントエンド技術もその多くがjQueryとかをバリバリ使ったレガシーJSなんですが、本書で説明されているアプローチを実践すればモダンJSに移行できそうな気がしました。(ただし、時間はかなりかかりそうですが💦)

ちなみに、本書で扱っているTODOアプリケーションはRailsのようなサーバーサイド処理を含まない、フロントエンドだけで完結するJSアプリケーションです。

写経するなら紙の本よりも電子版の方がオススメかも

他の2冊と同様、本書も紙の本で購入しました。
ただ、紙の本はカラー印刷になっており、その影響か使われている紙が少し固くてツルツルしたものになっています。

f:id:JunichiIto:20200630085556j:plain

そのため、本を開きっぱなしにしようとしてもすぐに「パタン!」と本が閉じてしまいます。

しっかりした書見台を用意しないと写経するのは難しいと思うので、写経するなら電子版を購入した方が良いかもしれません。
また、紙の本よりも電子版の方が600円ほど安いのも電子版のメリットです。(紙の本は2200円、電子版は1600円、各税別)

あとがきには僕の名前が!

著者の麦島さんと僕は、実は知り合いです。
去年は富山Ruby会議01で4年ぶりに再会しました。(参考

だから、というわけではないと思いますが、本書のあとがきには僕の名前が登場しています。

本書の内容については、昔の私自身が欲しかった情報をまとめており、このあたりは私が尊敬するエンジニアの伊藤淳一(@jnchito)さんが仰っている「その知識を知らなかった頃の自分が喜ぶような記事を書く」という考えに基づいています。

あとがき:迷わない!困らない!レガシーフロントエンド安全改善ガイド

たしかに本書を読んでいると、「そうそう、そういう話が知りたかったんだよ!」と思うポイントがたくさんありました。
どうやら、これは僕の執筆ポリシーが反映された結果みたいです。(とっても嬉しい〜!😆)

qiita.com

まとめ

というわけで、このエントリでは僕が最近読んだフロントエンド関連の3冊の技術書について書評を書いてみました。
いずれもとても良い本だったので、もっとJSやフロントエンド技術に詳しくなりたい!という人はぜひチェックしてみてください!

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

  • 作者:Boris Cherny
  • 発売日: 2020/03/16
  • メディア: 単行本(ソフトカバー)

👂耳寄り情報?👂