The week in reading—September 23rd–29th 2013

I completed relatively few things this week. I tend to read items in parallel, so while I have a lot of things in the queue, here’s what I actually finished reading this week.


Approaching The Future: 64 Things You Need to Know Now For Then, by Ben Hammersley

This is a great book for someone who hasn’t been reading Wired and other probing-the-near-future books and magazines. In other words, I think it’s pretty good, but I didn’t get very much out of it, it was covering ground largely familiar to me.

I did get enough out of it that it was useful, and he’s an entertaining and facile writer who manages to largely keep his own politics and agendas out of what he’s presenting. For example, it made me more enthusiastic about doing my own bio-hacking; I knew it had gotten cheap, but I think I want to order some equipment now and mess around with altering DNA. And I liked the bit about Nicaragua invading Costa Rica based on an error in Google Maps. And believe it or not, I had never heard of (or forgotten) about Spimes.

OK, I take it back. There were lots of bits in this book that were new to me, it’s just that the first half of it was such familiar ground that I was conditioned. But I learned about “human flesh search engines” (literal translation from Chinese), I learned about /b on 4Chan (hey, I can’t be everywhere), I was reminded of why I think favorably of Anonymous (their first big campaign was waged against the Church of Scientology), or that there are now over 900 TED Talks videos. Or that there are online money changers to exchange your WoW gold into FF gil.

So yes, I liked this book a lot. Give it a shot, even though it’s ever so slightly out of date. I mean, it mentions 2012 as the future. Serious!

This is in fact the book I need my wife to read, my parents, and all my other friends and acquaintances that don’t already live in the future. Because, as William Gibson pointed out not too long ago, “The future is already here, it’s just unevenly distributed”.

The Incrementalists, by Steven Brust and Skyler White

I think I own every book that Steven Brust has published. If there’s one that I don’t own, it’s either through horrible oversight, or that it was published in a very exclusive format and hidden from me. I love Steven Brust’s writing style. This is my first interaction with Skyler White, she was previously unknown to me.

The central premise of The Incrementalists is hoary, but the authors make it work. A set of basically immortals have been meddling with humanity for as long as humanity has been around. And yet, they aren’t exactly immortal. Instead, they are memories and personalities that are transplanted from person to person. And the meddling is small things intended to make people and situations better. It’s also a murder mystery with a twist, and follows a moderately tough double-first-person track (it’s told first person by both of the main protagonists).

Steven Brust, like Roger Zelazny, is a master of dialog; probably half of the text in the book is dialog. It’s snappy, wry, snarky, emotional, and tricky – it’s very hard to have a mystery or surprises with first-person without it being deus ex machina, and there’s a minimum of that.

That said, it’s not his finest book. His first Vlad Taltos books were better, and I don’t think he’s written anything to match The Sun, The Moon and the Stars (my personal favorite of his). But this is still a fun book and a thoughtful book, since it touches on identity and humanity and purpose.


Fewer magazines this week, I think.

The Philospher’s Magazine, Issue 59, 4th Quarter 2012

I’ve been reading this on and off for a few years now, ever since I discovered it on a rack at Barnes & Noble.

