{"id":122,"date":"2018-12-27T15:18:28","date_gmt":"2018-12-27T15:18:28","guid":{"rendered":"https:\/\/www.allendowney.com\/blog\/?p=122"},"modified":"2018-12-27T15:25:33","modified_gmt":"2018-12-27T15:25:33","slug":"how-to-write-a-book","status":"publish","type":"post","link":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/","title":{"rendered":"How to write a book"},"content":{"rendered":"<p>All of my books were written in LaTeX.\u00a0 For a long time I used emacs to compose, pdflatex to convert to PDF, Hevea to convert to HTML, and a hacked-up version of plasTeX to convert to DocBook, which is one of the formats I can submit to my publisher, O&#8217;Reilly Media.<\/p>\n<p>Recently I switched from emacs to Texmaker for composition, and I recommend it strongly.\u00a0 I also use Overleaf for shared LaTeX documents, and I can recommend that, too.<\/p>\n<p>However, the rest of the tools I use are pretty clunky.\u00a0 The HTML I get from Hevea is not great, and my hacked version of plasTeX is just awful (which is not plasTeX&#8217;s fault).<\/p>\n<p>Since I am starting some new book projects, I decided to rethink my tools.\u00a0 So I asked Twitter, &#8220;If you were starting a new book project today, what typesetting language \/ development environment would you use?\u00a0 LaTeX with Texmaker?\u00a0Bookdown with RStudio? Jupyter?Other?&#8221;<\/p>\n<p>I got some great responses.\u00a0 <a href=\"https:\/\/twitter.com\/AllenDowney\/status\/1075112562331664385\">You can read the whole thread yourself<\/a>, but I will try to summarize it here.<\/p>\n<h4>LaTeX<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-129 size-medium\" src=\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg 300w, https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-768x576.jpg 768w, https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-1024x768.jpg 1024w, https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-360x270.jpg 360w, https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691.jpg 1291w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>Nelis Willers\u00a0&#8220;wrote a 510 page book with LaTeX, using <a href=\"http:\/\/www.winedt.com\/\">WinEdt<\/a> and <a href=\"https:\/\/miktex.org\">MiKTeX<\/a>\u00a0and <a href=\"https:\/\/www.coreldraw.com\/en\/\">CorelDraw<\/a> for diagrams. Worked really well.&#8221;<\/p>\n<p>Matt Boelkins likes &#8220;<a href=\"http:\/\/mathbook.pugetsound.edu\">PreTeXt<\/a>, hands down:\u00a0 It has LaTeX and HTML as potential outputs among many. See the gallery of existing texts on the linked page.&#8221;<\/p>\n<p>makusu\u00a0recommends &#8220;Emacs org-mode. Easy to just write your content, seamless integration with latex, easy output to latex, PDF, markdown and HTML.&#8221;<\/p>\n<h4>AsciiDoc<\/h4>\n<p>Luciano Ramalho recommends &#8220;AsciiDoc, for sure. That&#8217;s how I wrote @fluentpython. It&#8217;s syntax more user-friendly than ReStructuredText and way more expressive than Markdown. AsciiDoc was *designed for* book publishing. It&#8217;s as expressive as DocBook, but it ain&#8217;t XML. With @asciidoctor you can render locally.&#8221;<\/p>\n<p>JD Long provides a useful reminder: &#8220;It\u2019s dependent on the publisher as well as the content of the book. I like Bookdown for R, but if I were doing a devops book for O\u2019Reilly I\u2019d write directly in AsciiDoc, for example. So I think context matters highly.&#8221;<\/p>\n<p>Yves Hilpisch says &#8220;AsciiDoctor is my favorite these days. Clear syntax, nice output, fast rendering (HTML\/PDF). Have custom Python scripts that convert @ProjectJupyter notebooks into text files from which I include code snippets automatically.&#8221;\u00a0 <a href=\"https:\/\/github.com\/yhilpisch\/tpqad\">His scripts are in this GitHub repository<\/a>.<\/p>\n<h4>Markdown<\/h4>\n<p>Robert Talbot recommends &#8220;Markdown in a plain text editor, with Pandoc on the back end for the finished product.\u00a0\u00a0This is assuming that the book is mostly text. If it involves code, I might lean more toward Jupyter and some kind of Binder based process.&#8221;\u00a0 <a href=\"https:\/\/rtalbert.org\/how-i-wrote-my-book\/\">Here&#8217;s a blog <\/a>post Robert wrote on the topic.<\/p>\n<p>I got a recommendation for this <a href=\"https:\/\/thorstenball.com\/blog\/2018\/09\/04\/the-tools-i-use-to-write-books\/\">blog post by Thorsten Ball<\/a>, who uses Markdown, pandoc, and KindleGen.<\/p>\n<p>One person recommended &#8220;writing Markdown then using pandoc to pass to LaTeX&#8221;, which is an interesting chain.<\/p>\n<p>Visual Studio Code got a few mentions: &#8220;I haven&#8217;t written a full book using it, but VS Code plus markdown preview and other editing plugins is my current go-to for small articles&#8221;<\/p>\n<p>&#8220;Bookdown in RStudio is wonderful to use.&#8221;<\/p>\n<h4>Jupyter<\/h4>\n<p>Chris Holdgraf is &#8220;working on <a href=\"https:\/\/github.com\/choldgraf\/jupyter-book\">a project to help people make nicely rendered online books from collections of Jupyter notebooks<\/a>. We use it @ Berkeley for teaching at <a href=\"http:\/\/inferentialthinking.com\">http:\/\/inferentialthinking.com.&#8221;<\/a><\/p>\n<h4>RestructuredText<\/h4>\n<p>Jason Moore recommends &#8220;your preferred text editor + RestructuredText + Sphinx = pdf\/epub\/html output; wrote my dissertation with it 6 years ago and was quite happy with the results.&#8221;<\/p>\n<p>Matt Harrison uses his &#8220;own tools around rst (with conversion to LaTeX and epub).&#8221;<\/p>\n<h4>Other<\/h4>\n<p><a href=\"https:\/\/docs.racket-lang.org\/pollen\/\">Pollen: the book is a program<\/a><\/p>\n<p>Raffaele Abate recommends &#8220;<a href=\"https:\/\/www.literatureandlatte.com\/scrivener\/overview\">ScrivenerApp<\/a>: I&#8217;ve used their Linux beta in past for a short, nonscientific, book and I can say it&#8217;s an amazing software for this purpose. I&#8217;ve read that is usable also for scientific publishing with profit.&#8221;<\/p>\n<p>Lak Lakshmanan wrote, &#8220;I used Google docs for my previous book and for my current offer. Not as composable as latex, but amazing for collaboration. Books need to fine-grained reviews and edits by several people spread around the world. Nothing like Google docs for that.&#8221;<\/p>\n<h4>And the winner is&#8230;<\/h4>\n<p>For now I am working in LaTeX with Texmaker, but I have run it through pandoc to generate AsciiDoc, and that seems to work well.\u00a0 I will work on the book and the conversion process at the same time.\u00a0 At some point,\u00a0I might switch over to editing in AsciiDoctor.\u00a0 I also need to do a test run with O&#8217;Reilly to see if they can ingest the AsciiDoc I generate.<\/p>\n<p>I will post updates as I work out the details.<\/p>\n<p>Thank you to everyone who responded!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>All of my books were written in LaTeX.\u00a0 For a long time I used emacs to compose, pdflatex to convert to PDF, Hevea to convert to HTML, and a hacked-up version of plasTeX to convert to DocBook, which is one of the formats I can submit to my publisher, O&#8217;Reilly Media. Recently I switched from emacs to Texmaker for composition, and I recommend it strongly.\u00a0 I also use Overleaf for shared LaTeX documents, and I can recommend that, too. However,&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-122","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to write a book - Probably Overthinking It<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to write a book - Probably Overthinking It\" \/>\n<meta property=\"og:description\" content=\"All of my books were written in LaTeX.\u00a0 For a long time I used emacs to compose, pdflatex to convert to PDF, Hevea to convert to HTML, and a hacked-up version of plasTeX to convert to DocBook, which is one of the formats I can submit to my publisher, O&#8217;Reilly Media. Recently I switched from emacs to Texmaker for composition, and I recommend it strongly.\u00a0 I also use Overleaf for shared LaTeX documents, and I can recommend that, too. However,... Read More Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\" \/>\n<meta property=\"og:site_name\" content=\"Probably Overthinking It\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-27T15:18:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-27T15:25:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg\" \/>\n<meta name=\"author\" content=\"AllenDowney\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@AllenDowney\" \/>\n<meta name=\"twitter:site\" content=\"@AllenDowney\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"AllenDowney\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\"},\"author\":{\"name\":\"AllenDowney\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/4e5bfb2e9af6c3446cb0031a7bf83207\"},\"headline\":\"How to write a book\",\"datePublished\":\"2018-12-27T15:18:28+00:00\",\"dateModified\":\"2018-12-27T15:25:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\"},\"wordCount\":779,\"publisher\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\",\"url\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\",\"name\":\"How to write a book - Probably Overthinking It\",\"isPartOf\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg\",\"datePublished\":\"2018-12-27T15:18:28+00:00\",\"dateModified\":\"2018-12-27T15:25:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage\",\"url\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691.jpg\",\"contentUrl\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691.jpg\",\"width\":1291,\"height\":968},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.allendowney.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to write a book\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#website\",\"url\":\"https:\/\/www.allendowney.com\/blog\/\",\"name\":\"Probably Overthinking It\",\"description\":\"Data science, Bayesian Statistics, and other ideas\",\"publisher\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.allendowney.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#organization\",\"name\":\"Probably Overthinking It\",\"url\":\"https:\/\/www.allendowney.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2025\/03\/probably_logo.png\",\"contentUrl\":\"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2025\/03\/probably_logo.png\",\"width\":714,\"height\":784,\"caption\":\"Probably Overthinking It\"},\"image\":{\"@id\":\"https:\/\/www.allendowney.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/AllenDowney\",\"https:\/\/www.linkedin.com\/in\/allendowney\/\",\"https:\/\/bsky.app\/profile\/allendowney.bsky.social\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/4e5bfb2e9af6c3446cb0031a7bf83207\",\"name\":\"AllenDowney\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fb01b3a7f7190bea1bbf7f0852e686c2f8c03b099222df2ce4bc7926f15bcb43?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fb01b3a7f7190bea1bbf7f0852e686c2f8c03b099222df2ce4bc7926f15bcb43?s=96&d=mm&r=g\",\"caption\":\"AllenDowney\"},\"url\":\"https:\/\/www.allendowney.com\/blog\/author\/allendowney_6dbrc4\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to write a book - Probably Overthinking It","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/","og_locale":"en_US","og_type":"article","og_title":"How to write a book - Probably Overthinking It","og_description":"All of my books were written in LaTeX.\u00a0 For a long time I used emacs to compose, pdflatex to convert to PDF, Hevea to convert to HTML, and a hacked-up version of plasTeX to convert to DocBook, which is one of the formats I can submit to my publisher, O&#8217;Reilly Media. Recently I switched from emacs to Texmaker for composition, and I recommend it strongly.\u00a0 I also use Overleaf for shared LaTeX documents, and I can recommend that, too. However,... Read More Read More","og_url":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/","og_site_name":"Probably Overthinking It","article_published_time":"2018-12-27T15:18:28+00:00","article_modified_time":"2018-12-27T15:25:33+00:00","og_image":[{"url":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg","type":"","width":"","height":""}],"author":"AllenDowney","twitter_card":"summary_large_image","twitter_creator":"@AllenDowney","twitter_site":"@AllenDowney","twitter_misc":{"Written by":"AllenDowney","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#article","isPartOf":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/"},"author":{"name":"AllenDowney","@id":"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/4e5bfb2e9af6c3446cb0031a7bf83207"},"headline":"How to write a book","datePublished":"2018-12-27T15:18:28+00:00","dateModified":"2018-12-27T15:25:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/"},"wordCount":779,"publisher":{"@id":"https:\/\/www.allendowney.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage"},"thumbnailUrl":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/","url":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/","name":"How to write a book - Probably Overthinking It","isPartOf":{"@id":"https:\/\/www.allendowney.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage"},"image":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage"},"thumbnailUrl":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691-300x225.jpg","datePublished":"2018-12-27T15:18:28+00:00","dateModified":"2018-12-27T15:25:33+00:00","breadcrumb":{"@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#primaryimage","url":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691.jpg","contentUrl":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2018\/12\/IMG_2691.jpg","width":1291,"height":968},{"@type":"BreadcrumbList","@id":"https:\/\/www.allendowney.com\/blog\/2018\/12\/27\/how-to-write-a-book\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.allendowney.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to write a book"}]},{"@type":"WebSite","@id":"https:\/\/www.allendowney.com\/blog\/#website","url":"https:\/\/www.allendowney.com\/blog\/","name":"Probably Overthinking It","description":"Data science, Bayesian Statistics, and other ideas","publisher":{"@id":"https:\/\/www.allendowney.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.allendowney.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.allendowney.com\/blog\/#organization","name":"Probably Overthinking It","url":"https:\/\/www.allendowney.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.allendowney.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2025\/03\/probably_logo.png","contentUrl":"https:\/\/www.allendowney.com\/blog\/wp-content\/uploads\/2025\/03\/probably_logo.png","width":714,"height":784,"caption":"Probably Overthinking It"},"image":{"@id":"https:\/\/www.allendowney.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/AllenDowney","https:\/\/www.linkedin.com\/in\/allendowney\/","https:\/\/bsky.app\/profile\/allendowney.bsky.social"]},{"@type":"Person","@id":"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/4e5bfb2e9af6c3446cb0031a7bf83207","name":"AllenDowney","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.allendowney.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fb01b3a7f7190bea1bbf7f0852e686c2f8c03b099222df2ce4bc7926f15bcb43?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fb01b3a7f7190bea1bbf7f0852e686c2f8c03b099222df2ce4bc7926f15bcb43?s=96&d=mm&r=g","caption":"AllenDowney"},"url":"https:\/\/www.allendowney.com\/blog\/author\/allendowney_6dbrc4\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":1655,"url":"https:\/\/www.allendowney.com\/blog\/2025\/11\/04\/think-dsp-second-edition\/","url_meta":{"origin":122,"position":0},"title":"Think DSP second edition","author":"AllenDowney","date":"November 4, 2025","format":false,"excerpt":"I have started work on a second edition of Think DSP! You can see the current draft here. I started this project in part because of this announcement: Once in a while, a few of the Scicloj friends will meet to learn about signal processing, following the Think DSP book\u2026","rel":"","context":"In \"DSP\"","block_context":{"text":"DSP","link":"https:\/\/www.allendowney.com\/blog\/tag\/dsp\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":963,"url":"https:\/\/www.allendowney.com\/blog\/2023\/07\/02\/the-remarkable-decline-of-homophobia\/","url_meta":{"origin":122,"position":1},"title":"The Remarkable Decline of Homophobia","author":"AllenDowney","date":"July 2, 2023","format":false,"excerpt":"This article is an excerpt from the manuscript of Probably Overthinking It, available from the University of Chicago Press and from Amazon and, if you want to support independent bookstores, from Bookshop.org. [This excerpt is from a chapter on moral progress. Previous examples explored responses to survey questions related to\u2026","rel":"","context":"In \"age period cohort analysis\"","block_context":{"text":"age period cohort analysis","link":"https:\/\/www.allendowney.com\/blog\/tag\/age-period-cohort-analysis\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2023\/07\/progress10.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2023\/07\/progress10.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2023\/07\/progress10.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2023\/07\/progress10.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2023\/07\/progress10.png?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":1229,"url":"https:\/\/www.allendowney.com\/blog\/2024\/02\/15\/think-python-third-edition\/","url_meta":{"origin":122,"position":2},"title":"Think Python third edition!","author":"AllenDowney","date":"February 15, 2024","format":false,"excerpt":"I am happy to announce the third edition of Think Python, which will be published by O'Reilly Media later this year. You can read the online version of the book here. I've posted the Preface and the first four chapters -- more on the way soon! You can read the\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2024\/02\/image.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":451,"url":"https:\/\/www.allendowney.com\/blog\/2020\/06\/03\/think-dsp-v1-1\/","url_meta":{"origin":122,"position":3},"title":"Think DSP v1.1","author":"AllenDowney","date":"June 3, 2020","format":false,"excerpt":"For the last week or so I have been working on an update to Think DSP. The latest version is available now from Green Tea Press. Here are some of the changes I made: Running on Colab All notebooks now run on Colab. Judging by my inbox, many readers find\u2026","rel":"","context":"In \"digital signal processing\"","block_context":{"text":"digital signal processing","link":"https:\/\/www.allendowney.com\/blog\/tag\/digital-signal-processing\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":689,"url":"https:\/\/www.allendowney.com\/blog\/2021\/12\/19\/data-structures-and-information-retrieval-in-python\/","url_meta":{"origin":122,"position":4},"title":"Data Structures and Information Retrieval in Python","author":"AllenDowney","date":"December 19, 2021","format":false,"excerpt":"I am happy to announce the first release of a new book, Data Structures and Information Retrieval in Python, which is an introduction to data structures organized around a motivating example: building a search engine. The elements of the search engine are the Crawler, which downloads web pages and follows\u2026","rel":"","context":"In \"computer science\"","block_context":{"text":"computer science","link":"https:\/\/www.allendowney.com\/blog\/tag\/computer-science\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":731,"url":"https:\/\/www.allendowney.com\/blog\/2022\/05\/16\/prestons-paradox\/","url_meta":{"origin":122,"position":5},"title":"Preston&#8217;s Paradox","author":"AllenDowney","date":"May 16, 2022","format":false,"excerpt":"This article is an excerpt from my book Probably Overthinking It, to be published by the University of Chicago Press in early 2023. This book is intended for a general audience, so I explain some things that might be familiar to readers of this blog \u2013 and I leave out\u2026","rel":"","context":"In \"data science\"","block_context":{"text":"data science","link":"https:\/\/www.allendowney.com\/blog\/tag\/data-science\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.allendowney.com\/blog\/wp-content\/uploads\/2022\/05\/image-3.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/posts\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":8,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"predecessor-version":[{"id":131,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/posts\/122\/revisions\/131"}],"wp:attachment":[{"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.allendowney.com\/blog\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}