04/10(土)に小江戸らぐ 4月のオフな集まり(第225回)にオンライン参加しました.オンライン開催で,ツールはZoomUsの利用でした.
カテゴリー: 勉強会
鹿児島らぐ「鹿児島Linux勉強会 2021.03.1」にオンライン参加
鹿児島らぐ「鹿児島Linux勉強会 2021.03.1」にオンライン(Discord)に参加しました.
参加者は申込み10人,飛び入り1人,欠席1人で延べ人数は10人でした.
以下のような話題で盛り上がりました.
- Twitter クライアント sayaka ちゃんを Linux でも
- Raspberry pi picoでコンポジット出力
- ディレクトリ内のファイル名の比較ワンライナー
- 質問,rootfsやLinuxカーネルを用意せずにu-bootのみインストールして起動できますか?
- RaspberryPiでカードリーダー
私は,「Twitter クライアント sayaka ちゃんを Linux でも」として最近3.5.0がリリースされたsayakaの紹介をしました.
https://files.matoken.org/index.php/s/r7jEJdjiSRzb4nZ (pdf)
https://files.matoken.org/index.php/s/PKpw9FnqQPdLo9L (sig)
次回もオンラインで 2021-04/25(日) の開催予定です.
小江戸らぐ 3月のオフな集まり(第224回)にオンライン参加
2021-03-13(土)に開催された「小江戸らぐ 3月のオフな集まり(第224回)」に参加しました.
以下のような発表がありました.
- mailmanをインストールしてみた
- AlmaLinuxインストールしてみた
- Alma Linux (インストールだけ試す)
- kube-state-metricsをためした
- Debian DOCKER IMAGES from scratchAlpine Linuxの野良パッケージを作ってみた(完結編)
- arm64のNextcloudでもCollaboraOnline
- 「Fuzix」を「実機で」起動する
- WeblateでOSSの翻訳に参加する, KiCadネタなど
- micro:bit でワークショップを考える
私は,「arm64のNextcloudでもCollaboraOnline」というネタを発表しました.
https://files.matoken.org/index.php/s/KH5WC9HyyDS6pD9 (pdf)
https://files.matoken.org/index.php/s/ni2RZ3JtZAnWYED (sig)
ちなみに途中から裏山から参加しました.日が陰るとまだ肌寒いですね.
次回は2021-04-10(土)に開催予定です.
鹿児島Linux勉強会2021.02に参加
鹿児島Linux勉強会 2021.02は予定取り02/21(日)に開催されました.参加者は8人ほどでオンライン(Discord)で開催されました.
以下のような話題で盛り上がりました.
・スマートフォンをLinuxデスクトップのスピーカーに(してビデオ会議中に離席しても話に付いていけるようにする)
・GNU Radioの環境設定
・How to use Sourcetrail for kernel analysis
・はじめての980円ジャンクガラホ改造,UserLAndとUbuntu,ArchLinux
・摂氏と華氏をグラフにしてみた
私の発表は,「スマートフォンをLinuxデスクトップのスピーカーに(してビデオ会議中に離席しても話に付いていけるようにする) 」でした.ほぼ以下のblogの内容と同じです.
終了後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/
小江戸らぐ 2月のオフな集まり(第223回)への参加と「DroidCamでもスマホをWebCamにする」を発表
2021-02-13(土)に小江戸らぐ 2月のオフな集まり(第223回)に参加しました.開催はZoom.usを利用したオンライン開催で参加者は20人ほどでした.
次のような発表がありました.
- Puppy Slacko 7.0を日本語化してみた
- 古いMac miniにDebian/sidを入れてみた
- LUnixはじめました3「Fuzixを起動する」
- MAMORIOを改造する
- エンジニアがBOOTHのサイトを作ってみた
- DroidCamでもスマホをWebCamにする
- 今更Anthyを試してみた
- へんな液晶で苦労する話
- gPhoto2でカメラ制御
次回の開催は03/13(土)でオンライン開催です.
以下はその時発表したスライドをhtmlで書き出したものです.
DroidCamでもスマホをWebCamにする
USB port死にかけ?
- スマホや2.5インチHDDを繋ぐと勝手に切れてしまう
- スマホは数秒毎に充電ランプが付いたり消えたり
- Webcamがビデオチャット中に使えなくなったり
- 自己給電の3.5インチHDDは調子がいいような?
- しばらく放置したり再起動すると直ったり?
- USB周りのリセッタブルヒューズとかコンデンサとかが死にかけている?
正攻法
- 端末買い替え
- USB portを増設
- PCI Express/PC Card/Express Card
懐が寂しい&増設できないマシン(◞‸◟)
そういえばネットワーク経由でUSBが共有できたはず
- 「ネットワーク経由でUSB共有」 鹿児島Linux勉強会 2021.01(オンライン開催) 2021-01-31
+--------+ +------------+ +---------------------+ | WebCam +------->+ USB HostPC | | USB ClientPC | | C270 | USB |------------+ +---------------------+ +--------+ | USB/IP |------>| USB/IP | +------------+ 1GbE +--+------------------| | +-->UVC/UAC | +-------+-------------| | +-->Video APP | +---------------------+
USB/IP少し試してみて
- 設定してしまえばローカルとほとんど変わらない使用感
- 別マシンが必要
- UVCを使うならそこそこ太い回線が必要(1Gbpsあれば安心)
帯域がもったいない,エンコードするとずっと細い回線で高画質にできるよね
バックアップもほしい
スマートフォンの利用
スマートフォンを有線,ネットワーク経由でWebCamとして利用
- Iriun Webcam
- Android/iOS → Linux/macOS/Windowsへ
- DroidCam
- Android/iOS → Linux/Windowsへ
!
「スマートフォンをLinuxPCのウェブカメラとして使う Iriun Webcam」 小江戸らぐ 2020-04で発表
このときはDroidCamは専用kernel moduleが必要でめんどくさそうなので標準moduleが利用できるIriun Webcamを選択
それから約10ヶ月
Iriun Webcamの問題
- Debianパッケージがsidで依存関係が解決できなくなっている
- 手動で依存関係を解決してパッケージを展開してバイナリを実行することは可能
- Video のみ(Audio機能がない)
- closed source
- 問い合わせ窓口が見当たらない
DroidCam
- Android/iOS → Linux/Windowsへ共有
- Video/Audio対応
- 専用moduleが必要だったがv1.6+で通常のv4l2loopbackが利用できるようになった
- 専用モジュールもDKMS使えばそう不便でもない?
導入
sourceを入手してインストールスクリプトを実行する(※amd64以外は要セルフビルド)
$ git clone https://github.com/dev47apps/droidcam/
$ cd droidcam
$ sudo ./install-client (1)
$ sudo ./install-dkms (2)
$ sudo ./install-video (3)
$ sudo ./install-sound (4)
- DroidCam Clientアプリとアンインストールスクリプト(
/opt/droidcam-uninstall
)導入 - droidcam module DKMS設定 ※オプション
- droidcam module設定 ※オプション
- サウンドモジュール設定(snd-aloop module自動読み込み) ※オプション
v4l2loopback利用時
$ cat /etc/modules-load.d/v4l2loopback.conf
v4l2loopback (1)
$ cat /etc/modprobe.d/v4l2loopback.conf
options v4l2loopback exclusive_caps=1 video_nr=6,7,8 card_label="Virtual Camera,v4l2loopback-7,v4l2loopback-8" (2)
- モジュール自動読み込み
- ビデオ形式をGStreamer caps指定,複数デバイス対応(オプション)
DroidCam v4l2loopback利用時
$ cat /etc/modules-load.d/droidcam.conf (1)
videodev
v4l2loopback_dc
$ cat /etc/modprobe.d/droidcam.conf (2)
options v4l2loopback_dc width=1920 height=1080 video_nr=9 card_label="DroidCam"
- モジュール自動読み込み
- 解像度,ビデオデバイス番号,ラベル指定
ビデオデバイス番号はv4l2loopbackより大きくするとOBS利用時にはまらない
SecureBoot
$ sudo modprobe -v v4l2loopback
insmod /lib/modules/5.10.0-3-amd64/updates/dkms/v4l2loopback.ko exclusive_caps=1 video_nr=6,7,8 card_label="Virtual Camera,v4l2loopback-7,v4l2loopback-8"
modprobe: ERROR: could not insert 'v4l2loopback': Operation not permitted
Androidアプリ起動
- カメラ,マイク切り替えや設定あり
PC側でdroidcam起動
$ droidcam
カメラの操作も可能 :)
cliもある
$ droidcam-cli
Usage:
droidcam-cli -l <port>
Listen on 'port' for connections (video only)
droidcam-cli [options] <ip> <port>
Connect via ip
droidcam-cli [options] adb <port>
Connect via adb to Android device
droidcam-cli [options] ios <port>
Connect via usbmuxd to iDevice
Options:
-a Enable Audio
-v Enable Video
(only -v by default)
-size=WxH Specify video size (when using the regular v4l2loopback module)
Ex: 640x480, 1280x720, 1920x1080
Enter '?' for list of commands while streaming.
sound
- Linux側でDroidCamを起動後,
snd_aloop
moduleとPulseAudioを紐付ける
$ pacmd load-module module-alsa-source device=hw:Loopback,1,1 \ source_properties=device.description=droidcam_audio
- 以下のISSUEが参考になる
!
+--------+ +------------+ +------------+ |Android +------->+ DdoidCam +---------------->+ Video APP | |DroidCam| WiFi +---+--------+ v4l2loopback +------------+ +-----+--+ USB | snd_aloop | Zoom.us | ^ | | Discord | +---------------+ | Jitsi Meet | Camera Coltrole | : | +------------+
OBS Studio update
- 26.1からLinux/macOSに仮想カメラ機能が標準機能に(v4l2loopback利用)
- ディストリビューションのバージョンが古い場合snapで導入が便利
- droidcamのmoduleと競合して不具合が起こることがあるのでその場合はdroidcamのデバイス番号を後ろに
- ※以前からある仮想カメラプラグインのobs-v4l2sinkは出力デバイスを選択できる
- Wayland対応もうすぐ
DroidCam OBS
- DroidCamをOBS Studioで利用する場合はOBS StudioにDroidCam OBS Pluginを導入して,Android側にDroidCam OBSを導入すると便利
- DroidCam OBS by Dev47Apps OBS Studio Plugin
- DroidCam OBS – Google Play のアプリ
!
+------------+ +------------+ +------------+ |Android +------->+ OBS Studio +------------------>+ Video APP | |DroidCam OBS| WiFi |------------+ v4l2loopback +------------+ +------------+ USB | text | snd_aloop | Zoom.us | | Picture | | Discord | | Video | | Jitsi Meet | | Desktop | | : | | Camera | +------------+ | <Filters> | +------------+
まとめ
- USBポートを使わなくても USB/IP や スマートフォンでWebCam & Audio を利用できるようになった
- どちらも毎回少し設定が必要なのが面倒
- 安定度はUSB/IPの方が安定している
- 画質はスマートフォンの方が上(Logitch C270とRakuten miniでの比較)
- スマートフォンで直に参加という手も……でも画面小さいかな
鹿児島Linux User Groupの鹿児島Linux勉強会 2020.07(オンライン)に参加
- 「鹿児島Linux勉強会 2020.07」
- 日時
- 2020-07-26(sun) 14:00〜17:00
- 会場
- Discord
テキストチャンネル「meetup-202007」,ボイスチャンネル「General」.
前回まではボイスチャンネルを分けていたけど今の所勉強会のとき以外はボイスチャンネルが使われていない&間違える人が居たのでGeneralのみに.テキストチャンネルは毎回分けて終了後しばらくしたらアーカイブする感じにしています.
参加人数は申込者9人で実際の参加者は7人でした.地域は鹿児島県が3人,その他4人(東京都,静岡県,岐阜県,愛知県x2)オンラインになってからの鹿児島の参加人数が一番多かった気がします.
以下のような話題で盛り上がりました.
- 「Photon OSを使ってみた話」
- 「ssh login時の通知を簡単に設定できないか?の相談」
- 「ArchiveBoxで自分用WebArchive(django版)」
- 「5月のYoctoLTSの続報」
- 「ArchLinuxのインストールがうまく行かない相談」
- 「m3u8のプレイリストからダウンロード」
- 「Free RADIUSサーバーの構築についての相談」
この中で私の発表は,「ArchiveBoxで自分用WebArchive(django版)」でした.鹿児島Linux勉強会2019.08(オンライン)での発表の続報でした.不具合が減っていろいろと機能も増えていい感じです.リモートで試せるようデモサーバをRaspberry Piで起動して触って貰ったりしました.
次回は08/23(日)の開催予定です.
Sipeed Lichee Nanoでhello world
2020-07-23低レベル勉強会に参加しました.Zoom.usでの開催でした.
内容はLinux名刺的なものを開発しようという内容で,リファレンスとしてSDカードサイズの小さなLinuxの動作するarmコンピュータのSipeed Lichee Nanoを使いました.
欲しい場合は1000円ちょいくらいからで入手できそうです.
- Sipeed Lichee Nano – スイッチサイエンス 1045円 + 送料200円 =1245円
- Lichee Nano – Shigezone Online 990円 + 送料400円 = 1390円
- 【5705】SIPEED-LICHEE-NANO Sipeed Lichee Nano 1050円 + 送料350円 = 1400円
- LicheePi Nano 16M flash: マイコン関連 秋月電子通商-電子部品・ネット通販 1000円 + 送料500円 = 1500円
- Sipeed Lichee Nano Linux 開発ボード 16M Flash – Seeed Studio 707円+ shipping
Lichee Nanoを持っていない人はリモートで触れるようにしてあったので持っていない私も楽しめました.
このリモート開発の仕組みはLichee NanoとRaspberry PiをUSB経由のUARTで接続し,Raspberry PiでGNU screenを起動,ssh経由でGNU screenに繋いで操作という感じです.
GNU screenをGotty等にするとウェブブラウザで参加できてちょっと便利かもと思ったりも.(GoTTYは開発止まってるように見えるから別のもののほうがいいかもしれない)
Lichee Nanoで何かを動かしたい.armだけどarmhf動くのかな?とりあえずなにか転送して動かしてみようと.
とりあえずDebianのarmhfバイナリをuuencodeしてコピペで転送してみます.これが動けばDebianのパッケージ群が利用できるかもだけど…….
まずは簡単そうなfortuneを試します.
$ apt download -t armhf fortune-mod
$ unar fortune-mod_1.99.1-7+b1_armhf.deb
$ cd fortune-mod_1.99.1-7+b1_armhf
$ tar xf data.tar.xz
$ cd usr/games
Lichee Nanoはserialで接続されていて,Internetには繋がっていないのでバイナリファイルの転送にはuudecode/uuencodeを使いました.久々です.
手元のGNU sharutils 4.15.2のuudecodeにはbase64を使う -m, --base64
があるので良さそう.と思ったけどLichee Nanoの方はbusyboxのもので非対応でした.
$ gzip -c fortune | uuencode fortune.gz > fortune.gz.uu
$ cat fortune.gz.uu | xclip
# cat | uudecode #ここでクリップボードから貼り付け
# zcat fortune.gz > fortune
# rm fortune.gz
そして……
# ./fortune
-sh: ./fortune: not found
# ldd ./fortune
checking sub-depends for 'not found'
checking sub-depends for '/lib/libc.so.6'
/lib/ld-linux.so.3 (0xb6fa0000)
librecode.so.0 => not found (0x00000000)
libc.so.6 => /lib/libc.so.6 (0x00000000)
/lib/ld-linux.so.3 => /lib/ld-linux.so.3 (0x00000000)
これを動かすのはダイナミックリンクされているものを用意してあげないといけないのでストレージの容量的に難しいですね.
ここではgzipで圧縮しましたが,Lichee Nanoのbusyboxにxzがありました.gzipよりxzにしたほうが小さくなりますね.試してみるとこんな感じでした.$ xz -c fortune | uuencode fortune.xz > fortune.xz.uu
-rw-r--r-- 1 matoken matoken 22368 Jul 23 15:11 fortune #元ファイル
-rw-r--r-- 1 matoken matoken 30844 Jul 23 14:58 fortune.uu #uudecode
-rw-r--r-- 1 matoken matoken 14975 Jul 23 15:08 fortune.gz.uu #zip + uudecode
-rw-r--r-- 1 matoken matoken 13047 Jul 23 15:47 fortune.xz.uu #xz + uudecode
そういえばあまり有名ではないですがbasE91なんてものもあります.base64よりサイズが小さくなりますが導入からやらないといけないのでちょっと面倒.
Hello worldを試してみます.適当にプログラムを用意してスタティックリンクでコンパイルしてみます.
$ cat hello.c
#include <stdio.h>
int
main(void)
{
printf("Hello, world!\n");
return 0;
}
$ gcc -static ./hello.c
$ ./a.out
Hello, world!
$ ls -l a.out
-rwxr-xr-x 1 pi pi 571120 7月 23 16:18 a.out
でかい……
とりあえずでかいのはおいといてこれだとarm64なので動くはずがない.ということでクロスコンパイル環境を用意します.
今回試したホストはDebian sid amd64/Ubuntu 20.04 LTS arm64/Raspberry Pi OS arm64です.いずれも同じ手順でOKでした.
crossbuild-essential-<arch>
パッケージで各種アーキテクチャの環境が導入できるようです.
$ apt-cache search crossbuild-essential-
crossbuild-essential-amd64 - Informational list of cross-build-essential packages
crossbuild-essential-arm64 - Informational list of cross-build-essential packages
crossbuild-essential-armel - Informational list of cross-build-essential packages
crossbuild-essential-armhf - Informational list of cross-build-essential packages
crossbuild-essential-i386 - Informational list of cross-build-essential packages
crossbuild-essential-powerpc - Informational list of cross-build-essential packages
crossbuild-essential-ppc64el - Informational list of cross-build-essential packages
crossbuild-essential-s390x - Informational list of cross-build-essential packages
crossbuild-essential-mips - Informational list of cross-build-essential packages
crossbuild-essential-mips64 - Informational list of cross-build-essential packages
crossbuild-essential-mips64el - Informational list of cross-build-essential packages
crossbuild-essential-mips64r6 - Informational list of cross-build-essential packages
crossbuild-essential-mips64r6el - Informational list of cross-build-essential packages
crossbuild-essential-mipsel - Informational list of cross-build-essential packages
crossbuild-essential-mipsr6 - Informational list of cross-build-essential packages
crossbuild-essential-mipsr6el - Informational list of cross-build-essential packages
沢山あります.今回はarmlf/armhfの crossbuild-essential-armel
, crossbuild-essential-armhf
を導入しました.
$ sudo apt install crossbuild-essential-armel crossbuild-essential-armhf
gccだけでいい場合はarmlfは gcc-arm-linux-gnueabi
,armhfは gcc-arm-linux-gnueabihf
だけでOKです.
まずは arm-linux-gnueabihf-gcc
を使ってarmhfのバイナリを作ります.
$ /usr/bin/arm-linux-gnueabihf-gcc -static ./hello.c
$ strip a.out
$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu
armhfは駄目そうです.
# cat | uudecode
^d
# xzcat ./a.out.xz > ./a.out
# chmod +x ./a.out
# ./a.out
Segmentation fault
次は gcc-arm-linux-gnueabi
でarmlfのバイナリを作って試すと動きました.
$ /usr/bin/arm-linux-gnueabi-gcc -static ./hello.c
$ strip a.out
$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu
# cat | uudecode
^d
# xzcat ./a.out.xz > ./a.out
# chmod +x ./a.out
# ./a.out
Hello, world!
# /usr/bin/time -f "%M KB" ./a.out
Hello, world!
2144 KB
この辺りで今回は時間切れ.次回の同じような感じになりそうです.興味のある方は以下のページから.
とりあえずarmelのバイナリが動くようなのがわかったので面白そうな小さなプログラムを試そうかなと思っています.cowsayとか好きなんだけどこれはPerlなので容量的に難しそう.とりあえずfortuneあたりかな?
以前PQI Air PenでやったようにSD cardを用意してそこにDebian armlf環境を展開してchrootとかもできそうです.
鹿児島らぐの「鹿児島Linux勉強会 2020.06」に参加
2020-06-28(sun)に開催された「鹿児島Linux勉強会 2020.06」に参加しました.
今回もDiscordで開催.主に音声チャットでやり取りで発表は画面共有で行う感じです.参加者は6名(申し込み7人欠席2人飛び入り1人)でした.
以下のような話がありました.
- 「6月の週末はsofascenerとして過ごしました」(demo/demopartyの紹介)
- 「rsync 3.2.0の新機能を試してみた」
- 「cowsayのcowを増やそう」
- 「awkで3dプログラミング,sedのデバッガの紹介」
https://github.com/takubo/gsed-dbg (GNU SED + Debugger)
https://github.com/moldabekov/chess-sed/blob/master/chess.sed (sedで動くチェス) - 「NISTのフォレンジックトレーニングページ紹介」
https://www.cfreds.nist.gov/data_leakage_case/data-leakage-case.html - 「LinuxでWindows(NTFS)領域を共用する相談」
私は先月の「YoutubeLiveを細い回線で「聴く」」の続きをと思ったのですが,スライドのアクセスがとても少なく(たぶん自分を除くと一桁)反応良くなさそうだったのと,Twitterでrsyncの新機能への反応が良かったように見えたので「rsync 3.2.0の新機能を試してみた」と,参加者少なさそうだったので急遽「cowsayのcowを増やそう」を用意しました.
まあどちらもいまいち刺さらなかったかな…….
次回は07/26(日)でオンライン開催の予定です.
小江戸らぐ 6月のオフな集まり(第215回) オンライン開催に参加
06/13(Sat) 14:00〜20:00
カンファレンスツールにはZoom.us を利用して,14:00〜18:00 が勉強会.その後は懇親会な感じです.実際は00:00過ぎまでやっていました.
参加者はだいたい20人前後な感じでした.
以下のような発表がありました.
- AWS経由で監視メッセージを電話で連絡
- Azure Static Web Appsに骨董品のMiddlemanのページをデプロイしてみた
- EvServer検討と構築
- GoでWebスクレイピング
- Linux環境で(低解像度の)画面共有を行うTips
- PyCon JP Association からのお知らせ
- とあるAIの漢字変換
- セキュリティ関連で諸々(CSIRTへの取り組み)
- 噂のMakuluLinux/LinDozを触ってみた
- 最近のかつどうほうこく
- 有線ESP32
私の発表は「Linux環境で(低解像度の)画面共有を行うTips」でした.
しかし,今発表腕紹介したXephyrを使って発表しようとしたら今回のツールのZoom.us Linux版 clientでは画面共有の一覧に出てこず利用できませんでした(あとでChromiumでZoom.usを利用したら共有できるのを確認).スライドのまま共有してもほとんどアクセスはないのでそのうちblogにでもまとめなおそうと思います.
次回は恐らく07/11(Sat)にオンライン開催です.
LibreOffice Impress の HTML WebCast 書き出しで遠隔プレゼン機能を試す
該当しそうなBug
オンラインでプレゼンテーションをするとき一般的には画面共有すると思いますが,スライドファイルを前もって配布しておいてお互いそれを見ながらプレゼンも出来ます.
その間くらいの機能でスライドのページめくりをプレゼンターと視聴者で同期するサービスが欲しいなと思っています.
以下のようなサービスがあるようですが自分が何度か試した限りでは「ログイン/新規登録」が出来ず使えていません.
LibreOffice Impress のHTML 書き出し機能にWebCast 機能を見つけたので試してみました.
しかし紹介しておいてなんですがこの機能は長らくメンテされていないようなのであまり使わないほうがいいかもしれません.(Perl cgi環境も用意しにくいだろうし)
ヘルプもざっくりとした説明しかありません.
HTML 形式で保存するプレゼンテーションを開きます。
ファイル → エクスポート を行ないます。
ファイル書式 を HTML ドキュメント (LibreOffice Impress) (.html;.htm) に設定します。
ファイル名 を入力して、エクスポート をクリックします。
HTML エクスポート ウィザードの指示に従います。
てことでメモがてら.
LibreOffice Impress で書き出したいスライドを開きます.
「ファイル」→「エクスポート」でエクスポートウィドウが開きます.
書き出し先のディレクトリ(複数のファイルが書き出されるので新しいディレクトリを用意したほうが良い)を指定し,任意のファイル名を指定します.
「ファイル形式」に「HTML ドキュメント (Impress) (.html;.htm)」を選択して「エクスポート」ボタンを押します.
「デザインの割り当て」は初回は「新規デザイン」しか選べません.「次へ」ボタンを押します.
「発表方法」に「WebCast」を選択し,右側の「WebCast」では「Perl」を選択します(ASPは未検証).テキストボックスは規定値のままで構いません.「次へ」ボタンを押します.
「名前を付けて画像を保存」(原文は Save Image As
なので訳が間違っていそう)で画像形式を,「モニターの解像度」でスライドの解像度を指定します.「作成」ボタンで書き出されます.
書き出し時にHTMLデザインの保存ウィンドウが表示されますがキャンセルも出来ます.
書き出したディレクトリを見ると,スライドの画像といくつかの.htmlファイルや.plなども出力されています.これらのファイルをcgiの動くsiteにコピーします.
今はcgiの動く場所がとても限られているのでこれが一番難しいかもしれないですね.
$ ls -w 80 ./slide_dir
common.pl img15.png img24.png img33.png img42.png img51.png img7.png
currpic.txt img16.png img25.png img34.png img43.png img52.png img8.png
editpic.pl img17.png img26.png img35.png img44.png img53.png img9.png
img0.png img18.png img27.png img36.png img45.png img54.png index.html
img1.png img19.png img28.png img37.png img46.png img55.png picture.txt
img10.png img2.png img29.png img38.png img47.png img56.png poll.pl
img11.png img20.png img3.png img39.png img48.png img57.png savepic.pl
img12.png img21.png img30.png img4.png img49.png img58.png show.pl
img13.png img22.png img31.png img40.png img5.png img59.png slide.html
img14.png img23.png img32.png img41.png img50.png img6.png webcast.pl
今回は自宅の適当なApache httpdの動いている環境にコピーしました.
$ scp -r ./slide_dir user@host:~/public_html/cgi-bin/
この環境は .cgi
しかcgiとして動かないので,.htaccess
を作成して .pl
もcgiとして動くようにしました.
$ echo 'AddHandler cgi-script .pl' > ./.htaccess
$ cat ./.htaccess
AddHandler cgi-script .pl
次に *.pl
ファイルに実行権を付与します.httpdのユーザが実行できる権限にします.
$ chmod o+x ./*.pl
次にページ管理ファイルの currpic.txt
に読み書き権を付与します.httpdのユーザが読み書きできる権限にします.
$ chmod o+rw ./currpic.txt
これは恐らくサーバの環境依存でやらなくても動く環境のほうが多いと思うので一旦スキップして動かなかったら設定してください.editpic.pl
, editpic.pl
, savepic.pl
, show.pl
ファイルの require "common.pl";
行を require "./common.pl";
に書き換えます.
- require "common.pl";
+ require "./common.pl";
この状態でウェブブラウザで視聴者は index.html
を,プレゼンターは slide.html
(html書き出し時のファイル名)を開けばOKなはずです.
以下今回試したサンプルです.多分すぐに消します.
仕組みとしてはプレゼンターがページめくり操作をすると,ページ番号の保存されている currpic.txt
ファイルにページ番号を格納.
視聴者側のブラウザでは1秒毎に cgi を呼び出していて,呼び出された cgi 側では現在のページ番号が保存されている currpic.txt
の内容から該当のページを表示する.といったことをしているようです.
そのためプレゼンターが操作してから実際に視聴者のページが更新されるまで数秒掛かる感じです.
中を見ると解りますがライブラリも同梱の小さな独自ライブラリ1つだけで行数も少なくとてもプリミティブです.これは誰も使わず埋もれて何年も放置されていそうです.
出来ることなら最近のギジュとで書き直されてほしいけどこれまでの放置っぷりから難しそうですね.
とりあえずはWebに公開して口頭でページめくりを指示するのが現実的そうです.
(それか普通に画面共有)
$ dpkg-query -W libreoffice libreoffice 1:6.4.4-1 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -m x86_64
$ dpkg-query -W apache2 perl apache2 2.4.41-4ubuntu3 perl 5.30.0-9build1 $ lsb_release -dr Description: Ubuntu 20.04 LTS Release: 20.04 $ uname -m x86_64