ページャーのlv, less, moreからエディタを起動する

ページャーの lv でファイルを見ているときに猫がなにかキーを押してvimが起動しました.どうも何かのキーバインドで lv からvimが起動できるようです.

manを見ると v でエディタが起動するようです.

man lvより
v:     Launch the editor defined by option -E

そして -E オプションでエディタのコマンドがカスタマイズできるようです.

man lvより
-E'<editor>' (default 'vi -c %d')
       Editor name (default 'vi -c %d')
       ``%d'' means the line number of current position in a file.

しかし,lv起動時にこのオプションを指定するのは面倒.環境変数 EDITOR は効くかなと試すと効くようです.こちらで設定したほうがいいかもしれませんね.

$ EDITOR=ed lv ~/.bashrc

lvは環境依存が大きいのでもう少し汎用的なlessでも確認すると同じように v でviか,環境変数 EDITOR で指定されたものが起動するようです.

man lessより
v      Invokes an editor to edit the current file being viewed.  The editor is taken from the environment variable VISUAL if defined, or  EDITOR  if
       VISUAL is not defined, or defaults to "vi" if neither VISUAL nor EDITOR is defined.  See also the discussion of LESSEDIT under the section on
       PROMPTS below.

追記 2021-03-10)
moreコマンドも同様に v でエディタが起動します :)

man moreより
v         Start  up an editor at current line.  The edi‐
          tor is taken  from  the  environment  variable
          VISUAL  if defined, or EDITOR if VISUAL is not
          defined, or defaults to vi if  neither  VISUAL
          nor EDITOR is defined.
環境
$ dpkg-query -W lv less vim ed util-linux
ed      1.17-1
less    551-2
lv      4.51-8
util-linux      2.36.1-7
vim     2:8.2.2434-3
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64

Twitterクライアントsayakaちゃんの最新版(3.5.0)をLinuxでビルドする

追記2021-03-09)
Raspberry Pi OS buster armhf 及び Ubuntu 21.04 (development branch) amd64でも同様にビルドできました :)

ターミナルで動作するTwitterクライアントとしてsayakaちゃんというものがあります.NetBSDの入ったSHARP X68030でも動作するという軽量なクライアントで,SIXELで画像が表示できたりストリームモードがあってハッシュタグなどを垂れ流すのに便利に使っています.

今日オープンソースカンファレンス2021 Online/Spring 2日目があって @ebijunさんの「NetBSDのご紹介」 を視聴していたのですが,新しいバージョンの 3.5.0 がリリースされたとのことで試してみました.

twitter クライアント sayaka ちゃん version 3.5.0 (2021/03/03)
ターミナルに特化した twitter クライアントです。

フィルタストリームの垂れ流しが出来ます。
フィルタストリームによる疑似ホームタイムラインが表示できます。
mlterm などの SIXEL 対応ターミナル用です。
X68030/25MHz、メモリ12MB でも快適(?)動作。
更新履歴
3.5.0 (2021/03/03) … C++ に移行し vala 版廃止。 画像は現在のところ JPEG, PNG のみ対応。 ターミナル背景色の自動取得を実装。 --protect、--support-evs オプション廃止。 --noimg オプションを廃止 (--no-image に変更)。 userstream 時代の録画データの再生機能廃止。

watchしてたけどメール届いていないようです?

sayaka watch

現在のバーションを確認してみます.1つ前のバージョンぽいですね.

$ sayaka --version
sayaka.vala 3.4.6 (2020/11/10)

ビルドを試みます.

$ git clone https://github.com/isaki68k/sayaka/ (1)
$ cd sayaka
$ git checkout 3.5.0
HEAD is now at 958f630 ver 3.5.0 (2021/03/03)
$ ./configure (2)
  1. sayakaのsourceをclone
  2. configure

足りないものがパッケージ名で表示されて助かります :)

configure: error: *** mbedtls not found.
        On Ubuntu, sudo apt install libmbedtls-dev
configure: error: *** mbedtls not found.
        On Ubuntu, sudo apt install libmbedtls-dev

./configure が通ったらmake……失敗です.

$ make
(cd src; make all)
make[1]: Entering directory '/home/matoken/src/sayaka/src'
Makefile:3: *** missing separator.  Stop.
make[1]: Leaving directory '/home/matoken/src/sayaka/src'
make: *** [Makefile:2: all] Error 2

