Bye Bye Moore

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

GOBOT:Firmata経由でGO言語からガジェットを操作できるパッケージ

gobot.io


nodeからガジェットを操作するJohnny-fiveのGO版とでも呼ぶことができるツールです。
github.com

実際のところ

ガジェット

今回はArduino UNO R3を対象とします。
大前提として、操作先がFirmataの受け入れ体制ができてる必要があります。
直接Firmataパーサーをぶっ込んでもいいですし、
公式が推奨するGortパッケージを別途導入してもいいです。gort.io

PC側

GOパッケージで入れて、

$ go get -d -u gobot.io/x/gobot/... && go install gobot.io/x/gobot/platforms/firmata

Arduino

GORTを導入します

$ brew install hybridgroup/tools/gort

それ以外の方は公式リンクをどうぞ
Downloads

ポートの捜査

gortのscanサブコマンドでポートを調べます。

$ gort scan usb
/dev/cu.Bluetooth-Incoming-Port		/dev/tty.Bluetooth-Incoming-Port
/dev/cu.GMSPP01-101E-SerialPort		/dev/tty.GMSPP01-101E-SerialPort
/dev/cu.Mtm-iPhone-WirelessiAP		/dev/tty.Mtm-iPhone-WirelessiAP
/dev/cu.Mtm-iPhone-WirelessiAP-2	/dev/tty.Mtm-iPhone-WirelessiAP-2
/dev/cu.usbmodem1411			/dev/tty.usbmodem1411

今回は"/dev/tty.usbmodem1411"のようですね。
こいつをターゲットにしていして、arduinoへfirmataを書き込みます。

$ gort arduino upload firmata /dev/tty.usbmodem1411


avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909"
avrdude: writing flash (12224 bytes):

Writing | ################################################## | 100% 1.96s

avrdude: 12224 bytes of flash written
avrdude: verifying flash memory against /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909:
avrdude: load data flash data from input file /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909:
avrdude: input file /var/folders/02/546lp7s57l93kzydhj2dtyzr0000gn/T/471215909 contains 12224 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.58s

avrdude: verifying ...
avrdude: 12224 bytes of flash verified

avrdude done.  Thank you.

テキストファイルを逆順に表示(tacなし)

tacというコマンドを使えば、一発でテキストファイルを逆順に表示できます……
が、デフォで入ってない事も多いです。
今回はcatの行付きオプションとsort、sedを使って逆順表示を実現する方法について。

実際のところ

こんなファイルがあったとします

$ cat sample.txt 
igabgweaf
a31tabag
pmbux
cvrawga

何も考えずにテキスト順で"sort -r"すると、まぁアルファベット逆順になるだけですね。

$ cat sample.txt | sort -k 1r
pmbux
igabgweaf
cvrawga
a31tabag

以下のようにすると、希望通り逆表示ができます。

$ cat -n sample.txt | sort -k 1nr | sed -e 's/^[0-9[:blank:]]*//'
cvrawga
pmbux
a31tabag
igabgweaf

【イベントログ】ベトナムフェスティバル2017に行ってきました

www.vietnamfes.net
代々木公園で行われた、ベトナムフェス2017に行ってきました。

備考
2018年は5/19~20、場所は同じく代々木公園だそうです。
http://www.vietnamfes.net/pdf/vf2018-press-release.pdf


現場の様子

入場ゲート
f:id:shuzo_kino:20170611165731j:plain
雑貨
f:id:shuzo_kino:20170611162844j:plain
在日ベトナム人会からは
中国さんと揉めてる南シナ海領有権に関する展示が
f:id:shuzo_kino:20170611170428j:plain
出前ベトナム語講座
中国語の声調は4つなのに、ベトナム語は6個!!
……発音難しいです(^q^)
f:id:shuzo_kino:20170611163429j:plain


ベトナムの飲食店看板ってこんな感じでした
f:id:shuzo_kino:20170611172420j:plain

COUNTA関数で中身ありのセル数を数える

EXCELGoogle Spread Sheet共通の話題。
中身ありのセル数を数えるにはCOUNTA関数を遣います。

実際のところ

行方向

2行目の要素数

= COUNTA(C2:2)

列方向

C列の要素数

= COUNTA(C2:C)

コマンドエイリアスを無効にする

実際のところ

前回の記事のような、less拡張を前提としたエイリアスを貼っていたとします。

$ alias less='less -eMNF' 

そのまんま活用すると、こうですね

$ less sample.txt
      1 16 kByte
      2 19 kByte
      3 12 kByte
      4 19 kByte
      5 10 kByte
      6 15 kByte
      7 17 kByte
      8 10 kByte
      9 15 kByte
sample.txt lines 1-9/100 9%

ここで、コマンド前に"\"をつけてやるとエイリアスを無効化しデフォの小アンドを実行できます。

$ \less sample.txt
16 kByte
19 kByte
12 kByte
19 kByte
10 kByte
15 kByte
17 kByte
10 kByte
15 kByte
sample.txt

lessコマンドの表示内容を豪華にする

lessコマンドはテキストファイルの内容を確認するのに便利なツールです。
とはいえ、その機能は最小。
今回は、lessに行番号等々を付け加えリッチにする方法を扱います。

実際のところ

$ less -eMNF sample.txt 

オプションの意味はそれぞれ

  • e:一画面で収まるなら即終了
  • M:ボトムの現在位置情報をリッチに
  • N:行番号を表示
  • F:EOFに達したあと行送りをうけるとlessを終了

こんな感じで表示されます

      1 16 kByte
      2 19 kByte
      3 12 kByte
      4 19 kByte
      5 10 kByte
      6 15 kByte
      7 17 kByte
      8 10 kByte
      9 15 kByte
sample.txt lines 1-9/100 9%

参考もと

  • man less