Archive by Author

June 2007 Stats

Capsule Review: Easily my best month ever, and its summer vacation.  I’m really looking forward to the start of the term in August.

Sales: 36 (1 refund, customer was unhappy with font sizing)

Gross Income (less refund): 918.25

Expenses:

SwiftCD $54

AdWords $49.27

GoDaddy $7

e-junkie $5

AdCenter $19.59

CrazyEgg $9

Paypal: $18.04

Total Expenses: $161.90

Net Profit: $756.35

Selected Web Stats:

Visitors: 8,400

Visits: 9,200

Free Trials Downloaded: 1,017 from my site, several hundred from other sites.

Known-good Free Trial Installs (clicked a tagged link from within program): 354

Trial to Purchase Conversion: ~2.5%

Visits to my Purchasing Page: 402

Percent of folks who purchased after reaching purchasing page: 9%

Biggest Coup This Month: Snowflake queries.  I rewrote one page of mine, which had previously been very underused, to snap up more of them.  Handily, that rewrite was completed on May 30th.  During June, that page saw 5,600 page views (or about 27% of my total).  During May, that was 2,700 page views, or 12% of my total.  The “extra” 3,000 page views were a major part of the reason that, despite the fact traffic on my major teacher-related search terms declined since teachers are out of school, my overall traffic stayed mostly flat while my sales increased markedly.  I can’t wait to get some time to write some more content and catch myself some more snowflakes. 

Conflict of Interest: Payment Processors vs uISVs

I sometimes take a bit of guff from other uISVs for not using a “real” payment processor.  Some folks believe Google Checkout/Paypal are “unprofessional” or “hobbyist”.  I respect that opinion.  However, if the recent events at SWREG are any indication, I’ll wear that amateur label proudly.  They recently introduced a new upsell item in shopping carts of the uISVs they serve, and its one that makes one recall the many alternate definitions of the word professional.

Andy Brice has got the story covered and the BoS forums are buzzing about it, but in brief, SWREG has placed a button labeled Continue after the last page after the checkout funnel.  If you click the button, you will be billed $9 a month to your credit card, silently, until you figure out who the heck is billing you and try to cancel.  This is orchestrated by an outfit called Reservation Rewards aka WebLoyalty.com aka TravelValuePlus aka BuyersAssurance.com aka AnyoneWithSixDBAsIsTryingToScamYou.com.  Theoretically, they send you coupons in return for your $9 a month.  Many, many folks report never getting the coupons, never receiving a single of the multiple emails they steadfastly claim to send, and never having done the double opt-in gymnastics that they claim isolates people from getting locked into their service without wanting to be.

See, here’s the rub.  There is a nice feature of the Internet that folks learn early: if you don’t give your credit card details to someone, they can’t bill you.  Entering your credit card details is a signal both of major trust and of the fact that you understand that, absent you taking some action, you’re about to authorize forking over some money.  WebScamInc could never get “millions of satisfied customers” to authorize the $9 for nothing purchase with their lack of service, so they piggyback on the trust the customer has in you.

And THAT, more than anything else, is what burns my biscuit about this.  It is bad enough that a business would abuse their own customers enough to facilitate theft by fraud from them, and some large businesses did this quite often in the Wild West days of the Internet.  What makes it particularly galling, though, is that a customer at SWREG is not SWREG’s customer — he’s the customer of some uISV somewhere who stays up nights toiling away writing emails, polishing web copy, and smashing bugs to earn the trust of people he has never met over the Internet.  And what does the customer get for being foolish enough to trust him?  He gets stabbed in the back by someone whose only purpose in life is to be a convenient CGI interface to a merchant account.

Oh, but it gets better.  Over at Andy’s blog, Jessy from SWREG has this explanation of why they allowed a scammer to take up residence on their service.  Its… well… here, read it.

Hello,

The offering is a perks offering for customers. In no way are they tricked into using this, and it is clearly disclosed what they are signing up for. The signup page looks nothing like the order form or SWREG clearly differentiating it from the product purchase.

Customers are also very easily able to cancel the perk offering at any time. They can choose to pay the fee and receive great discounts at very popular, well-known brands/stores within their country.

SWREG has made this optional for our clients. These are offerings used at Amazon and EBay, nothing new or out of the ordinary for customers.

If you have any questions please don’t hesitate to contact me.

Thanks,

Jessy

(Email address omitted by me.)

