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:


LibreOffice 4.0 And The Power of Brands

LibreOffice 4.0 was launched last week, and the news reports and activity on social media were massive, more than any release of LibreOffice or OpenOffice before, with better coverage than many of Microsoft’s well-funded introductions. There were numerous links sent around to the usual sites like LinuxToday.com, but also TechCrunch, VentureBeat, Time Magazine, etc. A fair amount of the chatter was people wondering what the difference is between the two versions. Some have basic questions like whether LibreOffice can import their OpenOffice documents.

LibreOffice is introducing their new name and community to the world. All the major Linux distros are already aware, but there are many Windows and Mac users who don’t understand what is going on. People even become attached to names for emotional reasons. Brands are powerful. If you were in a remote village in India on a hot day, you’d quite likely grab a Coke to cool your thirst if that was the only one with letters you recognized. Even people who like to travel and try new things might not want to take a risk on something that looks like carbonated, used bathwater with funky characters when they are tired, hot and thirsty.

Picture by Hari Kishan & Shardul Pandey

In the realm of software, the considerations are different but related. Many are afraid to try new things because technologies so frequently come and go. People have been burned by Farmville, Zune, Tweetdeck, iTunes, Nvidia, Comcast, AT&T, Sprint, Sun, Adobe, Gnome 2.x, Microsoft, IBM, etc.

Some people look down on the LibreOffice / OpenOffice codebases because the user interface is more clunky than Microsoft’s Office, but many who spent time in it saw how it handled their files, has many features, and is generally stable, fast, portable and free. People became attached to “OpenOffice” during the hours they spent expressing their creative ideas. Many attach greatness to the name rather than to the people who built it. This makes people uneasy to try LibreOffice.

If you were to explain to OpenOffice users that Oracle laid off all the programmers before handing the trademark to Apache, and their new team is legally unable to accept changes made by LibreOffice, they might realize they should try the newcomer. That disclaimer is currently not on the Apache website. It would also be a useful warning if they listed all the features missing from LibreOffice. The current full list is already mind-blowing (4.0, 3.6, 3.5, 3.4, 3.3), and they are just getting started (Easy hacks, GSoc).

The biggest issue to consider is the opportunity cost. Instead of enhancing the existing OpenOffice brand, the community is forced to rebuild a new one. That is especially unfortunate because there are many people in LibreOffice who contributed to OpenOffice, and made the brand worth what it is today. As Apache OpenOffice is unable to accept LibreOffice changes, the brand is being squandered. And instead of adding resources, Apache are playing catchup, mandating an inferior license for this codebase, and inferior tools.

Because Apache OpenOffice has the brand, and a handful of full-time employees working on the codebase, they can find always ways to report good news and give the illusion of progress: “There have been 35M downloads, which saves the world $21M per day.” “Who wants to help with the wiki?” “We’ve now got 6 workitems tagged as Easy Bugs.” “Can someone dig up the documentation of our SDF format?” “It would be great to get someone to package OpenOffice into Fedora and give users choice.” “We found 50 naive^Wnew volunteers to help with QA in our recent call for help.” Etc.

This was an exchange that took place during Michael Meeks’ interesting Fosdem 2013 talk:

Question: I don’t know if I’m the only one, but I’d love to see peace between LibreOffice and Apache OpenOffice. Is that in the works?

Michael Meeks: Okay. Well, I think there are lots of opportunities for code sharing. We provide code under a license that Apache can incorporate, into their binary releases at least, so I think there’s a lot of scope for that. And, I think you’d have to go and ask them. I’m not really interested in talking so much about that. I might say something rude.

People in the Linux community are aware of the situation, but many don’t realize that there is very little LibreOffice can do to improve things. LibreOffice cannot prevent new forks from being created, and no one inside was threatening to fork. LibreOffice couldn’t prevent Oracle from giving away the trademark to anyone. LibreOffice couldn’t prevent Apache from creating a project that doesn’t accept their code. LibreOffice can’t prevent new people from getting confused when they see Apache, OpenOffice, and a pretty website, not realizing this is basically the “pet project” of an IBM employee.

