A new release of my Northwind Elixir Traders book on modeling databases with Elixir, Ecto and SQLite has been published.
Here are two quotes about it:
“This rare gem of a technical book is a must-read for anyone wanting to build practical skills in modeling databases with Elixir and Ecto. But it’s not only about coding—it also emphasizes real-world problem-solving, learning by doing, and tackling development roadblocks head-on with confidence, in a relentless pursuit of understanding. Truly, an invaluable resource for everyone tired of cookie-cutter tutorials and theoretical fluff!” – Petros Papapanagiotou, PhD / Head of Development
“With this excellent book about modeling data with Ecto and SQLite, I was up and running quickly without snags! I learned how SQLite compares with PostgreSQL and how to work between their differences. Despite Northwind Traders being a toy database, the modeling we do in the book is top notch. After thoroughly modeling the Northwind Traders DB with Ecto, we then craft a gang of queries to glean excellent business “insights” within the data. The author has a strong understanding and passion in this area of development and it shows. Northwind Elixir Traders is an excellent read and a phenomenal Elixir resource.” – Benjamin Gandhi-Shepard , Designer / Developer at Solvm
The PDF is now 461 pages long (actual content: 453 pages). It includes so many side-quests and explorations of Elixir features besides Ecto that I changed the subtitle to “Learn Elixir and database modeling with Ecto and SQLite, all in one project”. For sure, if you enter this book with basic knowledge of Elixir, you come out way stronger out of it.
Here’s what has changed in the last 16 days:
- Chapters 14 and 15 have been rewritten almost from scratch, following reader feedback. The resulting functions are now way more composable, and the logic behind their gradual development and “stacking” has been made more clear.
- Some parts of Chapter 15 were moved to 14, where they were needed earlier, also to avoid rework in 15, and to make the build-up towards composable window queries more straightforward.
- Everything until and including Chapter 15 has been “replayed”. This includes all IEx code snippets, and all migrations, modules, functions and changes made throughout.
- As I’ve been replaying all chapters so far, I’ve been building a local git repository from scratch. Every change to the codebase is shown in a figure, and every figure and every small change corresponds to a commit.
- Once Chapters 16 and 17 are completed and quality-assured, the git repo will be made public on GitHub and licensed under Apache-2.0. I will also see how feasible it is to link every figure to the corresponding git commit.
- Almost all Elixir function names are now hyperlinked to their corresponding online documentation. Any remaining stragglers will be fixed until 100% completion.
- I started using
hunspell -d en_US
(the Hunspell spell-checker) on all Markdown source files, so there should now be no (or close to no) spelling mistakes left.
User arcanemachine summarized the changelog thusly :
“What a changelog. I admire your dedication to this work.”
As somewhat of a perfectionist, I wouldn’t let Chapters 14 and 15 stand as they were, but this has delayed work on Chapter 16. I’m resuming work on it today. Chapter 16 is expected to be a tough one, as it involves writing CTEs to deal with SQLite’s missing support for INTERVAL
. Let’s see if I can finish within the coming week. In the latest release I’ve also included the first few pages of that chapter.
Thank you to all readers for your patience, feedback, and patronage–it has all made this book something that I could never envision when I started working on it around a year ago as the “weekend project” that it continues to be!
- The book is available as PDF and ePub on Leanpub
- Join the discussion on elixirforum.com
- Leanpub invited me to a short interview about the book