This is willfully obtuse.  Yes, if you read every word on the SWREG order page, you will indeed realize that the 8pt font says you are submitting your data to a third party and authorizing them to debit your credit card.  The 24 point font on the blue button, however, says “Yes.  Click here now”.  And SWREG, as an e-commerce merchant, should darn well better know that Internet pages are not made to be read.  They are made to be scanned — readers evaluate, in a period of seconds, whether or not anything on the page has interest to them and then they drill down into that content, either by reading it or interacting with their interface.

A large block of small text font on a web page, placed against a blue button with a strong call to action, isn’t asking to be read.  Its asking to be missed.  It is exactly where any web site designer worth their salt would say “You know, if I put that in CrazyEgg or did a real heat map study, that area would be a deep blue dead zone.  I sure hope the content writers don’t put anything important there.”

There is also the context to consider.  This is important — if you are in the middle of a transaction, and you have already gotten over the mental “Give this vendor [i.e. the uISV] money” barrier, then everything from the start of the funnel to the end of the funnel reads Click next to continue.  If that button had said, in 48 point font, “Click here to format C:\” I still could have gotten 5% conversion with it!  Its like putting something on the second to last page of an installer — we all know that nobody reads anything, they just mindlessly click next until the application pops up or they are dumped to their desktop because our industry has trained them for decades that nothing they are about to see is important.  That is why, when we design web applications, we put destructive actions behind popup confirmations, and we put really destructive actions behind things which are designed to jar the user out of their GUI induced fugue, like “Type d-e-l-e-t-e to drop the database”.  Spending money is customarily put behind a similar speedbump, entering credit card details, and this scam is designed precisely to circumvent that safety valve.

Oh, but spending money isn’t necessarily destructive, as Jess points out.  Maybe folks like the discounts they’re getting at a wide variety of establishments in their country, for the low, low price of $9 a month.

Tell me, do the one thousand, nine hundred, and seventeen customers who commented on just one of the “Reservation Rewards is a scam” thread sound like they are satisfied customers happy to have received discounts?  Lets review a couple of these comments, shall we?

Daniel said

wow i cant belive this i just noticed these same charges on my account and only noticed because it made me overdraft in my debit account. i called the bank and they told me that it has been going on since july thats $54 that they have talken with out me knowing i have no idea where they got the info tho i always shop through paypal but makbe that is the problem all i know is that this needs to be stopped it is wrong. 

Matt said

Thanks for putting this up. I just got off the phone with these guys. They claimed they “were making an exception to the rules” when they refunded 4 months worth of charges to me. I asked where they got my CC# and they claimed it was from ebgames.com, a site I sometimes buy stuff from. I’m filing a complaint with the Connecticut Department of Consumer Protection and will be taking the issue up with ebgames.com customer service and perhaps the Pennsylvania Bureau of Consumer Protection if that doesn’t work out well.

(You can feel free to add this to the SWREG defense: Well, if Reservations Rewards is good enough to scam ebgames’ customers, then it is good enough to scam ours!)

Don said:

I am currently serving in Iraq, have been for 4 months, and noticed that I have been recieving charges from WLI for $7 (am I a lucky one to get off so cheap?). I have gone to their webpage with an unloaded weapon—you see, you have a logon & password to see “your” account information. Beings I did not know I was a member, needless to say I do not have that info. So I e-mailed them my name as it appears on my credit card, told them to cease, desist & refund….. Hoping for the best.

You know what lack of capital letters, fractured syntax, and a certain lack of savvy about e-commerce reminds me of?  Oh, yeah, a significant portion of my customers.  (Even English teachers “let their hair down” when they are writing emails, sometimes.)  Unlike any significant portion of my customers, these folks are howling for blood.  And if you’re using SWREG, they are howling for your blood, because despite the fact that you are the little minnow and SWREG is the multi-million dollar corporation to the extent that anyone realizes you are in fact separate entities (and most don’t) the presence of SWREG’s website wrapped within a mere portion of your own makes it look like they’re working for you.  And, hey, with them getting a sliver of the transaction, that is what the relationship really is.

Which is the problem from SWREG’s point of view.  They can’t increase their cut of the transaction size, or you will flee to one of their competitors, or decide to go to e-junkie/Paypal.  You can get a customer to purchase from you multiple times to increase your revenue, but that is only an option for SWREG to the extent that you stay one of their vendors.  So they are constantly on the lookout for new revenue streams, and both aggressive cross-selling to your customers and selling them down the river to scumbuckets.com are apparently options on the table.

