Category Archives: Off-Topic

InfoWorld – clueless beyond rescue (and JavaWorld reprints it unread)

I recently stumbled across one of the most clueless Java-bashing articles ever published in a Java magazine. JavaWorld reprinted a piece (I would not call it ‘article’) from Infoworld called “How to kill Java dead, dead, dead“.

I don’t mind killing Java in the browser, along with flash and all the other garbage that clogs up my CPU. I have enough bad things to say about the crapware-installing Java-Installer Oracle (and before that Sun) produce. As if there are not enough toolbars out there for unsuspecting users to catch.

No, what I despise is the level of unprofessional ranting from the intern who wrote that article. Seriously, don’t you have any journalists who know how to research an article anymore?

Java in the browser is dead. The Java security model is as flawed as the Flash sandbox model – nice idea but once you get big enough it becomes too complex to handle it safely.

But lets wade through the article.

First, someone please explain that guy that there is a difference between a Java JRE installed on a system and a Java Plugin added to your browser. A program on your system does not necessarily cause a problem. The problem only starts when someone from outside can run programs on your computer without your consent.

When you use your browser (the internet viewer, dear author), then that browser runs programs for you. These programs, in the form of JavaScript or Java-Applets come from a outside source (the web-server) and run on your local machine. So if your browser or one of the plugins has a flaw that allows the outsider to run dangerous stuff, then he can gain control over your computer.

To fix this, fix your browser. Remove the plugins that you don’t need, block JavaScript by default (and use NoScript to enable it when needed), and you will be quite safe. When you remove the Java Plugin, then it does not matter whether your Java installation itself is unsafe, as your browser does not make use of it without a plugin.

After a few paragraphs of clueless rants, he then comes to describe how the Flashback virus was caused by a bad Java installation. Oh, my. Read the first paragraphs of the analysis of Flashback and you learn: It came as a drive-by infection via web-sites. What do you use to view web-sites? A browser. So what do you need to fix? Your browser!

The feds recommended that users disable Java in the browser, and they should. But that still leaves Java on the desktop where it can be exploited, as Mac users found out a couple of years ago to Apple’s chagrin.

Well, let me repeat. Computer do not run stuff on their own. If you are computer-illiterate it may look like it, but someone somewhere has to initiate that communication and tell your computer to invoke a program. If you don’t visit web-sites with your browser, it is unlikely that someone will do something on your system. (If you have a firewall, as Windows users affected by SQLSlammer found out.)

Apple disabled Java mainly for political reasons. First, maintaining a separate JDK fork was expensive and second, Apple wanted to foster a bit of vendor lock-in with its App-Store and hopefully everyone coding Objective-C forever. A platform independent programming system is not good if you are selling a closed platform.

On to page 2 of the article.

Websites using Java? What is this – 1999? None of the banks I know in Germany, Ireland and the UK use Java. None of the Airlines I use (Lufthansa, British Airways, Aerlingus, KLM, etc) use Java. Heck, even Ryan-air does not use Java, even though their website looks like it is from 1999.

Claiming that Java (as applet) is used for thousands of mission critical websites is probably true. The same goes for IE6 along with old ActiveX controls. Internal web-sites of companies are slow to change. But the same companies have administrators who should be able to secure their systems. As a start, they can ensure that separate browsers are used for intranet and internet. If they can’t do that, how about firing them?

(Fact: They don’t. I get two waves of spam delivered and filtered on my servers. One between 9 and 10 my time, and one between 9 and 10 US east coast time. No waves on weekends and public holidays.)

Then he goes on claiming that Java is critical and hard to disable, because of French ex-territorial voters. What? If a french person decides to leave Gods own country to live amongst English speaking people, isn’t that alone reason to take their voting rights away? Or maybe the french government is as clueless as every other government when it comes to technical decisions.

But claiming that a few thousand French people’s reliance on Java for voting every 4 years or so makes Java indispensable is ridiculous.

And he goes on that