必要なものをよく見ると,GNU makeではなく BSD make が必要となっていました.(3.4.6を確認するとこのときはGNU makeなので今回変わったようです)

必要なもの
C++17 compiler
jpeg (libjpeg)
libpng
mbedtls (2.9.0 or later?)
BSD make (not GNU make)

BSD makeを導入してGNU makeではなくBSD makeを使います.

$ sudo apt install bmake (1)
$ bmake sayaka (2)
$ src/sayaka --version (3)
sayaka version 3.5.0 (2021/03/03)
$ install src/sayaka ~/bin/ (4)
  1. BSD makeを導入
  2. BSD makeでsayakaをmake
  3. 出来上がったsayakaを叩いてみる
  4. sayakaを適当な場所( ~/bin )にコピーにinstall

ということでsayaka 3.5.0 にできました :)

私はmlterm等のSIXEL対応端末で検索したいキーワードを繋げていってデスクトップの横においておくといった感じで使っています.

環境
$ sayaka --version
sayaka version 3.5.0 (2021/03/03)
$ ldd src/sayaka | cut -f1 -d"(" | cut -f3 -d" " | xargs -n1 apt-file search | cut -f1 -d: | uniq | xargs dpkg-query -W | grep amd64
libbsd0:amd64   0.11.3-1
libc6:amd64     2.31-9
libgcc-s1:amd64 10.2.1-6
libjpeg62-turbo:amd64   1:2.0.6-2
libmbedcrypto3:amd64    2.16.9-0.1
libmbedtls12:amd64      2.16.9-0.1
libmbedx509-0:amd64     2.16.9-0.1
libmd0:amd64    1.0.3-3
libpng16-16:amd64       1.6.37-3
libstdc++6:amd64        10.2.1-6
zlib1g:amd64    1:1.2.11.dfsg-2
$ dpkg-query -W bmake build-essential
bmake   20200710-7
build-essential 12.9
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64

盆栽楽しい

cbonsai

盆栽が表示できるアプリです.

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)
  1. 盆栽を表示(なにかキー入力で終了)
  2. 盆栽をプリントして終了
  3. ライブモード
  4. ライブモードで速度を1/3に(既定値0.03で単位は秒)
  5. 葉っぱを変更
  6. メッセージを表示(マルチバイト文字は不可)
  7. 無限に表示,間隔を1秒間隔に(既定値は4.00秒)

楽しいです🌳

ログイン時に盆栽と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

ZSTD 1.4.9でLong Modeが速くなったらしいので少し試す

ZSTD 1.4.9がリリースされていました.

今回 --long 利用時に最大2倍の高速化が売りのようです.それはすごいってことで少し試してみました.

>2x Faster Long Distance Mode
Long Distance Mode (LDM) --long just got a whole lot faster thanks to optimizations by @mpu in #2483! These optimizations preserve the compression ratio but drastically speed up compression. It is especially noticeable in multithreaded mode, because the long distance match finder is not parallelized.

現在のzstdのバージョンは1つ前の1.4.8でした.

$ zstd -V
*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***

1.4.9をsourceからbuildします.

$ sudo apt build-dep zstd (1)
$ git clone https://github.com/facebook/zstd (2)
$ cd zstd
$ git checkout v1.4.9 (3)
$ make (4)
$ ./zstd -V (5)
*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***
  1. zstdビルドに必要なパッケージの導入
  2. sourceのclone
  3. 1.4.9に切り替え
  4. make
  5. バージョン確認
