Bye Bye Moore

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

【読書メモ】シェルスクリプト+データベース活用テクニック―Bourne ShellとSQLiteによるDBシステム構築のすすめ

結構前から、システムを作るときにはシェルスクリプト on Bashな構成で作っています。
保存はファイルにやってたのですが、IoTなのだと流石にデータ量が増えすぎて、ある時刻のグラフを出すといった用途では正直少し大変でした*1

で、そんな折に本屋を徘徊していて見つけたのがこちらの本。
著者は大学のセンセ……というか、以前読んだEmacsLispの本の著者さんでした。
大学の成績管理等で使うシステムを作る際にRails等のフレームワーク更新に対応するのが大変だったのでBash系での構築を試したという経緯で作られた内容であるため、問題意識も実際的です。

データベースの部分はSQLite3系統を使っています。
RubyPythonのラッパーでしかSQLを触れてない軟弱者なのですが、本書で幾分使い方が分かったかも。

シェルスクリプトについても、知らないかったネタが載っていて中々勉強になりました。
以前紹介した「フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門」で忌み嫌われていたwhileの上手な使い方が書いてあったりして、
やや流儀が違うのが分かるのも面白いです。
私は原理主義より問題解決を優先するタイプなので、理解できている範囲で良いとこ食いしようと思います。

関連する本

shuzo-kino.hateblo.jp

*1:私の実力不足も大いにあったと思います

printf(1)の"-v"オプションで生成文字列を変数に格納する

実際のところ

今までは、こんな感じで変数の代入で式展開というようなアクロバットな事をしていました。

$ OURVAL=`printf "%x" 254`
$ echo $OURVAL
fe

これが、"-v"オプションでこう書けます。

$ printf -v OURVAL "%x" 255
$ echo $OURVAL
ff

foldコマンドで数文字毎に折りたたむ

ソレなりに長い16進数ダンプの文字列があって、それを4バイトごとに折り返して格納する必要がでてきました。
awkでやろうかとも思いましたが、そういうコマンドがあるんじゃないかと調べたところ……foldコマンドを発見。
早速使ってみることに。

実際のところ

$ echo $PLCVAL=C0000200090000060000

先ほどの文字を4バイトごとに切り出す場合

~$ echo $PLCVAL | fold -b4 
C000
0200
0900
0006
0000

16進数な文字列にするなら

~$ echo $PLCVAL | fold -b4 | printf "0x%s\n" $(cat)
0xC000
0x0200
0x0900
0x0006
0x0000

ヒアドキュメント中で16進数として格納された文字列を10進数にパースし格納する

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

bash内の算術置換で16進数の数値をつかう - Bye Bye Moore
の発展的話題。

実際のところ

NetcatでUDPでウケたデータをhexdumpでベタ文字列にし、それをパースする例。

Bashの基数記法を使って、cutコマンドで整えた文字列をバリバリつなぐ。

BASESTR=$(echo -ne $DATACMD | nc -u -w 1 $IPADDR $PORT | hexdump  -v -e '/1 "%02X"')

STR_NUMs=$( tr -d '\n' << EOF
"A":"$((16#$(echo $BASESTR | cut -b 22-23)))",
"B":"$((16#$(echo $BASESTR | cut -b 41)))",
"C":"$((16#$(echo $BASESTR | cut -b 54-55)))"
EOF
)

参考もと

Bash Reference Manual

【読書メモ】身銭を切れ――「リスクを生きる」人だけが知っている人生の本質

ブラックスワン」などで有名なナシーム・ニコラス・タレブ氏による、不確実性の話題の本。
「英雄に本の虫はいない」「知的バカ」等々、日本でいう所のブンカジン層に対する皮肉や毒舌が中々凄まじい。

地に足がついていない空論をこね回したところで、自腹を切って……リスクをとり、かつ損害が生じた場合にしっかり受け止め次につなげるという行為を伴わない限り、正当な利益は得られないというのは実に同意です。

生まれ育った土地柄、いわゆるリベラリズム的欺瞞には昔からいい感情は持っていなかったのですが、この本を通じて、あの連中に対する不信感は、他人の責任を糾弾しながら自分の行動に対する責任は一切負わないという部分に感じていたのだなと頭の整理ができました。

いわゆる格差縮小について

少し話がそれますが、作中で紹介されている不平等解消を目的にした重税は起業家精神を削いで結局社会全体の不利益になるという考え方はハッカーと画家でも紹介されていましたね。

shuzo-kino.hateblo.jp

【読書メモ】 電力流通とP2P・ブロックチェーン ―ポストFIT時代の電力ビジネス―

電力取引をP2Pで、需要者TO供給者な取り引きにするという考え方があるみたいです。
私のような素人はリアルタイム取引一本なんて発想になりますが……そこは先物のように将来取引、さらにエージェントも混ぜて取引の深みを増すのが良い様子。

賑やかし的なのか、機械学習のネタもありました。
太陽光の発電量予想や需要量想定モデルがでてますが、後者はそのうちマネーゲームに応用されそう。

関連する事

shuzo-kino.hateblo.jp