CSV Manager 1.1.10 Released

This is a bug fix release for bug report 0012: the TableModelLineListener object was dropping the first row of data when the headers setting was true. If you are using Swing TableModels please check if this bug affects you. As usual, all Ricebridge customers get a free upgrade with this fix.

Thanks to Jøgen for catching this one!

tag-gen:Technorati Tags: Del.icio.us Tags:




Posted in General | Leave a comment

10 Reasons Not To Use Commission Junction

Ooh, a blog list! So commission junction (no capitals for you, ya messers!) are off my site. Here's why:

10. When they deactivate your account, they don't send you any email to let you know about it. The first time you find out is when you try to login. Bummer for you!

9. There is no way to contact them by email. No addresses on their site. Nix, Nada, Zippity-Doo-Da. Customer support is provided by international telephone numbers. Oh yeah! Do it to me baby!

8. The only way to get in touch using this new-fangled interwebnet thing is by using a teeny-tiny itsy-bitsy help form for lost passwords. No, I'm not linking to it, but it's not hard to find from the login page. Ah go on, go find it, it's hilarious. Just remember to write really small. Oh, and I wouldn't try to have a longish domain name – cos it won't fit! Muppets! /shakes head

7. If you're not making the numbers after six months, they cut you off. Hello? Ever heard of the long tail fellas? Hey I know it's just a little old personal blog, but do you have to be so mean? Not everyone can be Cory or the Doc, you know. Some us of just have our own wee little corner of cyberspace we call home. Sob …. bwwahhhaahha…

6. If your account is deactivated it can't be reactivated. Ah Holy God! databases … yesss … beeg ma-jeek! veree scaree … yesss …

5. After kicking you in the metaphorical nuts, they say, and I quote:

Thank you for allowing us to be of service to you. Client Services Commission Junction, A Valueclick Company

ROFL dudes.

4. All their mails are Roach-Motel mails. As in, you can receive 'em, but you can never reply… stimulus, no-response, stimulus, no-reponse, ...

3. Their online reporting sucks. This one is from memory since I can't, um, login anymore.

2. They deactivate your account, without confirming your final balance. Nasty. Any word on how I'm supposed to get my few pence out guys (if indeed there is any)?

And the number one reason not to use commission junction (still no caps for you!) …

1. Their site is … puke-green. Oh my poor dear eyes.

Well CJ, it's been great, but it's time to move on. It's not you, it's me. I'm sure you'll find someone who loves you.

Wait. Actually…

Go gcreime maorlathaí­ m­í­thrócaireach do chuid infheistí­ochtaí­!
The curse of Cromwell on you!
Go scriosa cúnna ifrinn do chuid fo-éadaigh!
May you be afflicted with the itch and have no nails to scratch with!
etc.

Me? Bitter? Nah…

tag-gen:Technorati Tags: Del.icio.us Tags:




Posted in General | Leave a comment

Friday Fun: Fancy an Island?

Feeling a little despotic? Need to impose your vision on the world?

Look no further than … a private island!

Sure Charlie did it. So can you!




Posted in General | Leave a comment

Jostraca 0.4.1 Released!

I have just released the latest version of my open–source code–generator: Jostraca. I first released Jostraca in late 2000 and I have been unable to get rid of it since, despite repeated kicking!

So what does Jostraca do? It takes a template and generates a lot of repetitive code. Anytime you have loads of repeated code, you can use it. Now maybe with EJB3 that's not such a big deal anymore,
but if you still want just one definition of your data objects, templates can keep them DRY.

The other thing about Jostraca is that is uses JSP-style syntax, so you don't have to learn any new-fangled semi-language. You just use the language you know. And you can also use regex macros to completely define your own template syntax if you really want to. Jostraca is also language agnostic. Currently you write templates in Java, JavaScript, Python, Jython, Ruby, C, Rebol and Perl (of course!). And you can even define your own code generator formats so you're not stuck with the standard one (which just wants to dump out a load of files).

That said, Jostraca is warty. It's a work in progress and the project iterations are about 1 year(!) in length. In this business it can be quite rare to work with a piece of code for such a long time. Most projects come and go. You move on, others take over (and curse you), and the merry-go-round continues.

The nice thing about running an open-source project is that you get to step out of the coding rat-race once in while. Jostraca has been through many refactorings, and is a lot better for it. Of course, there's still a lot to do and there's a bit pile of user stories in the unassigned bucket. But no harm. I've got years to get it right. You don't often have that luxury as a coder.

One last thing. I'd like to welcome Morten Christensen on board. He's done some great work on the Eclipse Plugin for Jostraca, which was sorely lacking. He's doing some good stuff for code-generation in Eclipse.

By the way, you may have noticed that I love competitions. So here's another one. If you can figure out how I came up with the name “Jostraca”, you can get a free XML Manager license. BUT DON'T POST THE ANSWER HERE! To qualify you have to send me the answer in a private mail. That means everyone has a fair chance. (The standard competition rules apply, blah-de-blah etc.)

Oh yeah. The Sphinx is kind of a clue…

tag gen:Technorati Tags: Del.icio.us Tags:




Posted in Java | Leave a comment

CodeGenClipse Released!

Jostraca now has an Eclipse plugin: CodeGenClipse! (Jostraca is a code-generator, in case you're interested.)

Open source is great. The plugin is all thanks to Morten Christensen. And he found a load of bugs in Jostraca while he was writing it, so they're all fixed now.

And that's not all folks. CodeGenClipse is not just Jostraca specific. It's a general plugin framework for code-generation. So look out for some more cool stuff from Morten in the future.

This post probably sounds a little over-excited. Sorry about that. It's just cool when open-source works out. It really is a great way to get things done. Of course, I still think there's a place for commercial stuff, but especially when it comes to developer tools, you can't beat a shared solution.

And for all you Jostraca fans out there, the long wait is nearly over — 0.4.1 is oh–so nearly, nearly ready… (and will be announced right here on this blog of course)




Posted in Java | Leave a comment

Munster Wins!

Woohoo! Munster wins the Heineken Cup Final!

I'd only have a casual interest in Rugby, but I'd have to say I really enjoyed the final. Nail-biting stuff at the end.




Posted in General | Leave a comment

Most People Are Below Average

The almighty Seth Godin says: “In every category, in every profession, half the people are below average.“.

Bzzt! Wrong! Na-ah. Half the people in any industry are below the median. As in, half the people are below the half-way point (which is what the median is).

But I still think his main point is right. Let's fix the math.

In any industry you're going to have star performers. Programmers ten times better than the rest, etc. We all know the cliche. That drags the average up and beyond the main group of code-monkeys or office-slaves or whatever-you-call-your-grunts. And it drags the average higher than the median. Ability is a skewed distribution:

So Seth's argument about marketing to the below average applies even more he realises. More than half of the people in any industry are below average.

But there is a counter-point: the average is a lot higher than you think. Most jobs look easier on the outside than on the inside. Assuming you are more clever than most people is a dangerous game.

As for me, hey, I'm with the huddled masses. Who wants to be a Distinguished-Engineer anyway!

tag-gen: Technorati Tags: Del.icio.us Tags:




Posted in General | Leave a comment

Pay Per Character

I've been doing this online typing course, and it's been going pretty well. It's not the flashiest of sites, but it gets the job done. I would prefer more coaching, tips and advice.

So today I got to the end of the “basic” course. And what was waiting for me? The Advanced course, only $29! Hmmm. OK. Well fair enough it is a good course. So I am pretty sure I will sign up for the next stage.

I like this little business model. Particularly as all the computation takes place client side (the course uses JavaScript). But I do think they could have been more up-front about the need to pay for the full course.

In fact, I have some marketing advice for goodtyping.com, if they'll allow me. Guys, there are a bunch of online typing courses out there. They're probably all following the same basic business model. So use the fact that your course is actually commercial and not free to your advantage. I just picked your course at random. If you had sold it to me as a basic course for free, and an advanced course for a fee, with an emphasis on course quality, you would have had a great differentiator. I want to learn to touch-type and I don't want to waste time on crappy courses that teach me bad habits. A commercial course gives me much more confidence that I've made the right decision. Oh, and you can raise your prices. At least $50 and the advanced course is still worth it. I'll easily reward myself that much for having made it to the end of the basic course.

Why not go for it? You have a little gem here.

tag-gen: Technorati Tags:




Posted in General | Leave a comment

Credit Card Fraud

Every business has “shrinkage”. Stock levels mysteriously reduce. Inventories decline overnight. Products grow legs.

You'd think that the software business is different. “There's nothing physical to lift!” you say. Not true. If you're thinking of selling software via the web, take note: you're going to get dodgy orders. It's just a fact of life.

So how exactly does it work? Well you get an order in, same as usual. Now what I do for each order is check the IP address against the credit card address. You can use a site such as maxmind to do this. Unfortunately this is can only happen after the order is processed. And then you get one. An order where the IP address is from a very different country than the credit card address. A stolen card. In these cases, the email is also usually from a free email service, and is usually one of those numbered emails, as the account has been created just for the purposes of fraud. You do get the occasional sad individual who will use a traceable email address. It will show up on gaming and script-kiddie websites.

When you get one of these orders you're stuck. The perpetrator already has your product downloaded. And you have to put through a refund asap, otherwise you'll get hit with callback charges. And you should put through the refund as soon as you can so that you don't offend the poor eejit whose credit card number was stolen.

As a software company, it's not too bad — at least you don't loose money shipping out physical goods. On the other hand it makes you more vulnerable to this sort of thing, as the fraudster doesn't need a physical address for pick-up, just an email address.

Now there are a few things you can do to prevent or reduce this type of fraud. You can block certain countries from purchasing. This works, but it's not something I want to do. First, some of the dodgy orders may come from people who genuinely can't afford the products (hey – just ask me for a free copy guys! I'm reasonable). I grew up in a developing nation (South Africa), so I can understand that. Second, other folks from those countries want to do legitimate business, and they should have the chance to do so. I just don't like the idea of blanket bans.

Another thing you can do is have more stringent automated checks, based on IP and email address. Given the relatively low level of this problem, I'm not sure it's worth it. It's not like the bad guys would suddenly decide to play by the rules as a result. They'd probably just try to hack the trial download instead (Hint to bad guys: please hack the download instead of using fraudulent credit cards). So I'll put the time into coding features for my products instead.

Finally you might want to sign up with a fraud detection service. Never used one so don't know how well they work. Maybe I'll do this if the problem ever becomes really bad.

If you sell stuff on the web, you will get credit card fraud. It's a cost of doing business with the entire planet. And hey, doing business with the entire planet is a much bigger win than losing a few sales. So I guess my final advice would have to come from Tony: “Suck it up!”

One other thing to note, if you are developing a software product for download via the web: really strong copy protection is useless and a waste of time. It seems to be really easy for certain groups of people to get hold of stolen credit cards, so they'll just buy a copy. A nice, easy way to get around your oh-so-clever copy protection. And then you loose anyway. You could opt for “phone home” protection, but that has it's own issues, like customer privacy. (And don't even think about using a dongle! How sad.)

This interwebnet thing is no bed of roses. The rules are different and you'd better leave your outrage at home.

tag-gen: Technorati Tags: Del.icio.us Tags:




Posted in Business | Leave a comment

Bug Bounty: ThinkGeek Gift Certs!

When you find a bug in a purchased Ricebridge product, you will get a $15 ThinkGeek Gift Certificate.

A lot of software shops talk about quality. A lot of people really want to build quality software. But nobody wants to take the hit for bugs. “Of course you'll have bugs,” they say. “Bugs can't be avoided!” “Bugs are a quantum necessity!” (OK, I don't know what a quantum necessity is, but it sounds pretty final.)

So there are very few who will step up and say. “Sure, if you give me cash for my code, there should be no bugs. At all.” Now there was this little-known guy, (Knuth, or something like that) who did hand out cheques when you found a bug in his stuff. I believe his code has been bug-free for years.

But let's be honest here. The human animal responds to incentives. Plain and simple. We do what gratifies us, and we avoid danger and negative outcomes. Now Ricebridge is a pretty agile shop, so I've got all the gratification I can handle, software development-wise. But it just isn't enough to get rid of the bugs. And there are a lot of people throwing all sorts of development practices at bugs, in the hope that happy, gratified, developers, will code perfect code and perfect products. Ain't gonna happen. We humans are too stoopid.

So we need a new tack. A bit of danger. Some thrills. There's nothing like a kick up the arse to get you moving. I'm deadly serious about bugs at Ricebridge, so let's up the ante. Let's go for broke. Bugs have to hurt. As coders, they have to hurt us, not just our users.

So here’s the deal. If you invest in my products, and you find a bug, I will give you a ThinkGeek Gift Certificate for $15 dollars. It's real money — you can buy cool nerd stuff with it. Specifically I chose ThinkGeek so that you could get some fun out of my mess ups.

So it's time to get serious. I'm going to make 100% bug free software. It's not just a goal, not just an intention. It's something that is going to happen, no matter how many Swiss Memory USBs it takes!

(Note: I'm a ThinkGeek affiliate, but I reckon it would take a year to earn even $15 that way, so the $15 comes right out of my pocket.)




Posted in Business | Leave a comment