DEV Community

Vivian Voss
Vivian Voss

Posted on • Originally published at vivianvoss.net

Integrated by Design: Out Today, With a Few Rather Educational Caveats

A young developer with a pink cat-ear headset and a $whoami T-shirt stands outside a cosy independent bookshop at golden hour, holding a hardcover copy of Integrated by Design up toward the camera. The book's cover shows a pixel-art illustration of the same figure beside a small server rack, against a dark navy background with a neon rainbow stripe. Behind her, warmly-lit shelves of books; at her feet, a small chalkboard sign.

Today, Integrated by Design goes on sale. 371 pages on FreeBSD, from philosophy to practice, with a subtitle one has had rather a lot of time to consider ironically: Why the Best Systems Are the Ones You Don't Notice.

A book about invisible systems, launched by some rather visible problems.

Five months of writing. Three weeks of final proofs. Then the last 72 hours, dedicated to problems one does not anticipate before one's first book. What follows is, in the interest of honesty and possibly the education of the next first-time author who stumbles on the same rakes, a field report.

The Font

The final proof arrived from the printer with a rather small complaint. One of the glyphs in the book's monospace font was quietly broken. Not all glyphs. Just the number 8.

JetBrains Mono ships in sixteen styles (four weights, each in regular and italic, plus a paired set for various screen densities). The bug: the lower counter of the numeral 8, the small enclosed oval at the bottom of the figure, had an un-closed path in the outline. On every screen one could put the font in front of (Retina, non-Retina, one's own laser printer) it rendered as a clean hollow counter. Printed at full size on matte coated paper by a professional offset press, the press dutifully filled it in. Every 8 in the book became a smudge.

The fix required opening the font in a glyph editor, locating the offending Bézier in the descender of the 8, closing the path by hand, and re-exporting. The re-export produced a variant I labelled "JetBrains Mono Fixed". It ships with four styles, not sixteen, for the practical reason that the book only uses four: regular, bold, italic, bold italic. The fix was re-applied to each. The source files of every chapter were recompiled, the code listings re-typeset, the PDF regenerated.

The alternative would have been to re-order a proof print from the printer. A proof print, it turns out, does not arrive the next day. It arrives in seven. The book shipped on its planned launch date only because the surgery happened in-house.

The Cover

The cover came from a small layered Photoshop composition. Between the first proof and the second, somewhere in the layer stack, an adjustment layer survived that was not meant to.

On screen the adjustment layer produced nothing visible. On paper, printed at CMYK on the press, it produced large patches where the dark navy of the cover shifted by a few degrees towards grey-black. Subtle individually, plainly wrong once spotted. The patches did not correspond to any artwork one had intended; they were the ghost of a layer one had meant to delete.

The fix was unglamorous: flatten all adjustment layers before export, audit the PDF with a preflight tool, and repeat until the printed proof and the design intent agreed. A bunch of clean exports later, the kerfuffle was gone. Lesson, pinned to the corkboard: flatten before export, preflight before upload, or be prepared to explain pink patches to your future self.

The Price

This one cannot be fixed as quickly. Amazon's KDP form invites one to enter the list price, and quietly means the net price. Local book VAT is then added on top at checkout: 7% in Germany, 9% in the Netherlands, 5.5% in France, 0% in Ireland and the UK (books are zero-rated), and so on across the marketplaces.

The form, one suspects, was designed from a US perspective where the sticker price is the final price and sales tax appears later at the till. For European marketplaces the same form silently switches meaning, and does not see fit to display the gross total next to the input. For additional fun, the form itself is rearranged for each book type (hardcover, paperback, Kindle), so the lesson learnt from one edition does not quite transfer to the next.

The round figures I had announced on the book page, I entered as though they were gross. At the moment of writing, a book announced at €90 sells for €96.30 on Amazon.de. Corrections to bring every marketplace back to round gross figures are already submitted. The prices will come down, not up. KDP advertises up to 72 hours for propagation; in practice 12 to 24 is typical. While the change is in flight, the dashboard is rather firmly locked: one cannot pause the launch, one cannot postpone by a day, one cannot edit the offending page.

A helpful table of the announced round prices (the target) is on the book page. If a euro or two matters, wait until tomorrow. If it does not, the book is on Amazon now, and I am genuinely grateful for every early reader.

The Kindle

The Kindle edition has been sitting in Amazon's review queue since yesterday evening. What Amazon reviews for, exactly, is not entirely documented: format compliance, metadata validity, some degree of content review. The queue is famously unhurried and famously in Amazon's hands. It will go live when it goes live; today if one is lucky, tomorrow if not.

Nothing I can do to accelerate it, which is itself rather a lesson in how much of a modern launch one does not, in fact, control.

The Direct-Order Option

A direct-order option from Voss'scher Verlag (the imprint) goes live on the book page later today. It offers:

  • Secured EPUB (with watermarking tied to the buyer's invoice, non-DRM but traceable)
  • Secured PDF (same approach, full-colour, readable on any PDF reader)
  • Direct-printed hardcover / paperback (shipped from a local print partner, the same content, without Amazon's 40% cut and with the author paying the EU VAT rather than the customer)

For readers who would rather not route through Amazon at all, this is the path. The pricing is competitive with Amazon's round figures, and the author's margin is measurably better. Both parties win: the reader gets a clean file with no DRM lockdown, the author keeps a living wage's worth of royalty per book.

What I Learned

Three days of fixing three problems at launch is not catastrophic. It is normal for a first book, and somewhat less normal for a fifth. The three rakes one steps on, in order, are:

  1. Your tools are not tested at your scale. JetBrains Mono is used by millions of developers on screens. Nobody I have been able to find ever printed a long stretch of it in monospace on a 100% dot-gain matte press. The bug was there for years; it only surfaces when one subjects the font to the particular combination of ink, paper, and size that printing a book imposes. The lesson: if you are the first person to do something at a particular scale, expect to be the first person to find the bugs.

  2. Exports accumulate history. A Photoshop file used across months of revisions carries every mistake one has ever made as an orphan layer. An export tool that does not actively flatten is an export tool that helpfully preserves those mistakes for the printer. The lesson: flatten is not optional, preflight is not paranoid.

  3. Large marketplaces are designed for their dominant audience. Amazon's KDP is optimised for a US English-speaking self-publisher selling ebooks to a US audience. For a European hardcover with thirteen marketplaces and thirteen VAT regimes, the interface is a minor archaeology project. The lesson: when you are the edge case of a global platform, budget extra time for the platform not noticing.

None of this is meant as complaint. It is the cost of shipping. The book is, for all of that, out. The systems that carried it here were, as the subtitle argues, mostly invisible: the open-source font with its sixteen-year public development history, the reproducible build pipeline for the PDF, the print-on-demand global logistics chain, the pricing-and-tax engine, the review-queue-and-propagation infrastructure of the world's largest bookshop. Each of these is someone's life work, built on somebody else's earlier life work, and they all very nearly got this book to the shelf on time without my noticing.

Almost.

Read more about the book, and see the transparent pricing table per marketplace →


By Vivian Voss — System Architect & Software Developer. Integrated by Design is out today from Voss'scher Verlag. Follow me on LinkedIn for daily technical writing.

Top comments (0)