Riffing with Ring

Hello everybody,

I’ve published a screencast where I operate under self-imposed constraints. I wanted to develop a web application in Clojure with only one dependency, one source file and contained in one function (for the most part). The motivation for this exercise is educational. Beginners can expect to get a feel for the development experience in Clojure, how the REPL stands in the center of the workflow, how evaluation of individual forms provides a live environment. Experienced users may learn about the intricacies of Ring middleware, how it actually comes down to function composition, but without the mathematical guarantees.

Part 1/3: From scratch to getting a web server running.
Part 2/3: Web application with routing and middleware.
Part 3/3: Extracting middleware.

The working session is rendered raw, with minimal editing in post production. You can see me thinking out loud and trying out stuff. Sometimes I mumble in a foreign accent. It is similar in spirit to what musicians call a jam session. If you find this useful, please leave a comment. I am interested to hear what benefit you gained, if at all. Thank you.

5 Likes

Thanks for sharing, @Daniel_Szmulewicz!

1 Like

Hello, Daniel!

Just watched the three parts, and I found myself really enjoying the screencasts. Some aspects I enjoyed:

  • The tempo was pleasant. I had time to think “will the middleware work now?” before you continued to code.
  • You really explained what you were doing from first principles. “No more libraries than the one” made everything clear, explicit.
  • It was also exciting to see you work under your constraint. “But how can we make this work without libraries”? Turns out you can get quite far! Kind of like how a movie with no conflict is boring.
  • I also enjoyed “just Emacs”. Less context switching, more focus.

When you (finally) scaled the font down a little and reformatted the code, I … yeah, well, it was good! Personal opinion: don’t bother with any more editing than you did now; it felt real.

Are you planning to cover other topics?

Teodor

2 Likes

Aww, thank you so much, Teodor. Your feedback was very useful. It’s a treat for me to hear the points you raised as they were very much present in my mind when recording the screencast. I had good responses overall and it looks like there is an audience for such efforts. I would very much like to cover more topics. I have ideas for both beginner and advanced topics. The question is whether I should do this occasionally, in my free time, or on a regular schedule, as a commercial endeavor. It’s pretty clear that monetization via Youtube will not work here, the numbers don’t add up. And finding an alternative business model is not simple. I welcome suggestions, ideas, etc.

3 Likes