“unscheduled outages” would be devastating if OS X and Windows suddenly blocked Java, as the feds essentially asked us to do this week.

Didn’t he state on page one that Apple, literally overnight, disabled Java in the browser. And did the world stop? How about Microsoft not shipping Java since somewhere around 2002? How did that stop the world?

And now my favorite sign that your author is not educated in computer terms:

But here’s what Apple and Microsoft can and should do: Announce that the next major versions of OS X and Windows will not run Java, period.

An operating system is not able to stop users from running software of their choice unless that system is so locked down that only approved software can run, like IOS or MacOS when you crank up the paranoid mode to only allow apps from the App-store.

I guess Apple, world dominator with ambitions, would love that model. But here’s the catch: You can only do that when you lock out everyone. No more custom software for you, naughty author. And once every computer is locked down, whoever holds the key holds the power. Yes, I know, Steve Jobs always wanted that, but I would not accept it.

And filtering it out? Apart from the legal implications of anti-competition laws, so far no OS vendor was able to filter out virus- and trojan software.

I stop here, as afterwards the poor author goes into rambling mode after exhausting any sensible argument.

I end it with the quote from the last page:

If Microsoft and Apple don’t make Windows and OS X Java-free platforms like [..] Android…

and go back to my JDK to write a Android application while it is not yet outlawed.

Lessons learned:

Now that all journalists are fired and after they moved into PR, we are left with interns to fill our brains with garbage.
And we need more regulation to get Java off the streets, so that kids can start playing with guns instead of applets.
And the world would be a better place if computer were not allowed to run dangerous stuff, so guvn’r please rescue us.

Fun with scam callers

There are stupid people, very stupid people and scammer. Since a few weeks, my Skype number gets more and more calls from a tech-support call-centre trying to trick me into installing viruses onto my computer.

The scam is rather old, and well described in the ‘Hello, I am from Microsoft’ article.

Trouble is: I am (a) not stupid and (b) not a Windows user.

I used to get annoyed by those calls, until inspiration struck me. Those fellows probably have not enough fun in their life that they start pestering other people. So I give back what I can to make their life merrier.

My personal goal: Keep them in the line for at least 30 minutes. So far, the best I managed in this game was 7 minutes 30 seconds. This particular time it ended with a unhappy call-centre person calling me non-printable words for messing with him.

The fact that I got to 7 minutes, surprised me. In the 3rd minute, I had to congratulate him for correctly guessing that I have a Mac. Yeah, my horses ran through with me. Silly me! That’s not the sane way to win the game. After that I was able to delay defeat by bluntly lying about the manufacturer of my laptop. The drone actually ignored the content of the congratulation and continued to try to bring me to press “Win-R” for another 3 minutes. 

Only after that he got the hint that I may not play fair and started to throw abuse in my direction. I guess his karma account must be rather empty now, after all these non-printable words.

I do admit, I did not like the call.

Seriously. 7 minutes 30! I lacked proper preparation and a good script, and was not able to keep the drone in the air for as long as I wanted to. Well, not long and they will call again. They always do …

And at some point I will win.

30 minutes. And what is your personal call-centre holding time?

10 years of Pentaho Reporting / JFreeReport

Today, 10 years ago I received the e-mail approving the JFreeReport project on Sourceforge. This day also marks my first day as official project leader of the project.

10 years ago, JFreeReport was just starting out. A few weeks before that I added what would later be known as “Simple-XML” format to make it easier to define layouts. In the same year we got PDF export, Windows-Meta-File (WMF) rendering and report functions to calculate values and started gathering a community via the forums at www.object-refinery.com.

JFreeReport was written by David Gilbert. When I needed some printing capabilities for a customer of mine, I selected JFreeReport, as it’s code was clear, and it was easy to embed, had little dependencies and was free of weird runtime requirements (like the need for a JDK to ‘compile’ reports, whatever that means). JFreeReport was 100% in memory with the ability to run in any environment that had a Java runtime environment, regardless how restricted or resource-constrained.

