Sunday, May 24, 2009

Backup Google Docs

I want a command line tool to copy all my data from Google Docs to my local machine. So far I have found 3 ways to download data from Google Docs, but none are satisfactory.

Google Docs: Download Greasemonkey script runs in Firefox.

GDataCopier looked like it would do the trick, but the current version (1.02) only seems to work with documents and spreadsheets. The feature list for the forthcoming version adds support for presentations, but there is no mention of PDFs.

GDocBackup doesn't work with PDFs and doesn't seem to have a command line option. I already had mono installed on my MacBook, so installed GDocBackup to try it out. First I got an cxception that boiled down to:

 System.DllNotFoundException: gdiplus.dll
After sifting through these: DllNotFoundException, OpenSim Troubleshooting, I added the following line to /opt/local/etc/mono/config to get it working:
<dllmap dll="gdiplus.dll" target="/opt/local/lib/libgdiplus.dylib" os="!windows"/>

Thursday, May 21, 2009

Future of Computing

Some quotes from The Future of Computing: Logic or Biology, by Leslie Lamport.

  • Computers interact with users through metaphors. Metaphors are not based on logic, but they are not illogical. Metaphor and logic are not opposites. They are complementary. A good program must use good metaphors, and it must behave logically. The metaphors must be applied consistently—and that means logically.
  • Floyd and Hoare pointed the way by showing how mathematics could be applied to tiny programs. We need to learn how to extend what they did to the real world of large programs.

    Extending what they did does not mean trying to mathematically prove the correctness of million-line programs. It means learning how to apply the idea of a program as a mathematical object to the task of building large programs that we can understand, and that do what we intend them to do.
  • In addition to the task of learning how to apply mathematics to large systems, we also face the task of teaching programmers and designers to think logically. They must learn how to think about programs as mathematical objects. They must learn to think logically. We will not have understandable programs as long as our universities produce generation after generation of people who, like my former colleagues, cannot understand that programs are different from automobiles.

Tuesday, May 19, 2009

Patent Lens

Around the time I was experiencing the patent system firsthand, I coincidentally had lunch with Richard Jefferson of Cambia. Cambia is a not-for-profit organisation that is moving some of their operations from Canberra up to Brisbane to collaborate with QUT.

Richard was interviewed on ABC Catalyst where he talks about:

  • applying open source s/w development ideas to life sciences

  • more efficient social change through scientific collaboration and transparency

  • the BIOS initiative that provides tools for genetic scientists (at no financial cost) with the aim to help local people solve their own problems rather than just relying on aid

One of the things Cambia does is the Patent Lens, a free patent search engine. From their site:
We created the Patent Lens to create transparency in the patent system, and to serve the public worldwide as a platform resource to explore, understand and improve its impact on society.

The effects of the patent system as it works now may not match the original intent to benefit society.

The patent system was created to advance societal benefit by encouraging public disclosure of inventions and clear definition of each invention, in exchange for a strictly limited monopoly. The intent is that the invention may be used wherever and whenever the patent monopoly is not in force.

The trouble is that unless information is readily available about whose patents are in force over what technology where, the system doesn't work well.

People may unwittingly infringe patents they don't know about, avoid areas of innovation in which they are entitled to be creative, or make poor investments based on incomplete information about which rights are granted and who holds these rights.

The Patent Lens informatics tools can assist the user to determine the boundaries of intellectual property constraints on deliverable innovations, and usable building blocks for future innovations.

Sunday, May 17, 2009

Stanford Lawyer: interview with Charles T. Munger

I would argue that a majority of the horrors we face would not have happened if the accounting profession developed and enforced better accounting. They are way too liberal in providing the kind of accounting the financial promoters want. They've sold out, and they do not even realize that they've sold out.
Charles T. Munger, vice chairman of Berkshire Hathaway (Warren Buffet's company) in
Q&A: Legal Matters with Charles T. Munger

Assuming Charles' statement is correct, I don't think accounting is the only profession that has sold out to mediocrity, driven by commercial benefits to a minority, but to the overall detriment of society.

Friday, May 15, 2009

5 Software guys walk into a bar ...

Well it was actually a restaurant, not a bar. Anyway, while we were there, Dan North asked me what I thought about Clojure, to which I replied that I preferred strong, statically typed languages. This sparked a huge debate between Dan, Joshua Bloch, Dave Thomas, Bas Vodde and I.

I managed to describe a little of Kristian's Ruby example, which received some agreement. However the best part, was probably Dave and Josh almost yelling at each other trying to get their point across. Admittedly the restaurant was a bit noisy, although I think we were making most of it. :-)

I had a great time, thanks for dinner guys.

JAOO Brisbane 2009

The JAOO 2009 Conference in Brisbane finished on Tuesday.

Day 1
I missed most of the days program, although I did get to hear Clemens Szyperski talk about MEF and Oslo at QUT in the afternoon.

Jonas S Karlsson
from Google talked about Consistency, Storage, and Reliability in the Cloud. He was involved in the Google Megastore project which provides a scalable (in Google terms) storage layer with SQL style schema and secondary indices and consistency. I believe he made a comment about the importance of the dollar cost per user (of a hosted app) to be a single digit, especially when the app is available free of charge.

Mike Cannon-Brookes
finished the day off with lessons learned at Atlassian.

Caught up with various people at drinks afterwards and went out to dinner with some of the presenters at SouthBank.

Day 2

Joshua Block gave the keynote on various technicalities in Java. It is not often that someone mentions covariance and contravariance in a Java talk! Seems to come up more in Scala discussions and then people are scared off by the terminology. :-) While probably not the intent, I think the talk was great in that it clearly demonstrated some of the complexity of Java.

Douglous Crockford
, Writing Large Applications in JavaScript. Interesting talk, although I think it was a mistake for him to use Java as an example of strong, static typing in his argument for the benefits of loose typing in JavaScript.

Mahout by Jeff Eastman. This was given on a few hours notice to fill in for someone who was sick. I have done stuff with Hadoop before and am developing an interest in machine learning, so I found this talk interesting. There was someone in the audience who was a little confused though, as he thought Jeff meant java.util.Vector whenever he used the term vector. :-)

Unfortunately Joe Duffy was sick, so his talk on parallel programming was canceled.

The last talk I went to was Joel Pobar on F#. It was great to hear from a local who knows some stuff about functional programming (FP). He was suffering from a cold, but sill powered through some interesting algorithms. I don't think he helped the mainstream perception that FP is really technical (given that many are scared by this) when he mentioned vector spaces. :-) We talked to Joel afterwards about the Brisbane FP group starting up and he was really excited, so it will be fantastic to have him involved.

Tuesday, May 12, 2009


Regarding JavaScript:

Given the process we use to create web standards we deserve something much worse.
Douglas Crockford at JAOO Brisbane.

Friday, May 8, 2009

GMail down

GMail disappeared a few minutes ago, still down.

EDIT: Back up again within 10 minutes.

Wednesday, May 6, 2009

Patents can hinder innovation

Recently I was involved in a startup that after commencing discovered patents that they may be infringing. Basically, the owner of the patents had tried to setup a business and failed. Now however, the owner is in a position to profit (or recoup investment losses) if they could sell the patents, or alternatively bring a claim against the startup (or anyone else) once it launched.

My understanding is that the intention of patents is to foster innovation by granting a limited monopoly so as to encourage the investment required. However in this case, the patent holder has failed to bring their "innovative" idea to market and is stifling others in doing so by the risk of an infringement claim.

Similar issues are covered in Grove Says Patent System May Have Same Flaws as Derivativesand Former Chief Executive of Intel Believes Patent System Has to Be Altered.