So, what to do about it?  Well, if you’re not a customer of SWREG, great.  Celebrate your good fortune… and give your e-commerce provider a jaundiced look and a quick assessment of whether they would ever stab your customers in the back.  If they would, make preparations for your inevitable separation as soon as that provider makes the decision that your future loyalty is worth less than the amount they can extract out of your customers today. 

I came very close to giving Google Checkout the boot once, on Earth Day.  They proposed to cross-sell my customers into a $10 carbon offset.  It wasn’t nearly this scummy — the carbon offset was clearly marketed as a separate item, it would have required another separate checkout process to buy, and of course the only reason you would actually click on a button saying Click Here To Buy a $10 carbon offset is if you wanted to actually buy an indulgence offset.  Google’s saving grace was that they realized this was going to be controversial and offered me an opt-out.  (It really should have been an opt-in.  I have no strong opinions either way on begging for alms soliciting charitable contributions but impair your customers’ experience to do it, not mine.  I don’t see any “Thanks for searching for flapjack recipes on Google.  While you’re here, interested in buying a carbon offset?” cluttering up your famously minimalist interface.)

And if you are a SWREG customer?  I think Tom Rath on the BoS boards said it best:

Now I need to spend the next few days alerting my customers of this con, apologizing profusely to those who found themselves roped into it, and write cheques to cover whatever expenses have been incurred by those foolish enough to trust my company’s judgment.

I don’t know what Tom Rath sells off the top of my head, but whatever it is, that paragraph makes me want to buy one on general principle.  Those are the words of a man you can trust.  That is the tone that we strive to strike as little honest fish in a stormy ocean filled with unscrupulous sharks trying to take a bite off of anyone doing business on the Internet. 

And SWREG?  Well, suffice it to say that the W in the name is looking like a dorsal fin to me at the moment.  Duh duh, duh duh, duh duh duh duh duh duh…

Quick Favor From Mac Users

If you are running Mac OS X 10.3.9, could you please run on over to http://www.bingocardcreator.com, download the free trial, and see if you are able to run it?  A user of mine is reporting a quirky Java error on that operating system but not on another OS X 10.4 box they have access to, and I’m trying to isolate whether it is their machine that has the issue or whether Bingo Card Creator has a hidden incompatibility with something on a particular version of OS X.

Happy Birthday, Bingo Card Creator

I launched Bingo Card Creator exactly a year ago today.  It has been a great year, and I succeeded wildly beyond my expectations.

Bingo Card Creator is currently being used by over a hundred paying customers (an extrapolation from how many paid versions are pinging me for updates every fortnight).  Over 270 folks purchased from me.  The overwhelming majority of them are happy with their purchase, and every last person who wasn’t got a refund delivered with a smile on the same day.

Bingo Card Creator has been used to teach a six year old to read, run nutritional lessons for old folks’ homes, do icebreakers at retreats for a half dozen Fortune 500 companies, teach English to adult learners in China, put a little more colour and a few more u’s in the writing of Aussie schoolkids, and been put to the paces by many, many educators.  My best estimate is that somewhere between 5,000 and 10,000 people played a game of bingo this year using a card printed on Bingo Card Creator.  (And I saved American educators upwards of $20,000 relative to buying bingo cards by the set.)

Sales for the first year were a hair under $6,500.  That wildly exceeds my original expectation/goal, which was about 10 sales a month (~$250).  Costs are somewhere in the $2,500 region — you can take a look at this post for a month by month breakdown.  My costs relative to sales have plunged over the last few months, largely a result of only having to pay startup costs once and the fact that I’ve finally gotten over the AdWords learning curve(s).  Without giving away my day job salary, suffice it to say that while my standard of living is identical my monthly retirement contribution is hundreds of dollars over what it used to be.  But the money was never my big reason for doing this.

In opening a company (OK: still haven’t filed that paperwork) I joined the quirky worldwide community of uISVs,  centered around the Business of Software forums and elsewhere.  I got a lot of good advice and, hopefully, managed to give a bit of it too.  The folks who I owe thank-yous to are too numerous to list here, but suffice it to say that drinks are on me should you ever find yourself blundering around central Japan.  Folks demonstrably appreciate real live sales numbers, small though they might be, and I’ve been contacted by three folks who said I inspired them to take the plunge.  What can I say: its a bit of work, a lot of fun, and beats spending your time on World of Warcraft.

