揮発性のメモ2

http://d.hatena.ne.jp/iww/

socatで UDPを受信するたびにプログラムを起動する

UDPで受信したものを標準出力に表示するだけのは次の通り

socat udp-listen:12345,reuseaddr stdout

送信側はこう

echo "hello,world!" | socat stdin udp-sendto:192.168.0.11:12345


これを、パケット受信ごとにダンプしたりしたいときは次のように変える

socat udp-recvfrom:12345,reuseaddr,fork system:"hexdump -C >&2"

udp-listenはずっと待ち受け続けるけど、udp-recvfromは1パケットだけ受信して閉じる
forkを付ければまた受信をする

systemはプログラムをsysytem関数で起動する
execでも起動するけど、リダイレクトとか使えないので必要に応じて使い分ける


基本的に、起動したプログラムの標準出力は送信元に返送される
たとえばダンプして中身を見たいときは標準エラー出力に出すと良い

Firefoxで、リンク先をすぐダウンロードする

Altキーを押しながら左クリックで リンク先をすぐダウンロードフォルダに保存できる
なんか効かないときは設定が無効になっているので、 about:config で browser.altClickSave を true に変更する
f:id:iww:20200930141431p:plain

リンク先の開き方をコントロールするショートカット+クリック(Firefox & Chrome用) | ライフハッカー[日本版]
FirefoxでAlt + クリックしてもリンク先を保存できない場合の対処法 | コトノバ

bashでjqを使ってJSONの配列をループさせる

jsonの配列をシェルスクリプトとjqでループさせて取得する

[
  { "ip" : "192.168.10.105", "name" : "玄関" },
  { "ip" : "192.168.10.102", "name" : "居間" },
  { "ip" : "192.168.10.101", "name" : "トイレ" },
  { "ip" : "192.168.10.100", "name" : "寝室" }
]

こんな感じのJSONの配列をループして処理する

cat hoge.json |jq -c .[] |while read JSON; do
  IP=$(echo $JSON |jq -r .ip)
  NAME=$(echo $JSON |jq -r .name)

  echo $IP$NAME です
done
$ ./hoge.sh
192.168.10.105 は 玄関 です
192.168.10.102 は 居間 です
192.168.10.101 は トイレ です
192.168.10.100 は 寝室 です
続きを読む

ご飯のカロリーと糖質量

ご飯のカロリーは検索しても結果がバラバラでよくわからない
とくに無洗米のカロリーとか糖質を知りたい

とりあえず、文科省の記事から順番に計算していく
食品成分データベース

白米のページに、100gあたりの栄養価が載っている
穀類/こめ/[水稲穀粒]/精白米/うるち米 - 一般成分-無機質-ビタミン類-アミノ酸-脂肪酸-炭水化物-有機酸等
糖質量は載ってないけど、炭水化物-食物繊維=糖質 くらいに考える

白米は、1合(180ml)あたり 約150g
合 - Wikipedia

無洗米は、白米を研いだ時に流れるぬか(5%) を計量時に引くのが流儀っぽい
無洗米のおいしい炊き方 - 東洋ライス株式会社
無洗米計量カップ


以上をもとに計算すると、だいたいこんな感じ

白米 100g 白米 150g(1合) 無洗米 1合(5%引き) 無洗米 0.5合分
カロリー 358 kcal 537 kcal 510 kcal 255 kcal
たんぱく質 6.1 g 9.1 g 8.7 g 4.3 g
脂質 0.9 g 1.4 g 1.3 g 0.6 g
炭水化物 77.6 g 116.4 g 110.6 g 55.3 g
(糖質) 77.1 g 115.6 g 109.9 g 54.9 g
(食物繊維) 0.5 g 0.8 g 0.7 g 0.4 g
塩分 0 g 0 g 0 g 0 g

白米1合150g を炊くと、ごはんとしては 330g になるらしいけど 無洗米は計算が面倒くさそう