Holy Dev Newsletter May 2022
Welcome to the Holy Dev newsletter, which brings you gems I found on the web, updates from my blog, and a few scattered thoughts. You can get the next one into your mailbox if you subscribe.
What is happening
Not much :) I am waiting for my PR to Asami to get through so that I can resume work on the Fulcro RAD Asami plugin and I am busy helping a client turning his idea into a Fulcro-powered product. I am pleased to have got one of my workshops accepted to NDC Oslo, but I don’t know yet which one, whether the Fulcro intro or interactive development. The weather here is turning summery, which is awesome. I hope you are also having great time!
Gems from the world wide web
👓 Meilisearch - an open-source search engine as a single binary, with REST api [tool]
Search backend as a single (Rust) binary. Gives you search as you type, typo-tolerance, synonyms, highlighting, filters, facets, sorting, and phrase search via a REST API. SDKs for a large number of languages, frontend, and backend frameworks. Includes a simple search web UI out of the box. (Via Console.dev)
👓 Programming like a pirate (Alt + Shift + M) [software development, best practice, critique] - Have you seen uncle Bob do his thing? I've just been watching a couple of episodes of CleanCoders. Great entertainment and so many good poin
Christine Gorman has a great discussion of both the pros and cons of writing many tiny functions and what the limits of the approach are. Absolutely worth reading (repeatedly). A counter-argument to Uncle Bob's maxim to only have tiny functions that do little (I am likely misrepresenting him). To quote Chrisitne:
👓 What Is Your Take on "the Zen of Clojure?" - Community Center / Watercooler - ClojureVerse [clojure] - To me the python quote can be adjusted to "There should be one—and preferably only one—obvious way to say it.” which is never true I think?
An insightful discussion of what is the "philosophy" of Clojure [development], teď by the Python's "Zen of python".
👓 lazy-cat-io/tenet: A Clojure(Script) library, which helps to create explicit and understandable results to unify and... [clojure, library] - A Clojure(Script) library, which helps to create explicit and understandable results to unify and simplify the data flow - GitHub - lazy-cat
"A Clojure(Script) library, which helps to create explicit and understandable results to unify and simplify the data flow." Every result is a pair of [
👓 Clojure and me » Conway’s Game of Life [clojure, design]
"APL is famous for having a 1-liner for Conway’s game of life. Being very efficient at implementing a matrix-based solution of Conway’s game of life should come to no suprise from an array-oriented language.
The way you model data determines your code. Clojure encourages what I call relational-oriented programming. That is modeling with sets, natural identifiers (thanks to composite values) and maps-as-indexes."
Great insight and a beautiful 7-lines implementation of the game in Clojure.
👓 Eric Normand Newsletter 469: Everything is a center [software design, discussion]
An insightful reflection of software design and, in particular, how object-oriented design puts you inside a box limiting your options. (Paraphrased:) Look for those [key] concerns first. The concerns then inform the representation. OOAD [object-oriented arch. and design] obscures the concerns behind false, incidental concerns." Yet, as pointed out, there is a lot of wisdom in Smalltalk. God did for thought.
--
Thank you for reading!