OpenDocument in SP 2 mostly useless
I actually wanted to do a whole series on Office 2007/OpenOffice 3 interoperability but it just didn't work out. New developments, however, give me an opportunity to tackle on the more import parts: file formats.
Background information
Microsoft used a binary file format (doc/xsl/ppt) until Office 2003, then they switched to OOXML and now it is (docx/xslx/pptx). OpenOffice (OOo) has very good support for reading and writing the binary format. They have a rudimentary import filter for OOXML but it is nowhere near complete, having big gaps in such areas as SmartArt and others. Also, no export filter exists, OOo users have to use the binary format to send files back to Microsoft Office users (yes, they could now use ODF but not really, more on that later).
OOo uses ODF (odt/ods/odp) and this became an ISO standard. Microsoft promised OpenDocument support based on the current spec, which does lack some definition on formulas and OOo 3 is basing its file format on the not finalized newer version of OpenDocument.
Now
So, Service Pack 2 for Office 2007 with OpenDocument support was released and many people are not happy. Apart from the obvious Excel blunder, several things are simply not supported, rather than 'differently implemented.' While these changes do send negative messages, OpenDocument is also option #4 under 'Save as', right after the native format, template and 97-03 DOC, which at least looks like good intentions.
Amongst many other items, the Office help files (referenced when you export to ODF) point out that the following things are just dropped during the export:
- Track Changes, collaborative editing is now quite difficult (the main point for not using PDF!). It's a showstopper for my frequent group assignments.
- Table of Contents is converted to text, which is more or less ok.
- Page break sometimes breaks other fields.
Apart from these shortcomings, some acceptable, others not, and probably not fixed until SP 3, there are the things OpenOffice does not display right. Who's fault these are is probably impossible to tell without consulting Oasis, Microsoft, Sun and then choosing an opinion at random. Here are a few I ran into when opening 3 documents in OpenOffice:
From Word
- Table of Contents: every item on a singe page...your 30 page paper is now 75.
- Formatting rules inconsistenly applied. No consistency between "style" and overriding "font" definition.
From Excel
- Formula bug, forget it.
- No graphs, only an OLE placeholder is shown, at least with a simple 3D bar chart.
From PowerPoint
- Empty line items show bullet points, on Office they are just greyed out when the line is actively selected and empty otherwise.
- Default placeholders sometimes present, especially when Master slides applied and not all fields used.
- Indentations have different settings, text thus is easily flowing over regions occupied by other things. Especially if paragraph indention has been modified by hand.
All these things are not terribly bad, most could probably be fixed in 1 or 2 revision of the respective software packages. The problem, however, is time. The next Office service pack could be years away and still not solve outstanding issues. Even OpenOffice doesn't have a major release until Fall (and let's face it, major changes would be necessary) and i think there is at least somewhat of a case to be made to not water down the OpenOffice implementation just because Microsoft can't do it right.
Finally, these issues are only from Office to OpenOffice, at least a few problems, and likely many more, are also present when going from OpenOffice to Office.
It's the browser wars all over again, and I still can't exchange a presentation without relying on the doc format to even get close to be able to run it and not be embarrassed about what pops up on the screen.
Building a Lego ATM machine
The end of the semester is finally inching closer and one course in particular ended with a quite successful final presentation for our team of 3. The objective was to use several crates of Lego Mindstorms material to build a working model of two atm machines.

Rebooting ATM image is CC BY-NC-NA from n2b. Our ATM not quite identical to original.
And that's what we did. OK, not quite, our currency consisted of square wooden blocks (about 50mm*50mm*4mm) and our bank cards only contain a black and white strip that encodes a binary number. We reused some old credit card sized plastic cards and used the pattern on the right for the cards.

