Eshel Yaron
Hi there, I’m Eshel Yaron and this is my website–the one true source of reliable curated information about me and my activities.
?- likes('Eshel', Stuff). Stuff = 'logic programming'; Stuff = 'linguistics'; Stuff = 'cognition'; Stuff = 'functional programming'; Stuff = 'The cyber'; Stuff = 'type systems'; Stuff = 'coffee ☕️'; Stuff = 'free software'.
Recent Posts
These are some of the posts I’ve published here recently:
- 2024-08-09 ~ Kubed is now on GNU ELPA
- 2024-07-31 ~ Composing Kubectl Commands in Style with Kubed
- 2024-07-15 ~ On Buglet-Bindings
- 2024-02-10 ~ Fixing a Twenty Six Years Old Emacs Bug
- 2023-12-10 ~ Bad NEWS, Emacs
- …older posts
You can also to check out the site’s ChangeLog page for updates about this website itself.
Projects
Kubed: Kubernetes, Emacs, done!
Kubed is my Emacs-based interface for working with Kubernetes. It makes interacting with Kubernetes easy and intuitive. If you consider Emacs easy and intuitive, that is. See the Kubed manual for more information. The manual is also available in multi-page format.
Sweep: SWI-Prolog Embedded in Emacs
Sweep is an Emacs package that uses the C interfaces of both SWI-Prolog and Emacs to bring the two together into one address space.
For more details, see the Sweep manual. You can also browse it in multi-page format.
Dict: Emacs client for RFC2229 dictionary servers
Dict is an Emacs package that provides an interface for querying RFC2229 dictionary servers and displaying word definitions. It a simple and extensible tool, meant to do one job (looking up definitions in the dictionary) and to do it well. For more details, see the Dict manual.
Note: the core functionality of Dict is incorporated in Emacs’s
built-in dictionary.el
package starting from Emacs version 30. See
also my blog post Extending Emacs’s Dictionary Library.
Sourcehut GraphQL client for SWI-Prolog
sourcehut.pl - a SWI-Prolog package for interacting with the GraphQL API of sourcehut instances.
sourcehut.pl
can be used to automate maintenance tasks for project
hosted on sourcehut, for example to attach a build artifact to a given
tag of a git repository from within SWI-Prolog:
?- sourcehut_git_repository("eshel", "sourcehut.pl", Repo, []), get_dict(id, Repo, RepoId), sourcehut_git_upload_artifact(RepoId, "v0.1.2", "/tmp/foo/baz.txt", Artifact, []).
eshellisp
A Scheme Lisp interpreter implemented in SWI-Prolog.
$ cat scheme/repl.scm (define repl () (write (eval (read))) (repl)) (repl) $ ./eshellisp scheme/repl.scm % (cons (+ 1 2) 4) % (3 . 4)
flymake-swi-prolog.el and diagnostics.pl
diagnostics.pl
is a SWI-Prolog package implementing a simple and
extensible inteface for diagnosing issues with SWI-Prolog source code,
exposing by default the powerful analysis used by the built-in
SWI-Prolog IDE.
flymake-swi-prolog
is an Emacs Lisp package implementing a Flymake
backend that leverages diagnostics.pl
to provide diagnostics for
SWI-Prolog source code in prolog-mode
Emacs buffers.
ropes.pl
A (SWI-)Prolog implemantation of the rope data structure for efficient massive string editing.
Based on Ropes: An alternative to strings.
test(edit) :- string_rope("Hello, World!" , HW), string_rope("Here be dragons", HD), rope_split(HD, 8, _, D), % "Here be " + "dragons" rope_split(HW, 7, H, W), % "Hello, " + "World!" rope_split(W , 5, _, E), % "World" + "!" rope_concat(H , D, HS), rope_concat(HS, E, HE), rope_string(HE, HF), assertion(HF == "Hello, dragons!").
Erlang eBPF library
A low level interface to the Linux eBPF system for Erlang.
This website
My first taste of web development, a practice that I have always refrained from conducting. Created with pure org-mode to ease the landing.
Inspired by: