aiohttpを使ってWebsocket通信してみる

昨日のWebsocketのテストの続きです。こうなったら WebサーバもPythonで書ききってしまいたいものです。しかし非同期動作が必要です。で、asyncio とセットで調べていたら、

https://docs.aiohttp.org/en/stable/

が見つかったので、早速試してみました。CPythonでの拡張のようなので、

“aiohttpを使ってWebsocket通信してみる” の続きを読む

Chrome拡張機能uBlacklist

ブラウザの拡張機能は使わない主義だったのですが、このTwitter投稿を見て方針転換しました。

いろんなプログラミング言語のことを調べるにあたって、最近は検索汚染が酷くて、調べたいことを検索しても中身のない/中身の薄いサイトばかりが出てくるようになっていました。なので、Python公式ページを検索するにも、site:python.org とか追加で入れないと検索に出てこない始末。広告であればせいぜい4つくらいまでしか出てこないのに、こいつら延々と出てくるんです。

なので、ブラウザの機能拡張は使わない主義を転換して、この機能拡張だけは入れることにしました。ブロックリストは正規表現で記述することにして、上記のツイートを正規表現化して以下に設定しました。(注:適宜更新します。自分のメモなので。)

/^https?:\/\/techacademy\.jp\//
/^https?:\/\/(www\.)?udemy\.com\//
/^https?:\/\/udemy\.benesse\.co\.jp\//
/^https?:\/\/dev\.classmethod\.jp\//
/^https?:\/\/www\.sejuku\.net\//

技術調べごとが楽になるといいなぁ。

ArmbianにSambaをインストール

こちらの記事でコメントを頂いた、huskyさん向けの記事になります。

この記事を作成した当時は Armbian Ubunut + OpenMediaVault は動いていたのですが、長期安定性は正直疑問があります。NASとして長期安定動作を狙う場合には、OpenMediaVaultを使うよりも素のSambaを使うほうが安定しています。
自宅にはNanoPi Neo2+NASキットが3台あるのですが、1台は素のSambaで数年間の長期運用ができています(しかも、18.04LTSから20.04LTSへのアップグレードも乗り越えました)。それより後でインストールしたOpenMediaVaultは持って1年という印象です。そして比較的最近(半年以内だったと思います)OpenMediaVaultを再インストールしたところhuskyさんの書かれている現象(インストールした後再起動すると起動してこない)に遭遇しましたので、このときは素のSambaをインストールしました。

ここでは、残っているメモから簡単(易しいという意味ではなく肝しか書いてないということです)なSambaの設定方法を紹介します。Armbian UbuntuをNanoPi Neo2+NASキットにインストールして、armbian-configからシステムをNASキット上のHDDに移動するのは完了しているものとします。(なお、システムをHDDに移動した後も、確か最初のブートローダ自体はmicroSDから読みますので、microSDは抜いてはいけません)
なお、システムをNASキットのHDDに移動しないままSambaで運用すると、先にMicroSDが死んたことがありますので、システムはHDDに移動しておいたほうがいいと思います。

“ArmbianにSambaをインストール” の続きを読む

電源周波数観測のサーバプログラム

電源周波数の変動を測ってみたという記事のコメント欄で

周波数観測サイトのWEB側のプログラムの解説記事を作っていただけないでしょうか??

という要望をいただきましたので掲載します。人に見せるために書いたコードではないのでいきあたりばったりなコードで汚いです。なお、Webプログラミングについては全くの素人です。なので、ツッコミどころ多数だと思いますが、ご容赦をw。
ソースをみるとわかるとおり、ごく簡単なロジックです。今回は折れ線グラフですが、chart.jsでは棒グラフやその他のグラフなどを簡単に出力することができますので、Raspberry Piなどを使って得たセンサーデータなどを手間をかけずにWebブラウザで見れるようにする叩き台にはなると思います。
(手間かけたくないんだったら、Ambientとかに投げちゃえばいいじゃん、という話はありますが)

“電源周波数観測のサーバプログラム” の続きを読む

プログラミング言語Elixir

世の中にはElixirというプログラミング言語があるらしい。そのうち触ってみたいとずーっと思っているのだけど、触れてない。

だから、参考になりそうな情報源だけメモしとく。

1.Exilir School

Elixir Schoolというのがあって、日本語訳がされている。
URLは https://elixirschool.com/ja/

2.Phenix v1.5 hexdocs 日本語訳

Phenixというのは、ElixirのWebフレームワークということらしい。
その公式ドキュメントの日本語訳。
URLは https://zenn.dev/koga1020/books/phoenix-guide-ja-1-5

3.Nerves

Nervesというのは組込みにElixirを使うためのフレームワークということらしい。
Elixir Schoolの中にNervesのページがある。
URLは https://elixirschool.com/ja/lessons/specifics/nerves/

公式ページはここなのだろうか?
URL https://www.nerves-project.org/platform

GitHubはここのようだ
URL https://github.com/nerves-project

Raspberry PiでLチカする記事
URL https://qiita.com/takasehideki/items/94820516ec95b85bae32

tar.gzで圧縮したファイルにzipでパスワードをかける

tar.gz で圧縮した大量のファイルに zip でパスワードをかけます。パスワードは同じものを使う前提ですので、コマンドラインで指定します。(history をクリアするなど要注意)

for i in `ls *.tar.gz`; do echo $i ; zip -e -P password ${i%.tar.gz}.zip $i ; done

これでカレントディレクトリにあるすべての *.tar.gz ファイルに同じファイル名で暗号化付きzipファイルを生成します。
内容は以下です。シェル変数の後方マッチ文字列削除をしてzipファイル名を生成しています。

for i in `ls *.tar.gz`
do
  echo $i
  zip -e -P password ${i%.tar.gz}.zip $i
done

似た作業として、すべてのディレクトリをそれぞれディレクトリ名でzip圧縮します。なおスペース(空白文字)が入ってるディレクトリ名があるとうまく行かない気がします。

for i in `ls -d *` ; do echo $i ; zip -r ${i}.zip $i ; done