dotfiles
janet-sh
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dotfiles
-
Show HN: A simple Pastebin Clone using Deno
The colors are mostly from zenburn
https://github.com/fiddlerwoaroof/dotfiles/blob/master/emacs...
-
Writing Small CLI Programs in Common Lisp (2021)
Yeah, that’s definitely where I’ve ended up: I have a lot of lisp code, but it’s more of a toolbox for my shell (REPL) than standalone programs.
However, I’ve settled on a pattern that works pretty well for the few small tools I write: https://github.com/fiddlerwoaroof/dotfiles/blob/18cecfc93bcf...
-
Show HN: Mount Unix system into Common Lisp image
I use these keys every day for just about every sort of balanced delimiter manipulation I do in any language: https://github.com/fiddlerwoaroof/dotfiles/blob/eff889f0b749...
A little below I bind this key map to the “,” prefix and I’ve found my layout of paredit commands pretty ergonomic to use long-term.
-
Paredit 25 Released
What made a difference for me was figuring out the right keybindings. The default keybindings in emacs weren’t very ergonomic and so I came up with a more convenient set of keybindings (for evil-mode, since I prefer vim-style editing). They follow a nice pattern on the keyboard and made a huge difference.
I eventually adapted them so I could have relatively consistent keybindings across vim/emacs/VSCode/IntelliJ and the results are here:
https://github.com/fiddlerwoaroof/dotfiles/blob/b13240a42fa4...
If you understand the elisp keybinding notation, it’s possible to use the C-, ones in VSCode.
-
Coming Home to Vim
Yeah, I don’t have home-manager generate configurations for vim. I have home-manager generate a symlink to my version-controlled vimrc. This way I get the quick setup benefits of home-manager without the slow reload times.
Incidentally, I just polished my script for working around that issue: https://github.com/fiddlerwoaroof/dotfiles/blob/master/scrip...
-
Do you use Paredit?
https://github.com/fiddlerwoaroof/dotfiles/blob/master/emacs.d/lisp/configurations/evil-conf.el#L67-L143
janet-sh
- Writing Small CLI Programs in Common Lisp (2021)
-
Getting started with lisp
Right now, the one that is most attractive is Janet, with its wonderful shell programming integration and built-in http request. Those are both things I'm working a lot with.
-
Janet – a Lisp-like functional, imperative programming language
I use Janet most often as a glue for shell utilities using the sh package (https://github.com/andrewchambers/janet-sh). It's a great tool for building small containerized jobs. I think it has a ton of potential as the ecosystem grows and matures.
Some rough spots:
- No canonical http client. There are a few attempts at wrapping libcurl but nothing complete and well documented yet. However, the creator of Joy framework for Janet does have an http client library.
- The main http server circlet is MIT licensed, but it is built on top of Mongoose, which is GPL/paid commercial. Something to be aware of if you want to distribute binaries made with this library.
- I have never been successful getting any of the UI or drawing libraries to work.
- Naming of packages is a bit confusing even if you have watched the Good Place and are aware of all of the inside jokes.
-
Writing Small CLI Programs in Common Lisp
The arguments I have seen are based on Janet using arrays/tuples rather than cons cells. Here is the author addressing this on reddit a while back. https://old.reddit.com/r/programming/comments/aqwedz/janet_i...
The debate continues in the thread. Either way, I think Janet is very useful for situations where you want something lisp like and also want/need small executables. I've experimented with it quite a bit and have found it really useful for putting together cli apps. The sh package is really useful for gluing together other shell programs. https://github.com/andrewchambers/janet-sh
What are some alternatives?
lone - The standalone Linux Lisp
roswell - intended to be a launcher for a major lisp environment that just works.
smart-god-mode - No tests yet for merging into main branch!
janetdocs - A community documentation site for the janet programming language
vscode-emacs-mcx - Awesome Emacs Keymap - VSCode emacs keybinding with multi cursor support
termp - Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)
vim-sexp - Precision Editing for S-expressions
freja - Self-modifiable editor for coding graphical things
symex.el - An intuitive way to edit Lisp symbolic expressions ("symexes") structurally in Emacs
janet-pobox - Clojure like atoms/spinlocking in Janet
shcl - SHell in Common Lisp [Moved to: https://github.com/SquircleSpace/shcl]
hofmod-cli - Hofstadter generator for Golang CLIs