EmacsConf 2024 運営記録
(sachachua.com)- EmacsConf 2024 は 31本の発表 と 21件のQ&Aウェブカンファレンスを運営し、動画アップロードとお礼メールまで完了したうえで、実運営で得た改善点を記録した
- CFPからイベント本番まで十分な時間を確保し、事前録画動画 を強く推奨することで、登壇者の負担と当日の運営リスクを下げた
- Orgファイル、PsiTransfer、Mumble、Etherpad、IRC、BigBlueButton、OBS、Icecast、YouTube、WhisperX、subed が Emacs Lisp自動化 と組み合わさって運営フローを構成した
- BigBlueButton 3.0、480pストリーム、YouTubeのシフト別ライブイベント、WhisperXによる字幕下書きは概ねうまく機能したが、音声ノーマライズ、60fps動画、Q&A録画の取りこぼしは改善課題として残った
- 2024年の総費用は税抜き USD 175.65、税込み USD 198.48 で、準備時間は減ったものの、積み重ねてきた自動化とドキュメント化のおかげでイベントを継続できた
イベント規模とスケジュール
- EmacsConf 2024 は 31本の発表、合計10.7時間分の講演で構成された
- Q&Aウェブカンファレンスは 21件 で、合計7.8時間実施された
- ストリームのピーク視聴者数はトラックと解像度ごとの差が大きかった
- 土曜日 gen: ピーク177人、lowres ピーク14人
- 土曜日 dev: ピーク226人、lowres ピーク79人
- 日曜日 gen: ピーク89人、lowres ピーク10人
- YouTubeライブのピークはシフトごとに15人から46人の間で、平均は7人から28人の間だった
- スケジュールは次の流れで進行した
- CFP開始: 2024-06-30
- CFP締切: 2024-09-20
- 登壇者通知: 2024-09-27
- スケジュール公開: 2024-10-25
- 動画目標日: 2024-11-08
- EmacsConf: 2024-12-07
- CFP開始から締切まで 82日、締切から動画目標日まで49日、動画目標日からイベント当日まで29日を確保した
- 今年も 早期承認 を使い、長時間の発表は全体スケジュールの輪郭が見えてから承認する形で調整した
- 動画6本は目標日以前または当日に届き、残りはその後順次到着したが、低負荷運営方針と処理余力のおかげで大きな問題にはならなかった
データ、コミュニケーション、スケジュール運営
- 発表情報は引き続き Orgファイル で管理し、次の検証関数を追加すれば運営ミスをさらに減らせる
- ファイル権限と所有者の確認
- Q&Aタイプ判定の大文字小文字処理の確認
- BBBリダイレクトページの存在確認
- ウィキ書式を壊す transcript のバッククォート確認
- ファイル公開有無と読み取り可否の確認
- 字幕担当者コメント、字幕状態、captioner 間の不一致確認
- 登壇者ファイルのアップロードには再び PsiTransfer を使用した
- CFPの告知は emacs-tangents、Emacs News、emacsconf-discuss、emacsconf-org、r/emacs などで行われ、System Crafters、Irreal、Emacs APAC も EmacsConf に言及した
- Mastodon、X、BlueSky、Facebook にも関連投稿があり、foss.events にもイベントを登録した
- スイスでは 200ok と Ardeo がオフラインミートアップを開き、Ljubljana では emacs.si が集まりを開催した
- 登壇者やボランティアへの連絡には emacsconf-mail.el ベースの メールマージ を多用した
- バックステージ調整には引き続き Mumble を使い、安定して動作した
発表編成と自動化
- イベントは2日構成で、初日は 2トラック、2日目はシングルトラックで進行した
- 発表の間に約15〜20分の余裕を置き、遅い提出、直前キャンセル、Q&Aからライブへの土壇場切り替えに対応できた
- 日曜日には直前キャンセルで空いた時間を埋めるため オープンマイクセッション を追加し、翌年はこの時間をあらかじめ確保する案も考えられる
- 通常の締めくくりコメントの一部を前寄りに移したことで定刻で終えられ、一部のホストや参加者は遅くまで残る必要がなくなった
- 自動スケジュール公開では
case-fold-searchがnilだったため、"Live"Q&A がliveとマッチせず、ライブ発表として告知されない小さな問題があった - この設定は
emacsconf-stream-config.elに追加され、次回は ansible スクリプトにも反映する予定である - 発表切り替えは crontab ベースの自動管理に任せ、安定して機能した
- 土曜の締めコメントを好きなタイミングで行うため crontab を止めたあと、翌日に autopilot を再開するのを忘れ、日曜オープニングがちょうどの時刻に始まらない問題が一度発生した
- dev トラックは gen トラックより少し遅く始まるように組み、朝の運営負荷を下げた
- 日曜朝はライブQ&Aより IRC Q&A を多めに配置し、今年は日曜午前の帯域問題は見られなかった
- 今後の改善点として、ホスト用ウェブインターフェースの JavaScriptカウントダウン、現在の MPV 動画終了時刻の反映、スケジュール/視聴ページでのローカル時刻表示が残っている
録画動画とストリーミング
- 登壇者に 事前録画動画 を強く推奨し、運営ストレスを下げつつ、ボランティアによる字幕作業を可能にした
- 一部の直前提出やライブ発表にも対応でき、各発表がライブ公開される際に動画と transcript をウィキへ自動投稿できた
- 今年は明確な動画エンコード締切問題はなく、screen 内で再エンコードする方式が途切れ防止に信頼性高く機能した
ffmpeg-normalizeを使った自動音声ノーマライズはうまく機能せず、Leo Vivier がイベント前日に急きょ音声をノーマライズした- 来年は音声を mono にリミックスする案を検討できる
- ある発表では音が左右に動いて落ち着かなかった
- 片耳だけで発表を聞く参加者もいるため、mono が役立つ可能性がある
- 60fps動画は res サーバーに負荷をかけ、ドロップフレームを引き起こしたようで、次回は30fpsへダウンサンプリングし、発表準備ガイドにもメモを加える案がある
- MPV で一部動画に色のにじみや異常があったが、MPV v0.38 にアップグレード後に解消した
- YouTube には全動画をアップロードして予約公開し、イベント中に更新し続ける必要がなく便利だった
- Toobnix にも予約アップロード機能はあるが、イベント中には知らなかったため、
emacsconf-publish-upload-talk関数で動画をアップロードした
字幕とQ&A処理
- 今年の音声テキスト変換には WhisperX を使用した
- WhisperX はボランティア字幕担当者が編集できる 字幕下書き を作るのに良い性能を示した
- WhisperX の内蔵音声活動検出は、昨年の OpenAI Whisper が無音区間で見せていた幻覚を大幅に減らした
- WhisperX が登壇者のテキスト塊を取りこぼした例が1件あり、その箇所は手動で補った
- Lenovo P52 と 64GB RAM のおかげで、直前の字幕処理もローカルマシンで可能だった
- タイムスタンプには多少のズレがあったが、登壇者とボランティアがバックステージで動画品質を確認したプロセスが役立った
- テキスト再整列には Aeneas を使ったが、Aeneas も無音区間では混乱した
- subed には、Aeneas または WhisperX のタイムスタンプで字幕区間を再整列するコードが追加された
- Anush V は subtitle segmentation に機械学習を使う実験を行い、今後の検討項目として残った
- Q&A録画は時折発表開始から数分後にようやく始まったが、Icecast ダンプや YouTube ストリーム録画から冒頭を切り出す作業は行わなかった
- BigBlueButton を video 追加処理形式 に設定したことで、今年はセッションごとに1ファイルを受け取れ、複数ストリームを ffmpeg で結合する必要がなくなった
- Q&A transcript とチャットログは、削除したくなる内容がないかを手早く確認した
subed-crop-media-file関数が追加され、Q&Aファイルのトリミングが容易になった
BigBlueButtonとサーバー運用
- 今年は新しい BigBlueButton ウェブカンファレンスサーバーをセットアップした
- 以前の BigBlueButton インスタンスがあったサーバーは、消滅した非営利団体が寄贈したもので、10月27日に撤去された
- Jitsi と Galene の適性を確認したうえで、引き続き BigBlueButton を使うことにした
- BBB 2.3以上3未満のバージョンにおける non-free Mongo 問題を懸念し、BBB 3.0 を導入した
- 既存の res サーバーの Docker で BBB 3.0 を動かすのは難しく、追加の Linode VPS を立てる判断をした
- BBB は 8GB/4core 未満のサーバーでは起動を拒否し、テスト時は 8GB/4core に上げ、その後途中で 1GB/1core に下げ、本番中は 16GB/8core dedicated に引き上げた
- BBB 3.0 の利点の1つは smart layout で、ウェブカメラのサムネイルを共有画面の横へドラッグでき、共有画面を読みやすくできたことだった
- Rails console で部屋を作る作業は比較的簡単だった
- 登壇者には moderator access code を渡したが、superadmin がログイン済みでも全室の moderator 権限を自動では持たず、host access を手動追加する必要があった
- 2023年比での BBB 利用状況は次のとおり
- 最大同時ユーザー数: 62人から107人へ増加
- 最大同時会議数: 6件から7件へ増加
- 1会議あたり最大人数: 27人から25人へ減少
- 全体ユニークユーザー数: 84人から102人へ増加
- 発話したユニークユーザー数: 36人から40人へ増加
- 最大同時ユーザー数はサーバー負荷計画に必要な数値のため、重複排除はしない
Etherpad、IRC、公開自動化
- Q&A収集には Etherpad 1.9.7 を再び使用した
- Etherpad v2.x は決めていた時間内に実行方法を解決できず、今年はアップグレードしなかった
- ERC の現在行を改行なしでコピーして Etherpad に貼り付ける Elisp を書き、IRC の質問を pad へ移すのにうまく機能した
- この関数は
emacsconf-erc-copyで、emacsconf-erc.el にある - 来年は Etherpad テンプレートに 代名詞と発音 を追加し、ホストが簡単に参照できるようにする計画である
- 事前に libera.chat 側へ通知しておいたおかげで、
chat.emacsconf.orgの利用制限にはかからなかった - IRC 設定には大きな変更を加えず、議論プラットフォームとして引き続き安定して機能した
- 発表URLを挿入するキーボードショートカットがあると便利で、Embark keymap への追加も容易そうだ
- 発表と transcript をウィキへ自動投稿する処理は、誰かがウィキに変更をコミットしていた場合に時々手動介入が必要だった
- Etherpad 埋め込みを有効にする conference publishing phase の切り替えを忘れていたが、Ihor が見つけ、土壇場の修正で反映できた
費用、時間、ドキュメント化
- 2024年の費用は税抜きで次のとおり
- 12月の追加ホスティング費用: USD 52.54
- 11月の BBB テスト追加費用: USD 3.11
- 年間ホスティング費用: USD 120
- 総費用は税抜き USD 175.65、13%税を含めて USD 198.48 である
- Free Software Foundation はメディアファイル配信用に media.emacsconf.org を提供した
- Ry P は VNC セッション経由の OBS 配信用に res.emacsconf.org を提供した
- FSF Working Together プログラムの寄付者一覧や現在の寄付統計をイベント週末にすぐ確認できる人がいなかったため、次回は事前に整理し、寄付者へきちんと感謝する必要がある
- 2024年の Emacs 関連時間は合計 320時間 で、2023年の432時間より少なかった
- 2024年10月と11月の Emacs 関連時間は 92.6時間で、前年同時期の 179.8時間のおよそ半分だった
- 2023年の時間の一部は EmacsConf 発表準備に関係しており、当時はスクリプトにもより慣れていた
- 準備時間は減ったものの、積み上げてきた 自動化 が効果を発揮し、限られた集中時間の中でも EmacsConf を運営できた
- 運営中に見つけた ToDo やメモは organizers notebook に追加する項目として記録された
- 年ごとの organizers notebook のメモはメインの organizers' notebook に移しており、長期的には計画開始から終了までチェックリストとノートを追える状態を目指している
全体評価と次につながるポイント
- EmacsConf 2024 は良い経験で楽しく、来年もまたやりたいと思えるイベントだった
- 参加者の反応には、オンラインカンファレンスの運営面や、成功するオンラインカンファレンスの条件を前向きに評価する声が含まれていた
- イベント後も Emacs News、meetups、Planet Emacslife、emacs.tv を通じてつながり続けられる
- 他の人によるカンファレンスのブログ記事、特に バーチャルカンファレンス をより良く磨き上げる方法に関する記事を探している
1件のコメント
Hacker Newsのコメント
今年の EmacsConf は本当によく運営されていて、自分も「居心地がよく、くつろげる」と感じた。
EmacsConfの雰囲気を、NeovimConfやVisual Studio Code、Jetbrainsのリリース「パーティー」のような他のエディタ系イベントと比べてみるのも興味深い。
Sachaは本当にすごいし、この品質でイベントを実現するために elisp で書いたコードの量には驚くほどだ。
自分で検索してもNeovimの設定ファイルの結果ばかり出るくらい検索順位が低いのは少し残念で、だからここにリンクを残すことを理解してほしい: https://neovimconf.live
おかげでこのエディタは長く続くだろうという希望が持てるし、軽く使ってきた短い10年の間にも、実際にずっと良くなってきた。
Emacsコミュニティ万歳。
GuileベースのEmacs を復活させようという試みに関する発表が1つ予定されていたはずだが、どこかに含まれているのかはまだ見ていないので分からない。
Emacsがネイティブコンパイル機能を得たことで、その圧力は少し下がったと思うが、Elisp以外の言語でEmacsをスクリプトできる魅力は依然としてあると思う。
その目的ならSchemeやLuaはかなり良さそうだ。
追記: ここにあった - https://emacsconf.org/2024/talks/guile/
自分はGuile側の人間だが、Emacs側でGuile上にelispだけを許すとしても十分にメリットがあると思う。
今年は EAF についての内容があることを期待していた。
Emacsにまだ大きく欠けているのは、インタラクティブなグラフィックスをうまく扱う方法だと思っているが、EAFは依然としてかなり不安定で、ドキュメントも不足している。
このプロジェクト、あるいはもっと良い何かが進展してほしい。
[1]: https://github.com/emacs-eaf/emacs-application-framework
これに「参加」できなかったのがとても残念。
15年以上Emacsを使ってきて、Sachaのような人たちは自分がEmacsを始めた頃からいて、その頃にEmacsにハマった大きな理由だった。
あの時期に入門できたのは本当に運が良かったと感じる。
同僚たちが、直すことも、少し手を入れることすらできないツールのせいで苦労しているのを見るが、今になって彼らがEmacsを学ぼうと時間を割く姿は想像しにくい。
Emacsは本当に 一生使うエディタ だ。
Emacsは完璧からは程遠く、遅く、他のエディタの派手な機能も足りず、ときには本当に使っていてもどかしい。
だが結局これは 自分のエディタ だ。
自分にとって完璧な編集・プログラミング環境を作れるようにしてくれたし、それほどの自由と楽しさを与えてくれる環境は他にない。
Vim系もかなり近く、補助エディタとして使い続けているし、vim-modeなしでは生きられないが、Emacsははるかに深いカスタマイズを許してくれ、Lispはそこに非常に優雅に合っている。
エディタが現れては消えていく中でも、Emacsはいつもそばにあるだろうという点が慰めになる。
欠点も含めて好きだ。
EmacsConf 2024のオンライン発表構成 は本当に印象的だった。
台本、コメント、質疑応答、動画リンクまで、すべてorg-modeで記録・公開されていて、ざっと見るのにとても良かった。
Lem プロジェクトがEmacsコミュニティで「受け入れられている」のか、あるいは試してみる価値があるのか気になる。
古くからのEmacsユーザーとして、ときどき離れてもいつも戻ってきたが、最近はLemが目に入る: https://github.com/lem-project/lem
なじみのない人向けに説明すると、Lemは大まかにはEmacsに似たエディタで、Common Lispでネイティブに書かれ、拡張でき、マルチプラットフォームでNCursesやSDL2などに対応し、LSPも使えて高速だ。
Lemが成長し続けてほしい。
いくつもの重要な面でEmacsより優れているので、もっと 認知度 を得てほしい。
Debianパッケージ化の計画もあるのか知りたい。
今年の EmacsConf の動画を見て回るのは本当に楽しく、presentation もとてもすっきりしていて、すばらしい取り組みが数多く進行中だった。
まだ見るものはたくさん残っているが、今のところ特にインフラと UI まわりの内容には驚かされており、本当に多くのことが起きている。
よかった発表は次のとおり。
https://emacsconf.org/2024/talks/casual/ -- Charles Choi が、タコではなく人間のための UI を設計する話。このジョークは愛情を込めたもので、私は幸せなタコである。
https://emacsconf.org/2024/talks/literate/ -- Howard Abram の 文芸的プログラミング
https://emacsconf.org/2024/talks/gypsum/ -- Guile で作られた Emacs と Emacs Lisp のクローン
https://emacsconf.org/2024/talks/rust/ -- Rust で作られた実験的な Emacs コアである Rune
https://emacsconf.org/2024/talks/julia/ -- Julia と Emacs の間の並行性についてのすばらしい発表
https://emacsconf.org/2024/talks/guile/ -- Robin Templeton が Guile-Emacs を再開
https://emacsconf.org/2024/talks/mcclim/ -- うーん、この発表は lambdaMOO で質問を受けたのかな?
「イベント全体のホスティング費用は USD 42.92 + 税で、イベント前の BBB テスト費用は USD 3.11 + 税、合計で USD 46.03 + 税だ。Web ノードとライブストリーミングノードは、残りの期間は 1GB nanode のまま維持される。サーバー 2 台で月あたり各 USD 5 + 税なので USD 110 だ。十分に負担できる。」
この費用が他のカンファレンス費用と比べてどうなのか気になる。
Docker で BBB を自分で設定してみると簡単ではない。
以前にやったことがあるか、どういうわけか専門家でない限りかなり難しく、私は試してみて諦めた。
数か月、あるいは数年後でも、私が開いた issue に人々がまだ書き込んでいる。
Docker デプロイは公式の配布方法でもないので、理解はできるが、メンテナーからの支援も受けにくい。
動く部品が多い巨大な構成だ。
それでもそれを成し遂げたのは本当にすばらしい。
たしか USD 12 くらいだったと思うが、今すぐ正確な費用は確認できない。
感謝の印として小さな贈り物を送る実験もしている。
邪悪な計画としては、ステッカーやピンが、他の人たちに発表者へ Emacs の話を振らせるきっかけになるかもしれないというものだが、Corwin はそれを個人的な実験と見なしており、カンファレンス予算には入れていない。
もちろん、発表者が発表に費やした時間や、人々が共有してくれたサーバーのように、金銭的費用 には計上されないものも多い。
それでも、少ない予算とゆるやかなボランティアだけでできることは意外に多い。
自分のカンファレンスを開こうかと考えたことがある人なら、十分に検討に値する。
Sacha を長くフォローしており、頻繁に投稿される Emacs アップデートが好きだ。
私は熱心な Common Lisp 愛好家で、昨年 Mastering Emacs の本も買ったので、あとは腹を決めて Emacs Lisp でプロジェクトをひとつやってみるだけだ。
動的スコープ の観点で本当に考える準備をしなければならない。
私は逆に elisp から Common Lisp へ行ったが、再び elisp に戻るのは難しい。
TeXmacs は Emacs や TeX ベースではなく、単に影響を受けただけなのに、EmacsConf に含めるべきだと考えるのか気になる。
Emacs 系ツール同士のアイデアと熱意の交流は、2 つのプロジェクトと Lisp ベースのエディタ全般の双方にとって利益になるはずだ。
私が本当に外野の立場なのは、技術文書を書くときに LyX を使っているからで、そのため TeXmacs の非常に重要なユースケースをひとつ見落としてはいる。