Free download:

Software Wars, the Movie

Soundtrack for the book:

If you enjoyed the free download, a donation of the cost of a newspaper would be appreciated.

The best book explaining free market economics:

The best explanation of how we can build a space elevator in 10 years:

Book explaining a political solution to our economic problems:

Open letter to Ray Kurzweil

I’ve moved the open letter here:

Open letter to Sebastian Thrun

The article about Google working on driverless cars has been making the rounds. It is interesting that Google can generate news about a side project of a side project, and yet the car companies are unable to demonstrate anything newsworthy in this area.

I’ve emailed Sebastian Thrun and a few others before and so I am sending them an open letter in response to his latest news article.


Hi all;

I saw your recent article in the NYT that got sent all over the world and I thought to write you again.

I have three suggestions for you:

1. License your software as GPL v3. I came from Microsoft so I understand that you call your code “secret sauce”. I wrote a book about this topic that you might find an interesting summary of the issues; the thing to remember is it will take more than just your little team to finish this. The reason millions around the world know the name Linus Torvalds is because his code was licensed as GPL v2 and therefore lots of other people joined in — and were forced to contribute back (unlike the lax BSD license.)

2. Move to Python + assembly language. I spend two chapters on this topic, so I will say here that Python is a productive, reliable, rich and free language. Any language with garbage collection is good, but Python has the richest set of libraries with things like SciPy (

3. Use a free simulator like Rigs of Rods. The only way you can ever build confidence in such a system is to create crazy scenarios and test the code end to end. It is only when you’ve got every possible scenario tested that you can say to the world that this is ready. Your real-world test runs can be used to make your simulations better. You all might not be interested in this aspect right now, but there will need to be some people who are! I could imagine a big testing team working exclusively on simulators.

I’m happy to discuss any of this further. I appreciate your time.

Kind regards,


Software And Other Legacy Of The Baby Boomer Generation

If the WW II generation was The Greatest Generation, the baby boomers were The Worst. My former boss Bill Gates is a baby boomer. While he has the potential to do a lot for the world by giving away his money to other people, after studying Wikipedia and Linux, I see that the proprietary development model he adopted has greatly stifled the progress of technology his generation should have provided to us. I start a book with the statement that we should already have cars that drive us around as we have had video cameras and powerful computers for decades. The reason we don’t have robot-driven cars is that proprietary software became the dominant model:

Free versus proprietary software is similar to the divide between science and alchemy. Before science, there was alchemy, where people guarded their ideas because they wanted to corner the market on the means to convert lead into gold. The downside of this “strategy” is that everyone would have to learn for themselves that drinking mercury is a bad idea! The end of the Dark Ages arrived when man started to share advancements in math and science for others to use and improve upon. Computers are an advancement comparable to the invention of movable type and while they have already changed many aspects of our lives, we still live in the dark ages of technology.

We can blame the baby boomers for proprietary software. (We can also blame them for C++ and Java, and I write two chapters detailing why they have been a total disaster for the industry. I recommend everyone use Python today.) We can also blame boomers for outlawing nuclear power, never drilling in ANWR despite decades of discussion, never fixing Social Security, destroying the K-12 education system, leading us to our bankrupt welfare state, and numerous of the other long-term problems that have existed in this country for decades, that they did not fix, and the new ones they created. Linus Torvalds is a Generation X-er, having been born in 1969. It is this generation that is coming into its own now that will invent the future, as we incorporate more free software, cooperation, and free markets into society. The boomer generation got the collectivism part, but they failed on the freedom aspect.

My book describes why free software is critical to faster technological development, and it ends with some pages on why our generation can build a space elevator in less than 7 years. I believe that in addition to driverless cars, understanding DNA, getting going on nanotechnology, and terraforming Mars, are also in reach. Wikipedia surpassed Encyclopedia Britannica in 2.5 years which is strong evidence that the problems in our world are as much social as technical. Let’s step up, work together, and make it happen!

What House Minority Leader John Boehner should have said

Boehner was on the defensive for his nuking an ant statement.

He should have said something like this:

I’m sorry for mispeaking. My teleprompter was broken that day, and so I was speaking with my mind and heart as my guide. And I ended up using a metaphor that only half-conveyed the idea I was trying express. Which is that this reform is a spreader bar on our financial sector when our economy is already bound and shackled and gagged. As esteemed Richard Posner has written,

“The most sensible legislative response to the financial collapse of September 2008 would have been to do nothing until the causes of the collapse were fully understood.

There is no urgency about legislating financial regulatory reform. The existing regulatory agencies have virtually total authority over the financial industry. And because they were asleep at the switch when disaster struck, they are now hyper- alert to prevent a repetition of it. Indeed, bank examiners have become so fearful of condoning risky practices that they are making it difficult for banks to lend to small businesses and consumers and thus are retarding the economic recovery.”

So I didn’t mean to suggest that the ongoing financial crises he is presiding over are small. Far from it. He never does talk to me, but if he had called, I would have been happy to explain in any amount of detail my concerns.

So instead, he loaded onto his teleprompter a political attack that is based on a mischaracterization of my position. I just want to know at one point Obama realized this mistake. Or whether he knew it was a mistake when he said it.

Of course, this demonstrates that Obama isn’t the post-partisan unifier he claimed to be in his campaign commercials. Who is the real Obama? The one who claims to believe in the free market, or the one who pretends his stimulus bill is a success?

Conversation with Cuban programmers about rolling releases

There are 12 Cuban programmers each translating a chunk of my book into Spanish. Here is my latest mail to them:


An idea for an interesting project occurred to me, and you are the perfect candidate country to build it!

I have come to understand that rolling releases are what Linux should become. I have installed Ubuntu on friends computers, and years later, they are running the exact same software. Free software improves every day, and it is a shame that people are not always running the latest.

Therefore, you should put rolling-releases software on every desktop machine in Cuba. You should put something on that automatically upgrades to the latest version without any intervention by a local user.

Now, this can create a problem. If you put out a fix and every machine crashes and won’t boot, you are screwed.

Before I get to the solution, there are many ways to mitigate this problem. For example, you can mirror Debian-Testing, but create a different schedule for how the software deploys. Some machines will grab the latest builds. Some machines will grab Debian Testing + another 20 days. If you can categorize machines, and setup different dates for how long things sit in -Testing, you can catch problems early.

There is no software that does this yet and I you guys should build it. It allows people to connect up to Debian-Testing, but not be on the front lines. I’m not sure how to implement it. But it is a big enough project that it would require a bunch of you.

You also need to work on what to do when things go bad. For example, if a machine crashes, it should reboot into a special state to see if there are any new packages. It could be that a fix is waiting for it.

Furthermore, if the machine is still hosed, then you could have it decide to do a reinstall. You should setup every machine to have a separate user and home partition. This gives you the possibility to wipe machines.

Every machine that is running this Linux is connected to a very powerful force. Once it is installed, it can all be run remotely. Year after year, the software in every school and such will automatically get better. And hey, even if it breaks, well that’s just a reason to hire some Debian experts in every school.

And it would be useful to many other people. It could be one of the biggest reasons to move people back to Debian. In fact, you could end up unifying a lot of the other forks by Debian implements a better Debian-Testing. The early people who joined Ubuntu came from Debian and used it mostly because it shipped more frequently.

So you need to figure out how to implement it, and how to handle bad situations. The key is to have multiple types of correction mechanisms. One thing you can do is look at past Debian-Testing breaks and see if your solution handles them.

What do you think?