HN user

dimovich

49 karma
Posts3
Comments50
View on HN

Moldova is like the Shire. Green hills, good wine, nice people. Not much to see but there's something peaceful about it. Happy to call it home.

Yes, and if I may add a few more libraries that are actively maintained, with wonderful documentation and great functionalitY -- next.jdbc for SQL, Timbre for logging, Sente for websockets, Reitit for routing, Carmene for Redis, re-frame for frontend state management, Datascript for frontend DB, and many more.

I see REPL driven development more akin to writing music. I pick up the guitar and start playing. I can work on a small fragment and improve it until it sounds good to me. Or I can play the whole song. At all times I have instant feedback and I can hear what I'm working on.

In the case of the REPL you are playing your program. You can play a file, a function, or half of a function. Until it sounds right.

I lack the skill to use music notation for composition, so I rely on my instrument to give me feedback. And I lack the skill to execute the program in my head before I press compile, that's why I rely on the REPL.

I have a feeling a better way to follow through your goals is to decouple tasks from the time it takes to do them. Divide your time in blocks, one tasks per block. The time doesn't depend on the task, and the task doesn't depend on which block you choose to do it. For me, 3 blocks per day is optimum.

Specter is really handy for manipulating data structures, and have been happily using it.

I wonder, is it possible to select some subset of a map? Say you have these paths:

(def paths [[:some :path] [:another :deeper :path] [:yet :another :one] [:yet :another :one :deeper]])

And select from a map these paths. You could do it with get-in, but maybe Specter can do it faster? I couldn't find a way to do it with Specter...

Yes, the official Clojure build tool (deps.edn) is amazing. The ability to use local projects as deps is very useful. It allows to split your bigger project into smaller projects and reuse them. It's also possible to use directly git repos as deps which is useful for trying the latest libs.

This, coupled with a REPL driven development gives you a very interactive and agile dev experience.