How to Start a Software Company 2.0

by Richard Rodger

       
 
Make $97 With One Blog Post

If Jonathan can give away free servers, then I can give away free licenses! I've been inspired by Sun's T2000 promotion to try something like it myself.

Here's the deal. You blog about one of our products, after trying the trial version out, and you get a free single-developer license.

You can write whatever you like. Tear us to shreds or sing our praises. It's all good. We just want links :)

Well, you should make sure that your audience is OK with doing something like this. Full disclosure is a good idea. So don't do anything you're not comfortable with.

Before you start writing, here's the full details of the blog promotion.

Our products are data-munging widgets for Java: CSV Manager (for CSV files, surprisingly), and XML Manager (for XML files, again, a surprise there). The single dev licenses are worth $47 and $97 dollars respectively.

Oh, and the $15 gift cert you get for every bug found, that's still valid. So you might even end up with something nice from Think Geek.

No idea when I'll end this promotion, so don't hang around if you want one, get writing!

And no, I won't apologise for the blatantly linkbaiting title! :)

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

@ 02:33 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
Rant: Maven Muppetry

Hani was right. Maven really is a pain in the arse.

I have just managed to install the cobertura plugin. Not by following the instructions mind. On no.

The install instructions are to run the following command:

maven plugin:download
  -Dmaven.repo.remote=http://maven-plugins.sourceforge.net/repository
  -DgroupId=maven-plugins
  -DartifactId=maven-cobertura-plugin
  -Dversion=1.2

Well shucks ain't that nice and easy. And it used to work, because I used that very same command a few months ago and it just worked. Tip for the documentation writer: put this command all on one line and then it's much easier to cut-and-paste into a command window.

But now it doesn't work anymore. Wanna know why? Because it references a load of dependencies inside http://maven-plugins.sourceforge.net/repository/ that do not exist. Did someone delete them? Huh?

In order to install you have to drop the cobertura plugin jar into your repository manually, and then run maven. Then it picks up the dependencies from berlios.

Am I missing something here?

If you're going to release open source stuff, make sure your install just works. No arsing around. People lose interest pretty quickly when you do that sort of thing.

@ 02:33 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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:

@ 09:09 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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:

@ 08:30 PM GMT+00:00 [ comments [2] ]   email this   links to this
 
 
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!

@ 09:42 AM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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:

@ 12:59 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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)

@ 03:51 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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.

@ 04:44 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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:

@ 10:08 AM GMT+00:00 [ comments [7] ]   email this   links to this
 
 
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:

@ 10:42 AM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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:

@ 09:58 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
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.)

@ 10:22 AM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
Sun T2000 Sax Sucks

Running a Java 1.5 SAX XML parser on the UltraSparc T1 is five times slower than running it on my Athlon 2800+.

That's about right. Five times slower. Now when I got delivery of my new T2000, I thought, "Hey, this baby's gonna rock!". Then weird stuff happened.

First, I ran the performance tests for my Java CSV Component. Twice as fast. Okaaay. Well, fair enough, it is faster. Would have expected more though.

Then, I ran the performance tests for my Java XML Component. Five times slower. Eek!

Alright, I thought, slow disks! Nope. Doing the tests in memory led to the same performance. And the disks were slow, in case you're wondering.

OK. Maybe my code is to blame. Let's do a pure and simple SAX parse, with no actions. Still five times slower! So now I was getting depressed. My lovely new T2000. Broken! Or worse: Crap!

So I went out for lunch.