And these days, we uphold that flag. JFreeReport, now Pentaho Reporting, still runs 100% in memory, with no need to swap report data to disk. The core engine is still small, even though the various data-sources can easily add up to 100MB or more, if you include them all.

Thanks to our vibrant community we had a successful decade. With remarkably minimal resources for development we now largely match what other multi-billion companies and their products can do. So thanks to everyone who contributed time, code and blood and tears to make JFreeReport … ahem .. Pentaho Reporting great.

And hopefully, ten years from now, we will be able to throw some flowers onto the graves of the dinosaurs of BI.

Rome: Pentaho Community ante portas

Oh yes! It’s that time of the year again. It’s community time – this year in Frascati, Italy.

As usual its late September, so time to gather again to see what exciting new developments are brewing in the community. From reading the talk announcements, it seems we will have another full scheduled packed with new projects, field reports from the trenches and the usual sharing of ideas, techniques and general chatter.

Surely, that is something that Twitter, IRC and Blogs or a Forum can never do. Random talks to random people that spark random thoughts that ignite random brain cells.

Back in June I wrote a posting on how to create your own report viewer for the Pentaho BI-Server. That article sparked quite some interest. Seems that many people feel the pain of working with a monolithic GWT application. My personal favourite bugger is the 4 minutes compile time each time I make a change. What is yours?

On Saturday I will give an 30 minutes talk about ways to retire the GWT viewer in favour of a better, more lightweight solution. Thanks to Jordan, the talk will contain amazing live code! It will contain XML. It may contain pixies and dragons. It will not contain XUL nor GWT.

Well, as a full-time code wrestler for Pentaho reporting and the Pentaho Report Designer I do not experience the adrenaline rush caused by real world projects. So I’ll be like Mr. Vampire – let me suck you dry for feedback, for things that did work well over the last year, and things that may not work well. And hey, hearing any feedback is good. It shows that all the code written does make a positive difference – not just for our sales team but for real world people with real world problems to solve.

In that way, I do look forward to all the talks. And – yes, I admit it – the Italian wine and Galliano and Grappa!

Video: Design for Developers

More often than I like to see it, I receive sample reports (usually as part of a bug report) that makes me feel sorry for the poor souls receiving the resulting documents.

Reporting is as much about numbers as it is about conveying a message effectively. Yes, it is possible to just send out a flood of numbers in a 100+ pages document and let the receiver mine for the right information. But in most cases, such reports simply never get read.

Remember: Data is not information.

Data is just random facts thrown out into the world. Information is data put into a context that makes sense to the receiver. Don’t send out data, send information.

A simple way of doing this is to begin from the end. Don’t think about what data you can push out, think about what information the receiver of your report needs and what they are supposed to do with it. And then either cut out everything that distracts them from the core message. Or, if you are required to put all your raw data into the document for legal or organizational reasons, at least produce a short summary with information and put the data into an appendix.

Choosing the right data for a maximal informative report is only one aspect of making good reports. The important parts need to be properly emphasized. Your reader needs to be guided by layout and structure. Your report must be understandable – hopefully at the first glimpse, or it will be filed under “read later”. And ‘later’ never happens anyway.

Good design is not a magical thing and you don’t have to be an expert to make a report that looks decent. Most design guidelines are rather complex and not necessarily practical. This video here is.

Idan Gazit’s talk “Design for developers: Making your Frontend Suck Less” contains some very basic (and extremely helpful) design advice. Even though he talks about web-applications, the majority of his advice can be easily applied to the design of reports.

Idan Gazit’s talk “Design for developers: Making your Frontend Suck Less”

Fun in the UK – Today: Still Banking and Three-UK Mobile Broadband

So far banking is still a mess – at least I have the IBAN now and that will make sure that I can survive long enough to switch the Lloyds account to a proper bank. Given the fact that Bank of Ireland online banking is at least usable and that they do not charge those insane fees for sending money into the Euro zone, I guess I will move everything there.

