koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

PCが修理に旅立って行った

発熱と計算量の狭間で - koudenpaのブログ を書いたときに購入したPCが修理に引き取られて行った。

理由は

冷却ファンが脈動するようになってしまい、手がプルプル震えるようになってしまった

から。

デジャウ。

届いてから2か月程度の命だった。

どうやらファンにとことん嫌われているらしい。

これだから可動部はいけない。

可動部が多くていいのはプラモとフィギュアだけなのだ。

続きを読む

UWP と AppService と BackgroundTask

Windows 10 IoT Core で、特に資料を読むこともなく、フィーリングでバックグラウンドで動作し続ける処理を書こうとしていたら、サッパリ実現できなかった。

IoT Core は UWP で、UWPアプリとしてやりたいことを実行するのだけれど、そのUWPアプリについてさっぱり知らなかったのが敗因だった。

いまだに分かっていないのだけれど、以下のような経過をたどった結果の整理をメモしておく。

なお、やりたいことは「センサーのデータを短い間隔で取得し続ける」こと。

  1. GUIのアプリでは、実行されている間はできていた
  2. AppService で処理するようにしたら、関連するアプリを落としたら処理が終わってしまった
  3. どうやら、普通のBackgroundTask として実装するのがよさそうだと気づいた
続きを読む

インターネットのセキュリティ段階についての雑感

IoT と言う単語がバズっていて IPA がセキュリティガイドラインを公開したりしているけれど、そもそもユーザーのインターネットセキュリティ意識ってそう大したものではないよなぁ。と思う雑感。

「IoT開発におけるセキュリティ設計の手引き」を公開:IPA 独立行政法人 情報処理推進機構

こんなもん満たしたプロダクト出てくるんだろうか。

総務省|「IoTセキュリティガイドライン」(案)に関する意見募集

こいつは少し気にしておきたい。

それはさておき、僕はインターネット上のセキュリティ対応を大体以下の三段階で捉えている。

  1. 丸裸
    • 趣味なら別にこれでいいと思う
    • 悪意の前には無力
    • HTTPでBasic認証とか、平文でクライアントを識別する感じ
  2. 通信を暗号化
    • プロダクトがこれだとちょっともにょる
    • 悪意とある程度の技術の前には無力
    • HTTPSオレオレ証明書とか、証明書検証してないとか
    • 盗聴は厳しいけれど、通信相手は不明
      • アリスと通信していたつもりが、ボブと通信している可能性がある
  3. 通信を暗号化して、相手を認証
    • 一般的な安全な通信
    • 脆弱性の前には無力
    • HTTPSを普通に使うとか

PCやスマホで2以下なプロダクトはサボってるだけなのだけれど、プアなコンピュータだと3は実現がなかなか厳しかったりする。

各社がオレオレプロトコルで対応していたりするみたいだけれど、共有はされないノウハウだし、安全なIoTを手軽にやるのはなかなか大変な状況だと思う。

続 Windows と Raspberry Pi の PWM制御 事情

Windows と Raspberry Pi の PWM制御 事情 - koudenpaのブログ で Raspberry Pi のハードウェアPWM制御がどうこうと書いていたけれど、リリースノート にちゃんと事情が書いてあるような気がした。

以下抜粋。

Raspberry Pi audio and direct memory mapped drivers (6678121)

On Raspberry Pi, audio via the 3.5mm jack stops working when the direct memory mapped > > drivers are enabled.

WORKAROUND: After the direct memory mapped drivers have been enabled, run:

reg add HKEY_LOCAL_MACHINE\SYSTEM\DriverDatabase\DeviceIds\ACPI\BCM2844 /v dmap.inf /t REG_BINARY /d 02ff0100
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\enum\ACPI\bcm2844\0 /v ConfigFlags /t REG_DWORD /d 0x20
devcon restart acpi\bcm2844

Verify that the driver for the PWM device node is BCM2836 PWM Controller:

C:\Data>devcon status acpi\bcm2844
ACPI\BCM2844\0
    Name: BCM2836 PWM Controller
    Driver is running.
1 matching device(s) found.

いい感じに音を鳴らすための処理とハードウェアPWMでリソースが食い合っているから、音を無効化指定してやるとSoC? のPWMコントローラが有効になるようだ。

より詳しい事情は、PWMドライバのリポジトリリドミーに書いてあった。

bsp/drivers/pwm/bcm2836 at master · ms-iot/bsp · GitHub

音声殺したり、レジストリを弄ってまで1チャンネルのPWMを試してみるエネルギーはないので、そっとしておくことにした。

Windows Phone に SORACOM Air を差すとこうなる

先日の de:code 2016 でWindows Phoneの開発キットとしてVAIO Phone Biz を20000円(税抜き)で買う権利に当選してしまったので、UWPアプリを開発する義務が発生してしまった。

が、あんまり暇がない(まだIoT Coreを弄ったりしたい)ので、とりあえず起動だけして封印することにした。

とはいえ起動だけではあまりにもつまらないので、唯一手元に余っていたSORACOM AirなSIMを差してみた。

続きを読む

歯に見るITシステムとの類似性

先日、銀歯が取れてしまったので、歯医者に処置してもらった。 手際がとても良くて感服した。

自分はITエンジニア脳なので、実世界の事象をどうしてもITシステム的に考えてしまう。 今日歯からのメッセージのログレベルを夢想していた。

  • 歯が黒ずんだ
    • WARNING
    • 放置するととんでもないことになる
  • 歯に衝撃を与えると痛い
    • ERROR
    • 虫歯である、対応が必要
  • 歯が痛い
    • FATAL
    • 致命的な虫歯である、すぐに対応しないと日常生活を送れない
  • 歯が抜けた
    • ログは出ない
    • システムが落ちた

こういう例えを夢想するのはとても楽しい。

余談。 歯医者の対応、応答。

  • 電話する
    • 銀歯が取れて、取れたものはなくなった(多分飲んだ)と伝える
    • 空いている時間に予約を入れてもらう
  • 歯医者に行く
    • 急患扱いだった

以下診察。

  • 歯を見る
    • カルテを更新
    • 銀歯がとれた跡に虫歯あり、隣に小さな虫歯あり、を伝えられる
    • 銀歯跡は削って型どり、隣は削って樹脂充填を伝えられる
    • OK応答する
  • 削る
    • やや響く
  • 充填する
    • 詰めて、光を当てる
    • バリを磨き落とす
  • 型を取る
    • 噛み合わせチェック用? の固いやつ
    • 造型用の柔らかいやつ
      • ガキの頃のより味がしない気がした
  • 終わり
    • しみなかった?
    • 多少しくしくしました
    • 神経入ってる歯だからそれは正常
    • うっす

一週間後には銀歯が出来上がって、それをはめたら終わりとのこと。

ここから分かること。

警告レベルで対応すればすぐ終わる。 削って、詰めて、磨いて終わり。五分。

以前致命的になってから歯医者にかかった時には、神経抜いて、処置して、処置具合の経過観察したりして二ヶ月位はかかった。

何事も早期対応が重要である。

センサーデータをグラフ表示する

Raspberry Pi 3 と Windows 10 IoT Core で BME280 から温度、湿度、気圧を取れた。 じゃぁ、次はそれをグラフ表示したい。

IoT的には次はクラウドにセンシングデータを飛ばすのが定石なのだろうけれど、 せっかくUWP(Universal Windows Platform:ユニバーサル ウィンドウズ プラットフォーム)なのだから、 デバイス単体でGUIにいい感じに表示したい。

続きを読む