As for this year, plans are to finish up finding a job/moving/etc, which is consuming most of my time at the moment, launch Kalzumeus eventually, and continue constant tweaks and improvements on Bingo Card Creator.  (I was tantalizing close to my $1,000 sales goal in June, which is almost disturbing since school is out for summer and my core market shouldn’t be buying now.  This makes me cautiously optimistic for sales in August, when the new term starts.)

A Happy Milestone

Since I started using e-junkie almost 9 months ago (has it been that long?), I have gotten three automated emails every time someone purchases from me:

1)  Copy of the payment receipt from Paypal or Google Checkout

2)  Copy of the IPN information, from e-junkie

3)  Copy of the customer’s registration email

That worked pretty well for a long time, and I always had a brief catch in my breath when I saw Thunderbird downloading “1/3 mails on the server”.  However, with the numbers of sales I’m getting this month (26 at last count on the 20th — keep in mind 30 is my best month ever), it was starting to get a little excessive.  Not that I mind every other email I received telling me that I had money, but it was getting harder to spot the mails which actually required action from the ones which were just for my reference.

So I turned off one of the three notifications.  If my sales go up about 25% more, I’ll be going down to one email per transaction.

Kalzumeus — The What, The Why, and a bit of The When

Picture this: you’re a young doctor, 32, recently married to your med school sweetheart.  Life is pretty hectic, what with being constantly tied to a beeper, carrying a cellphone so you and your wife can murmur sweet nothings in each others ears when not on call, and you having all the distractions of normal every day life.  Also, earlier this year you purchased a nice little house in the city to rent out to folks for some passive income, with eventual designs of using it to build up a little equity and maybe give something to the child you expect to be having one of these years, and then it hits you:

Being a landlord sucks.

Every first of the month you get to have even more thrown at your plate, and it is by and large busywork.  You have to check your mail to see if your renter sent you the check.  If they didn’t send you the check, you have to contact them fairly quickly to request that they send you the check, assess a late fee, field the phone call whining about the late fee, explain to the renter that just because their back door is a wee bit off its hinges that doesn’t mean they get to live rent-free, try to remember to call the handyman to fix that blasted door this week, get the check a few days late, drive to the bank, and wonder why on earth you took out a $200,000 mortgage to buy yourself a minimum wage job. 

There has to be a better way, you think.  Why can’t this be as easy as your wife’s hobby selling those Beanie Babies on eBay?  Deal with any questions or disputes by email, get an email from Paypal when the money arrives, no checks in the mail, no runs to the bank, no forgetting to mail the Beanie because there is a big announcement on your eBay dashboard on your computer saying “Hey, you haven’t mailed the Beanie yet”.

Kalzumeus makes being a landlord as easy as selling Beanies on eBay.

(Note: Kalzumeus is a codename and will eventually be the name of my LLC.  The actual product name is quite boring, was chosen mostly for SEO, and will be announced later when that website has some content on it and, ideally, a functioning demo.)

One of the nice things about Kalzumeus being a web app is that features can be added to it fairly easily.  At release Kalzumeus will support:

  • Landlords and renters logging into their accounts.
  • Landlords adding properties, residences, and renters to the system.
  • Landlords billing renters, with automatic repetition, in a very flexible fashion.
  • Billings for rent, parking fees, what have you.
  • Renters paying their bills online through Paypal.  All the landlord needs is a Paypal account, the computer handles the rest.  No messing with buttons.
  • Email notifications of rent due.
  • Automatic bill payment for most renters.  (My systems are more flexible for automatic rebillings than Paypal’s are.  I can, for example, bill someone on the 1st Monday and 3rd Thursday of every month.  I don’t know why you’d want to do that, but “1st and 3rd Friday”, for example, is a typical paycheck schedule and landlords like being able to bill people immediately after they get their paychecks.)
  • Roommates.  (This was a low priority feature, but it was free with an architectural decision, so it made it into the first release.)

What I eventually want to add:

  • More payment options for landlords to choose from.
  • Automatic paper dunning letters.
  • Expense/work order tracking.
  • Reports.
  • “Click this button to print out the stuff your accountant wants from you.”  (Depreciation calculation and all that jazz.)
  • Export to Quickbooks, CSV, etc.

Is this a big market?

There are fifteen million landlords in the United States, according to Intuit.  The most common number of properties owned is one.  (Cue the “If I could get 1% of that market…” song.  Now all I need is a venture capitalist and I’ll have all the ingridients for a funding round.)

Who are the competitors?

