Eric Normand Newsletter 471: I’m back!

Eric Normand's Newsletter
Software design, functional programming, and software engineering practices
Over 5,000 subscribers

Reflections 🤔

I'm back!

I missed you all. Did you miss me?

I've been gone a while because I just moved across the country from New Orleans, Louisiana to Madison, Wisconsin. That takes a lot of energy. We were running on adrenaline for most of it. Everything was exciting.

And then the adrenaline ran out. All the box and furniture lifting, the three days of truck driving, the little sleep, and the novelty of a new house and city hit us. That was last week and we're still recovering.

But we love our new house. We like the new city. And I'm looking forward to picking back up my weekly emails.

Grokking Simplicity 📘

My book is still finding new readers:

It teaches functional programming to beginners.

You can order the book on Amazon. Please leave a rating and/or review. Reviews are a primary signal that Amazon uses to promote the book. They help others learn whether the book is for them.

You can order the print and/or eBook versions on Manning.com (use TSSIMPLICITY for 50% off).

Stack Overflow Developer Survey 📋

The Stack Overflow Developer Survey results are in and Clojure is still the highest paid programming language. It still seems weird, but it's consistent year-to-year. It must mean something.

Rust is still the most-loved language. But Clojure is #3 (after Rust and Elixir, two worthy competitors).

State of Clojure Community Survey 📋

The results of the State of Clojure Community Survey are in! Lots of great information there. Here's what jumps out to me:

  • shadow-clj is still on the rise. It's a great tool, so that's n o surprise. It makes it super easy to use npm modules from ClojureScript.
  • deps.edn is lower than Leiningen, but will probably overtake it by next year.
  • There are some great new online shows and conferences.

Clojure Challenge 🤔

Last challenge

Issue 470 - Reverse words - Submissions

This week's challenge

License plates

When you cross the border in a car, you have to abide by the local license plate regulations. (This is not true, but let's play pretend!) The order of the numbers and letters stays the same. But the groupings change from country to country.

Write a function that takes a license plate code (letters, digits, and hyphens in a string) and a group size (integer). The function should return a new string with the characters regrouped with hyphens between groups. All groups should be of the given size, except for perhaps the first, if there aren't enough characters to fill the group.

Examples

(regroup "A5-GG-B88" 3) ;=> "A-5GG-B88"
(regroup "A5-GG-B88" 2) ;=> "A-5G-GB-88"
(regroup "6776" 2) ;=> "67-76"
(regroup "F33" 1) ;=> "F-3-3"
(regroup "IIO" 7) ;=> "IIO"

Thanks to this site for the problem idea, where it is rated Expert in Swift. The problem has been modified.

Please submit your solutions as comments on this gist.

Rock on! Eric Normand

Sean Allen
Sean Allen
Your friendly reminder that if you aren't reading Eric's newsletter, you are missing out…
👍 ❤️
Nicolas Hery
Nicolas Hery
Lots of great content in the latest newsletter! Really glad I subscribed. Thanks, Eric, for your work.
👍 ❤️
Mathieu Gagnon
Mathieu Gagnon
Eric's newsletter is so simply great. Love it!
👍 ❤️