But for that I need internet access – and that’s the next trouble maker. To setup a landline, phone companies needs about two to three weeks. That is fine and reasonable. So I got myself what they cynically call “mobile internet”. British humor at its finest.

For the records, I use Three.co.uk. And I regret it. Despite the fact that the application tells me that there is perfect connection strength, the connection breaks up, sends in the data into the digital nirvana and makes the whole experience painful. For each connection I attempt I can send about 10kb to 15kb of data before the thing breaks down again.

So for checking emails: I can see I have email, I can see the titles (thanks to the IMAP protocol), but I cannot access the mails as the connection times out. Same with the web – I can see the first bits of the web-sites, but then it stalls. And all the web-sites that need an insane amount of javascript to work, well, they just dont work at all.

Its amazing, when I came to Ireland, despite the small size of the country and the well-designed look-and-feel of ruralness and last-centuriness, the infrastructure worked better than in the former empire. When I look at UK services I get the feeling they can’t do better than settle for minimal solutions. And on the big picture, the country looks just run down and ‘broken by design’.

If these blog entries help to save one prospect customer from such crappy service providers, then they served their purpose well. No one should have to put up with that sort of bad service. If nothing helps – vote with your feet so that they can go down as they obviously deserve it.

The abysmal state of banking in the UK

At the moment I am in the process of fleeing from the island of Ireland. It is a gorgeous landscape, but since the government ‘rescued’ the banks, the country is on a downward spiral to a slow death. So I decided to move to the neighbourhood island and thus settled in the UK.

Heaven, I thought Ireland is stuck in the last century. But Britain is even worse.

Banking is a highly complicated matter here. It may be OK, if all you ever do is pay in money and take out paper cheques. Paper, for heavens sake! Paper! As if the electronic revolution had never existed! I assumed that civilized nations agreed on no longer using paper as means to transfer money in the last century! I was so wrong …

But the worst part: Try to make or arrange an international payment. It feels that the British people think that outside of the island there is nothing noteworthy. And you feel this – every day.

Except for the UK branch of the Bank of Ireland, I have not found a single bank that allows you to send money overseas via their internet banking. If you want to send money (and haven’t died of a heart-attack after seeing their ridiculous fees for this service), you have to go into your local branch, fill out a long winded paper form and then hope that the money travels well.

Receiving money is even more “fun”! At least with Lloyds TSB there is no sane way to get your IBAN and BIC out of them. You have to either go through a painful telephone system entering number after number just for getting to the main menu. Screw that! Or given that they shielded themselves from Telephone enquiries, I can walk into a branch, assuming I hit their tight opening times. Organize your life around the needs of your bank! That is so wrong!

I would change banks if the other ones were not equally bad.

For me that means now: In a few weeks time I will make a trip to Belfast, walk into one of the Bank of Ireland branches to open an account with them. Then at least I can get modern internet services for a UK bank account and have means to send money around the Euro-zone without having to pay extortionate fees.

Britain, when did you loose the “great” in your name?

Programmers vs. Designer

I recently stumbled across an interesting article about the interaction between designers and programmers at the #AltDevBlogADay:

Designers are fundamentally interested in the properties of the end result – the visible ‘outer shell’ of the product. They don’t care about the technology inside it, beyond the observable effects (like it being fast enough, not crashing, etc). Their descriptions of the product, and how it should be, are thus all written in terms of these visible properties: which things the player experiences, when and where the player experiences them, and so on.

Programmers, by contrast, are focused on the internals of the product – they are tasked with filling in the gap between the outer shell provided by the designers, and the solid core of functionality provided by the platform. It’s like a translation process – translating high-level game concepts into low-level hardware operations – and so their explanations are in similar terms: which lower-level concepts are in use, how they are combined into large structures, and so on.