This issue covered argument (“Can reasonable people disagree?”), ethics and banking, an article on a controversial experiment by Benjamin Libbet that purported to show free will is weak or nonexistent, genetics and ethics,  women in philosophy (still very unequal), can evil achievements have value, an interview with Frank Jackson (famous for his paper titled “Epiphenomenal Qualia” (google “Frank Jackson’s Knowledge Argument”).

It’s not a terribly big magazine, but it’s moderately dense, this issue more so than normal.

Psychology Today, October 2013

This is probably one of the most “pop” magazines I read. I usually pick up an issue based on what the cover screams out, and this cover was “When Virtue becomes Vice”. Did you know that fairness taken too far is a vice? Excellence I get – you can become so focused on perfection that you get paralyzed and get nothing done (I’m looking at you, Blizzard). The passion one I’m not so sure about.

I agree with the myth of the balanced life. I’m so tired about hearing that we need balanced lives. Get stuff done! Live a great life! Don’t worry about whether it’s “balanced” or not.

There was also an article on one of the founders of Akamai, Daniel Mark Lewin, who died in the 9/11 attacks (he was on one of the airplanes, Flight 11, that crashed into the World Trade Center). He was brilliant, and who knows what more he would have accomplished had he not been killed.

The other interesting article for me was on sleep. I really need to sleep more. I just find the whole process to be a waste of my time, but I realize it’s important and I’ll think better if I get enough rest. Blah blah blah yeah ok.

Economist, September 28th-October 4th 2013

One near-ritual I have is to buy the Economist Saturday morning, and read it. I really should be subscribing to it, but there’s something about the anticipation of going to the newsstand, purchasing it, and then reading it over a meal or two. I think it takes about 8 hours of reading for me to finish it all (I’m guessing that a typical issue has somewhere between 50,000 and 100,000 words in it – I counted a few pages and they run at around 1000 words per page). Sometimes I finish it over the weekend, and other times I’ll be reading it (along with other things) for much of the week.

Al-Qaeda is alive and well, alas. The Arab Spring has turned sour, and that bodes ill for the stability of the region and maybe the world. Brazil’s economy is sputtering due to the high taxes insane hide-bound rules laden over everything. Venezuela is trying to blame everything on The Great Satan (America) instead of their own disastrous policies.

The special report this issue was on Brazil. Brazil is facing a milder version of the challenge currently crippling Venezuela – huge resources letting hard decisions be deferred. In the case of Venezuela, it wasn’t tenable even back 10 years ago, whereas Brazil seemed like it was on a sound footing. But Brazil’s maze of laws, its pretty unrepresentative government, its gigantic pension liabilities, and its lack of infrastructure and education investment bode poorly for the future. Venezuela will probably face civil war or something equally dramatic, whereas Brazil could turn into a zombie like Japan was for the past 20 years. Or it could fix its woes.

Angela Merkel won in Germany, or rather both she and the CDU/CSU. This is good for Europe and the world. There’s going to be some drama, because the CDU’s reliable minority partner, the FDP, failed to get 5% of the vote and therefore is not in parliament any more (you need at least 5% to be important enough to have any seats). So there’s going to be a coalition of some sort, but the potential coalition partners aren’t looking forward to it. So there will be interesting times for the next few weeks to months, and all the EU looks towards Angela Merkel to ratify EU-wide decisions.

Blackberry (formerly known as Research In Motion) was worth $83 billion in 2008, and is now likely to go private at $4.7 billion. But unlike Dell, I’m not sure what Blackberry’s future market is – even if they focus on business, businesses are now buying what their users want, and that’s iPhones and Androids.

Buy one of each?

There’s an interesting article about the Apple App Store. Evidently, you could buy (a copy) of every app in the App store for a total of only about $1.3 million.

Is that a low number? There are 750,000-odd apps, but I don’t think that’s a relevant distinction. Instead, let’s consider other categories, and what it would take to buy one of everything.


In 2010, there were 316,480 books published by traditional publishing companies in the United States, and 2.2 million world-wide. Let’s assume an average retail price of say $25 (completely pulling this out of my ass). So, for me to purchase one of every book released in a year would be on the order of $50 million. There’s been a dramatic increase in the number of books written and released (e.g. 100 years ago, the total number of books released was on the order of 9000). But it’s still likely that to buy one of every book for all time would be many hundreds of millions of dollars.

I could be high-balling this, because many books are either released in countries where prices are low, or are available in mass-market editions. But I think a good floor would still be $10 million for “buy one of every book printed in a year), and $100 million for “buy one of every book written”.

Movies and TV

I saw a figure for 2007 that said around 2500 movies worldwide. Let’s round it up for progress, and let’s say I could buy a copy of each one for $30 (many movies are not available for purchase). So I could buy a copy of every movie made in a year for a paltry $75,000. There just aren’t that many movies made.

There’s no easy statistics for TV shows. As of 2010, there were 4,728 television broadcasters, and the estimate is of tens of thousands of TV shows just for the United States. And this is an area where there are many more TV shows in other countries. I’m going to say that probably a million hours of TV content is generated every year. If I could buy it on DVD for $50/25 hours (a guess/average based on what I see released), then I could buy a year’s worth of TV for $2 million.

Video games

Discounting iPhone (because that was accounted for in the App store numbers above), and ignoring Android for now.