On the one hand, we have property management companies, which charge a figure anywhere between 6 and 10% to stand in for you in all or most interactions with tenants.  There are also services which will do ACH (Automated Clearing House) deductions for landlords, which are a way to automatically withdraw set amounts of money from someone’s bank account, for approximately $10-15 a month plus $2 per renter.  Some of these services also provide online reports, although the functionality is fairly limited.  Finally, there are many, many companies which offer “property management software”, which is basically integrated accounting packages set up for landlords.  One I have a lot of respect for is LandlordMax, run by a fellow uISV.  (Before anyone asks, I don’t see him and I as really being in the same niche.)

Why go into a market that crowded?

Because the vast majority of my competitors sell chainsaws and there are a lot of landlords who really need butter knives.  Much of the property management software is geared at professional property managers, including folks who have strong accounting backgrounds and are managing hundreds or thousands of units simultaneously.  I think there is a whole lot of overkill going on for folks who are at the “I’m not so much a landlord as I am a teacher who happens to own a house which I rent to people”  side of the market.  Additionally, the pricing models for many of the existing solutions totally ignore the needs of small landlords, probably because they are not nearly as lucrative as large landlords. 

Pricing Model

I am thinking of doing one month of free trial and then billing folks $X per month.  I have not decided on a final X yet, but am thinking $10 or $15 puts it in line with many of the successful small business web applications.  If folks want to prepay for a year I’ll give them two months free.  The wild card is Paypal costs, which for many of my customers are going to run at essentially 2.9% of their monthly rents.  That is a lot of money for just processing payments (comparable with running credit cards yourself, a heck of a lot more than using an ACH service).  At a $650 average rent in the US, that works out to about $19 in Paypal charges on top of whatever I charge.  I am cautiously optimistic that if I make it easy to use I can justify a price premium from some landlords over ACH payments, which are not exactly easy to set up (contracts need to be signed, faxed, etc), and am extraordinarily confident that for folks who are looking to accept credit cards I can do a bang-up job.

I am also thinking, eventually, of offering a separate $99 a month account type targetted at professionals (management companies and the like).  They’ll be able to create logins for the property owners, who can check the website at any time and see “Ooh, yay, I’m making money”.  That will require a bit of rearchitecturing so it is slightly down the road.

The Shoestring Factor

I have already booked most or all of the prelaunch costs.  While I don’t have my tab in front of me at the moment, they came to a little less than $250 last time I checked.  That includes a year worth of hosting with Textdrive prepayed.  (Just over $10 a month, even counting the setup fee.)  If my hosting plan is inadequate for keeping a Rails application running, which I have been hearing conflicting reports about, I’ll get one of their medium accelerators (basically, a slice of a server) for about $65 a month.  Currently, my break even number of customers is one.  If I end up buying the accelerator, that will put the break even number at between 5 and 7.  (Bingo Card Creator, by comparison, is profitable from the first customer every month to the last.)

Where is the end-game for this?  I don’t know.  My goal for the intermediate term is 300 (paying) customers, and I’m hoping to have say 80 to 100 by the end of the year.   (I generally like to set small and achievable goals and scale up from there.  My first goal for Bingo Card Creator was $200 a month in sales.  Hit that and kept going…  working on $1,000 a month now.)  As scary as this is to say, 300 paying customers would be enough for me to quit my dayjob.  (I love being a uISV.  If you’re doing some sort of advertising funded social networking site, you can have hundreds of thousands of users and still be losing money every month to your massive hosting and infrastructure costs.)

Marketing

Blog, SEO, and AdWords to start out, more as time permits.  I’ve been looking at the market for a couple of months and while “property management software” is an absolute bloodbath I am fairly confident that I can SEO very well for other queries, like “pay rent with credit cards”, “online rent collection”, and the like.  I don’t need or want to compete with the largest players on their own turf — for the moment I’ll be quite happily picking and choosing crumbs dropped from the table.

Demo / Ease of Use

I’m working at having a mostly full featured online demo for the software, part of my usual quest to get folks to the shiny bits as quickly as possible.  I also have no-hassle, no download, no credit card, “Give your email address and get started” account creation.  There are plenty of examples you can find of Web 2.0 companies who do Actual Business Processes without requiring 30 minutes of forms to get started.  I am practicing the most sincere form of flattery with regards to the design of my own signup process. 