I work on the Pentaho Report Designer at day time, so I know the programmer’s perspective all to well. The report designer, I have to admit, is full of programmer level references and low-level nudges and screws. The Pentaho Report Designer is explicitly targeted as a power-user tool. Its primary purpose is to make all features and all attributes and styles accessible so that no one ever has to go down into a XML editor to create a particular report definition. And hey, we were successful in that respect. If there is a way to do something with the reporting engine, then today’s report designer enables you to do it.

In dark and moonless nights, however, my other, sinister side comes to life. I turn into a designer myself. Over the years I accumulated a few projects at the side where I needed to either create some artwork or plain web-designs for myself or those close to me. The mind set of me as a designer is indeed different – its the what instead of the how that matters most.

When I look at the Pentaho Report Designer with Programmer’s eyes, then well, we are almost there. Feature wise we move more and more to the advanced side of the universe. Once native cross-tabbing and multi-column support is included we actually match the much more expensive tools feature check-box by feature check-box.

But it is not about features.

Healthy discontent is the prelude to progress. – Mohandas Gandhi

Looking at the Report Designer with the Designer Head on, I see by far more areas that we need working on. Right now, designing a mildly complex report requires me to switch between data-views and design-views, subreport-contexts and various dialogs and long lists of meaningless attributes – and each time I have to go back to make changes, I have to think about “how” instead of “what”.

The good thing: Once we have recognized what is wrong, we can fix it.

Over the last few weeks, I brought in a couple of smaller changes to make my life easier. Here are a few of my favourites:

  • A new colour chooser:

    Java’s built-in colour chooser is a great example of engineering. It does exactly what the spec says, but those who implemented apparently it never actually used it beyond simple “yes, works!” tests. For me, getting to the right colours was just plain painful to do. It really made me wonder why none of our users ever complained about it.

  • Hiding and Un-Hiding Elements from the design view:

    Another example of engineering gone bad: to hide a element, you have to select that element, go into the attribute-view, locate the hide-on-canvas attribute, select the value, and finally select “false” in the selection-box that appears. Takes me about 10 seconds.Right-Click on the element and select “Show In Design View” from the context menu: 1 second.

  • Selecting fields in elements and groups:

    With the new version you can see all the fields at once, and a double click selects these fields and brings them into the selection.

  • Expert and deprecated options hidden:
    The list of styles and attributes on the various elements can be daunting. When I edit reports, most of the time I start searching for the properties again, even though I work with the tool for years now. So lets cut back the chaos – expert options are hidden now until explicitly asked for. And deprecated stuff is not for use anyway – so why show it?
  • Convert any data-source into a table-data-source

    It was never easier to make your reports into completely static ones. Great for creating replication cases for bug-reports too 😉

  • I added a screen-shot tool that captures either the current dialog or the complete desk and saves it as PNG in your home directory. That alone saved me a few hours while writing blog entries.

Personally, I have a hate-love relationship with the style and attribute tables. They are needed to expose all the settings, but they are neither easy to use nor a great help during the design process. One of the more older cases from before the initial Citrus/3.5 rewrite is PRD-871. It proposes to create a special property pane that hides the complexities of these generic tables and that brings the most commonly used properties together in a designer centric way. I am still itching to get this thing started.

For me 2011 will be a good year, if crosstabs hit the road running and if I can make Pentaho Reporting 4.0 a user-friendly designer that even mom and pop are able to use. To make that happen, I need to understand better, where we are doing good and where we should improve.

And for that I will need your help:

What works great for you when you use Pentaho Reporting? What are the features you cannot live without any more? What are your pain-points when you design reports? What features do not live up to your expectations? How can we improve?

Either tell me here, discuss it in the forum or come and give me a new case in our JIRA system.

Surprise – its December and there is Snow

One thing that truly amazes me about the British (and heck, Ireland is largely British, but without needing a Queen) is their massive inability to cope with weather.

It is December now, and one could reasonably argue that there is a high chance of snow at this time of the year. Yet still, after one week of snowfall traffic on the roads is still crawling at the slowest speed possible. Streets are barely cleared and the country is in a cold icy shock. And every year busses, trains and car owners alike act surprised that this happens. Who could have known that there may be snow?

