15 December 2007

Quartz Crystal

A very trying couple of days...  Faced with a job that cries out for a decent scheduler (polling feeds), I turned to OpenSymphony's Quartz.  I mean, the ads look so good: Robustness, recoverability, scalability, blah, blah.

First hint of warning I should have paid attention to was a couple of developers' names that I long associate with Doomed Pieces of Shit.  But it all still looked so good.  Until I got closer to the code.  Quartz?  Quartz Crystals for accuracy?  More like Crystal Meth!  Documented methods that mysterious fail to exist.  Examples that aren't.  I thought the JavaDoc got generated from the source, no?  I guess we have here the penetrating stench of Configuration Mismanagement.

Then you enter a twisty little maze of undocumented dependencies.  You will use Commons Logging.  You will use a bunch of J2EE stuff, even though you application is a simple standalone with no hint of J2EE awfulness in sight.

No.  After a day or so of hacking at this steaming turdpile my brain feels like so much oatmeal porridge that I can't even work even work up enough bile for a decently vitriolic blog post.  For me, one of the surest signs of a dying opensource project is when their wikis and forums are filled with spam because nobody can be bothered to disallow Guest users from posting; when the version-control system shows six checkins in the past six weeks.

I'm outa here in favour of Doug Lea's concurrency stuff. What a pleasure by contrast.  I'll live without clustering for now...

29 November 2007

3 Apps I Really Want (Open Source Only!)

I'm full of ideas.  Aren't we all?  Eventually, when you reach a hairy old age like me, you realise that There Ain't No Way In The World you'll ever be able to do them all.  This is what makes ideas cheap.  Let me say it again.

Ideas Are Cheap. Implementation Is Everything!

Just occasionally, though, we have ideas that are so good that we really, really want to see them implemented.  But we know, deep down inside our souls, deep down in our secret heart, that we're never, ever going to have the time, energy and stick-with-it-ness to pull the thing off.

Here are three of my ideas:

1. I want a ToDo manager that works like this: Keep my top five ToDo items only. Don't even allow me to put more in.  I must be able to prioritize them.  And they should display at all times as my computer's desktop image.

2. A decent word-processor.  One that fails almost completely to concern itself with formatting.  Perhaps bold, italic and lists -- that's all that's really needed.  On the flipside, though, it should really understand document structure -- sentences, phrases, paragraphs and sections.  And allow me to collapse them.  If I move a heading, move all its subheadings and associated text, too.  In other words, focus me purely on prose, editing prose, tightening up my phrasing, reordering my own words.  Please don't make me fuck around with margins, fonts or colours.  I know that Lyx does something pretty close to this, but its far from pretty, and, frankly, TeX is dead.  Get over it.

3. A social-networky, Web2ish, Ajaxy, <insert-own-buzzword-here> website where people can list their ideas for systems they don't have time to write, and everybody else can vote on the ideas, comment, add/edit the spec (wiki style). Perhaps, just perhaps, some people might choose to pick up those projects and start implementing them.  No bounties.  Sorry, but I'm more broke than you!

Come to think of it, maybe I will implement that last one!  After all, don't the VC pundits all say "Get the simplest thing that functions out the door, and then listen to your user-base."  Here's a way of listening before you even get version 0.0 written!

19 November 2007

Object-Relational Event

At long last EoD SQL 1.0 is out! Congrats to Lemnik on this achievement. But what is lurgy?

EoDSQL
is an Object-Relational bridge -- an small library for getting (Java) objects in and out of relational databases. It is not an OR Mapper; that task is left to the developer. You get to specify how (Java) data elements correspond to which database columns handraulically, using annotations[1].  Not only that, but, as developer, you get to write all the SQL, too!  Good!  For me this is one of the best features of EoDSQL.  EoDSQL will never mess with your highly tuned SQL, will never get between you and your database.  I confess to finding myself far more comfortable with this sort of lightweight approach to the much-lamented "OR impedance mismatch" problem than other approaches I've seen to date.

The upshot of all this lightweight deliciousness is that it is screamingly fast!  Way faster than any of the heavyweight OR tools I've seen. And Lemnik is talking about implementing a compile-time tool to make it faster yet.

I have to confess to some bias, though: I was so impressed with the thing that I ended-up writing the tutorial for EoDSQL, so I'd welcome feedback on it, either here, or on the project's mailing list.


[1] So, yes, it is Java >=1.5 only. Anybody who is not already running 1.5 or better (production environments included!) has lost the plot (or has serious, perhaps fatal, legacy issues!)

06 November 2007

Scam, scam, scam, scam, scam!

You must have heard it before: "Is this Mike? You have won a Holiday In Florida!"

We've all had the emails. This evening was, I admit, The first time I got the Phone Call. Very American accented young lady. Fortunately my highly tuned sense of paranoia kicked in, perhaps aided by the fact that they quoted my using an email address not used in over ten years, and I simply put the young lady on hold for several minutes while pouring myself a small drop of a certain Scottish libation.  After a couple of minutes I asked her to hold while I considered the situation.

How did these scammers get my phone number?

The thing is, my phone number is unlisted, and I am certain I have never, ever typed it into any web form.  Ever.  Trust me on this.  I treat all forms with the abuse, hostility and contempt they deserve (thanks to a old boss I had, John Merry, who taught me The Fine Art of Form Contempt.)

A fairly obvious advance-fee fraud.  But how many people would fall for it?  A few weeks ago, an acquaintance called me, filled with jubilation:  He had Won The Lottery!  An email said so!

I sadly had to puncture his bubble, and enlightened him as to how these things work.  This is a man who worked in the IT industry as a senior manager for many years.  He is far from a fool; indeed he is a highly talented and intelligent individual.  But he fell for the scam and was about to (snail-)mail them a cheque!  I can only shudder at the thought of the outcome if they had called my Dear Old Dad with the same line of bullshit.

After about ten minutes of playing silly-buggers with the caller - mainly to cost them money - I asked the lady where they had obtained my phone number.

*click*  (The sound of the phone being put down.)

A couple of minutes later, the phone goes again.  This time a (very American accented) man, with the same line of bullshit.  "You filled in a form on the computer.  The Com-Pu-Ter!" (Like we Africans have never seen a computer before.) "Using the .  You've won a Holiday In Florida."

I repeated my question: "Where did you get this phone numer?"

"Off the Web Form you filled in."

"No. Really, where did you get this unlisted phone number never before typed into a web form in any shape manner or form?"

*click*

The only company who have somehow managed to get my unlisted phone number into a database somewhere were Standard Chartered Bank, with their spam phone calls.  Perhaps they're exacting a revenge now for all the pain I caused them over that.

The Unterste Schurrer (Non-Yiddish Readers: "The Bottom Line")
Who the fuck would want to holiday in Florida, anyway?

25 October 2007

31 May 2007

Kubuntu 7.04 Feisty Fawn

Hooray!  My free (in both senses) Kubuntu 7.04 CD has arrived.  Only a couple of weeks since I requested it.

A Thousand Thanks to Canonical and all who sponsor this stuff!  I'm in a space right now where the cost of the download really is significant for me, and I would probably have had quite a lot of hassle inobtaining the latest Kubuntu update if not for their free shipping program.

I've been using Kubuntu on my (HP) laptop ever since I got it, and it mostly "just works".  The only hassle I've had was over non-free video drivers, and that was quite easily solved.  I'll probably load Kubuntu onto my desktop machine, too, in the interests of reducing clutter in my life.  For about 5 or 6 years, now I have had Mandriva on my desktop machine. I have no complaints about Mandriva. It has served me extremely well through the years, but it is one more distro to obtain, update, download bits of, and maintain and I'm into extreme simplification right now.  If I do move the desktop box over to Kubuntu I'll have things about right: down to two distros -- Gentoo for servers (where I want complete control over everything that goes onto the box) and Kubuntu for desktop/office work (where I want everything to "just work" without having to think about things).

Anybody in the South Cape who wants a copy of the Kubuntu 7.04 (Feisty Fawn) CD, please drop me a line and we'll arrange something!

29 April 2007

5 Trust Points for Website Usability

For a while now I've been working (slowly) on a new web application; the details are unimportant; I'll talk about the specifics in a couple of months when I'm ready to show something.  I have about 60% of the backend written, and am just starting in on the web frontend.

I am far from being a good "web designer", having the graphic-design and artistic skills of a newt.  The best I can hope for is creative imitation.  It worked for the Japanese car manufacturers, didn't it?  Consequently, I am paying close attention to what works and what irks on other websites, particularly the flow around initial engagement and user sign-up.  Here are the most irritating and unnecessary five things I've figured out.  These are all prompted by stuff I see over, and over, and over again on website after website.  It's getting old.

1. Don't Make Me Jump Through Premature Hoops

Allow me to explore the website. I am entitled to poke about and get some reasonable idea of what the site does, the why and how, before you ask me (or require me) to create an account.

