Thursday, 14 March 2013

LibreOffice 4 - so what?

I’m sure I am not alone in wanting LibreOffice (or Apache OpenOffice) to flourish. I used OpenOffice for ten years or so and I started using LibreOffice almost as soon as they forked the codebase.

After all this time and with all the effort supposedly directed at making LO or OO properly competitive with MS Office, where are we?

The answer is, not very far beyond OpenOffice circa 5 years ago. The two applications which arguably matter most, Writer and Calc, are still some way behind the competition. Really basic things which have been lacking in Writer are still not fixed; every new release proudly lists ‘features’ and fixes which presumably someone must be waiting for, but none of the basics are tackled.

Now, LibreOffice 4 has arrived, with the usual trumpeting. What do we actually get?  Well to start with, a tarted-up front page on the web site which carries this ridiculous assertion:
“LibreOffice 4 – The free office suite the community has been dreaming of for twelve years.”
This sort of lazy, delusional rubbish is common enough in promotional material I suppose, but didn't any of the people involved take a step back and realise just how embarrassing this looks?  Twelve years! We've all patiently waited twelve years and this is the best that can be achieved? By all those contributors, in all of that time?  God help us.

A basic feature I have been waiting years for, is draft view (or ‘normal’ view) in Writer. Is it even on the horizon?  I doubt it - all I could find on the LO site was this page, which points to a new bug report with very little history and poor detail. To see the real history, read the OpenOffice issue for this, stretching back to 2002.

I still have a personal copy of Microsoft Office Professional 2003 and it’s installed on this laptop alongside LibreOffice 4.  That’s a ten year old Microsoft product – not quite twelve years I’ll grant you, but close enough in software terms. It outperforms the latest Writer in every significant way. Documents are loaded faster, fonts are rendered better and moving around the document is faster than Writer. And the saddest thing is that I actually prefer Writer in many ways, but some of Writer’s shortcomings just make it too difficult to live with.

LibreOffice 4 claims to have improved interoperability with Microsoft document formats. This is very important for any product which has ambitions to replace Office.  It doesn’t stand up to much scrutiny. Here’s a real-world test: I needed to consult part of the DICOM standard (a medical imaging protocol and file-format). The standard can be freely downloaded in Word format from the NEMA site. And this is Word 97-2003 format, not the newer docx format. I downloaded DICOM Part 3 which is a .doc file about 20MB in size, with around 1450 pages. I have a reasonably powerful laptop (Core i5 with 8GB RAM) so opening a 20MB file shouldn't be a problem.

When opening this document in Word (cold start, Word not already running) I can start to use it, scrolling down to the table of contents and through the first few pages, in less than 10 seconds. Word loads the rest of the document in the background. Complete loading of the entire document takes less than 30 seconds.

Opening the same document on the same laptop in LibreOffice 4 Writer takes over 5 minutes.  And I tried this a few times, checking that I wasn't running something else which was hogging CPU or memory, just to make a fair comparison. For those 5 minutes LibreOffice displays “Importing Document…”, before displaying the title page.

You might argue that Writer is dealing with a foreign file format and once imported you could then save to ODT and never have to convert again. So I tried that too. Saving to ODT took almost a full minute. Loading the resulting ODT took almost a minute. Much better than the original conversion time, but still a lot slower than Word 2003. Moreover, you cannot do anything at all with the document in Writer until it is completely loaded – all you see is a grey rectangle.

The worst is yet to come. Most of us will be prepared to wait a bit longer, if the product is free. But most of us will also expect that after waiting, the document will be rendered and paginated correctly and this is where Writer falls down badly. The sample document is not particularly complex but does contain some figures and diagrams, embedded as images. Writer completely fails to display some of these. Below is a screenshot of the same section (7.4) of this document, Writer on the left and Word on the right:


The images for these figures are completely missing in Writer. Scrolling through the document, it appears that few of the embedded images are rendered (see for example the very start of Section 7 – all four figures are missing).

Free or not, that’s not good enough.  I haven’t had to work hard to find these faults: I happened to need this document for something I am working on and just decided to give the latest Writer a shot at opening it. How many more howlers would I find if I spent longer and looked deeper?

This isn't quite a nightmare, but surely it's not what we have all been dreaming of for the last twelve years.

Sunday, 18 March 2012

BMW R100S - 'Peach'

After a fair amount of searching / thinking / indecision, I believe I've found the right bike (motorcycle) so took the plunge and I've handed over the money.

