Nexus5Xシステムアップデート
Nexus5Xのシステムアップデートが降ってきたのでメモ
バージョンアップ自体は5分ほどで終了しました。
バージョンアップ前
Androidバージョン
7.1.1
Androidセキュリティパッチレベル
2017年1月5日
ベースバンドバージョン
M8994F-2.6.36.2.20
カーネルバージョン
3.10.73-gd28c62a
android-build@wpef24.hot.corp.google.com #1
Thu Nov 17 17:36:12 UTC 2016
ビルド番号
N4F26I
バージョンアップ後(太字が変更点)
Androidバージョン
7.1.1
Androidセキュリティパッチレベル
20017年2月5日
ベースバンドバージョン
M8994F-2.6.36.2.20
カーネルバージョン
3.10.73-gfe160e5
android-build@wpho2.hot.corp.google.com #1
Wed Dec 7 20:26:32 UTC 2016
ビルド番号
N4F26O
javascript の Async/Await を利用した場合のエラーハンドリングについて
普段趣味ではjavascriptでプログラムを書くことが多いのですが、callbackが面倒なので、ずっとPromiseを使っていました。
thenって書けばインデントも増えないし、ブロックごとに新規に変数作ったりしていいじゃんって思っていたのですが、、、
最近作っているアプリケーションで相手のサーバのせいで、通信のエラーが頻発するようになり、やっぱりエラーハンドリングがちょっとつらいので、node v8からリリース予定のAsync/Awaitについて調べてみました。
nodeで試す場合は、v7にして、さらにオプション --harmony-async-awaitを付けてください。
ブラウザの場合は、そのまま貼り付ければ実行できます。
この結果を見ると、await中の例外は残念ながらキャッチしてくれませんでした。
よって、awaitで呼び出すメソッドは、確実に例外処理を行う必要があります。(try catchして、rejectを呼び出すなど)
一方、awaitを利用するほうも、rejectを確実に処理をする必要があります。(try catchして、リカバリなどを行う)
まあ、もともとコールバックで行っていた場合は例外が飛ばなかったし、Promiseで行っていた場合も、catchの付け方が難しかったので、使い慣れたtry catchでエラーハンドリングができるようになるのは、大きなメリットだと思います。
IDCFクラウドに引っ越し
さくらクラウドがクーポン使って無料で利用できたのでしばらく利用していたのですが
無料期間が過ぎそうなので、お引越ししようかと思いました。
そんなに大したことはやっていないため、最安値でサーバが構築できるところを探していましたら、IDCFクラウドが最小構成で500円/月と一番安そうです。
なので、お引越しすることにしました。
今は、3000円分のクーポンプレゼントだそうです。
なので、最小構成の場合は半年間無料でサーバが立てられます。
そういったわけで、普通に仮想マシンを作成したのですが、いつも通りsshで接続しようとしたのですが、できません。
よくよく調べてみると、ここの仮想マシンはプライベートネットワーク上に作成され、インターネット接続をするためには、ポートフォワーディングとファイヤウォールの設定をしないと接続できないようでした。
その設定方法はこちら
めちゃ楽ガイド
https://www.idcf.jp/cloud/pdf/IDCFCloud_installation_guide_nonreg.pdf
ここの仮想マシンのネットワーク設定の通りにやれば、普通はできます。
しかし、全く理解をせずにそのままやってたら、接続できませんでした;;
SSHの設定で、ソースCIDRをMy IPにすると、ブラウザのIPアドレスからのみ接続を許可することになります。
なので、ここは、固定IPで契約している人以外は、ANYにしておくほうがよいと思います。
HTTPとかは必要になったら設定するほうがいいかもしれません。
とりあえず、躓いたところのメモでした。
gitlab→DockerHub→arukas連携
github→DockerHub→arukas連携の記事がありました。
これは、githubにコミットするだけで、自動的にarukasまでデリバリしてくれる非常にありがたいものなのですが
このままでは、githubにpublicで登録しないとうまく動きません。
これは、DockerHubの制限で、automated buildを選択する場合には、仕方のないことでした。
しかし、中には公開したくないソースもあるもので、なんとかprivateでできないかと調べた結果です。
gitlabのCI
gitlabにはCIが内蔵されており、pushされると自動的にタスクを実行する仕組みがあります。
それを利用して、dockerのイメージを作成し、DockerHubにpushすることにより、autometed buildと同じことができます。
DockerHubにpushした後は、上記の山本様の記事同様にすればOKです。
以下、DockerHubのユーザ名はusername、パスワードはpassword、リポジトリ名はhogehogeとします。
google spreadsheetの1セルの最大文字数
50000文字まで入るそうです。
google driveの容量も使わないし、ちょっとしたデータを格納するのにいいかもしれませんね。
例えば、ファイルをbase64で文字列変換して、spreadsheetのセルに突っ込むと
セルの最大数が200万セルなので、base64の効率を137%とすると、50GB以上入るかもしれません。
base64 wikipedia
https://ja.wikipedia.org/wiki/Base64ja.wikipedia.org
グーグルスプレッドシート
support.google.com
nodejsで空きポートを探す
dockerを使ってて、コンテナを作るときに空いてるポートを検索する必要があって作成してみました。
gist53fa12e5c95bf476ea1aed82c38e75a2
Promiseを使っているので、v6以上になります。