min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash trapでctrl+c(シグナル)を捕捉したらコマンドを実行する

シェルプログラミング実用テクニック p379 ハト語に変換する(シグナル処理)を書いて実行してみる。

・コンソールで「hato」と入力すると「ポ」と返ってくるようにする。

f:id:min117:20161223125845p:plain

・ctrl+c(終了シグナル)を補足して、終了できなくする。

ソースはこれ。シグナル(SIGINT)の動きを知るにはよいサンプル。

f:id:min117:20161223130055p:plain

・動きはこんな感じ。

f:id:min117:20161223125738p:plain

シグナルは $ kill -l で確認できる。2)が SIGING(Signal Interrupt)すなわち ctrl+c のことらしい。

f:id:min117:20161223130236p:plain

RaspberryPi(初代)に node.js をインストールする(youtube-dl npm版 + node-omxplayer)

 

前記事(RaspberryPi 3)と同じことをラズパイの初代でやろうとしたらエラーになった。初代は ARM v6だから(?)か、node.jsのインストールにクセがあるらしい。以下のサイト参考に進めた。

sweep3092.hatenablog.com

ーーー

$ wget https://s3-eu-west-1.amazonaws.com/conoroneill.net/wp-content/uploads/2015/02/node-v0.12.0-linux-arm-pi.tar.gz$ tar -zxvf node-v0.12.0-linux-arm-pi.tar.gz

f:id:min117:20161221061831p:plain

tar -zxvf node-v0.12.0-linux-arm-pi.tar.gz

f:id:min117:20161221061823p:plain

$ cd node-v0.12.0-linux-arm-pi

$ sudo cp -R * /usr/local/

f:id:min117:20161221061757p:plain

バージョン確認

f:id:min117:20161221061746p:plain

ここからは前記事のとおり進める。

min117.hatenablog.com

$ sudo npm cache clean

$ sudo npm install n -g

f:id:min117:20161221061738p:plain

$ sudo n stable

f:id:min117:20161221062346p:plain

インストールされた。

f:id:min117:20161221062705p:plain

ーーー

youtube-dl の npm版 をインストールしていく。

$ npm install youtube-dl

f:id:min117:20161221063151p:plain

エラーになった。

f:id:min117:20161221064021p:plain

無視してomxplayerをインストールしてみる。

$ npm install node-omxplayer

f:id:min117:20161221064240p:plain

こっちは入ったようだ。

ーーー

ソース gakki.js を作って動かしてみる。

f:id:min117:20161221064907p:plain

f:id:min117:20161221064917p:plain

$ node gakki.js

f:id:min117:20161221065204p:plain

だめだ。やはり youtube-dl のインストールがうまくいってないらしい。

MySQL(MariaDB) で 体重記録管理システム

 

iPhoneから体重計の画像と体重数値を入力して送信→fedoraPHPで、MySQLに格納する簡易体重記録システム。

f:id:min117:20161221002922p:plain

ソース。

f:id:min117:20161221000118p:plain

こないだまで動いてたのに、突然23行目のエラーに入るようになった。なんでかなと思ったら、15行目(黄色部分)でエラーになっていた。そういえばidフィールドに一意制約を入れたんだった。

f:id:min117:20161221000333p:plain

idフィールドを自動カウントアップにしないといけない。Auto Increment って MySQL でどうやるんだ。調べる。

 

調べた。

mysql> ALTER TABLE tbl_test02 CHANGE id int(11) AUTO_INCREMENT;

→ エラー。黄色いとこが間違い。

mysqlselect * from tbl_test02;

f:id:min117:20161221001521p:plain

「idを、id int(11) にする」なので「id id int(11)」が正しい。

f:id:min117:20161221001735p:plain

またエラーになった。赤線部分がおかしい。idフィールドに0のものがあるので怒られたようだ。update文で、idが0のを11に変えちゃえ。

mysql> update tbl_test02 set id=11 where id=0;

f:id:min117:20161221001845p:plain

分かりにくいけど、黒文字で「Query OK」が返ってきている。mysqlMariaDB)の応答コンソール文字列の色、せめて白っぽくしてほしい。見えない。

mysql> select * from tbl_test02;

mysqlALTER TABLE tbl_test02 CHANGE id id int(11) AUTO_INCREMENT;

f:id:min117:20161221002000p:plain

試してみる。

iPhoneからソースphpを開く→「ファイルを選択」から、投稿画像を選択。