I came back today from a futile attempt to flee the country, as the Dublin Airport once more closed down due to the weather conditions. OK, flying with limited sight is not safe nor fun, so that one I accept. Outside the airport a warning sign informed the grounded travellers that “Taxi service is limited due to the weather conditions.” Snow fall, not storm, not rain, just plain snow flakes coming down. But most people here have no winter tires. Last winter was so harsh that the water pipes in many Dublin areas burst due to the cold, leaving the citizen of Dublin with very limited water supply for the first few months of the year. Before that, the winter 2008/2009 was considered the coldest since 8 years. So there is plenty of proof that from time to time the mild Irish weather turn a bit harsher.

In the mean time, the whole of England is gripped in the same chaos.
Oh, and Germany is down in chaos as well.

Dang, when I was young (and mind you, that is not that long ago) snowy days like these did not cause that sort of chaos. But then there came the privatization of all public services. And for profit oriented corporations, high cost events like snow fall, gets ignored. With proper (and plenty) machinery such chaos could be easily reduced. But as long as the taxpayer pays for the chaos and those corporations are not held responsible for the delays and costs caused, they do not have any incentive to change their behaviour.

You would be surprised how quickly your train company installs proper procedures as soon as they have to pay for the lost earnings of all people that were affected by those delays. ‘Cause at that point, public snow costs cut into their own profit.

Funnily the same people who say the state should retreat from providing such public services also say that the state should bear the costs for such chaos. The airlines tried to sing that “taxpayer gimme your money song” when last year’s volcano chaos grounded their planes. They could have insured themselves against it, but chose not to so that they could make more profit. Wanna bet on whether the airlines try the same with the losses incurred by the snow?

Well, I will make my escape with the ferry tomorrow. Ships are safe. Whether the trains in Britain will then bring me to my target city is probably a different story…

Its Community time

Two more days and we will all have a blast of a time in Lisbon. This year with a large release close by I will solely concentrate on picking the brains of our fellow community members to see what bugs everyone most.

Developing a project as large and complex as Pentaho Reporting is like steering a large container ship. Many times we find ourself restricted by the existing API and the holy grail of API-level backward compatibility. Letting reports tell the datasources how to sort data? Forget it. Efficient crosstabbing within the corset of the layouting API – difficult. Multi-column layout without exploding memory consumption – you must be kidding!

The next release will be a major-number release called “4.0” – so I’m finally free to get rid of a couple of old mistakes and to comb through the API to bury a few dead bodies. For releases like this we can break up APIs and carve in more efficient ways to funnel information around. The sky is the limit once more.

Hopefully armed with loads of feedback and real-world needs and wishes we can then lay the architectural ground work for the next years to come. So don’t get curbed by reality – bring in your deepest desires. When I know your wants and wishes for in the next few years I can shape the API so that we can bring them all in.

Right now my personal list looks like that (In no particular order and not everything comes in the 4.0 release 😉 ):

  • Truly Dynamic report parameter – enable/disable based on previous parameters
  • Auto-Sorted data from datasources
  • Native Crosstabbing
  • CSS based styles system with all the perks it brings (selectors, external style definitions)
  • Dynamically loaded subreports
  • CDA integration (yes, Pedro, I know I’m slow)
  • Add ProtoVis and Pentaho Charts to the designer (yes, I know, Pedro, I know …)
  • Cell-based metadata support
  • OLE-style inline-editor for subreports – see your content instead of a generic blue box
  • Parameter layouting
  • GeoBI components (Maps, visualizations)
  • PDF files as report content
  • JavaScript widget library for HTML and PDF
  • Kill the WAQR
  • A Lightweight Web-Based Report Designer (iWAQR)
  • Better Inline-Subreport performance
  • Multi-Column layout
  • A smarter Report-Wizard

So how does your wishlist look like?