ZSTD(1)
       •   --long[=#]:  enables long distance matching with # windowLog, if not # is not present it defaults to 27. This increases the window
           size (windowLog) and memory usage for both the compressor and decompressor. This setting is designed to  improve  the  compression
           ratio for files with long matches at a large distance.

           Note: If windowLog is set to larger than 27, --long=windowLog or --memory=windowSize needs to be passed to the decompressor.

--long は 31までのようです.32を指定するとこういうエラーになります.

zstd: error 11 : Parameter is out of bound

ちょうど大きめのtarがあったのでこれで試します.

$ ls -l ../linux-5.11.tar
-rw-r--r-- 1 matoken matoken 1064212480 Feb 15 18:18 ../linux-5.11.tar
$ grep -m1 ^"model name" /proc/cpuinfo (1)
model name      : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
$ nproc (2)
4
$ /bin/time -f"\treal\t%e" zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (3)
        real    8.10
$ /bin/time -f"\treal\t%e" ./zstd -q -T`nproc` -1 --long=31 ../linux-5.11.tar -o /dev/null (4)
        real    5.27
$ /bin/time -f"\treal\t%e" zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (5)
        real    8.36
$ /bin/time -f"\treal\t%e" ./zstd -q -T`nproc` --long=31 ../linux-5.11.tar -o /dev/null (6)
        real    5.76
$ /bin/time -f"\treal\t%e" zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (7)
        real    388.15
$ /bin/time -f"\treal\t%e" ./zstd -q -T`nproc` -19 --long=31 ../linux-5.11.tar -o /dev/null (8)
        real    318.08
$ /bin/time -f"\treal\t%e" zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (9)
        real    11.81
$ /bin/time -f"\treal\t%e" ./zstd -q -T1 --long=31 ../linux-5.11.tar -o /dev/null (10)
        real    7.89
  1. CPUは Intel® Core™ i5-3320M CPU @ 2.60GHz
  2. プロセッサ数
  3. 圧縮レベル1(最低)の1.4.8で8.10s
  4. 圧縮レベル1(最低)の1.4.9で5.27s
  5. 圧縮レベル3(デフォルト)の1.4.8で8.36s
  6. 圧縮レベル3(デフォルト)の1.4.9で5.76s
  7. 圧縮レベル19(最高)の1.4.8で388.15s
  8. 圧縮レベル19(最高)の1.4.9で318.08s
  9. スレッド数を1にしたときの圧縮レベル3(デフォルト)の1.4.8で11.81s
  10. スレッド数を1にしたときの圧縮レベル3(デフォルト)の1.4.8で7.89s

2倍とまでは行きませんが速くなっているようです :)
マルチスレッドで聞きそうなことが書かれていますが,スレッド数を1にしてもあまり割合変わらない?

この環境はよくサーマルスロットリングしているので参考程度に…….

環境
$ ./zstd -V
*** zstd command line interface 64-bits v1.4.9, by Yann Collet ***
$ zstd -V
*** zstd command line interface 64-bits v1.4.8, by Yann Collet ***
$ dpkg-query -W zstd
zstd    1.4.8+dfsg-2.1
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64

いくつかの”sl”コマンドを試す

ノーマル?sl

なんとなくジョークプログラムのslを導入しました.

$ sudo apt install sl

sl pkg

しかし物足りません🤔

Izumiさん改造版

昔は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
  1. slのビルドに必要なパッケージを導入
  2. sourceをclone
  3. make
  4. 適当な場所にインストール
  5. slのパスを確認

sl long

30両くらいのなが〜いslも出現するようになりました😻これでlsのTypo矯正が捗る……かもしれません.

ミラー版sl

こちらの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

おまけ)gti

そういえばslインスパイアなgitに対するgtiというものもあります.これはgitと打とうとしてgtiと入力してしまったとき車が走っていきます🚗

楽しいですね.

$ git clone https://github.com/rwos/gti
$ cd gti
$ make
$ install ./gti ~/bin/
$ gti

sl 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

GitHub.comのリポジトリの特定のディレクトリ以下をダウンロードできる「GitHub clone」

大きな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
  1. pipで導入する(もしPATHが通ってなければ ~/.local/bin を加える)
  2. USAGE
  3. Linux Kernelの一部だけをダウンロード
  4. ダウンロード内容確認
  5. Git管理はされていない
  6. GitHub以外のGitリポジトリに対して実行すると失敗する

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

インタラクティブバイナリエディタのGNU pokeをbuild

gnu poke

インタラクティブで拡張可能なバイナリエディタのGNU pokeの1.0がリリースされました.とりあえずビルドして使えるようにしてみました.