f:id:min117:20161221002959p:plain  f:id:min117:20161221003035p:plain

「送信」でサーバに送ってから、MySQLに格納されたか確認。

f:id:min117:20161221003225p:plain

完璧。12行目ができてる。AUTO INCREMENT でidがカウントアップされてるのも確認。

 

 

RaspberryPi のファームウェアをアップデートする

 

RaspberryPIのファームウェアをアップデートする。最新になるといろいろ安定するようなので。今回は RaspberryPi(初代)で試す。別記事では RaspberryPi3で同じ手順をしたが、そちらもうまくいった。

ーーー

手順は以下サイトのとおり。そのまま。

qiita.com

記事内の 11 あたりの手順をそのままやればいい。

 

f:id:min117:20161218182106p:plain

実際やってみる。やる前後で uname -a して、どう変わるか比較する。

$ uname -a

f:id:min117:20161218183831p:plain

bash から python3 で twitter にテキストを投稿する

 

python3 を使ってtwitterに投稿する。

注意点

 python3 で動く。python2.7だと無理。

ソース

f:id:min117:20161217135402p:plain

f:id:min117:20161217135234p:plain

実行

$ python3 プログラム名.py

f:id:min117:20161217135412p:plain

Pythonで「ImportError: No module named requests」がでた時。 – FIZZY ROOM

 

jq、xmllintを切り捨てて全てシェルのパイプでやる漢(おとこ)の「日の出スクリプト」を試す

 

この記事最高。UNIX哲学を体現したような。

qiita.com

UNIX哲学って、単なる技術的な教示じゃない気がする。生き方とか片付けとか、仕事のしかたとか立ち居振る舞いに通ずる。

ーーー

記事内にある getsunrise.sh を fedoraで試す。

f:id:min117:20161215072349p:plain

うーむ。すごい。RaspberryPiでも試す。

f:id:min117:20161215072356p:plain

iMacでも試す。

f:id:min117:20161215072405p:plain

ありゃ?ダメだ。あとで調べる。

 

RaspberryPi 3 で youtube を自動再生する(youtube-dl npm版 + node-omxplayer)

RaspberryPi 3 でヌルヌルとスムーズな動画再生に欠かせない omxplayer に、node版というものがあるらしい。

pondad.net

適用なWebインターフェースを作れば、iPhoneやアンドロイドから自由に操作できるようにできそうな予感。

 

 

 

まずは node のインストールが必要なようだ。このサイトのとおり進めていく。

qiita.com

$ sudo apt-get install -y nodejs npm

f:id:min117:20161211105550p:plain

$ sudo npm cache clean

$ sudo npm install n -g

$ sudo n stable

f:id:min117:20161211105810p:plain

インストール完了したようだ。バージョン7.2.1との表記が見える。

f:id:min117:20161211105928p:plain

$ node -v

f:id:min117:20161211110110p:plain

ここまではよし。

ーーー

次は冒頭のサイトに戻って、youtube-dlのnpm版というのをインストールしていく。

$ npm install youtube-dl

f:id:min117:20161211110316p:plain

何かワーニング吐いてるな。

f:id:min117:20161211110509p:plain

気にせず次に行く。

ーーー

omxplayer の node版をインストールする。omxplayer を JavaScript から操作できるということなので、かなり期待大。

$ npm install node-omxplayer

f:id:min117:20161211110948p:plain

また何かワーニング出たけど気にしない。インストールされたことにする。

f:id:min117:20161211111008p:plain

冒頭サイトそのままのファイル名で作成。

$ vim pontube.js

f:id:min117:20161211111734p:plain

今回はコードもコピペ。

f:id:min117:20161211111755p:plain

さて、動くかな。

$ node pontube.js

f:id:min117:20161211112202p:plain

再生スタートの表示が出て…

f:id:min117:20161211112244p:plain

うお。まじか。スムーズ再生。

f:id:min117:20161211112428p:plain

こりゃすごい。ソースをコピーして、再生先アドレスをこっちに変えてみる。

www.youtube.com

ソースをコピーして編集。

f:id:min117:20161211112905p:plain

6行目のアドレス部分を書き換えて保存。 

f:id:min117:20161211113051p:plain

再生テスト。

f:id:min117:20161211113207p:plain

完璧。

f:id:min117:20161211113710p:plain

ーーー

後記

同じことを RaspberryPi(初代)でやるにはこっち。

min117.hatenablog.com

 

qiita.com