43 karma · joined May 6, 2022
oops
We all know they are evil. But you know the most evil thing? That code that was previously released under a free license? Still sneakily on display in the git history like the crown jewels in the Tower of London. Except of armed guard defending the code that wants to be free once more it's hidden behind arcane git commands. Name me a single person that knows how to navigate the git history. I'm waiting. Spoiler alert: I asked Claude and they don't exist.
Libraries that help with that, even though the major underlying structure isn't immutable data structures make Emacs Lisp bearable are: s.el, ht.el, dash.el It would be great if there was namespacing and less global state pollution.
Of course if you want to integrate with the rest of the Emacs ecosystem and you want some libraries that help you out make things nice means learning a whole different ballgame. Like wanting to use the great transient.el. That's super stateful and based on eieio.el. (Although transient.el is relatively good about hiding that behind a good API surface.)
Overall, even though I wish it was based on a functional core and Clojure's immutable data structure, concurrency, namespacing and its great EDN reader, I just accept the pragmatism on the human scale that if I want a great text based interface that interacts with the rest of my text driven workflow Emacs is a good choice and Emacs Lisp is acceptable.
So I don't think Cal is only interested in optimizing his own life and dumping everything EFT style onto others.
Undoubtedly it was easier for Darwin to work 4 deep work hours a day because he didn't have to handle the kids, prepare the food, clean the house and mow the lawn and work in the garden. Based on having read Cal a lot I haven't seen him advocate this selfishness in the modern world.
Time management is an important skill to have in order to lead a happier and more productive life. Julie A. Zelenski, a professor at UVA, gave a talk on time management, drawing from two books and her own experiences. She recommends having a filing system, using speaker phones, and standing during phone calls to save time. She also suggests doing the ugliest task first, having a timer on the phone, and leaving thank-you notes on the desk. Zelenski also recommends scheduling meetings, phone calls, and mundane tasks, and treating people with respect and dignity. An interesting point she made was to use a power drill to carve pumpkins instead of a knife!
Julie Zelenski, ha. AI be dreamin'.
I liked the examples and you're always going to have some weird loss of content when you summarize but the AI taking the joke by Randy and then imagining a surname is still amusing.
[1] https://jamesclear.com/great-speeches/time-management-by-ran...
I have never listened to a podcast, just the cut out snippts on the youtube channel.
I've had a team member that was quite high in 3 out of 4 categories and low in actual programming skills and I found him to be a valuable team member.
ClojureScript (shadow-cljs, nbb) for JavaScript
Clojure for JVM
babashka for scripts
libpython-clj for python interop.
ClojureCLR for .NET (beta state IMO)
ClojureDart for Dart/Flutter (early alpha state, one big shipped prod app on iOS/android)
--- Edit:
I don't quite know how to describe it, but having the _exact_ same files in a full-stack web application being read in both the Clojure backend and ClojureScript frontend (API contract) feels pretty neat. As an example having the frontend accurately give the user feedback why his input form isn't going to be accepted without a server round-trip or duplicating code just feels elegant.
You may remember the rich comment forms in Clojure development as a communication tool to your future self and others. Now someone made them testable https://github.com/hyperfiddle/rcf#readme I feel this is even closer to the platonic ideal Clojure way of serializing your thoughts to file.