Category Archives: Book

Good Math: the Book

Ladies and Gentlemen! I’ve got a very big announcement!

mcmath At long last, I’ve written a book based on this blog. It’s being published by the Pragmatic Bookshelf. The way that the Prags work, you can pre-order the book now, and immediately download the current draft. As I update the rest of the book, you’ll get all of the updates, up to the final printed version of the book.

I’m very proud of this thing. It’s the result of a whole lot of work, and I think it should be a lot of fun for mathematically curious folks to read.

For this book, I’ve collected up a bunch of my favorite posts from the history of this blog, and revised/rewritten them in a much more polished, coherent form. The book includes:

  1. Numbers: some basic number theory, what numbers mean, how they’re constructed.
  2. Funny numbers: a collection of strange but interesting numbers: 0, e, i, …
  3. Writing Numbers: Roman numerals, egyptian fractions, continued fractions, …
  4. Logic: first order predicate logic, proofs, temporal logic, and prolog.
  5. Set theory
  6. Computation and computing machines

Aside from being a fun read, buying it will support Scientopia. From the time that Scientopia got started, I’ve been paying all of the hosting bills. That’s about $250 a month, for the last three years. Making some money from this book will make it possible for me to continue supporting it, and maybe even pay for some help with technical support!

Not to mention the fact that if this book does well, there will be more volumes down the line. In particular, I’ve got my eye on doing some stuff about the math of programming: type theory, category theory, algebraic data structures, etc.

Enjoy!

Book Update

Very quick post here: the third beta of my AppEngine book “Code in the Cloud” was released this morning. If you’ve bought a copy of the beta, you can go to your pragmatic account, and download a fresh copy with all of the fixes and new material.

If you haven’t bought a copy… Well, if you’re interested in cloud programming, I’d like to think that this book is a pretty good overview of the subject. It’s about Google AppEngine, but I’ve done my best to write it so that it discusses the nature of cloud programming in general, using AppEngine as a specific example of a cloud platform. Buying a copy supports your friendly math blogger and makes me happy; and when I’m happy, I’m more likely to write more posts for the blog :-).

The main reason that I’m mentioning it is that a few people have asked me to provide a forum on the blog for questions. I’m happy to answer questions, and I’d love to hear feedback from anyone who’s read it – both positive and negative. (And, to be honest, the negative feedback is generally more useful, so I’m very serious when I say that constructive negative feedback is welcome. Anything that you can tell me now, before it’s printed, is something that I can fix!)

So if you’ve got any questions or comments about the book, please go ahead and put them in the comments here. On the other hand, if you find any errors, you’re welcome to put them here, but it would help me more if you could file an erratum at the book’s pragmatic press page, linked above.

A Quick Bit of Temporal Logic: Introducing CTL

This post is something that I’m thinking of including in my
book. I haven’t decided whether I want to spend this much time on
logics; they’re really interesting and fun – but there’s lots of
other interesting and fun stuff, and there’s only so much space.

The topic of the moment is temporal logic – that is, a logic which
is built for reasoning about things that change over time.

To begin with, why do we want temporal logic? Most of the time,
when we want to use logical reasoning, we use predicate logic. So why
do we need another logic?

Continue reading

The Blog and… the Book!

I’d like to apologize for the slowness of the blog. Fortunately, there’s a very good reason: I’ve got a book contract! “Good Math” will be published by “The Pragmatic Programmers” press. The exact publication date isn’t set yet, but my schedule plans for a complete draft of the book by summer. (And I used the scheduling rules proposed by one of my favorite managers. He said that when a programmer gives you an estimate of how long something should take, multiply it by two and increase the unit. So if they say it’ll take a day, assume two weeks. If they say a week, assume two months. In my experience, it’s actually a really good predictor.)

Anyway… For the last couple of weeks, I’ve been setting up a new computer to use for writing the book (gotta keep my Google work and my private work separate!), finishing the first three chapters, and trying to get comfortable with the PP markup system.

While I’m working on the book, I’m going to be posting drafts of some sections as posts on the blog. As a result, you’ll see some re-runs of older posts in a slightly different format. There will also be some brand new material in the book format. The book draft posts will be clearly marked, and for those, even more than usual, I’d appreciate feedback and corrections.

Of course, I’ll also be posting non-book related stuff. For example, I hope to have a new data structures post ready this evening. As a result of my work on the book, I’m back on a Haskell binge, and I’m working up a post about a fascinating functional data structure called a finger-tree.