It seems like people inside Apache could do something, but many of them liked the idea of having two “cores”. They see themselves as the upstream with the more open license, and LibreOffice is free to grab whatever code they find useful. Unfortunately, they don’t realize that as these codebases diverge, this becomes harder. LibreOffice no longer uses the SDF format for localization. So between the confusion, and the illusion of progress by a stream of money, we could be here a while. IBM has been around for 100 years. Perhaps they’re happy to wait until everyone is dead and hope the next generation of LibreOffice representatives is more amicable to their plans. As far as for things getting better, the best sign to look for would be if IBM were to send their representative new directives from the Home Office. You do see comments stating they’d like to end the fork. If only they had that wisdom before they created one. However, it appears they have no ideas what to do next. More wisdom is yet required.

LibreOffice is doing very well for such a young team. The free software community is jumping in and improving the codebase in many ways. However, the community could easily use millions of dollars to hire more people to work full-time and mentor volunteers. Perhaps the greatest concern is a lack of people who understand the Writer layout code, which is the most complicated piece of logic in the entire suite. Code and people are valuable, but people who understand code even more so.

Note: I write about LibreOffice / OpenOffice because I don’t like to see brands and volunteers wasted.

Dissent on Gnome's Javascript decision

Yesterday I read a blog post / announcement about how Gnome is moving to Javascript and I wanted to write some feedback.

It is great that they are trying to use a garbage-collected language for as much code as possible. For a component-based shell UI, Javascript is surely better than C, C++, or Java. I realize they started down this road towards Javascript years ago, but I think it is worth re-considering whether they are on the right path.

With big decisions, it is nice to have a paper trail. I can find no supporting documentation backing up the decision other than one blog post written after the fact, which doesn’t give very much information.

It appears the decision was made in a meeting. It is great to have meetings to discuss things, and it is great to make decisions in meetings, but oftentimes the best results are about moving the decision-making process forward, not actually committing to big things. Even if there were many in that room, there are surely facts they didn’t have, and other interested parties who were not there. There is the risk of “tyranny” by a self-selected cabal. Hopefully the decision wasn’t made at a bar 😉

I believe the best choice for Gnome is Python, not because the language is necessarily a lot better than Javascript, but because it is already close to the standard scripting language of the Linux desktop. My Mint-Debian repository has 1809 Python packages, and only 301 for Javascript. (Vala has 68.) Was data like this taken into account during the decision-making process? Without a paper trail, there is no way to validate the analysis or circulate it for feedback. There are many reasons to use Python, but the most important is that it is already so popular on the free desktop. The best reason to use Javascript is if you plan on running inside a web browser. Anyone writing code for the Linux desktop and not constrained to a web browser can do better.

To be clear, some of the reasoning is explained. Here are my responses:

1. Our language of choice needs to be dynamic and high level.

Python and many languages fit that description.

Next, it says:

2. There is already momentum in the GNOME Project for JavaScript — it’s used in GNOME Shell and GNOME Documents.

Unfortunately, that is not really much of a reason. In fact, it could be perpetuating a bad plan with this logic.

Next:

3. There’s a lot of work going into the language to make it especially fast, embeddable, and framework-agnostic.

Every language works to make itself fast. There are lots of efforts to make Python fast such as Cython and PyPy, and as many Gnome libraries will remain in C, this is hardly an issue even with the standard CPython implementation.

I’m not sure what the benefit of being embeddable is for a desktop UI. And Python is embeddable as well, inside apps like LibreOffice. I don’t undertand what the benefit of being framework-agnostic is. Every language needs libraries, and a rich set of libraries is a good thing.

4. JavaScript is increasingly being seen as a first class desktop programming language — it us being used in Windows 8, mobile platforms, and for local web applications.

Aren’t Windows 8, mobile, and local web applications supposed to be a worse experience than a Linux desktop? I imagine living exclusively in any of those platforms and shudder at the thought. They also aren’t planning on sharing code with any of those groups. Please don’t try to convince people the Gnome future is bright by using those three examples!

There is another post by John (J5) Palmieri who appears to be a fan of Python but who nevertheless endorses Javascript for Gnome. In it, he says that Python has a lot of baggage. Unfortunately, he doesn’t describe or link to a document describing what he’s talking about. In addition, it is important to weigh the good (the existing libraries and free software programmers) against the baggage. Every language has some baggage. For example, there is a book called Javascript: The Good Parts, which says something about Javascript’s. Furthermore, Python is setup to evolve and periodically break backward compatibility via things like the Python 2.x / 3.x branches. Can Javascript ever remove its cruft?

