Everybody Say Hiya To the New Guy

Scott Meade is starting a seven-day Rails development extravaganza with the end goal of getting a product off of the group.  He mentioned I’m one of his inspirations, which I find absolutely mind-blowing.  Best of luck and keep us up to speed!

Comments Off

When Ruthlessness Is Required

I’m not in favor of ruthlessness when it comes to customers, employees, or competitors.  Business is business, but a little bit of humanity goes a long way.  However, investments, on the other hand, have neither feelings nor moral standing.

Over the last two weeks I have watched my CPA (cost per action = what I pay to generate one additional trial download) go from $.40 to $.60+.  And, not being that involved with AdWords for a variety of reasons (“other affairs in other planes”, as we would have said in my RPG days), I didn’t see the culprit.  Until yesterday.

The culprit was one single keyword which I had added two weeks ago on a lark and forgotten about.   (printable BC, where BC are the first two letters of my program).  This keyword is pricey relative to a lot of my keywords, at $.12.  But I make good money off of a lot of $.12 keywords, such as, *cough*.  The difference was that this keyword was converting at about 9%, and getting clicked a lot.  I had a very effective ad for it, and the very effective ad was very effective at getting people to click to my site, and then most clicked right out again.  Averaging those abyssmal results with another ~50 keywords all performing as well as ever increased my advertising costs to the tune of 50%.

So I had two choices… make a better landing page or get out of that market.  I decided against the landing page, figuring that most people were looking for cards to print and just didn’t want to get invested in software to print cards.  And they were probably looking for traditional numeric cards, a gambling tool which my software rather deliberately does not support.  So I killed the ads.

In other news, folks have been asking recently on JoS “Does anyone get their money’s worth out of AdWords?”  I’m actually not sure I am yet.  I get enough sales from all sources to cover my costs, but I have not traced any of my completed sales directly to AdWords as of yet.  I think there might be a wee misconfiguration somewhere, because AdWords also doesn’t get nearly as much credit for conversion #3 (clicking the update button within the program, which verifies for me that the program was installed successfully) as it theoretically should be.  I’m wondering if it happening in different sessions is nuking the results?  But it should be cookied…

Bah, I’ll have to look into that later.  As it is, I took two days off this week and have some “real” work to take care of.

Comments Off

The Anthem of My Business

This is a bit old, but I love it to pieces and listen to it when I need inspiration. I try not to listen to it when actually coding because the tears of laughter make it hard to see semicolons. (The fact that its Creative Commons and totally free is a nice bonus, too — although after one listen to it I would have gladly paid money for it. However, since its free, I haven’t taken time to send the guy so much as a $1 Paypal thanking him for his time. I think there is a lesson here for a segment of the uISV community regarding pricing-as-signal.)

Code Monkey

Lyrics below the jump.

Read More…

Comments Off

I'm Reviewed On A High Traffic Web Site!

“Light on functionality and appears to be mostly aimed at people studying English.  Still, if thats what you want, apparently its a pretty good choice.  Easy enough for a stay-at-home mother to use.  3/5″** — Chinese cracker “Poisonous Mists of Gold Mountain”  (* Not entirely sure that the character means mist, as it isn’t used in Japanese.)

Say what you will about Chinese hackers, at the very least they have more amusing pseudonyms than our home-grown miscreants.
** I do not stand by the accuracy of this translation, as I don’t actually read Chinese.  I can just sort of get the gist of it by picking out words in isolation which happen to be the same in Japanese, in much the same manner that you can sort-of understand Portuguese by way of Spanish.

Comments Off

Early Results of Auto-Submission Experiment

My traffic on Monday, which isn’t yet all collected (I’d guess its approximately 60% over, given how Analytics imposes a delay on things) shows that I had my highest traffic ever today, surpassing even the spike from the pirate kings.  Its roughly 25% above my previous peak traffic, and roughly double what my traffic a week ago was.

Drilling down into the numbers, my paid advertising is performing at about the same level as normal (had an exceptionally good day on Google and a poor day on Yahoo, so they averaged out) and my organic search engine performance has not changed for a week.  However, the number of “direct” hits I got on my website increased by almost an order of magnitude, and I’m getting a significant number of referrals from one download site in particular and a long tail of them from two dozen smaller sites.