I grant its really not a big deal creating an account, especially since most/all of the details I'll give you initially will be bogus because I have no reason to trust you at first. IBM still, about ten years after filling in a webform on their site, send junk mail (the paper kind) to "Lord Mike" :-)  But there's still some small effort involved in entering a Login-ID, email address and whatever other bits and pieces you require me to fabricate before you allow me into your walled garden.

If I cannot fathom enough detail about the site, if it does not help me to figure out the value proposition it offers me, I will just walk (well, click) away to somewhere else.  The Web is, for all intents and purposes, infinite.  For me to have stumbled across your tiny patch of virtuality was nearly a miracle in the first instance.  Don't block me from finding out whether I want to actually give you my time and attention.

2.  Don't Assume a Trust You Haven't Earned Yet

When I actually do sign up for an account, don't ask me for my whole life history, food preferences, sexual orientation and DNA samples.  I'll just lie, anyway.  I don't really trust you yet.  I only think that your site may have something I want.  This ties into the previous point: The more information I am able to glean before signing-up, the less likely I am to lie to you about myself, the more trust you will have created between us.

For the site I am building, I will be asking for:
  1. Your choice of Login ID
  2. Your email address.
Nothing else.  I don't need to know anything more about you yet; why would I assume that you're willing to give me any more?  I will generate a password and send it to you; I need to confirm that your email address works anyway, and, since I want to be able to send you email, I need you to confirm that you're OK with that, so I may as well send you a password at the same time.  You can always change it to that standard password you use everywhere later, if your browser doesn't remember it for you, anyway.

Incidentally, I just made the sign-up process as quick and painless as it can possibly get, didn't I?  There's only one way to make the process shorter.  Do you really, really need people to sign-up?  I know its an attractive proposition to a certain mindset, but is it really, truly necessary?

As I gain confidence in the site, I may go back to my profile page and fill in missing details, and correct some of the more egregious inventions.  This may take months or even years.  This brings me to my next point:

3. I Am Human, Ergo I Forget.


OK, so you don't burden me by asking for too many personal preferences and details early on.  Well done!  On the downside of that, I will repay your consideration by almost instantly forgetting that I left out details, lied about my birthdate or typed jarblewarblefarble into that form-field.  I know that you can actually make your site more useful and usable to me if I do give you those details, I just was not ready yet.

I suggest that you remind me occasionally.  Perhaps every second or third time I sign in, put a little reminder message on my landing-page, and ask me to fill in one specific piece of missing data.  And make it dead easy for me to do so, either by linking to my profile-management page, or by placing a relevant edit-field right there on the page.  Don't get tiresome by nagging me every time.

