Irony of anti-spam site: selling spam tools


There is great site 10 minute mail – which does exactly what it says. Provides you an email address that lives for 10 minutes and then evaporates. For this 10 minutes, you can read any email sent to it on the web page – and eventually renew it for another 10 minutes. Great way how to beat spammers and other email address collecting sites …

Here is how it looks like.

Site like this obviously needs to live on advertisement. Do you see the irony ? What it offers is actually spamming tool. Now I am not sure whether this is a proof of deep insight or stupidity on advertiser side – or a sign of good sense of humor on the side of the OneMinute Email host 🙂

Example of useless error message


This is what I got trying to track my recent purchase from Apple Store …

That may not be the most useless error message ever seen on Web but it comes pretty close … One would expect a bit more professional treatment from such big company …

Why does a company that puts so much emphasis on user experience and perception (like Apple) pick business partners (such as this one – or one certain Canadian wireless provider company running the GSM network) that suck so much that it ruins this perception ? Are the other companies even worse ? Hard to imagine …

Quote of the day


A gem from Merlin’s twitter feed. I found it being both hilariously funny as well as wildly applicable 😀

There’s nothing wrong with me that couldn’t be fixed by a little exercise, some discipline, and a weekend at the Dog Psychology Center.

Merlin Mann

Great technical screencasts


The – lots of great content about operating systems, tools, technologies, languages and generally “stuff that matters”(TM).

Recommended …

The (most ?) underappreciated Java pioneers


I still remember back in 2003/2004 when Rod Johnson wrote his books “J2EE Design and Development” and “J2EE programming without EJB” and presented his POJO based inversion of control framework – at that time, still packaged as com.interface21.* – that eventually evolved to Spring Framework.

Idea of composing J2EE application from basic Java Beans, that were instantiated by the core container that managed their lifetime and resolved references was for most people really an eye opening experience, true Aha! moment and completely new world discovery. Everybody I knew was happy and excited about it. I was also happy and excited – not as much because of the novelty, but because of seeing a great design ideas I saw before in closed source implementation to re-appear in open source world.

The place I have seen the excellent embodyment of the “core IoC / DI container” was an application server Dynamo created by company named ATG (Art Technology Group). ATG wrote the DAS (Dynamo Application Server) whose kernel – container named Nucleus was providing very similar services than Spring container. It also provided lot of added values on top of that: personalization layer, scenario server, portal and administration. In 2002, we at Montage have just delivered one major public sector system based on ATG and second even bigger ATG system was well on the way.

Now I am NOT suggesting at all there is any idea transfer between ATG and Spring framework – either way. These design principles were known in research papers since 1980-ies and (as many today’s great trends) originates from Smalltalk. It was only matter of time who will implement it properly in Java and when. Both ATG and Spring, coming from different angles created quite different systems. One is open and free and pretty much accepted standard. The other is way more powerful and mind bogling toolset – in its current form it is probably the most comprehensive and most powerful eCommerce solution in Java space currently available. Alas, it is not widely known, unless you happen to be working in implementing personalized eCommerce sites in 10-100+ million dollar revenue range.

It is very interesting to look at the places where they differ and the consequences of the different decisions for developing in either of the environment. I have decided to publish few blog entries on this, for several reasons:

1) From technology perspective, ATG platform is very interesting and innovative and lots of ideas and design principles used can be very useful in general application design.

2) The company – ATG – is probably one of the most unknown and unappreciated Java innovator and pioneers. These guys more or less invented the JSP in its predecessor form – JHTML. They were very first I have seen to have workable IoC container – back in year 2000 and their ideas of “droplets” and servlet beans certainly made me say “wow!” several times …

3) Talking to developers that came to the ATG platform recently, I have sensed the sentiment “.. yeah, yet another Spring knock-off framework “. I am big admirer of Spring, but let’s face it: ATG certainly did not get any inspiration from Spring, unless they have a time machine hidden somewhere in their Boston HQ. If the idea-crosspolination happened (and I am NOT saying it did – I simply do not know), it could have been only the other way.

4) After using mixture of open source technologies and commercial solutions in quite a few projects of various size (from small to humongous) I gained some experience and appreciation of advantages and weak points of each of them and I’d like to share them.

Before I start, one disclaimer: Thinknostic is ATG partner and has worked on / is actively working on several ATG projects. Obviously, we are interested in success of these projects 🙂 and therefore we do have vested interest in success of ATG as platform and indirectly in success of ATG as a company. We are however not shareholders of ATG stock or do not get any incentives for spreading word or encouraging ATG sales (with obvious exception of somebody buying ATG platform and hiring us to help them with implementation). The sole reason for this and future blog posts is very interesting technology behind it. As you hopefully will see, I will try to be objective and highlight the strengths as well as weaknesses of both solutions – Spring’s as well as the ATG stack.

On positives of negative experience


A comment got to me via friend mentioning why am I suddenly so negative about Apple and Macs, which quite surprised me. True, I have had some serious hardware issues in first two weeks of June, but this negative event was about as much positive experience as hard disk crash can be.

Thinking back what I have learned and discovered from this:

– Time Machine actually works
– it pays to plug in the firewire disk with Time Machine backups every day – the two second operation saves a lot of time in long run
– Carbon Copy Cloner is fantastic tool that makes creating bootable copy of your system disk as easy as possible
– I can easily use multiple bootable disks with various versions of OS-X, not only for backing up but also for trying out new things / installs – a kind of “VM on a disk”

The most pleasant discovery is that separation of system files and user data actually works in OS-X. Before, when I had to reinstall Windows, even when I had backup of my data files, it was always a pain because the only way how to get back customizations of installed applications was to reinstall them and re-customize. If the application supported something like export of customizations (e.g. Eclipse “Export Settings”) or had config files and I was lucky to export these or backup copy after each change, it sort of worked. Sometimes. But if application stored the settings in Registry, good luck. IMHO, if there were a competition for most stupid and disastrous software idea, I bet that Windows Registry would get a medal …

What I did kind of lost trust in, are hard disks, especially high capacity notebook size drives. I am currently reviewing my backup procedures across all systems. I have created bootable clone of my daughter’s Macbook hard drive – just in case and start serious think about buying Drobo later this year.

But on operating system side, I am happily staying with Apple and Macs. It is not perfect solution and is certainly not as rock solid and secure as Apple would like the world to believe – the last year record of security flaws, crowned with latest discovery of first trojan and root access hole in ARD proves it more than enough. But it is still – IMHO – closest thing to that ideal I have seen. To qualify that (before I get email from all my friends that happen to be Linux/BSD/Solaris fanatics enthusiasts: I agree that there are better, faster, safer versions of Unix available – OpenBSD, some Linux distros, etc etc. But using Mac is actually fun and pleasant experience, despite of all shortcomings and you can do with it much more than develop in Java or recompile C programs :-). For example run Photoshop or Textmate – none of which works under Linux.

Therefore – Shane – do not hesitate to get a Mac. If my disk crash story made you reconsider, I am really sorry about that. Coffee sometimes ? Email me.

Quote of the day


I’ve been writing a lot of code for the past 6 months. I have to admit, it is a welcome change from Word documents and PowerPoint presentations. Java, unlike text and graphics has a clearer definition of correct and finished.

From Software Is A Craft by Dan Pritchett