$ sudo apt install libgc-dev libreadline-dev build-essential (1)
$ wget https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz https://ftp.gnu.org/gnu/poke/poke-1.0.tar.gz.sig (2)
$ gpg2 --verify ./poke-1.0.tar.gz.sig (3)
gpg: assuming signed data in './poke-1.0.tar.gz'
gpg: Signature made Fri 26 Feb 2021 06:59:30 PM JST
gpg:                using RSA key BDFA5717FC1DD35C2C3832A23EF90523B304AF08
gpg: Good signature from "Jose E. Marchesi <jemarch@gnu.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: BDFA 5717 FC1D D35C 2C38  32A2 3EF9 0523 B304 AF08
$ tar tvf ./poke-1.0.tar.gz | lv
$ tar xf ./poke-1.0.tar.gz (4)
$ cd poke-1.0
$ mkdir build (5)
$ cd build
$ ../configure --help
$ ../configure (6)
$ make (7)
$ make check (8)
  1. 必要なパッケージの導入
  2. ソースファイルダウンロード
  3. 署名確認
  4. source展開
  5. ビルドディレクトリ作成
  6. configure
  7. make

必要パッケージについてはここではDebianで必要最小限の物です.その他の関連パッケージや環境は DEPENDENCIES に書かれています.

$ poke/poke ${FILE}
     _____
 ---'   __\_______
            ______)  GNU poke 1.0
            __)
           __)
 ---._______)

Copyright (C) 2019-2021 The poke authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Powered by Jitter 0.9.258.
Perpetrated by Jose E. Marchesi.

For help, type ".help".
Type ".exit" to leave the program.
(poke) .help TOPIC
Available help topics:

Commands:
        dump - display the contents of a range in the current IO space.
        copy - Copy a range of memory.
        save - Save a range of an IO space to a file.
        extract - Extract the contents of a mapped value to a mem IOS.
        scrabble - Scrabble part of an IO space based on patterns

To access the poke manual, type ".doc TOPIC".
(poke) dump
76543210  0011 2233 4455 6677 8899 aabb ccdd eeff  0123456789ABCDEF
00000000: 4d5a 7146 7044 3d27 0a00 0010 00f8 0000  MZqFpD='........
00000010: 0000 0000 0001 0008 4000 0000 0000 0000  ........@.......
00000020: 0000 0000 4a54 0000 0000 0000 0000 0000  ....JT..........
00000030: 0000 0000 0000 0000 0000 0000 500a 0000  ............P...
00000040: b240 eb00 eb14 9090 eb06 4883 ec08 31d2  .@........H...1.
00000050: bd00 00eb 05e9 a313 0000 fc0f 1f87 3ee0  ..............>.
00000060: bf00 7031 c98e c1fa 8ed7 89cc fb0e 1fe8  ..p1............
00000070: 0000 5e81 ee72 00b8 0002 5050 0731 ffb9  ..^..r....PP.1..
(poke) .exit

ちょっと起動してみましたが使い方がよくわからない……..docを読まないとかな?

$ sudo checkinstall \
--install=no \
--fstrans=no \
--maintainer='matoken@example.com' \
--pkgname='poke' \
--pkgversion='1.0' \
--pkgaltsource='http://www.jemarch.net/poke' \
make install
$ sudo apt install ./poke_1.0-1_amd64.deb

動くようなのでcheckinstallで一旦.debを作ってInstallしました.
活用できるといいな.

ちなみにいつもはbviを使うことが多いです.

環境
$ poke --version
GNU poke 1.0

Copyright (C) 2019-2021 The poke authors.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Powered by Jitter 0.9.258.
Perpetrated by Jose E. Marchesi.
$ dpkg-query -W libgc-dev libreadline-dev build-essential poke
build-essential 12.9
libgc-dev:amd64 1:8.0.4-3
libreadline-dev:amd64   8.1-1
poke    1.0-1
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -m
x86_64

ビデオ会議システムのAroundを少し試してみた(Linuxウェブアプリ版)

多分backspace.fm #379で初めてAroundを知りました.

Podcastでは招待制と言ってたけどGet startedとあるからからメールアドレスを登録できるので参加できるのではと思ったらメールアドレスを登録しても何も起こりません.FAQページを見ると招待制で順番待ちになるよう.

How do I sign up for Around?
Around is currently in beta and invite-only. Please click “Get Started” on the upper right hand corner and enter your email to be added to our waitlist.

around auth

気長にまとうと思ったのですが,いつの間にか登録可能になっていました.Get startedからGoogle/Slack/Apple等で認証することで参加できました.

#この数日後に登録していたメールアドレスに参加メールが届きました.

鹿児島らぐのアフターや自分一人で少し試したのでメモしておきます.(2021-02-17〜2021-02-28頃試した内容です)

Linuxでの参加方法

