From ba20b7297fcedf834bb98f7dbdfb219ddb65d1dd Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 8 Jul 2025 10:10:28 -0400 Subject: add bibliography, completion, juicemacs, python --- 2025/draft-schedule.md | 18 ++++++ 2025/info/completion-after.md | 10 ++++ 2025/info/completion-before.md | 12 ++++ 2025/info/completion-nav.md | 6 ++ 2025/info/python-after.md | 10 ++++ 2025/info/python-before.md | 12 ++++ 2025/info/python-nav.md | 7 +++ 2025/info/sat-close-after.md | 10 ++++ 2025/info/sat-close-before.md | 12 ++++ 2025/info/sat-close-nav.md | 7 +++ 2025/info/sat-open-after.md | 10 ++++ 2025/info/sat-open-before.md | 12 ++++ 2025/info/sat-open-nav.md | 7 +++ 2025/info/sun-close-after.md | 10 ++++ 2025/info/sun-close-before.md | 12 ++++ 2025/info/sun-close-nav.md | 6 ++ 2025/info/sun-open-after.md | 10 ++++ 2025/info/sun-open-before.md | 12 ++++ 2025/info/sun-open-nav.md | 7 +++ 2025/organizers-notebook/index.org | 9 ++- 2025/organizers-notebook/schedule.svg | 2 +- 2025/schedule-2025-12-06.md | 1 + 2025/schedule-2025-12-07.md | 1 + 2025/schedule-details.md | 13 +++++ 2025/schedule-image.md | 1 + 2025/talks/bibliography.md | 83 ++++++++++++++++++++++++++ 2025/talks/completion.md | 36 ++++++++++++ 2025/talks/juicemacs.md | 106 ++++++++++++++++++++++++++++++++++ 2025/talks/python.md | 26 +++++++++ 29 files changed, 465 insertions(+), 3 deletions(-) create mode 100644 2025/draft-schedule.md create mode 100644 2025/info/completion-after.md create mode 100644 2025/info/completion-before.md create mode 100644 2025/info/completion-nav.md create mode 100644 2025/info/python-after.md create mode 100644 2025/info/python-before.md create mode 100644 2025/info/python-nav.md create mode 100644 2025/info/sat-close-after.md create mode 100644 2025/info/sat-close-before.md create mode 100644 2025/info/sat-close-nav.md create mode 100644 2025/info/sat-open-after.md create mode 100644 2025/info/sat-open-before.md create mode 100644 2025/info/sat-open-nav.md create mode 100644 2025/info/sun-close-after.md create mode 100644 2025/info/sun-close-before.md create mode 100644 2025/info/sun-close-nav.md create mode 100644 2025/info/sun-open-after.md create mode 100644 2025/info/sun-open-before.md create mode 100644 2025/info/sun-open-nav.md create mode 100644 2025/schedule-2025-12-06.md create mode 100644 2025/schedule-2025-12-07.md create mode 100644 2025/schedule-details.md create mode 100644 2025/schedule-image.md create mode 100644 2025/talks/bibliography.md create mode 100644 2025/talks/completion.md create mode 100644 2025/talks/juicemacs.md create mode 100644 2025/talks/python.md (limited to '2025') diff --git a/2025/draft-schedule.md b/2025/draft-schedule.md new file mode 100644 index 00000000..ed5db428 --- /dev/null +++ b/2025/draft-schedule.md @@ -0,0 +1,18 @@ +[[!sidebar content=""]] + +This is a *DRAFT* schedule. +Jump to: Sat Dec 6 - Sun Dec 7 +# Saturday Dec 6, 2025 +[[!inline pages="internal(2025/schedule-2025-12-06)" raw="yes"]] + +
+[[!template id=sched time="""10""" q-and-a="""Etherpad""" startutc="""2025-12-06T14:00:00+0000""" endutc="""2025-12-06T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]] +[[!template id=sched time="""10""" q-and-a="""Etherpad""" startutc="""2025-12-06T21:30:00+0000""" endutc="""2025-12-06T21:40:00+0000""" start="""4:30""" end="""4:40""" title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]]
+ +Jump to: Sat Dec 6 - Sun Dec 7 +# Sunday Dec 7, 2025 +[[!inline pages="internal(2025/schedule-2025-12-07)" raw="yes"]] + +
+[[!template id=sched time="""10""" q-and-a="""Etherpad""" startutc="""2025-12-07T14:00:00+0000""" endutc="""2025-12-07T14:10:00+0000""" start="""9:00""" end="""9:10""" title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]] +[[!template id=sched time="""10""" q-and-a="""BBB""" startutc="""2025-12-07T18:00:00+0000""" endutc="""2025-12-07T18:10:00+0000""" start="""1:00""" end="""1:10""" title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" track="""General""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]]
\ No newline at end of file diff --git a/2025/info/completion-after.md b/2025/info/completion-after.md new file mode 100644 index 00000000..886691d9 --- /dev/null +++ b/2025/info/completion-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [paaguti@gmail.com](mailto:paaguti@gmail.com?subject=Comment%20for%20EmacsConf%202023%20completion%3A%20corfu%2Byasnippet%3A%20Easier%20than%20I%20thought) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/completion-before.md b/2025/info/completion-before.md new file mode 100644 index 00000000..934ba044 --- /dev/null +++ b/2025/info/completion-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 20-min talk ; Q&A: ask questions via Etherpad/IRC; we'll e-mail the speaker and post answers on this wiki page after the conference +Status: Waiting for video from speaker + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/completion-nav.md b/2025/info/completion-nav.md new file mode 100644 index 00000000..f014b769 --- /dev/null +++ b/2025/info/completion-nav.md @@ -0,0 +1,6 @@ + +
+Back to the [[talks]] +Next by track: Interactive Python development in Emacs +Track: General +
diff --git a/2025/info/python-after.md b/2025/info/python-after.md new file mode 100644 index 00000000..ff1ca050 --- /dev/null +++ b/2025/info/python-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20python%3A%20Interactive%20Python%20development%20in%20Emacs) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/python-before.md b/2025/info/python-before.md new file mode 100644 index 00000000..a7914b81 --- /dev/null +++ b/2025/info/python-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 20-min talk ; Q&A: BigBlueButton conference room +Status: Waiting for video from speaker + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/python-nav.md b/2025/info/python-nav.md new file mode 100644 index 00000000..27d2b922 --- /dev/null +++ b/2025/info/python-nav.md @@ -0,0 +1,7 @@ + +
+Back to the [[talks]] +Previous by track: corfu+yasnippet: Easier than I thought +Next by track: Saturday opening remarks +Track: Development +
diff --git a/2025/info/sat-close-after.md b/2025/info/sat-close-after.md new file mode 100644 index 00000000..7418bd5e --- /dev/null +++ b/2025/info/sat-close-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-close%3A%20Saturday%20closing%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/sat-close-before.md b/2025/info/sat-close-before.md new file mode 100644 index 00000000..70f31fd7 --- /dev/null +++ b/2025/info/sat-close-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Ready to stream + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/sat-close-nav.md b/2025/info/sat-close-nav.md new file mode 100644 index 00000000..af810350 --- /dev/null +++ b/2025/info/sat-close-nav.md @@ -0,0 +1,7 @@ + +
+Back to the [[talks]] +Previous by track: Saturday opening remarks +Next by track: Sunday opening remarks +Track: General +
diff --git a/2025/info/sat-open-after.md b/2025/info/sat-open-after.md new file mode 100644 index 00000000..bb35fb6a --- /dev/null +++ b/2025/info/sat-open-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sat-open%3A%20Saturday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/sat-open-before.md b/2025/info/sat-open-before.md new file mode 100644 index 00000000..64226dc9 --- /dev/null +++ b/2025/info/sat-open-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Waiting for video from speaker + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/sat-open-nav.md b/2025/info/sat-open-nav.md new file mode 100644 index 00000000..54586e13 --- /dev/null +++ b/2025/info/sat-open-nav.md @@ -0,0 +1,7 @@ + +
+Back to the [[talks]] +Previous by track: Interactive Python development in Emacs +Next by track: Saturday closing remarks +Track: General +
diff --git a/2025/info/sun-close-after.md b/2025/info/sun-close-after.md new file mode 100644 index 00000000..951d7071 --- /dev/null +++ b/2025/info/sun-close-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-close%3A%20Sunday%20closing%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/sun-close-before.md b/2025/info/sun-close-before.md new file mode 100644 index 00000000..533c7115 --- /dev/null +++ b/2025/info/sun-close-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 10-min talk ; Q&A: BigBlueButton conference room +Status: Ready to stream + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/sun-close-nav.md b/2025/info/sun-close-nav.md new file mode 100644 index 00000000..fab7858b --- /dev/null +++ b/2025/info/sun-close-nav.md @@ -0,0 +1,6 @@ + +
+Back to the [[talks]] +Previous by track: Sunday opening remarks +Track: General +
diff --git a/2025/info/sun-open-after.md b/2025/info/sun-open-after.md new file mode 100644 index 00000000..817a580e --- /dev/null +++ b/2025/info/sun-open-after.md @@ -0,0 +1,10 @@ + + + +Questions or comments? Please e-mail [emacsconf-org-private@gnu.org](mailto:emacsconf-org-private@gnu.org?subject=Comment%20for%20EmacsConf%202023%20sun-open%3A%20Sunday%20opening%20remarks) + +---- +Got an idea for an EmacsConf talk or session? We'd love to hear from you! Check out the [[Call for Participation|/2025/cfp]] for details. + + + diff --git a/2025/info/sun-open-before.md b/2025/info/sun-open-before.md new file mode 100644 index 00000000..64226dc9 --- /dev/null +++ b/2025/info/sun-open-before.md @@ -0,0 +1,12 @@ + +[[!toc ]] +Format: 10-min talk ; Q&A: Etherpad +Status: Waiting for video from speaker + + + + + + +# Description + \ No newline at end of file diff --git a/2025/info/sun-open-nav.md b/2025/info/sun-open-nav.md new file mode 100644 index 00000000..e970e829 --- /dev/null +++ b/2025/info/sun-open-nav.md @@ -0,0 +1,7 @@ + +
+Back to the [[talks]] +Previous by track: Saturday closing remarks +Next by track: Sunday closing remarks +Track: General +
diff --git a/2025/organizers-notebook/index.org b/2025/organizers-notebook/index.org index 64d1a286..3272104e 100644 --- a/2025/organizers-notebook/index.org +++ b/2025/organizers-notebook/index.org @@ -172,8 +172,8 @@ CLOSED: [2025-06-25 Wed 09:13] - [ ] cfp - [ ] submit -**** TODO Post CFP in the usual places -SCHEDULED: <2025-06-27 Fri> +**** DONE Post CFP in the usual places +CLOSED: [2025-06-30 Mon 16:32] SCHEDULED: <2025-06-27 Fri> :PROPERTIES: :CUSTOM_ID: phases-draft-cfp-post-cfp-in-the-usual-places :END: @@ -218,9 +218,13 @@ SCHEDULED: <2025-06-27 Fri> (setq emacsconf-schedule-plan '(("GEN Saturday, Dec 6" :start "2025-12-06 09:00" :set-track "General") sat-open + bibliography + completion (lunch :start "12:00") (sat-close :start "16:30") ("DEV Saturday, Dec 6" :start "2025-12-06 10:00" :set-track "Development") + python + juicemacs (lunch :start "12:00") ("GEN Sunday, Dec 7" :start "2025-12-07 09:00" :set-track "General") sun-open @@ -243,6 +247,7 @@ SCHEDULED: <2025-06-27 Fri> #+RESULTS: schedule :results: sunday closing remarks: Starts at 13:00 before 16:30 +completion: Starts at 09:50 before 11:00 :end: [[file:schedule.svg]] diff --git a/2025/organizers-notebook/schedule.svg b/2025/organizers-notebook/schedule.svg index a9842477..9ae123df 100644 --- a/2025/organizers-notebook/schedule.svg +++ b/2025/organizers-notebook/schedule.svg @@ -1 +1 @@ -Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 4:30- 4:40 Saturday closing remarkssat-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 9:00- 9:10 Sunday opening remarkssun-open 1:00- 1:10 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM \ No newline at end of file +Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 9:10- 9:30 An enhanced bibliography in org-mode for scientific research and self-directed learningbibliography 9:50-10:10 corfu+yasnippet: Easier than I thoughtcompletion 4:30- 4:40 Saturday closing remarkssat-close10:00-10:20 Interactive Python development in Emacspython10:40-11:00 Juicemacs: Exploring Speculative JIT Compilation for ELisp in Javajuicemacs9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 9:00- 9:10 Sunday opening remarkssun-open 1:00- 1:10 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM \ No newline at end of file diff --git a/2025/schedule-2025-12-06.md b/2025/schedule-2025-12-06.md new file mode 100644 index 00000000..d0950f75 --- /dev/null +++ b/2025/schedule-2025-12-06.md @@ -0,0 +1 @@ +
Schedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 5:00- 5:10 Saturday closing remarkssat-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM
\ No newline at end of file diff --git a/2025/schedule-2025-12-07.md b/2025/schedule-2025-12-07.md new file mode 100644 index 00000000..e53595d8 --- /dev/null +++ b/2025/schedule-2025-12-07.md @@ -0,0 +1 @@ +
Schedule for SundaySunday 4:50- 5:00 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM
\ No newline at end of file diff --git a/2025/schedule-details.md b/2025/schedule-details.md new file mode 100644 index 00000000..e6dbdbbd --- /dev/null +++ b/2025/schedule-details.md @@ -0,0 +1,13 @@ +Jump to: Development + +

General (5 talks)

+[[!template id=sched title="""corfu+yasnippet: Easier than I thought""" url="""/2025/talks/completion""" speakers="""Pedro A. Aranda Gutiérrez""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""completion""" note=""""""]] +[[!template id=sched title="""Saturday opening remarks""" url="""/2025/talks/sat-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-open""" note=""""""]] +[[!template id=sched title="""Saturday closing remarks""" url="""/2025/talks/sat-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sat-close""" note=""""""]] +[[!template id=sched title="""Sunday opening remarks""" url="""/2025/talks/sun-open""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-open""" note=""""""]] +[[!template id=sched title="""Sunday closing remarks""" url="""/2025/talks/sun-close""" watch="""https://emacsconf.org/2025/watch/gen""" slug="""sun-close""" note=""""""]] + +Jump to: General + +

Development (1 talk)

+[[!template id=sched title="""Interactive Python development in Emacs""" url="""/2025/talks/python""" speakers="""David Vujic""" watch="""https://emacsconf.org/2025/watch/dev""" slug="""python""" note=""""""]] \ No newline at end of file diff --git a/2025/schedule-image.md b/2025/schedule-image.md new file mode 100644 index 00000000..65d25be7 --- /dev/null +++ b/2025/schedule-image.md @@ -0,0 +1 @@ +
Graphical view of the scheduleSchedule for SaturdaySaturday 9:00- 9:10 Saturday opening remarkssat-open 5:00- 5:10 Saturday closing remarkssat-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for SundaySunday 4:50- 5:00 Sunday closing remarkssun-close9 AM10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PMSchedule for TuesdayTuesday10:08-10:08 Sunday opening remarkssun-open10:08-10:08 corfu+yasnippet: Easier than I thoughtcompletion10:08-10:08 Interactive Python development in Emacspython10 AM11 AM12 PM1 PM2 PM3 PM4 PM5 PM6 PM
\ No newline at end of file diff --git a/2025/talks/bibliography.md b/2025/talks/bibliography.md new file mode 100644 index 00000000..18bdfd0c --- /dev/null +++ b/2025/talks/bibliography.md @@ -0,0 +1,83 @@ +[[!meta title="An enhanced bibliography in org-mode for scientific research and self-directed learning"]] +[[!meta copyright="Copyright © 2025 Blaine Mooers"]] +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + + + + + +# An enhanced bibliography in org-mode for scientific research and self-directed learning +Blaine Mooers (he, him) - blaine-mooers@ouhsc.edu, + +[[!inline pages="internal(2025/info/bibliography-before)" raw="yes"]] + +This 20-minute talk introduces a modernized approach to creating annotated bibliographies using Org-mode. +This new approach overcomes the limitations of traditional BibTeX-based methods. +Unlike classical annotated bibliographies, this system supports rich content including text-wrapped figures, tables, code listings, equations, and appendices. +These features transform static reference collections into visual knowledge repositories. + +The presentation will demonstrate how this system leverages Org-mode's unique capabilities, particularly literate programming, to enable real-time data transformation and visualization from cited papers. +I introduce a modular architecture to overcome BibTeX's whitespace limitations in the annotation field, which stores notes for assembling annotated bibliographies in the classical approach. + +Key features of the new approach include: + +- A modular design that supports the reuse of annotation files between bibliographies and with literature notes in org-roam and denote +- Support for including figures, tables, equations, code listings, and literature programming blocks +- Citation key injection into subsection headings +- Automated PDF downloading, relabeling, and storing +- Property drawers for keywords, links to annotation note files to ease making further edits, and links to PDF documents +- Specialized sorting function for bibliography organization (by author, year, or keywords) +- Inclusion of a table of contents with hyperlinks +- Specialized glossaries for acronyms, software packages, equations, and mathematical notation + +I will address how this approach complements, rather than replaces, modern personal knowledge management systems like org-roam and denote. +This approach strengthens project-focused knowledge organization. +I will discuss the practical benefits, including improved visual memory reinforcement through embedded figures and reduced context switching during in-depth academic work. + +I will share the implementation details of the Emacs Lisp functions that power this system (available as a package). +The presentation will include demonstrations of how these functions streamline everyday tasks such as adding new entries, navigating between bibliography and source material, and preparing project-specific BibTeX files. +These functions reduce the friction in the academic reading and writing workflow. + +For those interested in adopting this approach, I will discuss adaptations for various workflows and address practical considerations, such as copyright implications when sharing illustrated bibliographies. +The talk will conclude with thoughts on how this system supports different reading styles (reference, survey, and deep reading) as identified by Stephen Heard in his 2022 book "A Scientist's Guide to Writing". +This approach is particularly valuable for researchers, graduate students, and knowledge workers who need to maintain project-specific literature collections. +The approach recognizes the reality that most scientists do not need access to their entire knowledge corpus when working on a specific paper. +Instead, they need a visually reinforced understanding of a targeted subset of the literature. + +The format is a 20-minute talk presented as a narrated slideshow. The outline follows: + +- The role of the annotated bibliography in my three-pronged approach to scientific writing project management, which I introduced last year in my talk about writing logs. +- My innovative use of a modular approach, along with numerous enhancements, promotes deep work. +- Why make an annotated bibliography in the Age of Zettelkastens and Generative AI? +- Why not assemble a notebook instead? +- The classic annotated bibliography and its deficits (i.e., why I developed the enhanced bibliography). +- The advantages of Org-mode for making this annotated bibliography. +- Defining the scope of the enhanced bibliography: research program level versus writing project-specific. +- Tour of the master org file that controls the assembly of the final PDF. +- Project file tree and version control with helper functions. +- The annotation file and accommodation of three levels of detail for reference, survey, and deep reading. +- Demonstrations of creating an entry by wrapping a citar, org-ref, and org-cite citekeys. +- Show how to use literature programming to carry out further analyses using data from a specific paper. +- Show integration with Zettelkasten by including annotation org files in literature notes. +- Feeding annotation files into generative AI for help with querying, brainstorming, planning, and synthesis. +- How does working on an annotated bibliography fit into my weekly writing schedule? +- Tour of the GitHub repository for this project. +- Copyright of figures and limits on sharing the enhanced bibliography in public. +- Summary +- Acknowledgements + +About the speaker: + +Blaine Mooers is an associate professor of biochemistry at the University of Oklahoma Health Sciences, where he specializes in macromolecular crystallography. His research focuses on RNA structures and protein-drug complexes important in cancer. +As an avid Emacs user for five years and LaTeX and Python user for 15 years, Dr. Mooers has developed tools to optimize scientific writing workflows. +In this talk, he shares his system for managing academic literature using Org-mode, which he developed as a solution to his frustration with traditional annotated bibliographies. +This new approach enhances scientific creativity and productivity by combining visual memory reinforcement with project-focused knowledge organization. +This approach addresses the challenging reality of scientific research, where focus is often more valuable than breadth. + + + +[[!inline pages="internal(2025/info/bibliography-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/bibliography-nav)" raw="yes"]] + + diff --git a/2025/talks/completion.md b/2025/talks/completion.md new file mode 100644 index 00000000..a074b568 --- /dev/null +++ b/2025/talks/completion.md @@ -0,0 +1,36 @@ +[[!meta title="corfu+yasnippet: Easier than I thought"]] +[[!meta copyright="Copyright © 2025 Pedro A. Aranda Gutiérrez"]] +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + + + + + +# corfu+yasnippet: Easier than I thought +Pedro A. Aranda Gutiérrez (he, him) - + +[[!inline pages="internal(2025/info/completion-before)" raw="yes"]] + +I describe my experience in "getting rid" of company-mode and +transitioning to corfu. I now have yasnippets integrated with +a couple lines Emacs Lisp. The main advantage is that with I +need less packages and configuration, specially on master. +The talk will include some code snippets that show it was +easier than expectedand a life demo. + +20 minutes (with demo) + +About the speaker: + +After 30 years using Emacs, professionally and for my PhD, I'm currenly +quite involved in org-mode, where I'm revamping the LaTeX backend. +To do this, I needed a new approach to auto-completion because +company-mode started requiring too much code and integration. + + + +[[!inline pages="internal(2025/info/completion-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/completion-nav)" raw="yes"]] + + diff --git a/2025/talks/juicemacs.md b/2025/talks/juicemacs.md new file mode 100644 index 00000000..ba29b3f6 --- /dev/null +++ b/2025/talks/juicemacs.md @@ -0,0 +1,106 @@ +[[!meta title="Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java"]] +[[!meta copyright="Copyright © 2025 Kana"]] +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + + + + + +# Juicemacs: Exploring Speculative JIT Compilation for ELisp in Java +Kana (they/them) - IRC: kanakana, Blog: https://kyo.iroiro.party - ActivityPub: @kana@f.iroiro.party - Bluesky: @kana.iroiro.party, + +[[!inline pages="internal(2025/info/juicemacs-before)" raw="yes"]] + +Just-in-time (JIT) compilation helps dynamic languages run fast, and +speculative compilation makes them run faster, as has been showcased +by JVMs, LuaJIT, JavaScript engines, and many more JIT runtimes. +However, Emacs native-compilation, despite its JIT compilation +(`native-comp-jit-compilation`), does not speculate about runtime +execution, making it effectively a JIT-ish AOT (ahead-of-time) +compiler. By introducing a speculative runtime for ELisp, we could +potentially improve ELisp performance even further, with many new +optimization opportunities. + +Juicemacs 1 is my work-in-progress toy project +re-implementing Emacs in Java. At its centre sits an ELisp JIT +runtime powered by Graal Truffle, a JIT interpreter framework based +on partial evaluation and Futamura projections. This talk will cover +the following along with some demonstrations: + +- What is Juicemacs and its ambition? How compatible is it (or does + it plan to be) with GNU Emacs and how feature-complete is it now? + +- What is speculative compilation? How is it useful for an ELisp JIT + runtime? + +- What is Truffle and partial evaluation? What is needed if we are to + implement a speculative runtime in C without Truffle? + +- How many interpreters are there in Emacs? How does Juicemacs + implement them? + +- What JIT techniques does Juicemacs plan to explore? How can you + get involved? + + +# Footnotes + +1 + +Outline: + +- Intro: Juicemacs + - Self-introduction + - Emacs `native-compile` versus modern JIT compilers + - Juicemacs: Yet another Emacs rewrite + - Demonstration: REPL, pbootstrap, pdump, elprop, ERT +- Speculative compilation + - What we talk about when we talk about JIT compilers + - Tired: JIT versus AOT + - Wired: With or without runtime information + - Speculative compilation + - Example: arithmetics + - Example: boxing elimination + - Graal+Truffle: a meta-compiler by partial evaluation +- ELisp JIT interpreters + - AST interpreter + - Macros + - Bytecode interpreter + - Regexp: slowish + - CCL: to be done + - Benchmarks + - Fun to be had (i.e., TODO & possible explorations) + - Transparent array-backed cons list + - Regexps + - Leaning on `native-compile` for LIMPLE IR + - Others + - GraalVM native image + - GUI + - Emacs dynamic module support + - How this could be implemented in C + - `transferToInterpreter` + - Bytecode approach + - Problems with the AST approach + +- Closing Words + - Future of Juicemacs + - Future of GNU Emacs Lisp JIT + - Ways to contribute + +About the speaker: + +Hello! This is Kana, an Emacs hobbyist and Java lover from China. A +few years ago I discovered the Truffle JIT compilation framework and +have since hoped to implement a JIT runtime myself. Last year I +finally started implementing one for ELisp, called Juicemacs, and +have made some progress. In this talk I will share what I've learned +during the journey, including how three interpreters out of four (or +more?) in Emacs are implemented in Juicemacs and how speculative +compilation can make some optimizations possible. + + +[[!inline pages="internal(2025/info/juicemacs-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/juicemacs-nav)" raw="yes"]] + + diff --git a/2025/talks/python.md b/2025/talks/python.md new file mode 100644 index 00000000..7bed8de2 --- /dev/null +++ b/2025/talks/python.md @@ -0,0 +1,26 @@ +[[!meta title="Interactive Python development in Emacs"]] +[[!meta copyright="Copyright © 2025 David Vujic"]] +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + + + + + +# Interactive Python development in Emacs +David Vujic (he/him) - Mastodon https://mastodon.nu/@davidvujic + +[[!inline pages="internal(2025/info/python-before)" raw="yes"]] + +Learning Lisp was an eye opener for me. The Interactive way of writing code is Amazing. Emacs has great support for this in general already. For Python, there's limitations and I have looked for ways to make Python development more interactive (and fun). Python is what I do at work and in Open Source projects. It has lead me to develop Emacs features specific for Python: evaluating code with visual feedback, modify a running Python app without restarts, and some LLM support. I will demo and talk about what I have developed to make Python development interactive and joyful. + +About the speaker: + +My name is David and I'm a software developer. Colleagues and friends may know me as an early adopter of agile ideas and test driven development. I am passionate about things like that, and share the things I learn to the community and the people I work with. My favorite programming languages are Python and Clojure. On my spare time I practice outdoor Parkour & contribute to Open Source. + + + +[[!inline pages="internal(2025/info/python-after)" raw="yes"]] + +[[!inline pages="internal(2025/info/python-nav)" raw="yes"]] + + -- cgit v1.2.3