My day job is trying to finish a movie (trailer) endorsing Python as part of math literacy. Changing how math is taught to children could take a generation. But if Gnome get going now, they will be ready, and hopefully also be better than Gnome 2.x by then 😉 (I’m stuck in MATE. I believe the decision to remove Gnome 2.x is as good an idea as LibreOffice removing DOC import. This decision can be revisited also, but given how long ago it was made, I’m sure people are tired of the topic, so I will end here.)

Update: Some suggest that Javascript is more popular than Python as being a reason. Google trends show that Javascript popularity is dropping dramatically and the two are close today. Furthermore, most of those people are building random websites, not writing code that ships in Debian. And as pointed out in the comments, a recent TIOBE survey shows Python as more popular than Javascript. Python is also replacing Java in introductory CS classes.

Open Letter to fellow ex-Microsoftie Steven Sinofsky

Congratulations on leaving Microsoft. Unless you have bills to pay, you won’t regret it. I left at the end of 2004, and have since studied a vast and amazing — but still flawed — world of computing out there.

For example, I discovered that we should already have cars that (optionally) drive us around and computers that talk to us. And that Linux on the desktop is powerful and rich but failing because of several strategic mistakes. Google claims to be a friend of Linux and free software, but most of their interesting AI code is locked up. Programming should be a part of basic math literacy for every child. The biotechnology world is proprietary like Microsoft, which is stunting progress in new medicines and safer devices.

The most important lesson is that the free software world outside Microsoft is much bigger and richer. No matter what aspect of technology you want to work on, there are codebases and communities out there. Even the large companies who write proprietary software like Amazon, Apple, Facebook, and Twitter use free software as their base. So you first find out what you want to work on, and then you find the existing codebases and communities to join. In some cases, the are multiple, so you need to decide which best meets your needs.

The good news is that there are already millions of smart people working on any aspect of technology you’d like to work on. That is important because now that you have left Microsoft, you greatly lose the ability to control your own destiny using their technology.

When I first left Microsoft, I took on a consulting job helping a team build a website which used Microsoft Passport as the authentication mechanism. However, as I ran into problems, even Google wasn’t able to help because the knowledge and ability I needed to fix my problems was locked up behind the Microsoft firewalls. Fixing a problem in proprietary software can sometimes feel like performing witchcraft — you have to try lots of random incantations because you can’t know what is really going on. In the free software world, the code, buglists, specs, discussions, etc. are public, and anyone is welcome to contribute. A warning though, it can be like herding cats.

I read you have a Microsoft Surface. I recommend getting another machine and installing Mint-Debian Linux. You’ve probably heard of Ubuntu, but Debian is the 1000-person team that provides the rock Ubuntu builds upon. Mint is a very popular re-spin that adds mp3 playback and other features that have patent risks and can’t be part of the free Debian system. The Windows app store is a Potemkin village compared to what Linux offers. I remember you have a Unix background, I recommend refreshing your knowledge of the command line and reading some new books. I felt like a stranger in a strange land for the first couple of months, but it became perfectly comfortable to me, and has numerous advantages such that now I am as interested in using Windows as I am in using DOS.

I don’t recommend you bother with Apple. They have a proprietary walled garden even smaller than Microsoft’s. If you find a problem with Apple’s technology, your best option is to wait. If you find a problem anywhere in the free software world, you can file a bug, talk to a person, (usually) find a workaround, write some code, hire someone — or wait.

The other nice thing about this global community is that you don’t have to go anywhere to join. You can write code in your pajamas from Seattle and send it to Linus Torvalds in Portland who works from home in his. The Linux kernel alone has 3,000 programmers, scattered all over the earth, some of whom live in countries that are officially at war with each other.

Enjoy your new-found freedom. I have written a book about much of this you can read for free. It contains many things I didn’t know until I left. There are many news sites to learn about what is going on in Linux. I personally use LinuxHomePage, but every community has blog aggregators.