And while we're talking about reminders, if you're running any kind of email service, do remind me that I am subscribed, together with my subscription details and your unsub-algorithm periodically -- not more than once a month, but not less than quarterly.  Perhaps in the form of a newsletter.  (You did get my explicit permission to send me email, didn't you?)

4.  Don't Make Me Sign In Again

I'm talking about the phase immediately after initial-sign-up.  I've made the emotional commitment (however small!) to sign-up with your site.  Don't immediately demand that I do more work by signing-in.  I've just told you all that stuff -- login-id, password (twice, no doubt) -- don't make me type it all in again.  You're just being tiresome.

What?  Did you think somebody may have hijacked my IP address in the intervening two second?  That some malware may have sucked your session cookie out of my browser for nefarious unpredictable purposes?  Get over it: you already know who I am (for some value of "know".)

And then, once I am "signed in", don't forget it. (Hello, Feedburner!)

5. Reciprocate My Trust


Having
  1. signed-up for an account, possibly
  2. jumping through the confirmation email hoop, and then
  3. signed-in to that new account
Don't pretend you don't know me!  Don't present me with a page that says

Get an Account with Us!
Here is how:
Step #1: Create an account at Flibertigibbet.com
Step #2: Blah, blah, blah.
Step #3: Blah, blah, blah.

That's it!! What are you waiting for? Get major benefits, make money, win friends, influence millions! Create your account now!
Didn't I just do this?  Who are these idiots?
You just trashed my tentative trust in you.  Goodbye.

26 April 2007

Netbeans Collab Modules

Installed the Netbeans Developer-Collaboration Module yesterday, and gave it a trial-run together with Jason.  Wow! 

The chat-client is pretty standard; not much to say there.  The only thing we both disliked was that you have to use "Control-Enter" (or "Alt-N") to send your text rather than plain "Enter".  Probably we could reconfigure the keybindings somewhere...

But!  The ability to drag a file, folder, Java package or, indeed, entire project into the collab area, and then have both people (and presumably everybody in the chat session) simultaneously able to edit the same files, seeing each other's edits live,... pretty cool.

The real OhMiGod Factor was when Jason hit "compile" on the shared file, to have it compile on my PC (since the original file came from there,) with both of us seeing the compile output.  Very, very cool!

We were speculating about some alternative form of development setup where all the code (and docs, web-pages, and other project components) get stored in a wiki-like (auto-versioned, of course) system so that its not just one developer's PC that gets to do the work...  Just daydreaming, really.  For now.

If you're working in Java, C/C++ or Ruby, and you work with other faraway developers (even occasionally -- the dowload is only a couple of meg) you owe it to yourself to explore the Netbeans Collab stuff.  I am pretty sure that what we're seeing now is only the start.

10 March 2007

Great Tools, Great Times

Just as much as some software is a pain in the arse to work with (even though it may be totally essential) on the other side of the coin we discover things like the CSS editor in the Firefox/Web-Developer Toolbar!

Working on a significant look&feel upgrade for the farm website, I tripped across this thing today.  "Oh!" says Jason, "I've known about it for ages -- can't work without it.  I thought you knew..."  Well, call me Mr Slow...

Despite its few quirks and oddities, the ability to fiddle with CSS -- especially the somewhat complex CSS I'm working with, where there is a cascade of CSS files, each one overriding another -- and see the results as you type...

That rocks!

06 March 2007

Software That Makes You Angry

Isn't it peculiar?  Some pieces of software are actually an almost physical pleasure to use.  Others make one actively angry.  Or is that just me?

I will refrain from mentioning a specific piece of software, here -- it would just be a distraction.  The software in question has been pissing me off the whole afternoon.  All I want is to make a simple change to some templates.  But it turns into a huge bloody performance: hoop jumping, contortions, hystrionics and hysterics, all resulting in a Resort to Strong Drink.

The software itself is not such a terrible piece of work.  In some places it is excellent, and the rest of it certainly gets the job done.  But the thing taken as a whole just makes me angry.  Microsoft Windows has much the same effect on me.

On the other side of the fence are pieces of software that just slide effortlessly into your life.  When you stop and bother to notice them, they're just... effortlessly there for you.  No muss, no fuss.  They just get out of your way and work.

So what's the key?  I would certainly only like to write the latter kind of software and avoid foisting the former on the world.  I think it boils down to "Do things my way or else" vs. "Let me serve you; here's what I do... I'll stay out of your face, now."

What software pisses you off?  What software do you love?

27 February 2007

The last 10% takes 90% of the Time

I guess its easy when it's a larger project.  There's a Project Manager, there are Account Managers, there are User Representatives.  They may or may not be actually doing much.  But they're there, pushing for completion.

When it's only two developers working together, it's hard!  How do you keep the focus, keep the energy going, especially on a short-term project that you have zero interest in...?

23 February 2007

Software Testing

OK, I confess: I'm a crap software tester.  I totally lack the nit-picky, step-by-step, over-and-over, document-each-step patience and discipline needed for the task.

Jason and I are just trying to finish-off the last 3% of a project.  You know!  The 3% that takes 50% of the time.  We're bored with the project, sour on the whole concept, and have much more exciting ideas we would rather be getting on with.  My job is to drive the testing, and I'm having a rough time knuckling down to it.  How I wish we had a good tester on the team!

Good testers are worth their weight in gold.

Old New Venture

Sometimes you just plain run out of energy.

That's what happened to us last year.  Bruised and sore from the sheer amount of energy we put into Flightwish, only to be repeatedly turned down, we gave up.  I even contemplated selling our domain names – a nice block of four closely-related names – on eBay.

But, as renewal date for the domains approaches, we have decided to give it a go once more.  After all, before we got involved with business plans, venture capital companies, bullshit artists, prototypes and minds-games, the idea really was cool, and targets a real need.  After all, the concept originated with my Dad -- a total non-techie, which gives it a lot more credibility than most of the web startups out there.

So we've started kicking the tyres again, and lo and behold! The fun is creeping back into it!  We've no idea whether we can make any money out of this, now or ever.  We don't care, right now.  We have a cool idea for a web community that we want to put together with some help from our friends, and we're going to have some fun doing it for as long as we can keep the lights on.  Drop me a line if you're at all interested...

We've put up a fun front-page so far, where we can drop a few hints as we work on the software.
Related Posts Plugin for WordPress, Blogger...