WindowsとmacOS版アプリが存在しますが,Linuxの場合現在はウェブアプリ版でウェブブラウザで参加することになります.Google Chomreが推奨されますが,Chromiumでも参加できました.
Firefoxでアクセスするとこのようなメッセージが出て参加できません.

Around app for
Linux is coming soon
In the meantime, you can join the meeting in a Google Chrome or Microsoft Edge browser.

ちなみにFAQページを見るとmobileとLinux版アプリについては開発中のようでcoming soonとなっています.期待して待ちましょう.

Do you have a mobile app?
Our mobile app is coming soon – stay tuned!

Do you have a Linux app?
Our Linux app is coming soon – stay tuned!

Android のGoogle Chrome で参加してみると,「We are on mobile yet!」とか言われますが,「PC 版サイト」にすると利用できました.iOSは未確認です.

管理画面と部屋への参加

around lobby

アカウントを持っている方は https://meet.around.co/ からミーティングを開始したり部屋を作ったり出来ます.ミーティング中の部屋は参加者のアイコンが表示されていま人が要るなというのがわかります.

around room ng

部屋は複数作成(3つまでは確認)できて,URLも変更できます.流石にLinuxとかは無理でしたが,matokenは取得できました :)
この辺は早いものがちみたいですね.

部屋をクリックすると部屋に入れます.右上の「Copy Meeting Link」を押して https://meet.around.co/r/ルームID といったミーティングURLをコピーして参加者に伝えます.このときの参加者はAroundのアカウントを持っていなくても参加できます.

around join

IDを入力して参加します.

around roomlock

既定値では許可待ちになるのでしばらく待ちます.

around roomaccept

管理者は許可してあげます.(設定でいきなり参加できるようにも出来ます)

around createaccount

参加するとAroundに登録していない人は右下にアカウント登録のポップアップが出るのでそこから登録が可能です.

Echo Terminator

around echo terminator

同じネットワークから複数人で参加しようとすると「Echo Terminator」を使うか聞いてきます.これを有効にすると同じ部屋でマイクとスピーカーを有効にしてもハウリングなどが起こらずに利用できるようです.私は未だ未確認ですがちゃんと動けばとても有用そうな機能です.この機能は特許出願中のようです.

メニュー

around main

ミーティング画面の上の方にメニューがいくつかあります.「Fliating Mode」はWebアプリ版では利用できません.(これが使えるとサブモニタがなくても結構便利そうな気がします.)「Campfire Mode」は顔がサークル状に表示されるモード,「Notes」はみんなで1つのノートを編集するモード,「Image Sharing」は画像共有モード(画像以外も共有できた),「Screen Sharing」は画面共有ができます.

around settings

右上の歯車⚙アイコンから各種設定が出来ます.ショートカットも書かれているので便利です.

カメラ

自分のカメラの映像は各参加者に転送された後顔の周りが丸くくり抜かれて表示されます.顔の位置が変わっても自動的に追従してくれます.(素人考えではローカルで自分のかをくり抜いてそれを転送したほうが良さそうだけど転送先で追尾するみたい)

デスクトップアプリでは「Floating mode」でこのカメラアイコンをフローティング表示することが可能なようです.これを使えるとシングルモニタでも画面を広く使えて便利そうです.

自分のカメラ映像をクリックすると虹🌈のアイコンが表示されるのでそれをクリックして右側にポップアップする「Enable video filters?」の「Enable」でフィルタが有効になります.このあとアイコンをクリックしたり F keyでフィルタが切り替わります.フィルタなしを含めて軽いものから強いものまで12種類あるようです.(寝癖直してないとかお化粧してないとかいったときにも有効そう?)

絵文字

around emoji gif

around emoji

下のテキストボックスの横に🖐のアイコンがあります.これを押すと挙手で,自分のアイコン横に表示されます.テキストボックスをクリックすると他の絵文字もポップアップしてきて好きな絵文字を押すとビデオの上に 一時的に 表示されます.テキストボックスに単語を入力することで絵文字のインクリメンタル検索も出来ます.