In my timer tests (something I often did with Bingo Card Creator — time how long it takes from hitting the download free trial button to when the cards come off the printer), I can sign up and have automatic billing working for a renter in 90 seconds.  We’ll see if I can’t shave some more off of that when the interface is more complete and AJAXified.  For example, I want you to be able to do the most common types of rent (monthly on the 1st, monthly on the 1st and 15th, etc) with about two to three clicks while adding a renter.

Legal

I am not decided on whether I will have a lawyer draft the terms of use or not.  I’m leaning towards “not” — the application can’t kill anybody, and a quick glance around the world at my various competitors shows that companies with Serious Money On The Line are quite happy to just have generic “If you bill your renter for a gazillion dollars and get taken to court, that is Your Problem” disclaimers.  The privacy policy is already drawn up, and looks very similar to the Bingo Card Creator one: we use cookies to track X Y and Z, we don’t sell your information, we won’t spam you, any questions feel happy to ask.

So when will this be publicly released?

I will happily show this as soon as I can without embarassing myself.  Since it is currently black text on a white background with the default Rails stylesheets for errors and much navigation is still accomplished by manually keying in the proper URLs, the app is not quite ready yet.

At the moment, the business logic for the first shipping version is about 80% complete.  The billing system still has yet to be implemented, and I have yet to write the systems for sending reminder emails, etc.  The interface, on the other hand, is only about 15% complete — things link to the right pages most of the time, but I will have to redo most of the views so that they look nice and pretty in Multiflex-3.  I also want to hand-edit the Multiflex-3 WordPress theme so that clicking from the product blog to the product site is a totally seemless experience, which by necessity involves a bit of headache since WordPress is PHP, the product site is flat HTML, and the application is Ruby on Rails.  Yay for getting to tweak the same template three times.  (I might eventually make the static pages served by Rails, but for the time being I know that new Rails apps can be a bit tempermental and if I should cause the app to die I would like people to be able to access the front page and send me a letter about it.)

Of course, since I’m currently winding down my employment contract with the day job and actively searching for a new one, the schedule could get changed at any time.  That is another reason why I don’t want to have a site in front of potential customers until I can have reasonable assurances that I have time to act on things that potential customers tell me.

My Capsule Impressions of Ruby on Rails

How am I finding Rails?  Elegant, but not easy.  I will need to do a refactor or three over the codebase to standardize the way I do some things before I release.  The amount of existing code which can be leveraged for my project is pretty low but when it does exist its amazing.  (You should see the graph libraries.  Wow.)  On the other hand, the community is growing rapidly and as a result the average level of skill in the community (and hence on forums, etc) is not quite so high yet. 

Test driven development has proven to be a lot like going to the gym — I didn’t enjoy starting it but the results are easily visible at the annual physical.

Since my interface is not in anywhere close to its final form yet I haven’t been AJAXing everything in sight, but I have identified a few places where there are major, major wins for user experience using it.  I was also able to replace graphs generated on the server with graphs generated on the client (using a clever bit of Javascript whose name eludes me at the moment), which moves the performance of the application from “fast relative to my projected needs” to “stupidly fast relative to my projected needs”.

Stats in Pretty Pictures

Images may be truncated by WordPress.  Feel free to click them to see the whole thing.

I had been planning to post these on my first year anniversary but somebody asked for them early so here they are.  Same disclaimers as normally: these were prepared for a blog post, not the IRS, and I did not exactly go to the extra mile to ensure their accuracy.  (They understate my July to December expenses as reported to the IRS by about $80, which I think is an artifact of cash accounting for the IRS and accrual accounting for the blog posts I grabbed most of this info from.  For example, when I pay for 12 months of service in advance to the IRS that all gets expensed in that tax year but in my blog posts I break it out on a per-month basis.) 

Keep in mind that the Google tracking, despite being mechanized, still depends on me not borking the tracking code, which I used to do on a semi-regular basis.  That is the main reason I’m not showing conversions on the graphs here. 

Actual totals:

Sales: $6,333

Expenses: $1,720

Profits: $4,613

Visits: 63,429

OK, pretty picture time:

 Bingo Card Creator Year One Profits

 Visitors:

Visitor timeline for Bingo Card Creator

Both Slashdot and the Joel on Software mentions were of my blog, not of my product site, but they resulted in a few clickthroughs to the main site.  (Incidentally: the blog gets about twice as many hits as the product site.)  You’ll note that the dog that didn’t bark is “Why is Patrick not seeing a trough of visitors (and sales!) now that school is out for summer, much like he saw troughs at Christmas, Easter, and every single US public holiday?”  Thats a good question, and I’m mulling some potential answers, but we’ll know more about them in about 2 weeks.