Most of the “direct” hits (when you get to a web page via your address bar) are coming from trial installs which originated off of my site.  Assuming that roughly 10% of folks downloading the trial are updating, which is what my numbers have generally looked like, I had more trial installs in the last 24 hours than I’ve had in the last two weeks (exclusive of download.com).  (Why can’t I just grep my HTTP logs for BingoCardCreatorInstaller.exe?  Because some download sites download the exe from my site and host it themselves, so if they give out 100 trials they only generate one result in my logs.)
Well, that certainly worked out well.  If any significant portion of this new traffic converts RoboSoft is getting my money as promised.

Comments Off

Don't Let Java/.NET Deployment Scare You

Ali commented, in regards to my last post, that I should really program my next project in C++ or similar, as requiring a Java/.NET library download scares off lots of dialup customers.  This would have been a valid consideration… in 1998.
In 2006, not so much.

1)  I don’t have dialup customers.  I am targetting a group of very non-technical customers.  The biggest two ISPs in my logs are Comcast and AOL, very mass-market ISPs.  Do you know how many of my visitors stroll on by with dialup?  10%.  60% are on cable/DSL and 30% are on a corporate internet (mostly teachers on their work computer, I’m guessing).  Additionally, of the 10% of customers who are on dial-up fully half of them hail from countries where I do not expect to ever sell a single copy of my software.

2)  Java/.NET deployment is very high.  97% of my visitors have some flavor of Java installed and enabled.  97%.  (Similarly, Flash stats: 98% total, 85% v8 or v9.) That doesn’t help me if they have the ancient MS1.1 JRE installed, which is one of the only widely-deployed JREs Bingo Card Creator won’t run on.  I don’t have any convinient way to check for that other than getting them to visit a certain page on my site, which most people don’t.  Of the highly unrepresentative sample that do, 80% of them at last count have Sun 1.3 or higher.  Don’t believe the statistics from 2000 that you read on the Internet about 50% deployment rates — Java, like Flash or .NET or anything, is a very viral bit of software.  You’ll eventually stumble across content which you want to access that needs it, and after you do this you’re set until your next computer upgrade.  The average person upgrades computers once every 4-6 years, which means as time goes on the number of machines which will have any given runtime approaches 100%.

3)  Know your market.  Lots of educational software, including the stuff distributed on CDs, requires Java to run.  I am able to happily piggyback on the inroads made by metric truckloads loads of eduware.  Its like how you can assume DirectX is installed on the machine of anyone who has bought a AAA computer game in the past, oh, ten years or so.

4)  Java comes pre-installed on most new consumer PCs.  it can’t be bundled with Windows anymore, but it comes bundled with your Dell, Gateway, Mac, etc etc.

From where I sit, its not worth the vastly higher development time and impact on the user experience to cut Java out of the equation, unless its  in favor of .NET, which I may very well try out for my next project but which has exactly the same wrinkle.  At current traffic rates, assuming every one of my dialup customers had no JRE and refused to install, that would cost me a total of 5 successful trial installations a month.  I get more installations originating from AdSense spam sites every week.

I’m not totally sanguine about requiring the JRE to run my application, but I think its a good tradeoff of market size versus development complexity.  I guarantee you that if I had to do my interface in MFC I’d still be months away from launch.  I suppose I could be convinced to change my mind by hard statistics showing that vast numbers of my potential customers can’t run Bingo Card Creator, but the best statistics I have available indicate this is not the case.

Comments Off

The (Trial Downloads) Numbers Game

I passed a milestone some time in the last week — over 1,000 trial downloads of some version of Bingo Card Creator.  Its actually a little higher than that as reported by my server logs but I’m discounting that a bit to account for download site update spiders and pirates.

