「Using Github Codespaces for Embedded Development」に日本語字幕を付けました

先月、「あ、そうだ。Azure RTOS試しておこう。」と思い、VSCode + devcontainerでAzure RTOSをビルドしていました。
作業しながら呟いていたら、、、

ツヨツヨな人からコメントがが。

そういえば聞いたことあったなー。GitHub Codespaces。
VSCodeホスティングされて、ブラウザで動く感じかな?程度の浅い知識。

コメントもらったからには、手を動かしてみないとね!ということでさっそく(Visual Studio)Codespacesを使ってみたところ、、、VSCode + devcontainerのホスティングで、メチャ便利だわこれって感じで。

これはブログ書いたほうが良いよなーと思っていた矢先、Benjaminさんが動画をアップしていました。

動画分かりやすい、、、
これに勝るブログは書けないし、、、
てか、これに日本語字幕つければいいんじゃね?

と、なぜかやったこともない日本語字幕付けにトライすることにしましたw

了承を得る

BenjaminさんにDMして、、、OKいただいた。

f:id:matsujirushix:20200916211908p:plain

英語字幕ファイルを日本語に

英語字幕ファイル(.sbv)を受け取って、日本語に訳す、、、
と思っていましたが、YouTubeのWeb操作で字幕追加ができるみたい。ほー。

f:id:matsujirushix:20200916212249p:plain

字幕を翻訳する

こんな画面で、左に日本語字幕を入力すると右に反映されるので、ちょっと書いては動画を確認を繰り返します。

f:id:matsujirushix:20200916212550p:plain

公開する

公開ボタンっぽいのがあったような、、、それをポチして、Benjaminさんに連絡すると、YouTube動画で日本語字幕が選択できるようになりました。

f:id:matsujirushix:20200916212754p:plain

大変だったこと

最初に、YouTubeのWebツールの操作で戸惑いました。特に、字幕を書き換えようとシフトキーを押しながら矢印キーを押すと、文字列選択ではなくて、次の字幕に移動するのが、、、。英語と日本語の文字数に違いがあるので、字幕カットを減らしたり増やしたりするのも大変。とはいえ、まぁこれは慣れの問題で、慣れてくると時刻と音声波形でうまいこと操作できるようになってきました。
ブログの日本語訳と違って、文字数制限(字幕なので3行程度)と時間軸(極端に短いカットだと文字読めない)を意識しないといけないのが難しかった。文字減らすと意味が伝わらないからカット増やすけど、それだとカット短くて読めないとか。
結果、メチャ時間かかった。20分弱の動画字幕作るのに、20時間近くかかっている、、、

よかったこと

ただ見るのと違って、漏らさず聞く・読むので、英語や解説内容(今回はCodespaces)に詳しくなった気がする。(気がする)
コンテンツを日本語で完全に作り直す(例えば、わたしが動画を作るとか)よりも、コンテンツの質が高いので、日本開発者にとって有益なのではないだろうか。

「これはいいぞ!」という動画に出会ったら、また日本語字幕を付けてみようと思う。

azsphereのネットワーク診断コマンド

ちょっとRDB使おうとしたところ、ネットワークに接続できない現象が発生したので、20.07で追加されたネットワーク診断機能を試してみました。

azsphere device wifi listtemp-disabledになっているので、ネットワークに接続できていません。

C:\AzureSphere>azsphere device wifi list
Network list:

ID                  : 0
SSID                : TP-Link_4C38_5G
Configuration state : temp-disabled
Connection state    : disconnected
Security state      : psk
Targeted scan       : True

ネットワーク診断機能show-statusを実行すると、Network time sync statusがincompleteと表示されています。時刻同期ができていないのが原因のようです。

C:\AzureSphere>azsphere device network show-status
Is device authentication ready: False
Network time sync status      : incomplete

show-diagnosticsの実行結果は、azsphere device wifi listと同じ情報が記録されるようです。でも、時刻同期ができていないのでTimestampががw

C:\AzureSphere>azsphere device network show-diagnostics

Timestamp           : 2000-01-01t00:02:09+0000
Network ID          : 0
SSID                : TP-Link_4C38_5G
Last Recorded Error : ConnectionFailed
Configuration State : temp-disabled
Connection State    : disconnected
No certificate errors logged.

何回かresetボタンを押してみましたが、状況は改善されず。
明日も直らないようなら、パケットキャプチャしてみようと思います。

Azure Sphereに関連した日本語資料・動画

日本語で公開されている、Azure Sphereの資料、動画リンクです。希少!
現時点、見ておいたほうがいいオススメに★印を付けました。

スライド

[2018/5/22] AD32 Secure なデバイスを開発するための最新テクノロジー Microsoft Azure Sphere 登場 @de:code 2018

(公開URL見つからずorz)

[2018/8/24] Azure Sphere コミュニティ勉強会

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere

[2018/10/1] Azure Sphere MCU

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere-mcu

[2018/11/17] Azure Sphere MCU (Update!)

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere-mcu-123272582

★[2019/4/6] IoT祭り2019 Azure Sphereの今

www.slideshare.net

[2020/2/6] Azure Sphereのマルチコア

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere-227128702

★[2020/2/6] Azure Sphere概要 @アブネット細倉さん