Notes on December: I don’t have a blog post for stats in December so I guesstimated my expenses by hand with a cursory glance at my credit card statement and Paypal account.  The sales stats are accurate — thanks, e-junkie.  Again, you’re not the IRS, so please don’t audit me.  It is in the right ballpark if I take the number claimed on my schedule C and subtract out the months I do have exact numbers for, remembering that my quixotic accounting standard screws up that comparison a bit.

Notes on June: Its the 14th of June as I posted this, and I did the uberscientific “multiply sales and expenses by two” to estimate income for the month.  That was probably overly aggressive for both numbers.  Ask me in two weeks.

May 2007 Stats

Capsule summary: treading water with the end of the school year, but see my next post about how summer is being much better to me than I expected.  (I was expecting sales for June to be barely enough to cover my AdWords campaign.  They are already over half of May’s.  Traffic has gone up.  The explanation is probably going to be of interest to you… but my hands are aching so it won’t be given today.)

Sales: 22 (with 10 CDs — note that that e-junkie cart change made ALL the difference!)

Gross sales: ~$600

Expenses:

Paypal: ~$10

GoDaddy: $7

e-junkie: $0 (usually $5, but they tossed me the month free when a system glitch caused me to have to manually process 3 orders.) 

AdWords: $52

AdCenter: $11

CrazyEgg: $9

SwiftCD: $49

Total Expenses: $138

Total Profit: ~$452

 I’ll talk traffic trends next time.

Programming Productivity Up By 10%… Yowza

Direct AccessI have tried expressing my love for Direct Access before.  Really, its hard to describe until you’ve tried it.  However, Andrea was smart enough to include an automatic logging feature in the newest version, which demonstrates exactly how much time it saves you.  (Memo to self: scrape user accounts for Kalzumeus, generate similar ROI-proving eyecandy, and put at the top of the Upgrade Your Account screen.  Its brilliantly simple salesmanship.)  For me, that number is scary.  Lets focus on yesterday, shall we.  Here is a shot of Direct Access on my home computer, which was on yesterday from 7 PM when I got home to 2 AM.  Of that, 3 solid hours was programming time, after doing battle with SVN fruitlessly for far, far too long. 

During programming time, I’m typically opening folders and programs left, right, and center.  Copy this to there, grab the backup of that, nuke those sources, where the heck was my Rails API reference, need to open Thunderbird to retrieve my SVN password, that sort of thing.  Apparently I do this more commonly than I had thought:

Direct Access Stats

I generally estimate 20 seconds to accomplish any random opening from staring at my IDE window.  For example, to get to the Rails API, that would generally be Start -> Internet Explorer  -> Google (my home page) -> Rails API -> I’m Feeling Lucky.  (Why type as opposed to using my bookmark?  Faster, less requirement for right hand, gets autocomplete.)  Given the need to take my hands off the keyboard and the lingering pain in my right hand, thats a good twenty seconds.

Well, thats a bit shorter, isn’t it. 

rrrTAB (used to be railsTAB, but I found myself typing it a lot) gets me a command shell opened to my Rails application directory.  sshTAB gets me a Putty window set to automatically log into the server I’m most frequently using.  All the power of the command line and autocompletion… from anywhere.  Bwahaha.  You can keep your OS X, vim, and bash, I’m puttering around in a deliciously iconoclastic Windows XP… at Unix sysop speeds.

I also love the autotext for hammering out boilerplate code… that turns out to be a heck of a lot less useful in Ruby than it was in Java, though, since a) I write less boilerplate and b) I’m not sufficiently well versed in the boilerplate to have prepared it as a macro yet.  In Java, on the other hand,  I know I will have to do intconvertTAB again, writing out a try-catch block to surround a very prosaic String to int conversion. 

try {

replaceMe = Integer.parseInt(cursorStartsHereAfterIHitTab);

} catch (NumberFormatException e) {

// Handle if string was passed by user, safe to ignore if string came internally.

}

The third time I type the same freaking snippet out it goes in Direct Access with a memorable abbreviation.   I have twenty of them for Java now, and a few for Rails, mostly for migrations and to act as quick references for syntax. 

