บันทึกการดำเนินงาน EmacsConf 2024
(sachachua.com)- EmacsConf 2024 ดำเนินงานด้วย 31 เซสชันบรรยาย และเว็บคอนเฟอเรนซ์ถาม-ตอบ 21 รายการ จากนั้นก็อัปโหลดวิดีโอและส่งอีเมลขอบคุณเรียบร้อย พร้อมบันทึกจุดปรับปรุงที่ได้จากการจัดงานจริง
- ตั้งแต่ CFP จนถึงวันงานมีการเผื่อเวลาไว้อย่างเพียงพอ และแนะนำอย่างหนักให้ใช้ วิดีโอบันทึกล่วงหน้า เพื่อลดภาระของผู้บรรยายและความเสี่ยงในการดำเนินงานวันจริง
- Org files, PsiTransfer, Mumble, Etherpad, IRC, BigBlueButton, OBS, Icecast, YouTube, WhisperX และ subed ทำงานร่วมกับ ระบบอัตโนมัติด้วย Emacs Lisp จนกลายเป็นโฟลว์การดำเนินงาน
- BigBlueButton 3.0, สตรีม 480p, ไลฟ์อีเวนต์บน YouTube แบบแบ่งชิฟต์, และร่างคำบรรยายจาก WhisperX โดยรวมทำงานได้ดี แต่ยังมีเรื่อง การ normalize เสียง, วิดีโอ 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 Live สูงสุดต่อชิฟต์อยู่ระหว่าง 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
- มีเวลา 82 วัน ตั้งแต่เริ่ม CFP ถึงปิด CFP, 49 วันจากปิด CFP ถึงวันเป้าหมายส่งวิดีโอ, และ 29 วันจากวันเป้าหมายส่งวิดีโอถึงวันงาน
- ปีนี้ก็ยังใช้ การอนุมัติก่อนกำหนด และปรับให้เซสชันบรรยายยาวได้รับการอนุมัติหลังจากเห็นภาพรวมของตารางทั้งหมดแล้ว
- มีวิดีโอ 6 รายการมาถึงก่อนหรือในวันเป้าหมาย ส่วนที่เหลือทยอยเข้ามาหลังจากนั้น แต่ไม่เป็นปัญหาใหญ่เพราะนโยบายลดภาระและกำลังการรองรับที่มีอยู่
ข้อมูล การสื่อสาร และการจัดตาราง
- ข้อมูลการบรรยายยังคงจัดการด้วย Org files และถ้าเพิ่มฟังก์ชันตรวจสอบต่อไปนี้ก็จะช่วยลดความผิดพลาดในการดำเนินงานได้อีก
- ตรวจสอบสิทธิ์และความเป็นเจ้าของไฟล์
- ตรวจสอบการจัดการตัวพิมพ์เล็ก-ใหญ่ในการตรวจจับประเภท Q&A
- ตรวจสอบว่ามีหน้า redirect ของ BBB อยู่จริง
- ตรวจสอบ backticks ใน transcript ที่อาจทำให้รูปแบบวิกิเสีย
- ตรวจสอบว่าไฟล์ถูกเผยแพร่และอ่านได้จริง
- ตรวจสอบความไม่สอดคล้องกันระหว่างคอมเมนต์ของผู้ทำคำบรรยาย สถานะคำบรรยาย และผู้ทำคำบรรยาย
- การอัปโหลดไฟล์จากผู้บรรยายกลับมาใช้ 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
- การติดต่อผู้บรรยายและอาสาสมัครใช้ mail merge จาก emacsconf-mail.el อย่างมาก
- การประสานงานหลังเวทียังคงใช้ Mumble และทำงานได้เสถียร
การจัดเซสชันและระบบอัตโนมัติ
- งานจัดเป็นสองวัน โดยวันแรกมี สองแทร็ก และวันที่สองเป็นแทร็กเดียว
- เว้นช่วงประมาณ 15–20 นาทีระหว่างแต่ละเซสชัน เพื่อรับมือกับการส่งไฟล์ล่าช้า การยกเลิกนาทีสุดท้าย และการเปลี่ยน Q&A เป็นไลฟ์ในช่วงท้าย
- วันอาทิตย์มีการเพิ่ม open mic session เพื่อเติมเวลาที่ว่างจากการยกเลิกนาทีสุดท้าย และปีหน้าก็อาจพิจารณาจัดสรรช่วงนี้ไว้ล่วงหน้า
- การย้ายบางส่วนของคำกล่าวปิดงานไปไว้ก่อนหน้านี้ช่วยให้งานจบตรงเวลา และทำให้โฮสต์กับผู้เข้าร่วมบางคนไม่ต้องอยู่ดึกเกินไป
- ในระบบเผยแพร่ตารางอัตโนมัติมีปัญหาเล็กน้อย เพราะ
case-fold-searchเป็นnilทำให้ Q&A ที่เป็น"Live"ไม่แมตช์กับliveจึงไม่ได้ถูกประกาศเป็นเซสชันไลฟ์ - การตั้งค่านี้ถูกเพิ่มใน
emacsconf-stream-config.elแล้ว และครั้งหน้าจะนำไปใส่ในสคริปต์ ansible - การสลับเซสชันปล่อยให้ระบบอัตโนมัติบน crontab จัดการ และทำงานได้เสถียร
- มีปัญหาครั้งหนึ่งที่ปิด crontab เพื่อจะกล่าวปิดงานวันเสาร์ในเวลาที่ต้องการ แต่ลืมเปิด autopilot กลับในวันถัดไป ทำให้ช่วงเปิดงานวันอาทิตย์ไม่ได้เริ่มตรงเวลา
- แทร็ก dev ถูกจัดให้เริ่มช้ากว่าแทร็ก gen เล็กน้อย เพื่อลดภาระการดำเนินงานตอนเช้า
- เช้าวันอาทิตย์มีการจัด Q&A แบบ IRC มากขึ้นแทน Q&A แบบไลฟ์ และปีนี้ไม่เห็นปัญหาแบนด์วิดท์ในช่วงเช้าวันอาทิตย์
- จุดที่ยังอยากปรับปรุงในอนาคตคือ JavaScript countdown สำหรับเว็บอินเทอร์เฟซโฮสต์, การสะท้อนเวลาจบวิดีโอปัจจุบันจาก MPV, และการแสดงเวลาท้องถิ่นบนหน้าตาราง/หน้ารับชม
วิดีโอที่บันทึกล่วงหน้าและการสตรีม
- มีการแนะนำอย่างหนักให้ผู้บรรยายส่ง วิดีโอบันทึกล่วงหน้า เพื่อลดความเครียดในการดำเนินงาน และเปิดโอกาสให้อาสาสมัครทำคำบรรยายได้
- ยังสามารถรองรับทั้งการส่งไฟล์นาทีสุดท้ายและการบรรยายสดได้ และเมื่อแต่ละเซสชันถูกเผยแพร่แบบไลฟ์ ก็สามารถโพสต์วิดีโอและ transcript ขึ้นวิกิได้อัตโนมัติ
- ปีนี้ไม่มีปัญหาเรื่อง cutoff ของการเข้ารหัสวิดีโอแบบชัดเจน และวิธี re-encode ภายใน screen ก็ทำงานได้อย่างน่าเชื่อถือในการป้องกันอาการสะดุด
- การ normalize เสียงอัตโนมัติด้วย
ffmpeg-normalizeทำงานได้ไม่ดีนัก จน Leo Vivier ต้องรีบ normalize เสียงในวันก่อนงาน - ปีหน้ามีแนวคิดจะลอง remix เสียงเป็น mono
- ในหนึ่งเซสชันมีเสียงสลับซ้ายขวาจนทำให้รบกวนการฟัง
- ผู้เข้าร่วมบางคนฟังได้เพียงข้างเดียว จึงอาจได้ประโยชน์จาก mono
- วิดีโอ 60fps ดูเหมือนจะสร้างภาระให้เซิร์ฟเวอร์ res จนเกิด dropped frames ดังนั้นครั้งหน้าอาจ downsample เป็น 30fps และเพิ่มหมายเหตุไว้ในคำแนะนำเตรียมบรรยาย
- มีอาการสีเพี้ยนและภาพผิดปกติในบางวิดีโอบน MPV แต่แก้ได้หลังอัปเกรดเป็น MPV v0.38
- มีการอัปโหลดวิดีโอทั้งหมดขึ้น YouTube และตั้งเวลาเผยแพร่ไว้ล่วงหน้า ซึ่งสะดวกเพราะไม่ต้องคอยอัปเดตระหว่างงาน
- Toobnix ก็รองรับการอัปโหลดแบบตั้งเวลาเช่นกัน แต่ระหว่างงานยังไม่รู้เรื่องนี้ จึงใช้งานผ่านฟังก์ชัน
emacsconf-publish-upload-talk
คำบรรยายและการจัดการ Q&A
- ปีนี้ใช้ WhisperX สำหรับงานแปลงเสียงเป็นข้อความ
- WhisperX ทำผลงานได้ดีในการสร้าง ร่างคำบรรยาย ที่อาสาสมัครสามารถนำไปแก้ไขต่อได้
- ระบบตรวจจับช่วงมีเสียงในตัวของ WhisperX ช่วยลดอาการ hallucination ในช่วงเงียบได้มาก เมื่อเทียบกับ OpenAI Whisper ที่ใช้ปีก่อน
- มีกรณีหนึ่งที่ WhisperX พลาดข้อความช่วงหนึ่งของผู้บรรยาย และส่วนนั้นถูกเติมด้วยมือ
- ด้วย Lenovo P52 และ RAM 64GB งานประมวลผลคำบรรยายช่วงท้ายก็ยังทำบนเครื่องโลคัลได้
- แม้ timestamp จะคลาดเคลื่อนเล็กน้อย แต่กระบวนการที่ผู้บรรยายและอาสาสมัครตรวจคุณภาพวิดีโอหลังเวทีก็ช่วยได้มาก
- ใช้ Aeneas สำหรับการจัดเรียงข้อความตามเวลาใหม่ แต่ Aeneas ก็ยังสับสนกับช่วงเงียบเช่นกัน
- มีการเพิ่มโค้ดใน subed เพื่อจัดเรียงช่วงคำบรรยายใหม่ด้วย timestamp จาก Aeneas หรือ WhisperX
- Anush V ได้ทดลองใช้แมชชีนเลิร์นนิงกับ subtitle segmentation และยังเป็นหัวข้อที่น่าสำรวจต่อในอนาคต
- การบันทึก Q&A บางครั้งเริ่มหลังจากเริ่มเซสชันไปแล้วไม่กี่นาที แต่ก็ไม่ได้ดึงช่วงต้นจาก Icecast dump หรือวิดีโอบันทึกสตรีม YouTube มาเติม
- การตั้งค่า BigBlueButton ให้ใช้ video additional processing format ทำให้ปีนี้ได้ไฟล์เดียวต่อเซสชัน และไม่ต้องรวมหลายสตรีมด้วย ffmpeg อีก
- มีการตรวจ transcript และแชตล็อกของ Q&A อย่างรวดเร็วว่าไม่มีเนื้อหาที่อาจต้องการลบ
- มีการเพิ่มฟังก์ชัน
subed-crop-media-fileทำให้การตัดไฟล์ Q&A ง่ายขึ้น
BigBlueButton และการดูแลเซิร์ฟเวอร์
- ปีนี้มีการตั้งค่าเซิร์ฟเวอร์เว็บคอนเฟอเรนซ์ BigBlueButton ตัวใหม่
- เซิร์ฟเวอร์ที่เคยใช้กับ BigBlueButton เดิมได้รับการบริจาคจากองค์กรไม่แสวงกำไรที่เลิกไปแล้ว และถูกถอดออกเมื่อ 27 ตุลาคม
- หลังจากพิจารณาความเหมาะสมของ Jitsi และ Galene แล้ว ก็เลือกใช้ BigBlueButton ต่อไป
- เนื่องจากกังวลเรื่อง Mongo แบบ non-free ใน BBB เวอร์ชันตั้งแต่ 2.3 ขึ้นไปแต่ยังไม่ถึง 3 จึงติดตั้ง BBB 3.0
- การรัน BBB 3.0 บน Docker ของเซิร์ฟเวอร์ res เดิมทำได้ยาก จึงตัดสินใจเพิ่ม Linode VPS แยกต่างหาก
- BBB ปฏิเสธการทำงานบนเซิร์ฟเวอร์ที่เล็กกว่า 8GB/4core ระหว่างทดสอบจึงอัปเป็น 8GB/4core จากนั้นลดลงเป็น 1GB/1core ชั่วคราวกลางทาง และตอนจัดงานจริงอัปเป็นเครื่อง dedicated 16GB/8core
- ข้อดีอย่างหนึ่งของ BBB 3.0 คือ smart layout ที่สามารถลาก thumbnail ของเว็บแคมมาไว้ข้างหน้าจอแชร์ เพื่อให้อ่านหน้าจอแชร์ได้ง่ายขึ้น
- การสร้างห้องผ่าน Rails console ค่อนข้างตรงไปตรงมา
- แม้จะให้ moderator access code กับผู้บรรยาย แต่ถึง superadmin จะล็อกอินอยู่ ก็ไม่ได้มีสิทธิ์ moderator ทุกห้องโดยอัตโนมัติ จึงต้องเพิ่ม host access ด้วยมือ
- การใช้งาน BBB เมื่อเทียบกับปี 2023 เป็นดังนี้
- ผู้ใช้พร้อมกันสูงสุด: เพิ่มจาก 62 เป็น 107
- จำนวนห้องประชุมพร้อมกันสูงสุด: เพิ่มจาก 6 เป็น 7
- จำนวนคนสูงสุดในห้องเดียว: ลดจาก 27 เป็น 25
- ผู้ใช้ไม่ซ้ำทั้งหมด: เพิ่มจาก 84 เป็น 102
- ผู้ใช้ไม่ซ้ำที่พูด: เพิ่มจาก 36 เป็น 40
- จำนวนผู้ใช้พร้อมกันสูงสุดเป็นตัวเลขสำคัญสำหรับการวางแผนโหลดเซิร์ฟเวอร์ จึงไม่ตัดข้อมูลซ้ำออก
Etherpad, IRC และการเผยแพร่อัตโนมัติ
- ปีนี้กลับมาใช้ Etherpad 1.9.7 สำหรับรวบรวม Q&A
- Etherpad v2.x ยังหาแนวทางรันให้เสร็จทันเวลาที่กำหนดไม่ได้ จึงยังไม่อัปเกรดในปีนี้
- มีการเขียน Elisp เพื่อคัดลอกบรรทัดปัจจุบันจาก ERC โดยไม่ขึ้นบรรทัดใหม่ แล้วนำไปวางใน Etherpad ซึ่งใช้ได้ดีในการย้ายคำถามจาก IRC ไปยัง pad
- ฟังก์ชันนี้คือ
emacsconf-erc-copyและอยู่ใน emacsconf-erc.el - ปีหน้ามีแผนจะเพิ่ม สรรพนามและการออกเสียงชื่อ ลงในเทมเพลต Etherpad เพื่อให้โฮสต์อ้างอิงได้ง่าย
- เพราะมีการแจ้ง libera.chat ล่วงหน้าก่อนงาน จึงไม่ติดข้อจำกัดการใช้งาน
chat.emacsconf.org - การตั้งค่า IRC แทบไม่ได้แตะต้อง และยังทำงานได้อย่างเสถียรในฐานะแพลตฟอร์มสนทนา
- ถ้ามีคีย์ลัดสำหรับแทรก URL ของเซสชันบรรยายก็น่าจะมีประโยชน์ และน่าจะเพิ่มลงใน Embark keymap ได้ง่าย
- กระบวนการโพสต์การบรรยายและ transcript ขึ้นวิกิโดยอัตโนมัติ บางครั้งยังต้องแทรกแซงด้วยมือเมื่อมีคน commit การเปลี่ยนแปลงในวิกิ
- มีการลืมสลับ conference publishing phase เพื่อเปิดใช้งานการฝัง Etherpad แต่ Ihor สังเกตเห็นและแก้ไขทันในช่วงท้าย
ค่าใช้จ่าย เวลา และเอกสาร
- ค่าใช้จ่ายของปี 2024 ก่อนภาษีมีดังนี้
- ค่าโฮสติ้งเพิ่มเติมในเดือนธันวาคม: USD 52.54
- ค่าใช้จ่ายเพิ่มเติมสำหรับการทดสอบ BBB ในเดือนพฤศจิกายน: USD 3.11
- ค่าโฮสติ้งตลอดปี: USD 120
- รวมค่าใช้จ่ายก่อนภาษี USD 175.65 และรวมภาษี 13% เป็น USD 198.48
- Free Software Foundation ให้บริการ media.emacsconf.org สำหรับแจกจ่ายไฟล์มีเดีย
- Ry P ให้บริการ res.emacsconf.org สำหรับสตรีม OBS ผ่านเซสชัน VNC
- ในสุดสัปดาห์ของงาน ไม่มีใครพร้อมตรวจรายชื่อผู้บริจาคและสถิติการบริจาคปัจจุบันของโครงการ FSF Working Together ได้ทันที ดังนั้นครั้งหน้าควรเตรียมไว้ล่วงหน้าเพื่อจะได้ขอบคุณผู้บริจาคอย่างเหมาะสม
- เวลาเกี่ยวกับ Emacs ในปี 2024 รวม 320 ชั่วโมง น้อยกว่าปี 2023 ที่ 432 ชั่วโมง
- เวลาเกี่ยวกับ Emacs ในเดือนตุลาคมและพฤศจิกายน 2024 อยู่ที่ 92.6 ชั่วโมง ซึ่งประมาณครึ่งหนึ่งของช่วงเดียวกันปีก่อนที่ 179.8 ชั่วโมง
- เวลาบางส่วนในปี 2023 เกี่ยวข้องกับการเตรียมบรรยายสำหรับ EmacsConf และตอนนั้นก็ยังคุ้นกับสคริปต์มากกว่า
- แม้เวลาเตรียมงานจะลดลง แต่ ระบบอัตโนมัติ ที่ค่อย ๆ สะสมมาก็แสดงผลลัพธ์ชัดเจน และทำให้ยังสามารถจัด EmacsConf ได้ภายใต้เวลาที่มีสมาธิอย่างจำกัด
- รายการสิ่งที่ต้องทำและบันทึกที่พบระหว่างดำเนินงาน ถูกเก็บไว้เป็นรายการที่จะเพิ่มใน 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 จงเจริญ
เท่าที่รู้ จะมีการนำเสนอหนึ่งรายการเกี่ยวกับความพยายามในการชุบชีวิต Emacs ที่ใช้ Guile เป็นฐาน แต่ยังไม่เห็นว่าอยู่ตรงไหนเลยไม่แน่ใจ
พอ Emacs ได้ความสามารถ native compilation แรงกดดันเรื่องนั้นก็น่าจะลดลงบ้าง แต่ผมยังคิดว่าการสคริปต์ Emacs ด้วยภาษาที่ไม่ใช่ Elisp ยังมีเสน่ห์อยู่
ถ้าเพื่อเป้าหมายนั้น Scheme หรือ Lua ก็น่าจะดีทีเดียว
แก้ไข: เจอแล้ว อยู่ที่นี่ - https://emacsconf.org/2024/talks/guile/
ผมเป็นคนฝั่ง Guile แต่แม้ฝั่ง Emacs จะยอมให้ใช้แค่ elisp บน Guile ก็ถือว่าได้ประโยชน์มากพอแล้ว
คาดหวังว่าจะมีเนื้อหาเกี่ยวกับ EAF ในปีนี้
ผมคิดว่าสิ่งที่ Emacs ยังขาดอยู่มากคือวิธีจัดการกราฟิกแบบโต้ตอบได้ดี ๆ และ EAF ก็ยังค่อนข้างไม่เสถียรและเอกสารยังน้อย
หวังว่าโปรเจกต์นี้หรืออะไรที่ดีกว่านี้จะมีความคืบหน้า
[1]: https://github.com/emacs-eaf/emacs-application-framework
เสียดายมากที่ไม่ได้ “เข้าร่วม” งานนี้
ผมใช้ Emacs มามากกว่า 15 ปีแล้ว และคนอย่าง 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/ -- literate programming ของ Howard Abram
https://emacsconf.org/2024/talks/gypsum/ -- Emacs ที่สร้างด้วย Guile และโคลนของ Emacs Lisp
https://emacsconf.org/2024/talks/rust/ -- Rune ซึ่งเป็นคอร์ Emacs เชิงทดลองที่สร้างด้วย Rust
https://emacsconf.org/2024/talks/julia/ -- การบรรยายยอดเยี่ยมเกี่ยวกับ concurrency ระหว่าง 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 + ภาษี เว็บโหนดและโหนดไลฟ์สตรีมจะยังคงเป็น 1GB nanode ในช่วงเวลาที่เหลือ เซิร์ฟเวอร์ 2 เครื่อง เครื่องละ USD 5 ต่อเดือน + ภาษี จึงเป็น USD 110 ถือว่ารับได้สบาย”
อยากรู้ว่าค่าใช้จ่ายนี้เมื่อเทียบกับค่าใช้จ่ายของคอนเฟอเรนซ์อื่น ๆ แล้วเป็นอย่างไร
ถ้าลองตั้งค่า BBB ด้วย Docker เองจะรู้ว่าไม่ง่าย
ถ้าไม่เคยทำมาก่อน หรือไม่ได้เป็นผู้เชี่ยวชาญ somehow ก็ยากพอสมควร และผมเคยลองแล้วก็ยอมแพ้
ผ่านไปหลายเดือนหรือหลายปี คนก็ยังมาโพสต์ใน issue ที่ผมเปิดไว้
การ deploy ด้วย Docker ก็ไม่ใช่วิธี deploy อย่างเป็นทางการ จึงเข้าใจได้ว่าเป็นเรื่องยากที่จะได้รับความช่วยเหลือจากผู้ดูแล
เป็นชุดระบบขนาดใหญ่ที่มีชิ้นส่วนเคลื่อนไหวจำนวนมาก
ถึงอย่างนั้น การทำมันสำเร็จก็ยอดเยี่ยมจริง ๆ
น่าจะประมาณ USD 12 แต่ตอนนี้ตรวจสอบตัวเลขที่แน่นอนได้ไม่ทันที
กำลังทดลองส่งของขวัญเล็ก ๆ เพื่อแสดงความขอบคุณด้วย
แผนชั่วร้ายคือสติกเกอร์หรือเข็มกลัดอาจทำให้คนอื่น ๆ ชวนผู้บรรยายคุยเรื่อง Emacs ได้ แต่ Corwin มองว่าเป็นการทดลองส่วนตัว จึงไม่ใส่ไว้ในงบของคอนเฟอเรนซ์
แน่นอนว่ายังมีหลายอย่างที่ไม่ถูกนับเป็น ต้นทุนทางการเงิน เช่น เวลาที่ผู้บรรยายใช้ทำการบรรยาย หรือเซิร์ฟเวอร์ที่ผู้คนแบ่งปันให้ใช้
แต่ถึงอย่างนั้น ก็มีหลายอย่างอย่างน่าประหลาดใจที่ทำได้ด้วยงบประมาณเล็ก ๆ และอาสาสมัครแบบหลวม ๆ
ถ้าใครเคยคิดจะจัดคอนเฟอเรนซ์ของตัวเอง ก็คุ้มค่าพอให้ลองพิจารณา
ติดตาม Sacha มานาน และชอบอัปเดตเกี่ยวกับ Emacs ที่โพสต์อยู่บ่อย ๆ
ผมเป็นแฟนตัวยงของ Common Lisp และปีที่แล้วก็ซื้อหนังสือ Mastering Emacs มาแล้ว ตอนนี้ก็แค่ต้องตัดสินใจลงมือทำโปรเจกต์สักอย่างด้วย Emacs Lisp เท่านั้น
ต้องเตรียมใจคิดจากมุมมองของ dynamic scope จริง ๆ
ผมไปจาก elisp ไป Common Lisp ในทางกลับกัน และการกลับไป elisp อีกครั้งนั้นยาก
สงสัยว่า TeXmacs ควรถูกนับรวมใน EmacsConf หรือไม่ ทั้งที่ไม่ได้มีฐานมาจาก Emacs หรือ TeX เพียงแค่ได้รับแรงบันดาลใจเท่านั้น
การแลกเปลี่ยนไอเดียและความกระตือรือร้นระหว่างเครื่องมือตระกูล Emacs ย่อมเป็นประโยชน์ต่อทั้งสองโปรเจกต์และต่อ editor ฐาน Lisp โดยรวม
เหตุผลที่ผมเป็นคนนั่งดูจากข้างสนามจริง ๆ คือเวลาต้องเขียนเอกสารทางเทคนิคผมใช้ LyX ดังนั้นจึงยังพลาด use case ที่สำคัญมากอย่างหนึ่งของ TeXmacs ไป