'Peach' is a 1978 BMW R100S who needs a little work and a bit of TLC to bring her back to prime condition. Here's a camera-phone picture:

The previous owner is moving back to the US and wanted her to go to a good home - so that's what I will try to provide.

The panniers (Siebenrock, you can see one in the foreground) are tardis-like: you really can get a lot of stuff in there.

There's almost a year's MoT but no tax (fair enough as the owner won't be here much longer) and I will need to attend to a few practical things before riding long distances, but most of the remaining work is cosmetic. The R100S should have a bikini-fairing - this link is to a picture showing what Peach should really look like, but I'm not too concerned about that. At some stage I'll probably find and fit one.

I've never owned a BMW but always been attracted to these bikes: there is something very appealing about the simplicity of the engine, the feeling that you really do stand a chance of being able to do most maintenance yourself, and of course the overall build quality.  The owner included the Clymer manual, toolset, complete set of spare bulbs and some other bits and pieces so I reckon this was a great find.

The owner is a great character and we spent quite a while just talking and drinking tea. The bike has a nice back-story, plus his parents owned BMWs too and there are tales of how they got on their 1965 R-50 (a wedding gift) after changing out of their marriage clothes into denim, and headed across America from NYC to California. Their children subsequently 'grew up' on the back of that one.

I really enjoyed meeting and talking to Walter - I'm sure we will stay in touch and he'll get to hear about my adventures with 'his' bike.

Monday, 6 February 2012

Test Post (gist)

This is simply a test to see whether github's gist facility works acceptably as a way to quote source-code fragments in a post.

The following is a snippet of Groovy code which should appear as a gist:


This text should appear immediately below the code snippet.  If this experiment works then I will very likely return to using Blogger - the alternatives are just too much fiddle (Posterous, Tumblr) or much more baroque and complex than I need (Wordpress.com).  I want to get back to writing and micro-blogging properly: the first job is to pick the right platform and commit to it.

Saturday, 30 July 2011

NetBeans IDE 7 Cookbook

There's another NetBeans IDE book out from Packt Publishing. This one is called  the NetBeans IDE 7 Cookbook and they will be giving me a review copy, so I'll post my impressions of the complete book some time in the next couple of weeks.

Meantime, I have been sent one chapter in advance,  Chapter 7 -EJB Application, which I am permitted to share via the link. You can read and download this chapter for free, too.

First impressions are not good, if this chapter is representative of the quality of the whole book. First, the numerous typos are distracting: average proof-reading would have found most of these so I wonder whether there is enough quality assurance applied, pre-publication. I haven't the patience to list them all. The quality of the writing is also not particularly high, though I'm always prepared to make allowance for non-native English writers/speakers and I believe the author is Brazilian. Not all the clickable links in the PDF have been checked either: the first one I decided to click, at the top of page 160, leads to the 404 page on Oracle's site.

However, my main criticism of this chapter is to do with its content. This is supposed to be a 'cookbook' and in the context of computing books 'cookbook' usually means a compilation of 'recipes' (concise instructions) for solving real-world problems using a specific programming language or tool. Well... I suppose the sample chapter does tell you how to use the EJB functionality in NetBeans 7, so in a very shallow sense I suppose this could be regarded as a 'recipe', but the chapter text does little more than walk you through the IDE wizards. Cookbook recipes are usually focussed on something more substantial. The pasting-in of the source code generated by the NetBeans wizards isn't all that helpful either - if you're running the IDE, you'll have the code in front of you anyway. Lastly, as this is Chapter 7 of a book dedicated to NetBeans and Java EE, why does the text redundantly repeat instructions on downloading NetBeans and ensuring GlassFish is installed?

If you don't know anything about Java EE, this book won't help you much. If you do know EJB / Java EE then you probably won't have much trouble working out how to drive NetBeans to create (e.g.) a stateless bean, so I'm not sure who the target audience is.

But this is just one chapter: I will review the rest of the book when I receive it.

Saturday, 2 July 2011

Cloud Storage and Security

Very disappointed to read about the latest DropBox security issue.  Disappointed in two quite distinct ways: first because their account of this issue suggests a somewhat careless attitude to both security and regression testing, and second, the fact that the first I heard of this was when I read this Register piece. Not good enough. The world is scrutinizing cloud applications quite closely and I fear DB hasn't been paying attention.

Leaving aside the insecure nature of the DropBox service itself and it's apparently relaxed attitude to regression testing, there is the issue of service management and customer relations. As many others have pointed out, directly informing all users, as soon as reasonably possible, is a pre-requisite for establishing trust. Just compare DB's behaviour with that of LastPass. As soon as LastPass detected a possible breach, they immediately informed their users and took sensible action. Impressive, and reassuring.

I've been a SpiderOak user for a while, but until now I hadn't considered using their Sync feature, as I've been using DB instead. This incident has been just the trigger necessary to make me move my stuff out of DB and into SpiderOak, and I will be trying their Sync service now. By the way, I have no affiliation with SpiderOak whatsoever. I use their service principally for these reasons:

  1. Zero-knowledge privacy 
  2. Their attitude to engineering
  3. Their prices. (Better than DB)

Another comparison article can be found here.

Superficially, DropBox is a lovely product but as you start to rely more on cloud storage you begin to think of all the ways your content might be compromised or misused and SpiderOak's robust, credible approach completely trumps any pretty UI.

Monday, 11 April 2011

GMaven Archetype – minor fixes

I became so irritated by the bugs in the GMaven archetype that I decided to do something about it.  There is a link somewhere below to a BitBucket project containing my fixed-up version of 1.4.  The rest of this piece describes what got me so annoyed and what I did about it.

To see the problems, create a new Maven project using the archetype “GMaven Archetypes :: Basic”, the latest version being, as far as I can tell,1.3.  The Maven coordinates are:

GroupId: org.codehaus.gmaven.archetypes
ArtifactId: gmaven-archetype-basic
Version: 1.3

You can find it on this page in the mvnrepository site. The three big issues are:

  1. Project coordinates entered by user are not used in the generated project.  The generated project’s coordinates are just copies of the archetype’s coordinates.
  2. Generated stub source-files have syntax errors.  Once you have generated the project, look at the source files in GroovyTestPackages.  e.g. HelperTest.groovy. The package declaration appears after the import statements and the import statements need to qualify the classes fully.
  3. GMaven depends on a rather old version of Groovy (1.6.9) and the GMaven runtime (1.6-1.3, which I think means v1.3 of the runtime built against Groovy 1.6).

These problems have been picked up by other folk – I eventually discovered that issues have already been raised in Codehaus JIRA for these. See:

This project attempts to fix these, plus updates some dependencies to bring the generated project up to date, notably the Groovy runtime (to 1.7.10) and JUnit (to 4.7).  These are small changes, but make the archetype much more convenient to use.

Currently, the fixed version of 1.4-SNAPSHOT is distinguished only by the archetype description – look for “(fixed)” in the description text.  If I’ve made these changes correctly then I’ll contribute to the next official release.  (Not sure exactly how I submit them for approval).

If you’re using NetBeans (if you’re not, then I do recommend you give it a try), the first-class Maven support extends to creating new projects from Maven archetypes. Below is how the fixed archetype will appear, once imported into your local repository:

image

In the next stage of project creation, NetBeans will prompt you for the Maven coordinates for your new artifact, and also for a project name, which is an ‘additional property’ shown at the bottom of the dialog:

image

In the fixed archetype, all of these properties are correctly processed. The resulting NetBeans project will carry the name assigned in the additional property and use the coordinates you assign here. 

Update: there is another important change to the prototype POM (src\main\filtered-resources\archetype-resources\pom.xml) which I missed in the original posting.  In order to use a newer version of Groovy, it’s necessary to exclude the older version from the gmaven-runtime dependency in the gmaven-plugin, and include a dependency on the version of Groovy used in the rest of the POM.

The code is available from the gmaven-archetype-basic project in my BitBucket repository. You can download a zip from there or pull from the Mercurial repository:

hg clone https://rsearjeant@bitbucket.org/rsearjeant/gmaven-archetype-basic


I hope this is some help to others. I’m keen to hear whether the small changes I made are fully correct and consistent as I’m still relatively new to Maven. If the changes are OK then I’d be happy to push / checkin to Codehaus.



Technorati Tags: ,,,

Sunday, 3 April 2011

HAPI v1.1 released

Just relaying this announcement from James Agnew:
HAPI 1.1 is now out!

This release features a few new features, and a number of bug fixes, including contributions from a number of people around the world.

This release is available on Sourceforge, and thanks to Francis De Brabandere it's available in the Maven Central Repo too, meaning that you no longer need to add the HAPI repo to your pom.xml file if you are a Maven user.

It's really good to see HAPI is such a healthy state, and good to see the release going straight into Maven Central.

Thanks to James and other contributors for making this happen.