WiFi NFC App を公開しました

tap-to-connect

WiFi 接続設定を NFC でやりとりする規格を Wi-Fi Alliance が策定していて、一部の Android スマートフォンでは既に何のアプリもインストールせず、かざすだけで WiFi 接続設定が終わるんですよ。わたしこれに感動しまして、ついては iPhone でもぜひほしいと思った次第です。で、作っちゃいましたので要点をまとめます。
Continue reading →

Pythonの辞書に dot notation でアクセスする

Javascript のハッシュマップはドット・ノーテーション ( dot notation )でアイテムにアクセスできますよね。でも Python の辞書ではそれができません。できたら便利だなーと考えていたらひらめいたので、 dict クラスを継承した dict2 クラスを作りました。

class dict2(dict): 
    def __init__(self, *args, **kwargs): 
        super().__init__(*args, **kwargs) 
        self.__dict__ = self 

コンストラクタ __init__() をオーバーライドして self.__dict__ に self を代入する行を加えました。ただそれだけです。

__dict__ はオブジェクトの書き込み可能なアトリビュートを格納するために使用される辞書またはその他のマッピングオブジェクトです。 self はまさに dict を継承したマッピングオブジェクトなので、アトリビュートを格納する __dict__ に self を代入すれば、ドット・ノーテーションでアトリビュートとして辞書のアイテムにアクセスできるようになるってわけです。

ピンとこなくても、とりあえず動作を見てみましょう。

Continue reading →

Raspberry Pi で気圧測定

Raspberry Pi Zero WPIMORONI Enviro pHAT という Raspberry Pi 用の環境センサを使って台風が接近する過程の気圧を測定してみました。

平成30年台風第24号が埼玉に接近した9月29日12:00から10月2日6:00まで10分毎の気圧をプロットしたグラフがこちら。縦軸が hPa 横軸が時刻です。

縦軸原点を0Paに取っていますが、変化がわかりにくいので原点を950hPaにしたグラフがこちら。

期待以上に精度良く測定できます。気圧変化の傾きを見ているだけで、台風が近づいて離れていくのがわかるので防災に役立ちます。オススメです。

ちなみに、 Enviro pHAT は Raspberry Pi の上に重ねるように接続すると、温度計が Raspberry Pi が発する熱に影響されるので、40ピンのケーブルで Enviro pHat と Raspberry Pi に距離を開けたほうがよいです。

スレッド間でカウンタを共有する(再び)

これまでも話してきたとおり、スレッド間でオブジェクトを共有することはハイコストなので、可能な限りオブジェクトを共有しない設計にすることが性能においても品質においても重要です。しかし、どうしてもオブジェクトを共有したい場合は、昨今の処理系にはそれを保証する機能が用意されているのでそれを使って安全を担保します。

Continue reading →