And then it hit me. Duh! 32 hardware threads over 4 CPUs (and that's just the minimum config). And I was only exercising one of them! My performance test only runs in one thread. You see, the T2000 is designed for throughput. Serving lots of web requests all at the same time. That sort of thing.
[Update: I wrote the original post from memory — the are only 16 hardware threads. But I'll leave the rest of this post the way it is, so you can have a few laughs. The final conclusion still holds as you can get higher spec T2000s with more CPUs].

So I run a really brain-dead test. I opened up a whole load of consoles and started the test on all of them, all at the same time.

Pay Dirt!

Not a wince. Not a whine. Cool as a breeze. Same speed on all consoles! The T2000 just laughed at me. A few samples from mpstat, and I was a happy camper again. You see, each thread may be a bit on the slow side, but you do have 32 of 'em. So if each one is five times slower, you need five threads to do the same work. But: five into 32 total threads gives you six or so. Which means:

Six Times Faster! Baby!

So what you get with the T2000 is a big old scalability lever, and a fairly small performance lever. Same old story really. There's always a trade-off.

Now maybe I was doing some wrong. I don't know. You tell me. I've been out of the game for a while when it comes to Solaris.

Here are the performance tests I was running, in case you're interested: XML Manager, CSV Manager.

So I don't know what this means for my report on the T2000. The single thread numbers suck, but the concurrency rocks. Guess I'll need some new charts!

@ 11:25 AM GMT+00:00 [ comments [2] ]   email this   links to this
 
 
CSV Manager 1.1.9 Released

I've just put up a new release of CSV Manager, my CSV file parsing Java component. This release adds the ability to handle comments in CSV files.

I should explain how the Ricebridge versioning system works. It's pretty standard in fact. The first number is the major version. All releases with the same major version are forwards and backwards compatible with each other. And when you buy into a major version, you get all releases in that version. I don't believe in making customers constantly pay for upgrades. A major version bump occurs when there is a really big change in functionality.

The second number is the minor version. This indicates a release series with a stable feature set. No major structural changes occur within a minor version. The minor version is bumped whenever there is a reasonable increase in functionality. Compatibility with earlier minor versions is retained.

The third number is the build number within the minor release. This is incremented each time there is a bug-fix release. It is also sometimes used for small features, such as, oh…, comment support, say. All bugs, by the way, are documented. You know exactly what you're getting when you buy a Ricebridge component.

The only thing I haven't got quite sorted just yet is a proper change log for the components. But hey, it's on the to-do list!

So now you know how I work. Just to repeat, if you buy the 1.1 version of any of our products, you'll get all the versions up to 1.9 (or 1.whatever we get to), as free upgrades.

Technorati Tags: Del.icio.us Tags:

@ 04:47 PM GMT+00:00 [ comments [0] ]   email this   links to this
 
 
Don't Panic!

The worst thing you can do as a website owner is to constantly make lots of little changes.

The best thing you can do as a website owner is to constantly make lots of little changes.

You need to know what works on your website, and what doesn't. And your visitor statistics will help you find out. But if you keep making changes on an ongoing basis, you'll never know for sure. I've just put up a change on my own site, and I've realised that it will be really hard to tell if it's going to work or not.

Unless you just love multivariate analysis, it's much better to let things run for a few weeks to really find out what fires up your visitors. Statistics are strange things, and you can get really big swings from one week to the next. The standard deviation is bigger than you think.

So before you panic, and jump around the place changing stuff on your site, just take a deep breath and make sure you know what's happening right now. Measure twice, cut once. Make lots of changes, but make each change deliberately, in a way you can measure. Try to space things out, or makes changes that are independent. Lots of little improvements over time add up to big sales, but you don't want to go for a random walk either.

So be zen about your site. You may know something is wrong. You may have seen someone try to use your site and flounder. You may think you need a new colour scheme. You may even think you need an onsite avatar (no, don't go there!). But make sure you can tell the difference between before and after.

(And the change I made? I put links to my solution-focused tutorials on the top left, above the boring standard navigation menu. I'm sure it'll work, but I've mixed it in with other changes and it'll all be too hard to untangle.)

@ 08:24 PM GMT+00:00 [ comments [2] ]   email this   links to this
 
 
 
YahooBloglines
NewsgatorMSN
Google Readerdel.icio.us FurlSubscribe with myFeedster
« June 2006 »
SunMonTueWedThuFriSat
    
1
3
4
5
6
8
9
10
11
12
13
14
16
17
18
19
21
22
23
24
25
27
28
29
 
       
Today

All | General | Java | Business | Fun | Perl | Rant | Ireland | Web
[This is a Roller site]
[Valid Atom 1.0] [Valid RSS]
Technology Blog Top Sites
Blogarama - The Blogs Directory

Blog Directory & Search engine

Blog Flux Directory
Irish Blogs
 View My Public Stats on MyBlogLog.com

Performancing
Enter your Email


Powered by FeedBlitz
Theme adapted from Sotto.
 
Ricebridge XML Manager
  • Convert XML to a table of data
  • Convert XML to CSV, and CSV to XML
  • High-speed, single-pass XPath
  • Memory-stable and fault-tolerant
  • Loads of documentation
  • Cut-and-paste code examples
  • Find a bug, get a gift cert
Ricebridge Java XML Manager Component


Ricebridge CSV Manager
  • Convert CSV to a table of data
  • Handle any type of delimited file
  • Memory-stable and fault-tolerant
  • Loads of documentation
  • Cut-and-paste code examples
  • Find a bug, get a gift cert
Ricebridge Java CSV Manager Component


Popular Posts

 Sign up for MyBlogLog.com
Alertra Website Monitoring Service
Get Chitika eMiniMalls
Solo Tees
BlogJet