Eric Normand Newsletter 478: Self-publishing Domain Modeling ๐Ÿ“–

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

Reflections ๐Ÿค”

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
  • etc.

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.


Domain Modeling

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.


Dutch Clojure Days

It's next month!


reClojure

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 ๐Ÿค”

Last challenge

Issue 477 - Box of chocolates - Submissions

This week's challenge

Super Digit

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 p that is 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 as follows:

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 result. (Example: superdigit(23)=superdigit(2+3)=5).

Your task is to write a function that calculates the superdigit of n and k.

Examples

;           n  k
(superdigit 1

  1) ;=> 1
(superdigit 10 2) ;=> 2
(superdigit 11 3) ;=> 6
(superdigit 38 7) ;=> 5
(superdigit 38789789374294723947328946 1000000000000000) ;=> 8

Notes

  • Your answer should always be a single digit.
  • Be sure that it works with very large strings of digits, such as with n>10^20, k>10^9.

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.

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!
๐Ÿ‘ โค๏ธ