www.slideshare.net

[2020/2/6] Azure Sphereのセキュリティ @マイクロソフト太田さん

https://www.slideshare.net/HiroshiOta4/microsot-azure-iot-security-for-iot-algyan-tech-seminar-202026

[2020/4/25] Azure Sphereって実際どうなの?

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere-232628405

[2020/7/2] Azure Sphere開発する前に知っておくこと

https://www.slideshare.net/TakashiMatsuoka2/azure-sphere-236734151

★[2020/7/3] Azure Sphereリアルタイム処理

www.slideshare.net

★[2020/7/27] これからAzure Sphereで開発する方へ

www.slideshare.net

★[2020/8/9] 試してGOTTEN READY! Azure Sphere @マイクロソフト太田さん

www.slideshare.net

動画

★[2020/6/17-7/17] X02 セキュリティは万全ですか? Azure Sphere によるセキュリティ紹介 @マイクロソフト 梅津さん

www.youtube.com

★[2020/7/27] Azure Sphere技術セミナー!最新のIoTセキュリティソリューションとは!

www.youtube.com

Azure Sphere 20.07がリリース

Azure Sphereの20.07がリリースされました。

ここ最近は、アップデートに関してブログを書いていませんでしたが、、、気になる機能が追加されたので、久しぶりに書いておきたいと思います。(気になる機能は太字)

docs.microsoft.com

ネットワーク機能

静的IPアドレス、ネットワーク診断APIネットワーク診断コマンドが追加されました。

時々、なぜかネットワーク機能が有効にならないときがあって(Networking_IsNetworkingReady())、azsphere device wifi listコマンドぐらいしか確認する手段が無くて詰んでいたのですが、こういうときに有効と思われるネットワーク診断コマンドazsphere device networkが追加されました。

f:id:matsujirushix:20200802212526p:plain

show-statusshow-diagnosticsが気になります。

show-statusを実行してみると、デバイスが認証済みかどうかと、時刻同期の状態が表示されました。

C:\>azsphere device network show-status
Is device authentication ready: False
Network time sync status      : incomplete


C:\>

Wi-Fiに接続設定して、再度、show-statusを実行してみると、デバイス認証されていることが表示されました。

C:\>azsphere device network show-status
Is device authentication ready: True
Network time sync status      : complete


C:\>

どうやら、アプリケーションをデプロイしなくても、コマンドラインでNetworking_IsNetworkingReady()が確認できるようになった感じです。

それでは、show-diagnosticsを実行してみます。

C:\>azsphere device network show-diagnostics
No errors logged.


C:\>

あ、、、そういう感じなんですね、、、。
ちょっと寂しい。

コンテナー

Azure Sphereアプリをビルドするコンテナーイメージが提供されました。

Visual StudioVisual Studio Codeのテンプレート

Visual StudioVisual Studio Codeに、2つのプロジェクトテンプレートが入りました。

テナント証明書の更新

Azure Sphereテナント証明書は2年間有効です。初期ユーザーの証明書の有効期限が切れますので、更新する方法とタイミングがドキュメントに掲載されました。

本番運用では超重要事項。
あとで読む。

wolfSSL

Azure Sphereアプリケーションでwolf SSL client-side TLS APIを使用できるようになりました。

PCからデバイスへの通信の安定性

WindowsのFTDIドライバーに関連するPCとデバイス間の通信の安定性に関する問題に対して、バグ修正と機能強化が含まれました。

遭遇したこと無いです、、、

パブリックAPI

Azure Sphere Public APIに機能追加されました。
* バイスグループを削除
* 製品を削除する
* テナント証明書の取得
* テナント証明書チェーンを取得する
* 所有証明書の証明を取得する
* テナント証明書の一覧表示

うぉーーーー、これは胸アツ。
バイスグループやプロダクトを削除するAPIが追加になりました。

azsphereコマンドには未だ上記機能は無いので、デバイスグループやプロダクトを削除する唯一の方法ですね。

ADCとPWM

ADCとPWMのAPIが、βからLTSに昇格されました。

リアルタイムアプリケーション開発

RTApp開発がLTSに昇格されました。

これで安心してRTApp使えるようになりました。

ハードウェア定義

既定のハードウェア定義がAzure Sphere SDKに含まれるようになりました。

いままではazure-sphere-samplesに入っていて、自身のプロジェクトでハードウェア定義を使うときはコピーしなければいけませんでしたが、一般的なものがSDKに同封になりました。

うむ、、、切り出して公開していたの、不要になったな、、、。

公開しているプロジェクトも、ハードウェア定義を利用しているものは修正したほうが良さそう。

サンプルアプリケーション

Azure IoT サンプルアプリケーションが更新されました。

起動タイミング

起動が約750ミリ秒短縮されました。

GNU Armパス検出

Visual StudioVisual Studio CodeのAzure Sphere拡張が、GNU Armパスの場所を検出する手順が同じになりました。

製造サンプル

(割愛)

Azure IoT C SDKのサポート

Azure IoT C SDKのlts_02_2020をサポートされるようになりました。

ほぅ。
あとで調べる。

Linuxカーネル

Linuxカーネルのバージョンが5.4に更新されました。