summaryrefslogtreecommitdiffstats
path: root/2024/talks
diff options
context:
space:
mode:
Diffstat (limited to '2024/talks')
-rw-r--r--2024/talks/blee.md46
-rw-r--r--2024/talks/emacs30.md21
-rw-r--r--2024/talks/gypsum.md281
-rw-r--r--2024/talks/org-update.md21
4 files changed, 352 insertions, 17 deletions
diff --git a/2024/talks/blee.md b/2024/talks/blee.md
index 5bee1b49..971c2af0 100644
--- a/2024/talks/blee.md
+++ b/2024/talks/blee.md
@@ -1,4 +1,4 @@
-[[!meta title="About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem"]]
+[[!meta title="About Blee: enveloping our own autonomy directed digital ecosystem"]]
[[!meta copyright="Copyright © 2024 Mohsen BANAN"]]
[[!inline pages="internal(2024/info/blee-nav)" raw="yes"]]
@@ -6,7 +6,7 @@
<!-- You can manually edit this file to update the abstract, add links, etc. --->
-# About Blee: towards an integrated Emacs environment for enveloping our own autonomy directed digital ecosystem
+# About Blee: enveloping our own autonomy directed digital ecosystem
Mohsen BANAN (he/him) - Pronunciation: MO-HH-SS-EN
[[!inline pages="internal(2024/info/blee-before)" raw="yes"]]
@@ -26,11 +26,7 @@ is Emacs-centric, Blee is digital ecosystem-centric.
To further elucidate Blee, let’s break down the subtitle of this presentation:
-"Towards an Integrated Emacs Environment for Enveloping Our Own
-Autonomy Directed Digital Ecosystem."
-
-- **"Towards":** Blee is an ever-evolving, organic, and ongoing project &#x2014; just
- like Emacs itself.
+"Enveloping Our Own Autonomy Directed Digital Ecosystem With Emacs."
- **"Enveloping":** Blee is designed to fully integrate and encapsulate usage of
an entire digital ecosystem.
@@ -48,15 +44,32 @@ redecentralization of internet application services.
Some might dismiss ByStar as an ambitious, utopian vision. In response, I’ve
authored a book titled:
-Nature of Polyexistentials:
-Basis for Abolishment of the Western Intellectual Property Rights Regime
-And Introduction of the Libre-Halaal ByStar Digital Ecosystem
+------------------------------------------------------------------------
+
+<!-- <img align="right" height="230" src="https://github.com/mohsenBanan/mohsenBanan/blob/main/images/frontCover-1.jpg"> -->
+
+<p align="center"><font size="+3"><b>Nature of Polyexistentials:</font></b></p>
+
+<p align="center"><b>Basis for Abolishment of the Western Intellectual Property Rights Regime</b></p>
+
+<p align="center"><b>And Introduction of the Libre-Halaal ByStar Digital Ecosystem</b></p>
+
+
+<p align="left">On Line: &emsp; <a href="https://github.com/bxplpc/120033">PLPC-120033 at Github</a> -- <a href="https://doi.org/10.5281/zenodo.8003846">DOI </a>
+ --- PDF: <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-8.5x11-col-emb-pub.pdf">8.5x11</a> --
+ <a href="https://github.com/bxplpc/120033/blob/main/pdf/c-120033-1_05-book-a4-col-emb-pub.pdf">A4</a>
+<br>
+US Edition Book Prints At Amazon: &emsp; <a href="https://www.amazon.com/dp/1960957015"> US </a> -- <a href="https://www.amazon.fr/dp/1960957015"> France </a> -- <a href="https://www.amazon.co.uk/dp/1960957015"> UK </a> -- <a href="https://www.amazon.co.jp/dp/1960957015"> Japan </a>
+&emsp; (424 pages --- 6 x 0.96 x 9 inches)
+<br>
+International Edition Book Prints: &emsp; <a href="https://jangal.com/fa/product/252689/nature-of-polyexistentials"> Iran (Jangal Publishers) </a>
+&emsp; (406 pages --- 23.5 x 16.5 cm)
+</p>
+<p align="left">Comments, Feedback: &emsp;
+<a href="mailto:plpc-120033@mohsen.1.banan.byname.net">plpc-120033@mohsen.1.banan.byname.net</a>
+</p>
-- On Line US Edition: <https://github.com/bxplpc/120033>
-- On Line International Edition: <https://github.com/bxplpc/120074>
-- DOI: <https://doi.org/10.5281/zenodo.8003846>
-- US Edition Book Prints At Amazon: >
-- International Edition Book Prints in Iran: <https://jangal.com/fa/product/252689/nature-of-polyexistentials>
+------------------------------------------------------------------------
Blee and Emacs are integral parts of ByStar.
@@ -117,7 +130,8 @@ OS) and Blee (ByStar Libre Emacs Environment).
Central to his presentation is the positioning of
Emacs, as the core of Blee.
-See also: <https://emacsconf.org/2021/talks/bidi>
+Previous Talks: <https://emacsconf.org/2021/talks/bidi> and
+ <https://emacsconf.org/2022/talks/mail>
[[!inline pages="internal(2024/info/blee-after)" raw="yes"]]
diff --git a/2024/talks/emacs30.md b/2024/talks/emacs30.md
new file mode 100644
index 00000000..20a163e1
--- /dev/null
+++ b/2024/talks/emacs30.md
@@ -0,0 +1,21 @@
+[[!meta title="Emacs 30 Highlights"]]
+[[!meta copyright="Copyright &copy; 2024 Philip Kaludercic"]]
+[[!inline pages="internal(2024/info/emacs30-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# Emacs 30 Highlights
+Philip Kaludercic
+
+[[!inline pages="internal(2024/info/emacs30-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2024/info/emacs30-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/emacs30-nav)" raw="yes"]]
+
+
diff --git a/2024/talks/gypsum.md b/2024/talks/gypsum.md
index 02888492..3ee5a75a 100644
--- a/2024/talks/gypsum.md
+++ b/2024/talks/gypsum.md
@@ -7,10 +7,289 @@
# Gypsum: my clone of Emacs and ELisp written in Scheme
-Ramin Honary (he/him) - <mailto:ramin.honary@gmail.com>
+Ramin Honary (he/him)
+
+ - E-mail: <mailto:ramin.honary@gmail.com>
+ - ActivityPub: @ramin_hal9001@fe.disroot.org
+ - Website: <https://tilde.town/~ramin_hal9001>
[[!inline pages="internal(2024/info/gypsum-before)" raw="yes"]]
+## Slides
+
+### Introduction
+
+1. Ramin Honary
+
+ - Emacs enthusiast since 2017
+
+ - Software developer (full stack)
+
+ - I love Haskell, Scheme, functional programming
+
+ - Started learning Scheme about 2 years ago
+
+2. My project: an Emacs Clone
+
+ - Tentative name: "Gypsum"
+ - Its not a great name, open to suggestions.
+
+### Goal: to Clone **Emacs Lisp**
+
+- Many clones already:
+
+ - Edwin, Jed, jEdit, Jove, Lem, MG, Yi, Zile
+
+- These only clone the key bindings, not Elisp
+
+- Only XEmacs (a fork of GNU Emacs) provided an alternative Emacs Lisp
+
+### Most people don't use Emacs for the keybindings
+
+- Anecodtal, but yes really.
+
+- Use Emacs because of the power of Emacs Lisp
+
+- Emacs is as powerful as a system shell
+
+- A good language is what makes it powerful
+
+### Goal: use R7RS Standard Scheme
+
+- I want it to work on a many Scheme implementations
+
+- Guile is the reference implementation
+
+- (more about this later)
+
+### Goal: able to run any `init.el`
+
+- Should be able to use `init.el` without significant changes
+
+- Many invest significant time in their configs
+
+- Suddenly not having your config is disruptive
+
+- Such an Emacs clone would be more useful
+
+### Why do this?
+
+- I personally like Scheme's minimalism.
+
+- Use Scheme as more than just an academic language.
+
+- Seems to be a lot of interest in a project like this.
+
+- Talk of "Guile Emacs" for about 30 years
+
+### A long history of Guile Emacs (1/3)
+
+- **Early 90s**: Initial discussion between RMS, Tom Lord,
+ Aubrey Jaffer, begin work on replacing Emacs Lisp with Scheme.
+
+- **1999--2009**: Ken Raeburn's [Guile-Based Emacs](https://www.mit.edu/~raeburn/guilemacs/).
+ (My project is similar.)
+
+ > "*This project that I (Ken Raeburn) have started is for converting*
+ > *GNU Emacs to use Guile as its programming language. Support for*
+ > *Emacs Lisp will continue to exist, of course, but it may be*
+ > *through translation and/or interpretation; the Lisp engine itself*
+ > *may no longer be the core of the program.*"
+
+### A long history of Guile Emacs (2/3)
+
+- **2010**: Andy Wingo and Ludovic Courtes
+ take maintainership of Guile project.
+
+- **2009--2011**: Emacs Lisp interpreter implemented in Guile.
+ Still ships with Guile.
+
+- **2011**: Guile 2.0 is released
+
+- **2011--2015**: Robin Templeton's GSoC project.
+ (Is presenting later today!)
+
+### A long history of Guile Emacs (3/3)
+
+- **2020**: Vasilij Schneidermann published an overview called
+ "[The State of Emacs Lisp on Guile](https://emacsninja.com/posts/state-of-emacs-lisp-on-guile.html)".
+
+- **2020 to present**: Guile Emacs is dead? Andrea Corallo, GCC Emacs,
+ JIT-compiler for Emacs Lisp based on "libgccjit", brings into
+ question any need for combining Guile with Emacs.
+
+### Demo
+
+### GUI is barely working
+
+- I have almost no experience with Gtk or GObject Introspection
+
+- Hard to debug, crashes at C-level produce no stack traces
+
+- Using GDB requires rebuilding all of Gtk, GIO, GLib, etc.
+
+### Emacs Lisp parser based on Guile Emacs Lisp
+
+- Foked the Guile Emacs Lisp implementation for easier development
+
+- Have already submitted a patch to the parser upstream
+
+### Emacs Lisp interpter is barely working
+
+- Implementing my own interpreter in portable Scheme
+
+- Monadic pattern matcher
+
+### Can parse but not interpret "`subr.el`"
+
+- "`subr.el`" is the first ELisp file run by Emacs
+
+- A good way to determine what to work on first
+
+### A call for help
+
+### Latest Emacs has **1,393** built-in functions
+
+- I could never implement that many functions alone
+
+- Probably not all are required to create a useful editor
+
+### My job is to make contributing easy
+
+- Document the build and test process
+
+- Document the system architecture
+
+- Prioritize which built-in functions are most essential
+
+- Find low-hanging fruit, use as means to teach others
+
+### The work for which I will take responsibility
+
+- Clone enough Elisp to be able to run ERT tests
+
+- Then use GNU Emacs's own regression tests to test patches
+
+- Make sure there is a usable GUI
+
+- (Someday?) be able to contribute a patch from within
+
+### Quick architectural overview
+
+### The editor is based in Scheme, not Emacs Lisp
+
+- Config, scripting, packages all done in Scheme
+
+- Use of Emacs Lisp for scripting not encouraged
+
+- Should still be able to run your `init.el`
+
+- Ideally should be able to run ELPA packages
+
+### Difference with Robin Templeton's project
+
+- Guile-Emacs links Guile runtime into Emacs
+
+- Not a Scheme application
+
+- An IDE for Schemers
+
+### Emacs Lisp is an "environment"
+
+- "Environments" are a feature of Scheme
+
+- Scheme procedures can be called from Emacs Lisp
+
+- Scheme state can be mutated by Emacs Lisp
+
+- (See "`./gypsum/elisp-eval.scm`", "`new-env`")
+
+### "Functional Lenses"
+
+- Because R7RS does not standardize MOP (not even in "large")
+
+- Inspired by Haskell
+
+- Composes getters and setters
+
+- Single source file, easy to port
+
+- Ported to 3 other Schemes
+
+### A lot of work went into keymaps data structure
+
+- Keybindings are an important part of Emacs
+
+- Had to do this well from very beginning
+
+- Keybindings work correctly in demo
+
+### A lot of work went into separating GUI from Editor logic
+
+- "Parameters" are a feature of Scheme
+
+- Platform-specific APIs are always parameterized
+
+ - Windowing and widgets
+
+ - Translate key events to bindings
+
+ - Evaluating Scheme expressions
+
+ - Text buffering and rendering
+
+- (See "`./gypsum/editor-impl.scm`")
+
+### Monadic pattern matching
+
+- Simpler, more portable
+
+- (Not as feature-rich)
+
+- Easier than porting SRFI-241 ("Match") to Guile
+
+- No relation to SRFI-247 ("Syntatic Monads")
+
+- You can still use pattern matching
+
+### Monad pattern matching
+
+Example program
+
+
+ (define push-stack (put-with cons))
+ (define collatz
+ (many
+ push-stack
+ (either
+ (try (check (λ (n) (<= n 1)))
+ (success))
+ (try (check odd?)
+ (next (λ (n) (+ 1 (* 3 n)))))
+ (try (check even?)
+ (next (λ (n) (quotient n 2))))
+ (fail "not an integer")
+ )))
+
+### Conclusion
+
+- I am just getting the ball rolling
+
+- Helping others contribute is my top priority
+
+- ActivityPub :: `ramin_hal9001@fe.disroot.org`
+
+- E-mail :: <span class="spurious-link"
+ target="ramin.honary@gmail.com">*ramin.honary@gmail.com*</span>
+
+- Homepage :: <https://tilde.town/~ramin_hal9001>
+
+- Codeberg :: <https://codeberg.org/ramin_hal9001>
+
+- This presentation :: <https://emacsconf.org/2024/talks/gypsum/>
+
+
+## Original presentation proposal
I would like to demonstrate an Emacs clone I have been
writing in Guile Scheme for the past year, which I am
tentatively calling "Gypsum". Unlike other editors which
diff --git a/2024/talks/org-update.md b/2024/talks/org-update.md
new file mode 100644
index 00000000..6141f4f0
--- /dev/null
+++ b/2024/talks/org-update.md
@@ -0,0 +1,21 @@
+[[!meta title="Updates on Org Mode maintenance"]]
+[[!meta copyright="Copyright &copy; 2024 Ihor Radchenko and Bastien Guerry"]]
+[[!inline pages="internal(2024/info/org-update-nav)" raw="yes"]]
+
+<!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing -->
+<!-- You can manually edit this file to update the abstract, add links, etc. --->
+
+
+# The Future of Org
+Ihor Radchenko and Bastien Guerry
+
+[[!inline pages="internal(2024/info/org-update-before)" raw="yes"]]
+
+
+
+
+[[!inline pages="internal(2024/info/org-update-after)" raw="yes"]]
+
+[[!inline pages="internal(2024/info/org-update-nav)" raw="yes"]]
+
+