Then we built a PIN pad with a cut up connector cable, a project box, 6 buttons and a handful of resistors. Additionally, we had team members that were tweaking the construction until every single "bill" dropped perfectly. Then, all that was missing was an actual backend.
For this we simulated a database with an array (loaded from, and saved on exit to, a text file) and set aside one of the NXT control units to serve as the bank server. Then, our ATMs send requests as a string over the weird Bluetooth stack to the server and got a reply back, depending on the account's state.
Here is the end result. It comes in at just about 1200 lines of NXC code with support for German, English and French, as well as administrative functions on the bank to manage accounts.
Quick tip: Slimming down Akonadi (EeePC)
If you're running a recent version of KDE on a netbook you might not like that the default setting for Akonadi (the new PIM storage running on MySQL embedded) has a default setting for ib_logfiles at 64Mb. If you have a look into ~/.local/share/akonadi you might see files like ib_logfile0 and ib_logfile1 (those two at least in my case) in the db_data subdirectory. You might also have seen the mysql.conf file in the parent directory. It then helps if you—unlike me—actually read the comments at the top of the file because you'd see the following:
# Global Akonadi MySQL server settings,
# These settings can be adjusted using $HOME/.config/akonadi/mysql-local.conf
If you try editing the mysql.conf under .local you won't get far, on every restart of Akonadi your changes will be removed and thus never used. If you use the proper file the content of the mysql-local.conf file will be appended to the settings in mysql.conf. The old values will thus still be in mysql.conf but their values overridden with your settings at the end of the file.
For now, my mysql-local.conf contains just:
innodb_log_file_size=2M
This belongs in the section [mysqld] but since that section is the only one in mysql.conf, it's not necessary here. Finally, open systemsettings and under Advanced you have Akonadi configuration, which has buttons on the server configuration tab for starting, stopping and restarting Akonadi.
Four unixes on one disk
Note: The next post in the Office series needs another week, I don't have access to the right VM at this time.
I have mentioned the NEO layout before and since I provided a file for it for FreeBSD, after being told that the BSDs weren't covered at all, I wanted to at least have a look into it. Since I already ran into problems with that layout in virtual machines I wanted to do this on real hardware.
The result is a spare disk (120GB) that runs FreeBSD, OpenBSD, NetBSD and OpenSolaris. The setup was a lot more straightforward thanks to slices/disklabels in all four systems. Linux, without something like EFI, would have made this a lot more complicated with many logical partitions or using LVM, etc.
After getting all the ISOs, burning them and plugging in the old disk I started with FreeBSD, simply because I'm most familiar with it. During the partitioning phase I split the disk up into four primary partitions (i.e slices) of equal size and used the first one for the individual FreeBSD partitions. To make a long story short, I chose a minimal configuration in all but FreeBSD (because it has the auto key) where a is everything and b is swap and that's it.

At first it seemed like I'd stick with the FreeBSD bootloader but OpenSolaris—while I declined all MBR et al offers during the other installs—set itself active without my approval (or I missed that option) and what comes up? GRUB! Coming from Gentoo I'd used it often enough that I'd rather stick with GRUB than ones I really didn't know at all and menu.lst already contained hints about the other partitions which were easy enough to amend to boot all four successfully:
# Unknown partition of type 165 found on /dev/rdsk/c0d0p0 partition: 1 # It maps to the GRUB device: (hd0,0) . title FreeBSD root (hd0,0,a) kernel /boot/loader # Unknown partition of type 166 found on /dev/rdsk/c0d0p0 partition: 2 # It maps to the GRUB device: (hd0,1) . title OpenBSD root (hd0,1) chainloader +1 # Unknown partition of type 165 found on /dev/rdsk/c0d0p0 partition: 4 # It maps to the GRUB device: (hd0,3) . title NetBSD root (hd0,3) chainloader +1
The only install that was a bit problematic was NetBSD which refused to boot the CD and later the install from disk until I disabled IOAPIC in the BIOS (after complaining about AHCI and me trying ten other things first, which is also the reason it was installed last here). Also it set the Solaris for some reason inactive so I had to boot with another CD to reenable that.
In conclusion, all four work nicely and the NEO layout on them is already working pretty well in most cases with the Linux files.
New Year's Eve Donations
The Wikipedia article on New Year's Eve sums up the reason for this article quite well:
The Germans spend much money on firecrackers each year.
After improving the language on the somewhat crude paragraph about my home country's absurdities on the last day of the year let's get to it. As the article correctly summarizes, Germans just have to have their fireworks that go boom and make bright colors on New Year's Eve. The country that you, dear reader, are from probably has similar customs just maybe not on that specific day. Consider the U.S. on the 4th of July for instance.
Now, why should you care? Well, look at it from this side: you are spending money to literally blow it up. That's a bit disheartening when you think about it. There is, however, an easy way to totally lessen the burden of your hedonistic tendencies: donate! More precisely, match the amount you spent on fireworks and send a check with at least that amount (you could round it up while you're at it...) to a cause or group you believe in.
You might now ask yourself why such a post appears on a blog that mostly talks about tech. Easy, the following list combines this altruistic goal set forth above with the nerd's interests. It's like a textbook definition for a win-win situation: you get to blow stuff up, you get to feel good about it and you are helping projects that ultimately make your own life better.
OK, it might not be that altruistic anymore if you think about it like that but these organizations can really use your help and often a little bit goes a very long way. The list is biased and incomplete so feel free to mention additional ones in the comments.
| Software Projects | |
|---|---|
| The KDE e.V. | |
| The FreeBSD Foundation | Help them reach their 2008 fundraiser! |
| Gentoo | The donate link is near the top of the right column |
| The Commons | |
| Creative Commons | |
| Wikipedia | |
| OpenStreetMap | |
| Project Gutenberg | |
| The Internet Archive |
Disclaimer: The original idea isn't mine, several charities have run ads along these lines but general credit goes to my Mum for consistently doing it every year.