But its really, really hard to tell exactly how many people are using Bingo Card Creator today.  This is obviously a number of profound interest to me.  In the last week, for example, Google Analytics reports that 95 people have hit my thanks-for-downloading page, which starts automagically downloading a trial demo.  On the other hand, only 18 people have used the update feature in Bingo Card Creator (17 of them with version 1.02, 1 with version 1.03).  So my lowball estimate for number of people using the software is 18ish at the moment, plus an unknown number of folks who are stuck with version 1.0 which doesn’t have update checking.  That number is unfortunately *growing* because getting a new version onto Download.com takes two weeks if you’re not willing to pay through the nose, and I’m not (need sales to cover August advertising still).

I’ve got a couple of worries for the discrepency between downloads as reported by Analytics and confirmed downloads as reported by update checking.  They could be due to any of the following:

1)  Analytics records the download but no download actually took place.  This could easily happen on, for example, IE.  Microsoft’s late-in-the-day embrace of security makes it impossible for my meta-refresh to the .exe to work properly on most computers, so I have to rely on the customers actually reading the first line of text on the page and right-clicking the download link.  This is obviously the worst sort of failure — its a failure I’ll never know about and can’t recover from.

2)  People download the demo and then fail to install it, after forgetting about it or what have you.

3)  People download the demo, install it, run it, and then are told they don’t have a sufficient IDE.  Despite the fact that launch4j, the Java wrapper of my dreams, will offer to launch the Java download page, I obviously can’t sit on folks shoulders and make them press the 6 buttons it will take to get the 18MB JRE installed.

4)  Folks might download the demo, run it successfully, and then opt-out of the checking for updates.  After all, the thinking goes, why would I need to check for updates if I’ve just downloaded it 2 minutes ago.  I might get an update request from them in 15 days when Bingo Card Creator expires their previous cancel (and then I won’t know whether its a user continuing to use my product or a new downloader… grr…).  It would be the simplest thing in the world for me to ping my server regardless of whether they want to check for updates or not, but its not honest.

Anyhow, I’m thinking of sweetening the pot a little bit to encourage people to check for updates.  At the moment my software comes with about a dozen unique word lists, and as time goes on that number is going to increase.  (I should really sit down and write some more, actually — they’re “new features” from the perspective of my users and only take ~10 minutes to compile each.)  I think I’ll reserve, say, 5 of these lists as a Bonus Pack.  And then, if folks don’t have the bonus pack installed, when I ask them for an update I’ll say “You’re missing the Bonus Pack of free word lists.  Would you like to download the Bonus Pack and check for other updates now?”  Since the Bonus Pack would be downloaded exactly once per customer, that would give me a more accurate count of total installations.

I could even, theoretically, just put the Bonus Pack in the installer and only *enable* it if folks choose “Check for Updates” (and/or automagically download a decryption key and decrypt it, whatever).  That, however, leaves a bit of a bad taste in my mouth.  Its the same “tell me you exist and I’ll give you additional benefits” transaction as the download-the-bonus-pack option is, but it seems to be based on a deception.

Comments Off

A Love Note To My Favorite Productivity App. Ever.

I just downloaded the Direct Access program from Nagarasoft today. It lets you type words to act as shortcuts to essentially anything you want on your computer. In default mode, its “type your keyword, then hit F1″ and you get your action. I call that the BANG key because in the Linux world typing a BANG (exclamation point) after the first few letters of a command gets you completion for it if you’ve done it recently. For example, out of the box fireBANG gets you a browser opened… from any place you can type text on your system.

15 minutes of setting up keys which are more useful to me and I had a configuration which I was happy with. I also remapped the BANG key to Alt-Enter, which I can quickly hit without having to move a hand and which I’m used to from Java IDEs. My productivity has not increased so much since I learned to Alt-Tab.

Let me paint a picture for you: here’s what my screen generally looks like when I’m in development mode.

A cluttered desktop

Looking at this ugly monstrosity, I suddenly realize “Uh oh, I really need to copy/paste a file from C:\cygwin\home\nameofdayjob\nameofdayjobcurrentproject\server\perl to C:\cygwin\home\nameofdayjob\nameofdayjobcurrentproject\client . And then I need to zip it. Aww “#$”. Zipping isn’t bad, thats as simple as right-clicking the file and using Winzip’s shell integration.

