I love free and open source software (FOSS) — I really do. Out of more than twenty years of programming, the only software of mine still out in the wild was some open source stuff I wrote back in the late 80s. All the stuff I wrote for pay was locked away by my employers, never to see daylight again. Well, except for stuff I cleverly saved, like this tiny applet for illustrating the voltage, capacitance and potential of different kinds of capacitors:
Nobody has ever seen or used this applet since I wrote it four years ago. If it had been open source, maybe it could have been used somewhere in some electrical engineering course, as it was meant to be used. But it was proprietary, and so it was thrown away.
So when I criticize critique open source software, it’s from love.
WordPress
WordPress is a good example of how to do FOSS right. Software that does everything you want and few things you don’t, with lots and lots (and lots) of good documentation, active user base, widely used — you can’t go far wrong with WordPress. SimplePHPBlog worked well, but it had some issues, and the customizations I made for my blog made it difficult to get upgrades.
WordPress is extremely simple to set up, but if you want to modify a theme, you’re punted into a sea of code. Just doing a simple skin to the default theme as I did today took a lot of investigation work and more than a few WTF??? moments, especially with the header image.
Overall, though, it’s good stuff. When I learn more about it, I’ll be able to work on my own from-scratch theme. Still, with only a little work, I’ve managed to take this pretty far from the default.
OpenOffice 2.0
About three months ago, I decided I wasn’t going to use Microsoft Office again, either at work or at home. I was going to use the free and legal OpenOffice 2.0 (OO2).
I’ve regretted it daily ever since.
I’m getting used to it. I can print out address labels based on a OO2 query using ODBC to talk to a Microsoft Access middleware application that itself uses ODBC again to an Oracle database. I could go directly to the Oracle database, but Access consolidates the tables I need most. That probably sounded like gibberish. I can usually make new queries work somewhat, except that OO2 Base uses some variant of SQL I don’t understand (it’s not Access, Oracle or MySQL…).
Long story short, OO2 is an excellent word processor, an okay spreadsheet, a serviceable database, and a horrid draw program. I haven’t used their presentation module, so have no opinions on it.
Why the heck do they smush them all together into one program? If I just wanted to use the word processor, I shouldn’t have to load everything else in as well. OO2, on Windows, loads a large portion of the program into memory when you start up, so that when you need it, it’s faster.
That’s memory I could use elsewhere. There is an option to turn it off, to be fair, but then it takes minutes to load.
The database is poorly integrated into the suite. To export a table to the spreadsheet, for instance, I have to open the table, navigate to the last record, click on it, scroll to the top, shift-click on the first record, open a new spreadsheet window, and click-and-drag the slug to the left of the top row into the spreadsheet.
In Office, you can export any table or query as a spreadsheet, or open a spreadsheet and import directly from the database. Dead simple. Want to make some address labels for a mailing list? Open the Labels… dialog and follow the steps, 1 through 4, and print. They are, by the way, select label, select address fields, select the data source, and print.
In OO2 you… Select new labels from the file menu. Select your label type, database, table or query and the fields. So far, so good – very similar to Office. Then the action switches to the Write module, and that’s when we see what an integration hell OO2 has become.
Mystery window with a button that reads “Synchronize Labels” pops up, as well as a page of labels with the address fields listed on it. Make any changes you like to the top left label, then hit that synchronize button to copy the changes to all the other labels. One change is to add a couple spaces to the beginning of each line, since otherwise, it will cut off the first couple characters of the leftmost labels. Also, allow plenty of vertical space, since it will happily wrap itself right off the label if the data is too long. It also doesn’t compress out blank lines…
Anyway, having gotten happy with the label design, hit Print. Do you want to make a new form letter? it asks.
No? Wrong. Yes. Yes, you do.
Up comes a wonderful window. Find your data source in the very small window at the upper left. You already picked it when you designed the label, but you need to do it again. Below the data window, click the >| button to go to the last record. Now print the labels.
If you thought you didn’t want to make a form letter, you’d have only gotten the first page. Lots of anguish there. I write it out here for the next person to decipher.
Inkscape
But I’m able to do my real, paying job using it, so it’s fine. It’s free and will only get better.
I can’t say anything nice about Draw. I can’t. Nothing. Don’t make me struggle.
Problem is, sometimes I have real illustration projects I must do. My company is making a new clothing division called “Joyous & Free”, which doesn’t really remind me of dresses so much as… well. Anyway, they sent me a low resolution bitmap image of the logo, and asked me to make a new postcard using it.
Printers demand 300 dpi images, and so I’d have to redraw the logo.
Usually, I’d just do it in Photoshop, just because I know it well. But what I really wanted was a vector-based version of the logo so I could make it any size. I’d try to use Draw just recently for an illustration for this blog, but was disappointed by it in so many ways. I had used Inkscape to finish that illustration, and decided to just start with Inkscape this time.
The options for tracing bitmaps were bewildering. I tried a few, but it became clear I’d have to use photoshop to separate it into its elemements (“joyous”, “&”, “free”, “hummingbird”), trace them individually, the glomp them back together.
The best thing about Inkscape is that it just worked. Now, why couldn’t Inkscape have been part of OpenOffice?
Because it wasn’t invented here!
Sun, the original authors of OO2, wanted to make an Office killer (in their own language, Java). So instead of focusing on a framework to make applications work well together and then use the power of Open Source developers to help with the components, they decided to try to do everything themselves. They couldn’t get it ALL right.
Integrated Office suites were all the rage in the eighties and early nineties. Everyone had one. Gradually software companies dropped that in order to focus their efforts on doing one thing extremely well.
Only Microsoft really had the resources to pull off the full functionality, and even then, people wisely pick and choose which elements of Office they really need.
OO2 really falls short on integrating its modules. If they’d focused on making a robust and extensible framework instead of one great app and several mediocre-to-bad ones… think of how amazing that would be.
The header image brings back memories…
Well, Open office isn’t programmed in java, I think its mainly C++. Oh, and Sun brought it off someone else – STAR I think. Too be fair to OO base, its not really surprising that it doesn’t fit. It’s another accusation – can’t remember where from, so they have had to shoe horn it into the main suit…
must say that OO draw isn’t up to much (or OO Base) but I think draw was a spin-off form the presentation module. As for integrating Inkscape into OO, i hope you are joking, although it would be good if OO could open SVG files out of the box…
I like Inkscape. But my point was, let me pick what modules to integrate, and give me the foundation with which to do it.
It’s all about freedom.
When I installed OO2 on one of the line manager’s Mac laptop, I had to install the Java virtual machine, as well as the X Window system. This led me to believe that it was written in Java and used X – but I haven’t actually seen the code.
Why wouldn’t they write it in Java? Java’s a good language. Just makes clunky programs.