Caffeine is a wondrous substance. Some consider it a basic necessity, like breathing air, others consider it a vice or a powerful drug to be avoided. There’s a saying that programmers/scientists are machines to turn coffee into code/knowledge. Coffee is certainly essential to the functioning of half the planet in the hours when humans are supposed to sleep, for night shift workers and all the overworked masses of today. It’s consumption is ubiquitous and available in many forms from simple filter coffee to beans digested by cats.
Even more so than common coffee its more popular form today is in the form of a caffeinated soft drink. Because this sounds so technical and academic only mentioning its most famous brand name helps: Coca-Cola. Considered the most powerful brand in the world, it has become synonymous with it’s kind of product like “Scotch” in France and “Tesa” in Germany have become synonymous with adhesive transparent tape. American soldiers in the Wold War I considered it one of the vital weapons against the “enemy of heat and thirst”. Coca-Cola is also a symbol for global capitalism in its availability and sameness around the world. Coca-Cola company is a welcome target for protesters against capitalism and alternative thinkers. Especially here in conformant Germany there have recently been a number of initiatives to diversify the soft drink landscape. There’s lemonade made out strictly biological production with less sugar, lemonade made from a south american plant, a cola used for antisemitic propaganda and an east-german cola. More recently a community of cola lovers of the old afri cola flavor started a sort of collective called “Premium Cola” with the sole aim to produce the best coke with the interesting side effect to create a antithesis to the capitalist Coca-Cola company. It’s interesting how such a mundane everyday thing becomes the subject of war and politics. After tasting some of the newer coke brands my personal favorite is this Premium Cola. Some of the stories behind colas can also be found in this great little O’Reilly book on hacker beverages (link to PDF file in German).
Nevertheless watch out for that caffeine addiction! Although curable in 9 days (link in German) it’s nothing to mess with. 10g of caffeine are deadly and caffeine has toxic effects at a daily dosage of only 1g.
When working with XML it’s so very important to have support for the whole specification. Otherwise you end up with “sort-of” supporting XML, which kills you in when dealing with other partners. Unfortunately XML support in Qt seems to be an example of this. At least in the version 4.6.2, we are using at our company, there are actual source code comments “// TODO implement” in the schema validation support. If you find this gotcha, which is not mentioned in its documentation, you are stuck with the decision to ditch it or to bloat your software with yet another 3rd party SDK.
Support for XML Schema validation was added to Qt in 2009 1 2 ( a bit late to the party, anyways ) by Tobias Koenig in his internship. I can only speculate that nobody else was assigned responsible for validation support and therefore the project suffered. In Qt’s bug tracker there are a couple of long standing bugs for XML documents that make the validation algorithm run very very very long. The thing I dislike about this, is the half-assed-nes of the current implementation which stands in stark contrast to Qt’s otherwise great code quality.
Another problem I have with Qt’s XML support is it’s support for XPath/XQuery. Querying with it is easy enough. You can get a nice QStringList for a XPath expression and everything is dandy, but god forbid you try to change an XML document using an XPath expression or get a DOM representation of your document. You just can’t. Apparently support for good ol’ QDomDocument is supposed to be phased out for Qt 5 and nothing is happening there. That’s a shame, because we’re heavily using it and moreover it would be soo convenient to have an alternative to manually traversing the whole XML tree to the one attribute/element that you are interested in.
Well, the only alternative I see to this, is to use a XSLT identity transformation with the whole XML document being copied except the one node you are interested in, specified by an XPath expression. Seems to be an overly complicated solution and it emphasizes how much we really need at least XQuery Update in Qt or something as convenient in the new generation of QDomDocument.
The Singapore national public library offers free accounts to foreigners if they provide their passport number. Their collection of ebooks is very large, although I found it to be lacking many SciFi classics. There’s a lot of bestseller stuff though, like Stephen King, John Grisham and also a large collection of non-fiction books:
library catalogue
The University of Adelaide has a large selection of very nicely formatted public domain books:
library catalogue
Kathereine von Jan wrote about how their Montessori schooling influenced them to allow every Google employee to work on their own projects 20% of their time:
Google’s “20% Time”, inspired by Sergey Brin’s and Larry Page’s Montessori School experience, is a philosophy and policy that every Google employee spend 20% of their time (the equivalent of a full work day each week) working on ideas and projects that interest that employee. They are encouraged to explore anything other than their normal day-to-day job. As a result 50% of all Google’s
products by 2009 originated from the 20% free time, including Gmail. Real break-through happens when we are free from others’ expectations and driven by individual passion.
I was only vaguely familiar with the idea of Montessori, so I looked it up on Wikipedia:
Prepared environment
Montessori’s education method called for free activity within a “prepared environment”, meaning an educational environment tailored to basic human characteristics and to the specific characteristics of children at different ages. The function of the environment is to allow the child to develop independence in all areas according to his or her inner psychological directives.
I think this idea of a prepared environment is immensely interesting as anybody knows that an exercise that is too loosely defined is very exhausting, but also an exercise that is too well defined becomes dull and tedious. The other aspect I like about this, is how a concept for school children was transferred to working adults. There’s a huge apparatus for research on education for children, but still not much has changed for university students. At most universities professors do not undergo a comprehensive education for teaching and thus just repeat how courses were always given. In work life there’s also not very much of a habit of improving working life and certainly not any kind of standardized research and exploration as for school children. Why is that?
The apps included in the rooting package for the sony reader include the reader app “FBReader”, that can access dictionaries in the popular stardict format. You can upload any stardict dictionary file to your reader and use in the FBReader.
Here’s a list of sources for stardict files:
If someone finds a way to convert babylon .bgl files to stardict you could also use the following:
I couldn’t resist from unlocking, aka rooting, my ebook reader. Rooting means that you have full access to your device and you can install any software you want. Whereas iPhones have “jailbreak” you have “rooting” for Android devices, because it is actually running a flavor of Linux and the administrator user on a Linux box is called the root user.
For the Sony ebook reader the advantages are that you can install any application that is also available for Android smartphones and tablets. Some examples are:
Rooting the Sony is a very simple process that seems to require a Windows machine – sorry, mac-people. There’s a different more manual way described here. You download a .zip-file, extract it and run the included batch script that performs the rooting on your connected sony reader. You can get the .zip-file from here (linked from the excellent mobileread wiki page). Chalid from cme.at has written up a nice step-by-step guide in German on how to perform this.
After you’ve done that installing other apps is a matter of copying them to the device and starting it’s “Root Explorer” or the included Dropbox to open them. One very important step is to install “Link2SD” which allows you to install a lot more apps. The sony reader only has a couple of tens of MBs of free space for apps and “Link2SD” allows you to install apps on an MicroSD card, which means that you can install all the apps you want. There’s another blog post over at cme.at that describes the procedure very nicely. The main steps are creating two partitions on the MicroSD card: a 500 MB Fat partition and another primary ext3/4 partition for content on the card. Then you can just install the Link2SD.apk (See the blog article for the download) by copying it to the device or Dropbox. The first time you open Root Explorer, it might not show anything. When that happens check the notifications in the upper left corner, because it will try to obtain root privileges, but fail to display the appropriate dialog.
Now that you have the device rooted and enough space for all the apps you want, you’re ready to install anything you want. Another useful step is to install the Google App Framework and then the Android Market, which gives you access to all Google apps and Google’s application repository respectively. Again there’s an article on cme.at for that, that describes the procedure and a link to a .zip-file that contains the framework and the market which have to be installed in exactly that order. When installed the market allows you to install apps directly on the reader without messing with Dropbox or the “Root-Explorer”.
Happy Hacking!
Recent Comments