Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Grafanaで格好いいダッシュボードを作る

shuzo-kino.hateblo.jp
の件ともビミョーに関係する話で管理UIを作らんといけなくなったんですが……デザインセンスなんかないし、そもそもお客も仕様を固めきれてない状態なので変に作り込んでも仕方がない。
一昔前に流行ったウィジェット形式なら柔軟に対応できるけど……と思って探したら、これもありました。
Grafanaは本来サーバー監視なんかに使う系のダッシュボードですが、パネルというモジュール単位で色々できる上、キオスクモードも搭載してたりでとってもお手軽。

実際のところ

f:id:shuzo_kino:20210624235844p:plain
まず、デモページがあるのが最高
play.grafana.org

パネルの例や、モデルなんかもいくつか掲載があり、今回の目的に合致した風力発電モデルも。
Grafana

サーバー

Grafana自体はオープンソースなので自前構築もできますが、ビジネスもやっています。
チョットしたモンならFreeプランでサーバーアップロードまでいけるという。
数が増えても月額5000円程度……自前で鯖を運用管理する事を考えたらとってもお得ですね。

ブラウザ上で動くVNCクライアントnoVNC

実験室の端と別端にある作業PC二台の間を行ったり来たりするのが不毛なので、それを手元で動かすべくVNC環境を探していました。
PCにVNCクライアント二つ動かせばいいんでしょうが、カネもかかるし、技術的にも面白くない。
諦めかけていたところ、フとWEB技術でVNCクライアント作ってる所があるのではと思い立ち、調査してみたら……noVNCというドンピシャなものが見つかりました!

実際のところ

github.com

noVNC is both a HTML VNC client JavaScript library and an application built on top of that library. noVNC runs well in any modern browser including mobile browsers (iOS and Android).

とあるように、なんとスマホのブラウザでも動きます……!

youtu.be

導入

githubから導入

$ git clone https://github.com/novnc/noVNC.git

とりあえず試すなら

$ cd noVNC
$ ./utils/launch.sh --vnc localhost:5901

単に画像を都度見たいだけなら

別の機体で生成された画像を都度見たいだけなら、SSHの-Xで画像を飛ばせば十分です。
shuzo-kino.hateblo.jp

Viキーバインドをオンラインでひたすら練習できるサイト

www.vimgenius.com

私もソフト屋の端くれとしてViキーバインドを使うよう心がけているのですが……経営ギョームもやってる手前、コーディングのブランクがあいて忘れてたりします。
縦横移動程度なら兎も角、ペーストってどうするんだっけとか、そういうレベルの忘れっぷりです。
一日コーディングしながらやると思いだせるのですが、チートシートみたいなの見ながら思い出すのは中々面倒です。
こういう時は、ブラインドタッチよろしく、実戦練習をやった方が勘の取り戻しが早い……というわけで探してみました。

VimGeniusという中々攻めたタイトルのこのサイト、内容が無料にしてはとても充実しており……私は全く使えてないマクロの項目なんかもあったりします。
とりあえず試したいときはIntroをやれば十分かと思います。
www.vimgenius.com

ExcelでJSONの中身を確認する

すっかりExcelを使う時間が増えてしまいました。
さて、そんな流れの中でJSONで書かれた設定ファイルを読みだす必要が出てきてのでメモを。

実際のところ

ナウなヤングは使っているらしいPowerQueryを使います、

今書いてまs

ヒアドキュメントとtrで長めな文字列を成形

実際のところ

$ tr -d '\n' << EOF
12
34
EOF
1234

応用すると、目視し辛いデータの可視性が多少マシになる。
速度は落ちるかもしれないが……。

$ VAL_C=$(tr -d '\n'  << EOF
12
34
EOF
)
$ echo $VAL_C
1234

bashの16進数記法もパース可能

$ DATACMD="$(tr -d '\n' << EOF
\x80\x00\x02 
\x00\x06\x00 
\x00\x09\x00 
\x00\x01\x01\x82 
\x0E\x10\x00
\x00\xb4
EOF
)"
$ printf "$DATACMD" | od -x
0000000 0080 0002 0006 0900 0000 0101 0e82 0010
0000020 b400
0000022

発展的話題:ヒアドキュメントの中で16進数から10進数へパース

相手先によっては10進数で受け取りたいというケースもある筈。
そういう場合は以下を参照。
shuzo-kino.hateblo.jp