But opening monsterfolder is tricky. If I had the desktop available it would be as simple as picking the right shortcut out of the fourty that are there. But I don’t — I’ve got 15 other applications vying for my attention. And, likely as not, one of them is modal at the moment. Which means even if I try Windows-M (“Automagically minimize all programs and dump you on your desktop” — and if you don’t use this, START) I’ll get trapped at some file chooser dialog somewhere. So instead I have to navigate to it by picking one of those open explorer windows and typing the whole evil path in the address bar, in the process losing the contents of the explorer window.

But no longer!

Now its svrBANG and I get taken straight to that directory.

Now imagine I’m staring at that ugly, cluttered screen and one of the office secretaries comes up to me. “Sorry, Patrick, this needs your signature urgently.” “This” is invariably a memo which has Japanese I can’t read on it. The most recent culprit was “international exchange activities aimed at promoting economic improvement”, which naturally the Japanese have a two-letter word for. I have a dictionary site which I am totally dependent on for situations like that bookmarked in Firefox (it would practically be my homepage if my company didn’t lock me to www.nameofdayjob.com to increase our access count — I offered to write them a robot to hit the page 100 times a day to allow me to set mine to Google or something but noooooo they said that would be cheating). So I’ve got to click one of the firefox windows from the task bar (2 clicks), open up a new tab, and load the bookmark.

No longer! dicBANG and my functional illiteracy is successfully hidden for another 5 minutes!

Do you have a Start Menu which is overflowing with programs which you use once in a blue moon but can’t get rid of because you would then have to fish them out of Program Files or God knows where else? Just assign them shortcuts. PadGenerator is an excellent candidate for this — I only need it once for every Bingo Card Creator update — padBANG, done, one program group saved. I’m addicted to the old Windows-R, calc/notepad/cmd/mspaint trick. Now I don’t have to Windows-R anymore, and can extend that to programs which aren’t in the system path. paintBANG now brings up Paint.NET (oh, love that program). ftpBANG brings up Filezilla.

Do you have 432 web services you have to check on a regular basis? I’m sort of obsessive-compulsive about having access to data, and yet I underuse bookmarks hideously (never liked them because they were never portable between computers). Which means to get to Google Sitemaps, for example, I generally go to Google (via typing it out in my address bar, no less — a habit which I will never break) and then Get Lucky with “Google Sitemaps”. Now its sitemapsBANG, from anywhere. adwordsBANG. wsjBANG. instaBANG (instapundit, my “got 5 minutes to kill” blog of choice). josBANG. blogBANG (I’ll give you one guess). ffBANG (I shortened “fireBANG” to “ffBANG” for my favorite web browser, since I use this one so often).

Then I got started thinking of ways I could abuse this with my IDEs. I don’t know about you but on a scale of 1-10 I probably use all my IDEs at about a 3, because I never put in enough time to learn the guts of them. As a result, what should be simple like “Use autocomplete to throw out a try/catch block” is just beyond my capabilities for most of them. And I often end up editing programs in non-IDEs just for convinience (my favorite being nano, a pico clone — laugh all you want). Now I’ve got nice portable macros like #intconvBANG. Java mavens might recognize this one:

try {

bar = Integer.parseInt(foo);

} catch(NumberFormatException e) { };

Then I just replace bar and foo as appropriate and I’m done.

Here’s another which might be a little quirky: kBANG. k is, in my personal coding convention, always my variable-of-first-choice for iterating through anything other than an array. If I’m doing GAWK, its always (for k in hash). If I’m doing Java, k is my temporary variable that holds the iterator’s next(). Thus, kBANG is:

java.util.Iterator iterator = foo.iterator();

Object k;

while (iterator.hasNext()) {

k = iterator.next();

}

The program is $40 (save 15% with a discount available to most people who know what the acronym JoS/BoS stands for — search for the words “the 13th August”). The first time I saw that, before actually using it, I thought “God, thats a lot of money for a single-use toy”. Now I think it would be cheap at twice the price.

Comments Off

Impressions On Download Sites

