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.
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!
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)
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:
An insightful discussion of what is the "philosophy" of Clojure [development], teď by the Python's "Zen of python".
"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 [
"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.
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!