Eric Normand Newsletter 478: Self-publishing Domain Modeling 📖
From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Self-publishing Domain Modeling
A couple of issues ago, I mentioned how much I learned about writing from the folks at Manning when writing Grokking Simplicity. Then I teased that I wanted to self-publish my new book, tentatively titled Domain Modeling. If I learned so much from a publisher, then why self-publish?
Before I answer, I want to say that I'm focusing on the negative aspects of my experience at Manning in this article. There were many great things about working with them. I'll name them here:
- The review process was constructive. Over ten people read my early manuscripts and gave thoughtful comments.
- The designers I worked with were skilled, friendly, and helpful.
- My editor and producer were phenomenal in organizing the work, sheltering me from the time pressures, and pushing the writing forward.
- The finished book is lovely and delivered to people all over the world.
- Their marketing team has helped me get on podcasts and otherwise promote the book. They sent me t-shirts to wear to conferences!
If I don't have more good stuff to say, it's because I didn't interact with much of the company. That's part of the function of the publisher. You get to write and ignore the details of publishing.
So why am I self-publishing?
The short answer is that I think I learned all I can from them. The longer answer is that the publisher and I conflicted a lot. I wanted control of things that they wanted to control. To name the big ones:
- The title and cover design
- Ultimate control of page layout and style
- The publication media (print, ebook, web, audio, etc.)
Although I deferred many of those things to them in the interest of moving forward with the book, I still disagreed with them. The folks at Manning and I discussed these decisions, and they had good reasons for their choices. I don't want to go into detail here, but I will put it simply: They are good at publishing books, just not the kind of book I wanted to write. I also estimate that the authoring and publication process took about six months longer—not to mention the stress—because of misunderstandings, disagreements, and their process.
I lost of summer of writing because of the cover. Manning told me I could have a custom cover. A designer and I collaborated to make a cover that featured the cartoon characters that appear inside the book. It was getting close to final. Then I learned there was a big misunderstanding inside the company and that I wouldn't have a custom cover. The cover was in flux again. All told, it took about three months to get the cover drama resolved. And it was so stressful I was having trouble writing during that time.
However, the ability to self-publish is very tempting. When self-publishing, you get:
- Control of the entire process and product
- Higher royalties
The downsides are significant:
- The author bears the costs (editing, design, etc.)
- The author does more work (design, marketing, etc.)
- The author has less experience publishing
- The author has less help with marketing
With Manning, I only had to write the book and respond to the copy edits. Once I handed it to them, they took the collection of files and made it publishable. I got a bunch of promotional copies in the mail when it was ready. They direct-deposit my royalties every quarter.
But a lot of what they did, I wanted to do myself anyway. For instance, they wanted the designer to lay out pages for my older chapters. I could do it in a week, but it would probably take the designer several months because they have other things in their queue. Then I'd still have to manually review every page and go back and forth about details. They wanted the designer to do it to save me from doing the work. But it was easier for me to blow through it full time for a week than to twiddle my thumbs waiting for months. I convinced them to let me do it, and the result was good.
If I self-publish, I'll have to:
- write the book
- find an editor
- find reviewers (who read the book and make helpful comments)
- find a cover designer
- assemble the materials into a printable PDF
- communicate with the printer
Self-publishing is a lot more work. However, I now have a pretty good idea of the process (not as good as Manning, of course) and ideas about how to do them myself.
And then there's sales and marketing. I was surprised to learn that Manning sells most of its books on its website—not Amazon. They have an extensive mailing list where they announce new books arriving. And they run promotions all the time. They bring a lot to the table to sell the book.
If I self-publish, I would probably sell most of the copies on Amazon. And I'd have to drive the traffic myself. I'll sell fewer copies. However, I'll make 4x the royalties per copy. I'm still ahead by 2x on profit if I sell half as many books. That's the kind of calculus you have to do. Because I have something of an audience, I have a chance of selling enough to recoup my costs.
I'm not writing the book for money. I would choose a different topic if that were my goal. But it's good to know that it might not be a financial bust. My goal is to make the book the best it can be, and I think I can do that better on my own, faster, and with less stress. That summarizes it best.
If you're interested in previewing the Table of Contents for my new book, it is there. I've got some pages written, but I need to type them up. Stay tuned.
It's next month!
The CFP is open. The theme this year is Clojure Growth.
Grokking Simplicity 📘
Here's a really nice review on Amazon:
I think this is one of the greatest didactic books on programming (and functional programming in particular) ever written.
You can order my book on Amazon. Please leave a rating and 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 eBook versions on Manning.com (use TSSIMPLICITY for 50% off).
Clojure Challenge 🤔
This week's challenge
This is kind of a contrived problem, but it's the kind that breeds lots of interesting implementations and tests your understanding of lower-level details. So let's do it!
You're given an integer
n and an integer
k. There is an integer
k instances of the digits of
n concatenated together. For example:
n=123, k=3 -> p=123123123 n=32, k=6 -> p=323232323232 n=24543, k=125 -> p=245432454324543245432454324543...
Now, take that number
p and find its superdigit. The superdigit is defined
superdigit(d) = d if # of digits = 1 superdigit(d) = superdigit(sum(digits of d)) otherwise
That is, if the number has one digit, the superdigit is the number. (Example:
superdigit(4)=4). Otherwise, sum the digits and take the superdigit of the
Your task is to write a function that calculates the superdigit of
; n k (superdigit 1 1) ;=> 1 (superdigit 10 2) ;=> 2 (superdigit 11 3) ;=> 6 (superdigit 38 7) ;=> 5 (superdigit 38789789374294723947328946 1000000000000000) ;=> 8
- Your answer should always be a single digit.
- Be sure that it works with very large strings of digits, such as with
Thanks to this site for the problem idea, where it is rated Expert in Java. The problem has been modified.
Please submit your solutions as comments on this gist.