Note
この手のアイコンの色はアカウントを作成して肌のトーンを設定することがえきます.(https://meet.around.co/ → 右上の自分の名前 → Prefarences )
around skin tone

アニメーションGIF

インターネットミーム的な画像がたくさん

around gif

テキストボックスをクリックすると他の絵文字の右にアニメーションGIFも表示されます.好きな画像をクリックすると ビデオの代わりに その画像が表示されます.ビデオ上にマウスカーソルを移動して表示される☓アイコンをクリックすることでビデオに戻ります.アニメーションGIFも文字列でインクリメンタル検索できます.

Note
このサービスは「GIPHY」というサービスを使っているようです.そして,DMCA受け付けてるようです.
GIPHY | Search All the GIFs & Make Your Own Animated GIF
GIPHY DMCA Copyright Policy – GIPHY

メッセージやリンクの投稿

around message

メッセージや,リンクを投稿できます.投稿した文字列は自分のアイコンの上に表示されます.過去の投稿はミーティング中には恐らく確認できません.
このとき投稿したメッセージの中でリンクの含まれているものについてはミーティング終了後にメールで届きます.

ノート機能

around note

参加者みんなで1つのノートを編集できます.編集中はカーソル位置に編集者の名前が表示されますが,その時以外は誰がどの部分を編集したかはわからないようです.
このノートはアカウント登録者にはミーティング終了後に投稿されたリンクと一緒にメールで送られてきます.

画像共有(ファイル共有)

around file shareing

「Image sharing」で画像に関わらずファイルの共有が出来ます.このファイルはミーティング終了後に破棄されてしまうようです.必要なファイルはダウンロードしておきましょう.

画面共有

around screenview

画面共有されると,自分の環境に合わせて共有サイズを変更できます.

around screenshare

画面共有者は,「See what I’m sharing」をOnにすることで現在共有している画面をプレビューで見ることが出来ます.間違った画面を共有してしまうといった事故が減らせそうです.

まとめメール

around note mail

ミーティング終了後にアカウント登録者にまとめメールが届きます.時間や参加者,ノートとコメントに書いたリンクURLが1通のメールにまとめられて届きます.
コメントに書いた文章は添付されませんが,URLやURLの含まれるコメントは添付されます.

招待コード

around invites

https://meet.around.co/ → 「Extra invites to Around」を見ると5つ持っているようです.今の時点では誰でも登録できるようだけどまた制限されたときに使えるのかもしれません.

もし招待コードが欲しい人が居たら以下のフォームから教えてください.

まとめ

大抵のビデオミーティングでは顔が大きく表示され結構疲れます.慣れてくるとビデオをOffにしがちですがそうすると反応がわからず辛いです.Aroundだとビデオがアイコンだったりフィルタを使うと顔出しの抵抗が薄れるけど反応はわかる感じがしてチームなどで日常的に使うのに剥いている気がします.デスクトップアプリ版だと顔がポップアップできるのでマルチモニタ環境でなくてもそんなにビデオが邪魔にならず作業しながら使えそうです.
Echo Terminatorを使うと難しい複数拠点間でのミーティングも楽にできそうです.

Linux対応もする予定らしいのでそうするとポップアップモードが使えるようになったり,PCへの負荷も低くなると思うので期待しています.(Linuxネイティブクライアントのあるビデオミーティングサービスは少ないです.現在よく使われるものはSkypeとZoom.usくらい?)
(後はベータが終わると有料になると思うのでその値段がどのくらいになるのか……)

鹿児島Linux勉強会2021.02に参加

鹿児島Linux勉強会 2021.02は予定取り02/21(日)に開催されました.参加者は8人ほどでオンライン(Discord)で開催されました.

以下のような話題で盛り上がりました.

・スマートフォンをLinuxデスクトップのスピーカーに(してビデオ会議中に離席しても話に付いていけるようにする)
・GNU Radioの環境設定
・How to use Sourcetrail for kernel analysis
・はじめての980円ジャンクガラホ改造,UserLAndとUbuntu,ArchLinux
・摂氏と華氏をグラフにしてみた

終了後Aroundのテストがてら雑談をしました.Linux版クライアントももうすぐとのことなので気になっています.🐧

次回は03/06(土)のオープンソースカンファレンス2021 Online/Spring 2日目内で開催です.


以下はchatに出てきたリンク集です

https://kagolug.connpass.com/event/203393/
http://167.86.112.42:19001/p/kagolug-2021.02
https://gitlab.com/matoken/kagolug-2021.02/-/blob/master/slide/slide.asciidoc
https://github.com/matoken/kagolug-2021.02/releases/tag/1
https://avatars.githubusercontent.com/u/582400?s=400&v=4
https://www.asus.com/jp/Networking/RT-AC59U/
https://www.sanwa.co.jp/seihin_joho/thunderguard/index.html#kiso
https://www.youtube.com/watch?v=PZh5hzibdsk&vl=ja
https://www.youtube.com/channel/UCGhudK3AIG152KrfURCSb2Q
https://www.youtube.com/watch?v=PZh5hzibdsk
https://youtu.be/DVY-O4QOoMI
https://youtu.be/B496P9AuuOY
https://twitter.com/ichiken_make
https://amzn.to/2Wv56Yb
https://github.com/alanbjohnston/CubeSatSim/wiki/CubeSat-Simulator-Lite
https://repository-images.githubusercontent.com/149884796/82b70f00-6f07-11e9-9e3e-61ed89d9cb02
https://fosdem.org/2021/
https://fosdem.org/2021/news/2021-02-11-videos-on-fosdem/
https://fosdem.org/2021/schedule/track/free_software_radio/
https://fosdem.org/2021/schedule/event/fsr_gnu_radio_on_embedded_using_buildroot/
https://techlog.kishiro.com/2018/12/linuxfriio.html
https://matoken.org/nextcloud_cat.cgi?https://files.matoken.org/index.php/s/MiRMKyWWbZyxkZG/download
https://garapon.tv/pr_201703pc-app/
http://akiba.jpn.org/?p=37910
http://foltia.com/ANILOC/
https://www.amazon.co.jp/PLEX-PX-W3U4-USB%25E6%258E%25A5%25E7%25B6%259A-%25E5%259C%25B0%25E4%25B8%258A%25E3%2583%2587%25E3%2582%25B8%25E3%2582%25BF%25E3%2583%25AB%25E3%2583%25BBBS%25E3%2583%25BBCS%25E5%25AF%25BE%25E5%25BF%259CTV%25E3%2583%2581%25E3%2583%25A5%25E3%2583%25BC%25E3%2583%258A%25E3%2583%25BC/dp/B01MR4SLB6/ref=sr_1_23?__mk_ja_JP=%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A&dchild=1&keywords=Linux&qid=1613889374&s=computers&sr=1-23
https://www.hikaritv.net/
https://tailscale.com/
https://www6.nhk.or.jp/anime/program/detail.html?i=montana
https://rnavi.ndl.go.jp/research_guide/entry/post-442.php
https://www.nhk.or.jp/archives/
https://www.sourcetrail.com/
https://www.sourcetrail.com/documentation/#AppImage
https://deskreen.com/
https://appinventor.mit.edu/
https://connpass.com/event/201059/
http://www.kernelvm.org/
https://meet.around.co/r/kagolug
https://kagolug.connpass.com/event/203393/presentation/
https://www.youtube.com/watch?v=xdgNNP8j4gY
https://www.youtube.com/channel/UCxNoKygeZIE1AwZ_NdUCkhQ
https://forms.gle/KALd9U7fKmE6TNjQ7
https://twitter.com/pyconjptv
https://tv.pycon.jp/

Linux Kernel 5.11 をセルフビルドしたメモ

Linux Kernel 5.11 がリリースされました.

F2FSの圧縮周りもアップデートがあるようなので試してみたくなりました.ということでセルフビルドしたらこれまで出なかったエラーが出たのでメモしておきます.

Warning
Debian sid amd64の 5.10.0-3-amd64 環境でビルドしました.Linux 5.9はビルドしたことがあるけれど,Linux 5.10はビルドしたことのない環境です.

Linux 5.11 build時にエラー( BTF: .tmp_vmlinux.btf: pahole (pahole) is not available )

以下のようなエラーが発生しました.

$ make -j`nproc` bindeb-pkg
〜省略〜
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
〜省略〜
$ grep CONFIG_DEBUG_INFO_BTF ./.config
CONFIG_DEBUG_INFO_BTF=y

CONFIG_DEBUG_INFO_BTF を無効にすることも可能ですが, dwarves パッケージでDWARF utilitiesを導入するとこで解決しました.

$ sudo apt install dwarves

その他,DKMSでのVirtualBox moduleのビルドも失敗しました.これはVirtualBoxの対応待ちかなと思います.

ということで,以下のような感じで大丈夫そうです.

Linux 5.11のビルド

必要なパッケージの導入
$ sudo apt install build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves
ソースの入手,確認と展開
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.xz \
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.11.tar.sign (1)
$ unxz ./linux-5.11.tar.xz (2)
$ gpg --verify ./linux-5.11.tar.sign (3)
gpg: assuming signed data in './linux-5.11.tar'
gpg: Signature made Mon 15 Feb 2021 06:11:32 PM JST
gpg:                using RSA key 647F28654894E3BD457199BE38DBBDC86092693E
gpg: Good signature from "Greg Kroah-Hartman <gregkh@linuxfoundation.org>" [unknown]
gpg:                 aka "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>" [undefined]
gpg:                 aka "Greg Kroah-Hartman <gregkh@kernel.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 647F 2865 4894 E3BD 4571  99BE 38DB BDC8 6092 693E
$ tar tvf ./linux-5.11.tar | lv (4)
$ tar xf ./linux-5.11.tar (5)
$ cd linux-5.11
  1. sourceと署名を入手
  2. 解凍
  3. 署名確認(署名はこちらで確認)
  4. アーカイブ確認
  5. アーカイブ展開
configファイルの用意とビルド
$ cp /boot/config-`uname -r` ./.config (1)
$ yes "" | make oldconfig (2)
$ tar xf ../linux_5.10.9-1.debian.tar.xz debian/certs/ (3)
$ time make -j`nproc` bindeb-pkg (4)
  :
dpkg-deb: building package 'linux-libc-dev' in '../linux-libc-dev_5.11.0-1_amd64.deb'.
dpkg-deb: building package 'linux-image-5.11.0' in '../linux-image-5.11.0_5.11.0-1_amd64.deb'.
dpkg-deb: building package 'linux-image-5.11.0-dbg' in '../linux-image-5.11.0-dbg_5.11.0-1_amd64.deb'.
 dpkg-genbuildinfo --build=binary
 dpkg-genchanges --build=binary >../linux-5.11.0_5.11.0-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
$ ls -1s ../linux*.deb (5)
  7932 ../linux-headers-5.11.0_5.11.0-1_amd64.deb
728724 ../linux-image-5.11.0-dbg_5.11.0-1_amd64.deb
 52136 ../linux-image-5.11.0_5.11.0-1_amd64.deb
  1124 ../linux-libc-dev_5.11.0-1_amd64.deb
$ sudo apt install ../linux-image-5.11.0_5.11.0-1_amd64.deb ../linux-libc-dev_5.11.0-1_amd64.deb ../linux-headers-5.11.0_5.11.0-1_amd64.deb (6)
  1. 現在のkernel configをコピーする
  2. 新しい設定を既定値で設定
  3. Debianのkernel sourceから証明書をコピー(若しくは CONFIG_SYSTEM_TRUSTED_KEYS="" する)
  4. cpu数を指定してビルド開始
  5. 出来上がったパッケージの確認
  6. 出来上がったパッケージを導入
Machine Owner Key(MOK)で署名する(セキュアブートを有効にしている場合にのみ必要な処理)
$ sudo sbsign --key ~/MOK.priv --cert ~/MOK.pem /boot/vmlinuz-5.11.0 --output vmlinuz-5.11.0 (1)
$ sudo mv ./vmlinuz-5.11.0 /boot/vmlinuz-5.11.0
$ find /lib/modules/5.11.0/updates/dkms/ -type f | xargs -n1 sudo ./scripts/sign-file sha256 ~/MOK.priv ~/MOK.der (2)
  1. kernelに署名
  2. DKMSで作成したmoduleに署名

このあたりの処理は自動化できると思うんだけど未確認.
MOKの作成や,セキュアブートについては以下のページが参考になる.

環境

$ dpkg-query -W build-essential linux-source bc kmod cpio flex libncurses5-dev libelf-dev libssl-dev dwarves sbsign
tool
bc      1.07.1-2+b2
build-essential 12.9
cpio    2.13+dfsg-4
dwarves 1.20-1
flex    2.6.4-8
kmod    28-1
libelf-dev:amd64        0.183-1
libncurses5-dev:amd64   6.2+20201114-2
libssl-dev:amd64        1.1.1j-1
linux-source    5.10.13-1
sbsigntool      0.9.2-2
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -mr
5.10.0-3-amd64 x86_64
再起動後
$ uname -mr
5.11.0 x86_64