How many console and desktop video games are released in a year? Maybe a thousand? This is actually pretty easy to back into – take the size of the video game industry in dollars, get the average budget for a game, divide, and presto, there’s your number (sans profit, which is pretty low overall, some games make a lot of profit, many games run at a loss). A thousand would mean the average budget for a game is $30 million; this is too high. So let’s just say 10,000 for now, although that’s certainly too high. Let’s say the average price is $60 (which is also high, lots of Gameboy games cost closer to $35). I could buy one of each game made in the past year for around $600,000. Lifetime, there are likely on the order of 150,000 games that have been made.

And more

I’ll have to finish this exercise at some point. It’s interesting to consider the cost of information, because all of the things I’ve mentioned have very low marginal costs, unlike say a refrigerator or a car. The marginal cost for an app from the App store is fractions of a penny (the cost of transmitting a copy to your iDevice), unlike the marginal cost for a car, which is thousands of dollars.

In fact, the marginal cost for an eBook is so close to zero that it might as well be zero. The marginal cost for a large game or a movie is higher, but it’s still significantly less than $1, more like about $0.10 to $0.25 at current costs. One hour of TV has a marginal cost of probably $0.10, but I could be off slightly.


0install and OCaml and correctness

Zero Install, or 0install, is another package installer, but one that is cross-platform. Or, as they put it, a “decentralised cross-distribution software installation system”.

It’s written in Python (except for the Windows version which is largely written in C#). Or rather, it was written in Python, but it’s being migrated to OCaml for several reasons: single binary, performance, static type checking. There are two blog posts written about this process, where the author explored multiple candidate languages for performance versus expressiveness (if performance were the only candidate, then C/C++ would have been the obvious answer).

The blog posts are worth reading whether or not you know much about any of these langauges, or whether you have any interest in 0install itself. For example, he doesn’t handwave about performance, but confronts it head-on. But more importantly, he spends a lot of time on correctness of outcome – not theoretical correctness, but “did the program do what the user intended and if it couldn’t did it tell the user what it failed to do and why?”

I don’t necessarily agree with his reasoning in every case, but some of his proposed safety tests made me think. The “can’t write to stdout needs to be an explicit failure case” is an example of one of those startling declarations.

There are follow-up posts that focus just on OCaml.

I recommend reading all of it. You might learn something.

Scheduling – what is the allowable max for lead time?

The time it takes to get something done is a combination of two factors

  1. The time before you can get started on it – call this lead time
  2. The time it takes to actually do the work – call this task time

If a 1-minute task doesn’t get scheduled for a year, it took a year to get it done. It’s very important to think this way. If you don’t, then you’ll decide that efficiency means “be doing the most work you can every moment”, and once your workload gets above 80%, your lead times on all items will grow rapidly, and once your workload gets to 100%, the lead time for most of your tasks will grow to infinity (and your task list will grow to infinity).

One way to prevent this from happening is to put a hard cap on workload. This has been studied, and for certain kinds of workloads, you can put a number on the workload, like say 80%, that will prevent lead times from growing.

However, this is very hard both politically and practically to do this, to cap workload.

Another way is to cap lead times. An item can’t enter in the system if it would have an excessive lead time. The lead time should be proportional to the task time.

  • The lead time for a 1-minute task shouldn’t go higher than 15 minutes.
  • The lead time for a 1-hour task shouldn’t go higher than 1 day.
  • The lead time for a 1-day task shouldn’t go higher than 1 week.
  • The lead time for a 1-week task shouldn’t go higher than 1 month.
  • The leed time for a 1-month task shouldn’t go higher than 1 quarter.

If you can’t find time on your schedule for a new task that has an appropriate lead time, then you drop the task.

This applies to all items on your task list, not just for a new task about to be put on the task list. You can’t make any tasks have lead times that exceed these values, so if you have estimation issues, you’ll find that periodically you’ll need to re-evaluate tasks and remove some so you can get back to the maximum allowed lead times. Fortunately, this is self-correcting, if your current tasks take you longer than you thought, you won’t be able to add new tasks to the schedule until you get this under control.

Note that in the current way of doing things, we slot it in somewhere, but in reality we find out that we are dropping tasks, but they are being dropped into limbo. We’ve emulated the halting problem in our schedule :)

If you do this, you’ll have the painful conversations right up front. People don’t like pain, which is why we have the current system. However, the deferred pain is worse, because it leads to things like losing your job (or everyone in the company losing their jobs).