yt-dlp 2022.03.08でAbemaTVが対応していたので試してみました.
[AbemaTV] Add extractors by Lesmiscore
yt-dlp 2022.03.08でAbemaTVが対応していたので試してみました.
[AbemaTV] Add extractors by Lesmiscore
YouTubeで配信されているラジオ番組の1話を視聴して面白かったのでダウンロードして移動中などに聞こうと思いました.ダウンロードにはyt-dlpを利用しました.
Raspberry Pi OS bullseye がリリースされていたので手元のRaspberry Pi 3 model B のOS をbuster からbullseye にアップグレードしてみました.
Debian等でのインストール直後のawkは mawk
が導入されます.
Debianのパッケージでは他にGNU awk(パッケージ名 gawk
), The One True Awk(パッケージ名 original-awk
)というものもあります.*BSDなどでよく見る nawk
もあるように見えますが,シンボリックリンクだけのようです.
(他にもあるかもしれない?)
mawk
は初期状態で入っていて軽量.GNU awk
はmawkに比べて多機能で既定値では導入されませんが, byobu
などが依存を求めるので入っている人も多いと思います.
複数のawkパッケージが導入されているときに awk
と実行したときは update-alternatives
で管理されたシンボリックリンク先のいずれかのawkが実行されます.これを切り替えてみます.
cpufetchというscreenfetchインスパイアな感じのcpu情報表示ツールを見かけたので試してみました.
$ git clone https://github.com/Dr-Noob/cpufetch
$ cd cpufetch
$ make
$ ./cpufetch -s retro
################
####### #######
#### ####
### #### Name: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
### ### Microarchitecture: Ivy Bridge
### ### Technology: 22nm
# ### ### ### Max Frequency: 3.300 GHz
## ### ######### ###### ###### ### ### Cores: 2 cores (4 threads)
## ### ### ### ### #### #### ### ### AVX: AVX
## ### ### ### ### ### ### ### ### FMA: No
## ### ### ### ### ########## ### #### L1i Size: 32KB (64KB Total)
## ### ### ### ### ### ### ##### L1d Size: 32KB (64KB Total)
## ## ### ### ##### ######### ## ### L2 Size: 256KB (512KB Total)
### L3 Size: 3MB
### Peak Performance: 52.80 GFLOP/s
#### ####
##### ##########
########## ################
###############################
標準のスタイルでテキストで貼り付けると真っ白になるので retro
です.通常の実行結果は以下に.
コマンドラインの標準入力をあいまい検索してその結果を主治力出来るpickというコマンドを知ったので試してみました.
たくさんの環境パッケージがあります.今回はDebian sid amd64とRaspberry Pi OS buster armhfで pick
パッケージを導入しました.
$ sudo apt install pick (1)
$ ls ~/Downloads/*.pdf | wc -l (2)
181
$ ls ~/Downloads/*.pdf | pick | xargs -I{} xpdf "{}" (3)
rpi (4)
/home/matoken/Downloads/rpi_DATA_CM_3p0.pdf
/home/matoken/Downloads/rpi_MECH_3b_1p2.pdf
/home/matoken/Downloads/RPi-Camera-User-Manual.pdf
/home/matoken/Downloads/rpi_SCH_3b_1p2_reduced.pdf
/home/matoken/Downloads/rpi_SCH_4b_4p0_reduced.pdf
/home/matoken/Downloads/rpi_SCH_ZeroW_1p1_reduced.pdf
/home/matoken/Downloads/RPi_Pi Pico_Digital Edition.pdf
pick
パッケージ導入上下カーソル入力で結果を選択,Enterで確定.確定された行はSTDOUTに出力され,今回の例では xpdf で開かれる.
コマンド結果が多くて grep を繋いでいくみたいなときに pick を使うとインタラクティブに絞り込まれたりしてわかりやすいです.
似たものに sysbox の choose-stdin というものもあります.
$ dpkg-query -W pick
pick 2.0.2-1.1
$ lsb_release -dr
Description: Debian GNU/Linux bullseye/sid
Release: unstable
$ uname -m
x86_64
$ dpkg-query -W pick pick 2.0.2-1 $ lsb_release -dr Description: Raspbian GNU/Linux 10 (buster) Release: 10 $ uname -m armv7l $ cat /proc/device-tree/model ;echo Raspberry Pi 3 Model B Rev 1.2
盆栽が表示できるアプリです.
sourceとx86_64用の.debがあります.armhf環境でsourceからbuildしてみました.
$ sudo apt install libncurses-dev build-essential
$ git clone https://gitlab.com/jallbrit/cbonsai
$ cd cbonsai
$ make
$ install ./cbonsai ~/bin/
いくつかの実行例です.
$ cbonsai (1)
$ cbonsai -p (2)
$ cbonsai -l (3)
$ cbonsai -l -t 0.01 (4)
$ cbonsai -c '<>' (5)
$ cbonsai -m "hello BONSAI" (6)
$ cbonsai -i -w1 (7)
楽しいです🌳
ログイン時に盆栽とfortuneのメッセージを表示したいときはこんな感じで.
$ echo 'cbonsai -p -m "`fortune`"' >> ~/.profile
$ git log -1
commit 15e19580ddc58741291386000076928b2e591ef2 (HEAD -> master, origin/master, origin/HEAD)
Author: John A <jallbritten6@gmail.com>
Date: Thu Mar 4 10:37:32 2021 -0500
Update install instructions and add bashrc notice
$ dpkg-query -W libncurses-dev build-essential
build-essential 12.6
libncurses-dev:armhf 6.1+20181013-2+deb10u2
$ lsb_release -dr
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
$ arch
armv7l
$ cat /proc/device-tree/model && echo
Raspberry Pi 3 Model B Rev 1.2
なんとなくジョークプログラムのslを導入しました.
$ sudo apt install sl
しかし物足りません🤔
昔はSunOS上でとても長い編成だったり通り過ぎて遮断器が上がったかと思うとまた下がって折り返したりするpatchを当てていました.探してみると恐らくこちらのもの.
しかしpatchがリンク切れ.Wayback Machineにも見つかりません.
検索するとこちらのページを発見.patch適用済のものをGitHubにアップロードされています.こちらを試してみました.
$ sudo apt build-dep sl (1)
$ git clone https://github.com/gmkou/sl (2)
$ cd sl
$ make (3)
$ install ./sl ~/bin/ (4)
$ which sl (5)
/home/matoken/bin/sl
$ sl
30両くらいのなが〜いslも出現するようになりました😻これでlsのTypo矯正が捗る……かもしれません.
こちらのslはミラーバージョンでlsの結果を反転させて表示します.これも楽しい
$ /tmp/sl -l
04 latot
dm.ETALPMET_EUSSI 70:60 2 raM 044 nekotam nekotam 1 --r--r-wr-
elifekaM 70:60 2 raM 868 nekotam nekotam 1 --r--r-wr-
dm.EMDAER 70:60 2 raM 0351 nekotam nekotam 1 --r--r-wr-
itg 70:60 2 raM 0079 nekotam nekotam 1 x-rx-rxwr-
6.itg 70:60 2 raM 8001 nekotam nekotam 1 --r--r-wr-
c.itg 70:60 2 raM 2258 nekotam nekotam 1 --r--r-wr-
$ ls -l
total 40
-rw-r--r-- 1 matoken matoken 440 Mar 2 06:07 ISSUE_TEMPLATE.md
-rw-r--r-- 1 matoken matoken 868 Mar 2 06:07 Makefile
-rw-r--r-- 1 matoken matoken 1530 Mar 2 06:07 README.md
-rwxr-xr-x 1 matoken matoken 9700 Mar 2 06:07 gti
-rw-r--r-- 1 matoken matoken 1008 Mar 2 06:07 gti.6
-rw-r--r-- 1 matoken matoken 8522 Mar 2 06:07 gti.c
そういえばslインスパイアなgitに対するgtiというものもあります.これはgitと打とうとしてgtiと入力してしまったとき車が走っていきます🚗
楽しいですね.
$ git clone https://github.com/rwos/gti
$ cd gti
$ make
$ install ./gti ~/bin/
$ gti
$ lsb_release -dr
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
$ uname -a
Linux raspberrypi 5.10.11-v7+ #1399 SMP Thu Jan 28 12:06:05 GMT 2021 armv7l GNU/Linux
$ cat /proc/device-tree/model ;echo
Raspberry Pi 3 Model B Rev 1.2
大きなGitリポジトリをcloneすると時間がかかります.最新のものだけが欲しい場合は --depth
オプションがありますが,リポジトリの一部のディレクトリ以下だけが欲しい時には使えません.そういうときにGitHub cloneを使うと,特定のディレクトリ以下だけをダウンロードできて便利そうです.
少し試してみました.
$ pip3 install git+git://github.com/HR/github-clone#egg=ghclone (1)
$ ghclone (2)
Usage:
ghclone <url> [-t | --token=<token>]
ghclone (-h | --help)
ghclone (-v | --version)
$ ghclone https://github.com/torvalds/linux/tree/master/tools/usb/usbip (3)
Cloning into 'usbip'...
done.
$ cd usbip
$ ls -A (4)
.gitignore AUTHORS COPYING INSTALL Makefile.am README autogen.sh cleanup.sh configure.ac doc libsrc src vudc
$ git status (5)
fatal: not a git repository (or any of the parent directories): .git
$ cd ..
$ ghclone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/usb (6)
Invalid GitHub URI
~/.local/bin
を加える)GitHub.comのAPIを利用しているのでGitHub.com以外では使えませんが便利そうです.
似たものにBitBacketで同様のことができる,「bb-clone」というものもあるようです.
$ ghclone -v 1.2.0 $ dpkg-query -W git python3-pip python3 git 1:2.20.1-2+deb10u3 python3 3.7.3-1 python3-pip 18.1-5+rpt1 $ lsb_release -dr Description: Raspbian GNU/Linux 10 (buster) Release: 10 $ uname -a Linux raspberrypi 5.10.11-v7+ #1399 SMP Thu Jan 28 12:06:05 GMT 2021 armv7l GNU/Linux $ cat /proc/device-tree/model ;echo Raspberry Pi 3 Model B Rev 1.2
この記事は 日本Androidの会秋葉原支部ロボット部 Advent Calendar 2020 の20日分の記事です.
日本Androidの会秋葉原支部ロボット部は現在月に一回勉強会を行い様々な話題で盛り上がっています.
次の勉強会はちょうど今日(20日)です.興味のある方は覗いてみてください.
センサーのログなどをアップロードするのに色々なwebサービスを使ったり,Googleスプレッドシートに書いたりしています.
便利なんだけどロックインになるのは嫌だなって思ったりします.
Nextcloudというファイル共有サービス+αなOSSがあります.アプリケーションを追加して機能を増やすことが出来ます.例えばテレビ電話や,オンラインオフィスとか,マップサービスとか様々なアプリがあります.
これを個人的に立てて便利に使っています
この中のアプリを眺めているとSensorloggerというセンサーのログを保存できそうなものを見つけたので試してみました.
まずNextcloudですが,とりあえず試すだけならsnapを利用するのがお手軽です.Raspberry Pi + Raspberry Pi OSなどでもOKです.
Debian sid amd64/Ubuntu 20.04 LTS/Raspberry Pi OS armhfでは以下の手順でOKでした.
$ sudo apt update && sudo apt upgrade (1)
$ sudo apt install snapd (2)
$ sudo snap install nextcloud (3)
snapd
パッケージを導入10分位待つと導入が終わります.ウェブブラウザにIPアドレスを入力するとセットアップ画面が表示されるので管理者ID/PASSWORDを設定します.
これでとりあえず使えるようになったと思います.
この後Sensorloggerを導入します.
管理者権限のアカウントでNextcloudの右上のメニューから「アプリ」を開きます.
次に上の検索バーに「Sensorlogger」とかの文字列で検索して「有効」ボタンを押して導入します.
Tip |
Nextcloudのアプリケーションはコマンドラインから導入することも出来ます.$ sudo -u www-data occ app:install sensorlogger #通常導入した場合$ sudo /snap/bin/nextcloud.occ app:install sensorlogger #snapで導入した場合 |
ここからは一般ユーザでOKです.
Nextcloudの上部から「Sensorlogger」のアイコンをクリックするとSensorloggerの画面が表示されます.
はじめはデータがないのでまっさらです.「Device」辺りでデバイスの登録をするのかな?と思いましたが出来ません.
「Read SensorLogger Wiki Devices」と書かれているのでWikiを参照してみます.
データを送ると自動的にデバイスが出来るようです.Simple, Complexの2種類のデータタイプがあるようです.Simpleは温度,湿度のようでとりあえずこれを試してみます.
以下の辺りから post.php を持ってきて使います.このscriptはダミーのランダムな温度と湿度データを作ってSensourloggerにデータを投げます.
$NEXTCLOUDPATH/apps/sensorlogger/tests/curl/post.php
通常導入した場合/snap/nextcloud/current/htdocs/apps/sensorlogger/tests/curl/post.php
snapで導入した場合何箇所か書き換えます.
* $url = ` を自分のNextcloudのURLに変更します.
を
* `$array = array("deviceId" ⇒uuidgen
コマンドなどで生成したUUIDに変更します.
* $username =
をNextcloudの自分のユーザーに変更します.
* $token =
に「設定」「セキュリティ」ページの「デバイスとセッション」の一番下の「新しいアプリパスワードを作成」で作成したトークンに修正します.
そしてphpとphp-curlが必要なので導入します.
$ sudo apt install php-cli php-curl
この状態で post.php
を実行して成功すると以下のようなメッセージが帰ってきます.
$ php ./post.php
{"success":true,"message":"Sensor Log successfully stored","data":null}
Sensorloggerのページの List
を見るとエータがアップロードされているのが解ります :)
手動で実行するのは大変なのでcrontabにこんな感じで登録してみます.5分に一回データを送信します.
$ crontab -e (1)
$ crontab -l | grep post.php (2)
*/5 * * * * php ~/tmp/post.php 2&>1 > ~/tmp/post.php.log
同様にRaspberry Piの温度も送ってみます.温度の $temperature
を以下のような感じで書き換えて,UUIDも書き換えるとOK.これもcrontabに登録します.
$temperature = system( '/opt/vc/bin/vcgencmd measure_temp | awk -F "[=\']" \'{print $2 }\' | tr -d \'\n\'' );
しばらく動かしてからダッシュボードを設定するとこんな感じのチャートが表示できました.
密集してよくわからない部分はマウスドラッグで矩形選択するとその部分がズームされます.
という感じでとりあえず動きました.ドキュメントが未だ充実していな買ったり使い勝手も悪いですが最低限の機能はあるかなという感じです.
興味があったら試してみてください.
若しくはおすすめのアプリやサービスを教えてください.