Phil Hagelberg
technomancy.us · Personal blog · on HN since 2008
Phil Hagelberg, a Lisp programmer behind Fennel tooling, writes about Lisp, game jams, the Atreus keyboard, and programming language ideas.
What HN saysCommenters credit his writeups on Fennel with Love2d and TIC-80, and point to his Lisp Game Jam posts and Fennel-built pico-8 game.
59HN people shared it
24linked it in comments
54stories submitted
602story points
2 years agolast shared
2008people per year2026
Most-shared posts
- 1A game written in 4 Lisp dialects6 people · 8 points · first shared 2013 · 1 comments on HN
- 2Atreus – kit to build your own mechanical keyboard4 people · 135 points · first shared 2014 · 75 comments on HN
- 3Http://technomancy.us/4 people · 2 points · first shared 2010 · discussion on HN
- 4In which a compiler gets its wings3 people · 75 points · first shared 2018 · 3 comments on HN
- 5In which five different paths lead to methods3 people · 19 points · first shared 2022 · discussion on HN
- 6In which there is no such thing as a functional programming language3 people · 12 points · first shared 2021 · 2 comments on HN
- 7In which persistence proves a propitious property3 people · 3 points · first shared 2009 · discussion on HN
- 8In which interactive development saves the day3 people · 2 points · first shared 2018 · discussion on HN
- 9In which we take a deep breath before the upcoming plunge3 people · 1 points · first shared 2014 · 1 comments on HN
- 10In which we plot an escape from the quagmire of equality (Clojure and Emacs)2 people · 84 points · first shared 2012 · 31 comments on HN
- 11In which a laptop defies the trends2 people · 56 points · first shared 2021 · 35 comments on HN
- 12Setting up a Clojure dev environment with Emacs and Slime2 people · 45 points · first shared 2009 · 10 comments on HN
- 13Less known (but useful) Clojure Libraries2 people · 7 points · first shared 2011 · discussion on HN
- 14In which static types are friends, not foes2 people · 6 points · first shared 2011 · discussion on HN
- 15How EXWM saved me from living a tragic, rage-fueled life2 people · 6 points · first shared 2017 · discussion on HN
What HN people wrote when they linked it
baruchthescribe · 2019-05-20
It's been a game changer for me observing the elegance and productivity of the Fennel language (https://fennel-lang.org/) combined with Love2d (love2d.org) and LuaJIT. Thanks to Phil Hagelberg for his documenting of his experiences (http://technomancy.us) and his work on a decent emacs mode for Fennel. Check out his previous winning entry, particularly the code that drops you in a repl and lets you live change a running Love game here: https://technomancy.itch.io/exo-encounter-667
daxfohl · 2015-09-07
That's a great question. Honestly I don't know the answer. I'm actually married now with two young kids in suburban America, and with husband and wife (her ideals are pretty similar to mine) not-quite-content, and hoping to figure something out.
My ideal would be to do something like http://technomancy.us/, one of the big developers at Heroku, who is taking time off with his family to go do missionary work in rural Thailand, teaching his kids electronics, and meanwhile supporting himself selling custom keyboards.
James-Bennet · 2025-04-19
I am looking for a game framework that allows interactive programming like LISP for browser games. So far I have tried love2d, TIC-80, and defold. Fennel (Clojure like language for Lua) works with love2d and TIC-80, but I could not get emacs repl to connect to TIC-80. Also I couldn't get Fennel to work with defold. Maybe there's a way I haven't found yet, but for now the only way to achieve interactive programming is to use love2d (love2d + fennel + emacs repl).
https://vxlabs.com./2018/05/18/interactive-programming-with-fennel-lua… https://technomancy.us/188
CarnunMP · 2022-11-20
Worth noting (for parenthesis-lovers!) the Fennel support added by Phil Hagelberg, as demoed e.g. in one of his Lisp Game Jam writeups here: https://technomancy.us/193
bokchoi · 2020-09-06
And if you haven't checked out his pico-8 game he used fennel to write, you ought to. It's great!
https://technomancy.us/190
emmanueloga_ · 2020-05-13
I'd love to hear more from the author (can someone interview him for a podcast please? :-). He also has another programming language called Fennel [1] which compiles a lisp like language to Lua.
Both Fennel and Janet seem to orbit around Clojure ideas.... interestingly one of Fennel's main contributors [2] is also the author of Clojure's most popular build system, Leiningen.
1: https://fennel-lang.org/
2: https://technomancy.us/186
technomancy · 2018-09-18
> why does fennel description insist on macros as compile time feature?
This just means that it's possible to ship the compiled code on its own and have no dependencies on Fennel at runtime. It doesn't mean you can't ship the compiler if you want to; the choice is up to you. In fact, I strongly recommend in most cases shipping the compiler so you can write and refine your code interactively as the program runs. It's helpful to think of "compile time" as a subset of runtime; it's just that portion of runtime when the function that's running happens to be the compiler!
Fennel is very well-suited for live-coding; I used this heavily when writing my entry to the Lisp Game Jam this spring. I blogged a bit about how live-reloads interact with the Lua module system here: https://technomancy.us/189
olenhad · 2013-08-20
Scheme is great, but I think there are several key features that clojure has that scheme doesn't provide by default, including (but not limited to):
- Persistent Hash-Trie based Data Structures
- Beautiful asynchronous constructs
- Multimethods
- Protocols
Obviously I in no way intend to discredit scheme, nor start a lisp flamewar :)
/sidenote I love this article comparing a game written in 4 lisp dialects (http://technomancy.us/169)
rmc · 2010-10-25
Actually, I'm not connected to the original 'technomancy'. I've never met the guy. I just liked the domain name (from reading Neal Stephenson's Cryptonomicon), and it's my personal domain name. I think 'technomancy' is on 'http://technomancy.us.
sourcepluck · 2024-11-27
This is funny, cos I saw this stated somewhere on HN the other day, was totally amazed he'd done both, went and checked, and found out it was untrue - I think! Someone correct me please if I'm confused.
Calvin Rose made Janet https://github.com/bakpakin and https://bakpakin.com/
Phil Hagelberg made Fennel https://git.sr.ht/~technomancy/fennel and https://technomancy.us/colophon
ryukafalz · 2024-07-04
I'm reminded of Seeing Like a State by James C. Scott[0], which is in part about just this sort of thing. Maps were one example presented in the book. And it does apply beyond just that too; I read this blog post a while back relating this tendency to social networks: https://technomancy.us/199
[0] https://en.wikipedia.org/wiki/Seeing_Like_a_State
rahen · 2022-01-04
> In order to become relevant for the next 50 years, the computer needs to be made of easily replaceable parts. Inspirations are the Fairphone and the MNT Reform laptop.
Interesting. I knew about the Framework laptop but the Reform seems to go quite farther in being usable and repairable for a long time. Bulky and less advanced, but I like how one can just buy spare battery cells for cheap on Amazon or Aliexpress.
edit: https://technomancy.us/195
elangoc · 2015-06-15
Thanks, Phil! Your post about Logo (http://technomancy.us/167) was definitely an inspiration for this project.
I hope that something in Clojure can be made to be as effective as DrRacket has been for you.
luxbock · 2015-03-26
This is a blog post by technomancy, the original author of Leiningen, exploring Racket as a new language:
http://technomancy.us/175
EDIT: Wrong link. This one might be interesting as well so I've left it here:
http://technomancy.us/169
pbiggar · 2014-12-23
technomancy, the author of leiningen, is moving to Thailand and has a side-business of selling keyboards. See http://technomancy.us/177
rads · 2014-12-23
It's a joke, people. Among the other things he's doing in Thailand, he actually is selling keyboards and seems to be quite content with his situation:
http://technomancy.us/177
sdegutis · 2014-03-15
Related: a hardware hacker that I know recently designed and made a new keyboard[1], which looks really interesting and fun to make. Fortunately he also provided really good detailed instructions[1][2] so other people can make it too. I'm not at the skill stage yet where I can make it myself, but it'll probably be the first complex hardware project I eventually undertake.
[1]: https://github.com/technomancy/atreus
[2]: http://technomancy.us/173
Anderkent · 2014-03-07
You can make a keyboard pretty small nowadays: http://technomancy.us/173
gtani · 2011-10-31
I would argue that it's very useful to learn about data structures and the immutable/mutable distinction upfront (hashtables vs. balanced 2-way trees vs. Bagwell 32-way HAMT vs. "exotics" like skip trees.) I dunno if CL make these as easily avail as clojure
Re: Stacktraces, they have nicer formatting at least, but cutting out irrelevant parts of stack is tough. You can also set
*stack-trace-depth*
http://dev.clojure.org/display/design/Stacktraces
http://technomancy.us/154
leif · 2011-04-02
"bus scheme" is cute: http://technomancy.us/98
You could do "airbus scheme".
jmatt · 2010-10-04
Thanks!
I use many of those projects daily. Your work is appreciated.
http://technomancy.us/projects
jefffoster · 2009-05-29
http://technomancy.us/126 is an updated set of instructions for setting up Emacs and Clojure. It's been discussed previously (http://news.ycombinator.org/item?id=629816)
gphil · 2012-08-22
See http://technomancy.us/163 for more discussion.
amatecha · 2022-01-20
So many people make websites that basically look like they are from the 90's (though without all the animated GIFs haha), and use basic features without any strictly-modern stuff. These are just a few off the top of my head:
https://cblgh.org/
https://technomancy.us/list
https://alexschroeder.ch/
http://100r.co/site/about_us.html
https://dataswamp.org/~solene/
https://rgz.ee/
https://www.bsdly.net/~peter/
https://codevoid.de/
https://www.undeadly.org
https://compudanzas.net/
http://altexxanet.org/
http://sdf.org/
https://solar.lowtechmagazine.com/