Since I had a lot of luck with submitting my PAD file and getting it registered on a bunch of download sites automagically, I decided to try submitting to an awful lot today, via Robosoft.

Here is my view of the transaction that happens between any shareware site and a shareware author.  What I bring to the table: I give you software for free, and this lets you attract visitors to your pages, not necessarily in the search for my software but in the search for an aggregator of lots of software.  What you bring to the table: you help any of those folks who need bingo card creators find me.

Here’s what a lot of software sites seem to think the deal is: I pay them for listing.  They then, possibly, direct people to me.  And if anyone purchases my software after downloading there, then I pay them a cut.

Funny, given that there are hundreds upon hundreds of download sites on the net, and I have no efficient method of evaluating quality of traffic I’ll get, this does not strike me as a good proposition.  I would much rather spend the $20~$100 you guys want on Google ads, where I have 100% control of my advertising and can guarantee that I’ll get X number of downloads for my dollar.  I’m similarly unlikely to link to anybody who asks for it: while I sympathize with your desire to get a higher PageRank there are too many of you and all I need is for one of you to go “bad neighborhood” to screw my business royally.  I see most of you understand this, as the overwhelming majority of you (even the ones with paid registration) refuse to give a standard link to author pages.

Download.com and Tucows are sort of special cases: they have traffic which is just too high to ignore.  I’ve been on Download.com for about 3 weeks.  They’ve tracked over 100 downloads, which is roughly 50% of what I’ve given out myself over the same interval.  In another 2 weeks or so they’ll finally get through processing my submission for 1.03, after which those downloads should start to see much more frequent conversions (although I rather suspect one of my last 2 sales came from them, since that person came to my site the first time through the trial download).  (Tucows says they’ll have my application processed at some point in 2007.  Thanks fellas.  I love you, too.  After seeing what it takes to get a decent rating on your site I think I’ll pass in favor of producing a quality product.)

In any event, free is free.  My site is now available at 89 places more than it was this morning.  Here’s my promise to the RoboSoft author: if I get 4+ sales which originated at those sites in next 30 days, you get your $100 and a hand-written thank-you note.

Comments Off

Peeking Over Your Customers' Shoulders

I’m going to assume there are multiple possible paths to get your your Buy Now button in your trial software.  Pop quiz: which one gets used most often?

Oh, you weren’t tracking that?  Well, it seems like its fairly useful information to you — after all, from your perspective thats the most important mouse click in your program there is.  And if you know that information, you can test the placement of the link — does a nag screen produce appreciable results?  How about an exit screen?  Do people click the button more when the menu item is highlighted in blue (*cough* yes *cough*)?  Is your idea to put a tip-of-the-day to put another opportunity to buy a sound one (nice idea, Peter Muys)?  If your product is feature limited, what feature is the one that people can’t stand not having?
Yeah yeah yeah, nice to know but its excessively hard to implement, right?  You’re probably thinking you need to have some sort of shopping cart application and pass it a parameter and parse the output and and and…   No.  We’re computer programmers because we are too lazy to do things like that when there are 10 second solutions.

Step #1: Append a dummy parameter to your static HTML page which you send folks too.  e.g. Instead of accessing www.bingocardcreator.com/purchasing.htm access www.bingocardcreator.com/purchasing.htm?source=trial&location=menubar.  (Did you know that your web server will happily take any number of parameters to a request for a static HTML file and promptly log and ignore them?  Yeah, who knew.)

Step #2:  Using your favorite Analytics software, take a gander at the “dynamic content” for your file of choice.  Under Google Analytics this is under Content Optimization -> Content Performance -> Dynamic Content.  For example, I can see instantly that roughly half of the hits on my purchasing.htm page come from referals from my application.  My application has 3 paths to get to the purchasing screen (nag screens on two disabled features and the Purchase Now button), and if I wanted I could segment on those.  Something to try for v1.04.

P.S. Keep in mind its generally poor web design to include lots of dynamic parameters, because they confuse search engine spiders.  But since GoogleBot isn’t spidering your application, you can go hog wild with referrals from there and it will never be the wiser.

Comments Off