You wouldn’t think shaving a few seconds here and a few seconds there would really matter that much, but the stats don’t lie.  A 165 minute programming session was a 180 minute session purely thanks to Direct Access.  Not bad.  I really wish they hadn’t forced me to uninstall my copy at work — “Well, Patrick, you see, we have a new security policy…”  Suit yourself, boss.  I get paid regardless of whether I’m being productive or not at the day job.  When I’m the boss, heck, time spent clicking is time spent not doing more important things.

If you don’t have something like this… get it.  Really.  Its a no brainer. 

As usual, product placements on this blog are 100% uncompensated.  I like it, I use it, it saves me time and money, I blog about it.  I do not solicit, accept, or envision folks giving me money for anything other than the products I sell.

Spending Money, Incurring Headaches

Kalzumeus is getting to the point where I want to start periodic deployments to the Internets to test it (yes, yes, that DOES mean I’ll be able to announce it publicly, sometime this month if development doesn’t hit snags), so I went shopping for a hosting service.  I eventually settled on TextDrive, which appears to have a decent reputation for Ruby on Rails hosting.  $124 later I was the proud owner of a new “startup” hosting package for a year.  I’ll be spending another $120 or so later to get a certificate for the domain but for now I don’t have any data that needs https so its a waste.

Sidenote: Its a wonderful age we live in where you can buy 95% of the tools you need to run a business for less than $10 a month.  The founder of Textdrive, a guy named Jason who clearly has some chops in the provisioning enterprise class server deploments department, reckons you should budget 10% of sales for infrastructure.  So, for example, if you plan on getting $10,000 a month in sales your monthly server/colo fees/electricity/etc bill should be about $1,000.  This may well be true for larger installations, but I’m pretty sure you can get by on about $30~$50 a month for $10,000 in sales as a uISV with some care given to app selection.  I’ll break down the math for you some other day, after I have an app and benchmark numbers I can point you to, to demonstrate that I’m not shooting smoke out of my hindquarters.

Anyhow, yesterday was a comedy of errors.  These are 100% my doing — I bit off a lot more than I could chew with technologies I do not have a full conceptual understanding of yet.  Example: I spent three hours trying to manhandle my local SVN repository onto the server.  The textdrive docs got me set up with a new repository in 3 minutes, but actually importing the information to it was a constant battle with Netbeans.  I eventually lost my most recent work to corrupted settings (“What do you MEAN I only have 3 class files?!”) after twiddling stuff with text editors, and had to cleansweep my local copy of everything, then restore from the local repository.  Then I got out Cygwin (bless you, Cygwin), killed all the .svn directories, deleted and remade the remote repository, and imported the newly-checked-out-locally repository into the remote repository.  One more open of Netbeans later and I was done.  Blaaaaah.  On the plus side, both Kalzumeus and Bingo Card Creator now exist safely outside of my hard disk.

Incidentally: its far, far simpler to set up hosting with GoDaddy than it is with TextDrive.  The difference in the level of control you get for TextDrive is night and day though.  I’m eventually going to have both Apache and Lighttpd running on the server, Apache proxying everything and making sure the /blog/ folder goes to WordPress, with Lighttpd putting things to the Rails application.  Try that on Godaddy… if you dare.

Then, despite the fact that it was running rather late, I wanted to get some actual coding done rather than losing a night just to wrangling with tools.  Again, 100% due to my own negligence, I lost a lot of time debugging why a transaction wouldn’t work.  Well, OK, 98% to my own negligence.  You see, Rails takes an awful lot of syntatic shortcuts which are deeply meaningful but documented in, I kid you not, exactly one throw away line in The Book.  And, unfortunately, the emphasis on “create code whose intent is crystal clear” gets lost in some of these shortcuts.

Example: build vs new vs create.  One throwaway line will teach you that create actually creates the object in your database while build/new just create it in memory, a sort of Key Distinction when you’re deciding “What do I need to guard with a transaction block?”  And, for more fun, build and new are interchangeable… except when they’re not.

@user = User.build #OK

@user = User.new #OK, same as above

@new_friend = @user.friends.build #OK

@new_friend = @user.friends.new # No new method on friends!  Whoops!

@new_friend = @users.friends.create # Works, but note different database behavior!

Anyhow, I will soon be establishing a blog at kalzumeus.com (you could visit there now, but its a fairly boring “coming soon” page that was autogenerated).  That will be getting most of my future programming/business oriented and professional development posts.  This way I can keep the blog for the actual product site focused on the customers rather than on myself or an interest the customers don’t share (“helping uISVS make money”).  I won’t be abandoning this blog in the near future, though.