Registration Systems For RB

Product registration and licensing systems is a fairly common call for help on the REALbasic forums.  I know I’ve rolled my own registration system and used various commercial solutions over the years.  In fact, we came up with a solution that works with desktop apps using a licensing system meant for servers.  That solution has worked well, but time goes on and what was good for years might not be such a great idea now.  Software grows old and stale and new solutions are born.

To me it seems that there are a couple of issues to deal with.  The first is keeping casual piracy down to a minimum.  I have no doubt that someone determined enough can pirate any piece of software.  It’s just a fact of life-get over it.  This means that if someone pays for the software they can’t post the registration code and have it go all over the internet.  Or if they do, it quickly gets squashed and it’s no longer valid.  Another consideration is that I don’t want to piss off my good customers because my licensing scheme is so draconian (I’m looking at you Microsoft).

The second part of the equation is getting paid.  People want to use PayPal or their credit card (and occasionally checks via snail mail) but setting some of that up on your own is a pain.  PayPal is probably the easiest but I know there are segments of the population that refuse to use it.  Plus I want my money sooner rather than later.  If someone else is handling my money will I have a waiting period or minimum balance before I get to see the money?  Is it an automatic transfer or is it via check?

The third part of the equation is administration of the system.  How easy/hard is it to add coupon codes?  Can I get detailed sales reports?  How easy is it to issue to refunds?  Can I email customers with news?  And do those customers have an easy way to opt-out of future emails?  Can customers retrieve their licenses without manual intervention?

The fourth part is how easy/hard is it to integrate into my application?  Do I have to come up with my own registration code algorithm?  How do I convert existing customers over to the new system?  Does it work on Mac, Windows and Linux?

So I want it good, reliable, cheap and fast!  No pressure there!  😉

Kagi and eSellerate seem to be two fairly common solutions.  Both take a chunk of money from the sale price and until I saw the Apple app store I thought their commission was a little high.  Perhaps it’s worth the hassles leaving all of the server details to someone else (after having dealt with server issues in the past six months it might be worth it!)

FWIW, I used Kagi several years ago and was not very impressed with their responsiveness to support issues.  I also found their interface for making a webstore to be very clunky.  Hopefully they’ve changed, and if so, I’d love to hear about it.

What are you using for registration systems?  Do you like it?  Was it easy to integrate into your application?  Has it helped income or hurt it?  What sort of problems have you had?

Yeah, Right. You Can Do It

I ran across this post today:  http://blog.bitquabit.com/2009/07/01/one-which-i-call-out-hacker-news/ The basic story is that the author is refuting the claim that StackOverflow.com could be replicated “easily”.

I think this is an awesome post because it’s a warning to others and reminder to myself that everything is not as easy as it seems.  Often we look at an application and say, “I could do that.”  Yes, you could.  Without a doubt.

Here’s my advice though:  Take your estimate of weeks and make it months and turn months into years and you’ll probably be closer to the truth.  Even copying user interface and data structures verbatim I think most people would still have a hard time replicating an existing application quickly.

One project I worked on was a QuickBooks-like accounting application.  On a four person team.  Five days a week.  For FIVE YEARS!  And we had QuickBooks as the blueprint, if you will, for the accounting side of the application.  Guess what?  Even though I’ve moved on they’re STILL adding to and modifying the accounting engine.  QuickBooks is a moving target and I wish my old teammates luck in striving for it.

Every now and then someone gets a hair up their rear end and brag that THEY could do REALbasic better than REAL Software (because some bug has really pissed them off).  It’s quite possible that someone out there is working on an awesome RB clone and someday release it.  But don’t expect it anytime soon.

The same goes with claims of “I could easily make the RB IDE do this or that!”  If it was easy no doubt RS would already have done it.  Let’s face it, software is often a case of the mistakes of the father now make our lives a living nightmare.  This is not to knock our forefather developers just that what seemed like the best way five or ten years ago is woefully inadequate in today’s terms and to make it do ‘x’ (which seems easy) isn’t because the infrastructure isn’t there to do it.  So the whole thing has to be redone and done so you don’t break backwards compatibility.

Again, sorry for the blog about another persons blog.  I hope you find these discussions helpful and thought provoking.  Thoughts?

REALbasic 2009 Release 3

RS released RB 2009 R3 today.  I won’t go into any big detail here as I wrote a fairly lengthy review of the changes over on ARBP.  I will hit on one change that I’m particular happy about.

Back in May is posted about the stupid error message and problem that occurs when you load a version control project with missing files.  I am happy to report that it’s much better now.  The IDE will ask for the missing file and if you click cancel it will load as much of the project as possible.  Before it would just stop loading the project and you’d get a mysterious File Error 0 message.  Now you get this error message:

MissingFiles

This is great but in one project due to file corruption issues I clicked cancel over 25+ times.  So at this point this dialog isn’t exceptionally helpful because it tells me something bad has happened it just doesn’t give me a clue as to which ones were bad unless I happened to write every one of them down at the time the dialog was shown.

What would be more helpful is having a log file of missing files generated or list the files in System.DebugLog.  Either way it would more helpful.  Ideally I’d love to have the option to have it stop asking for the missing files and just create the log file but I understand that the IDE might have to undergo some significant changes to allow that.

And before anyone says it, of course it’s my fault, if the files weren’t corrupt/missing to begin with I wouldn’t have this issue.  Stuff happens – get over it.  Regardless, this one improvement will make my life a little saner.

Is there one fix/new feature that is really good news or bad news for you?  What do you think of the EditField deprecation and subsequent replacement with TextField and TextArea controls?

It’s Your Party (i.e. GPL Licensing)

Special thanks for John Gruber over at Daring Fireball for finding the post at http://www.red-sweater.com/blog/825/getting-pretty-lonely

I don’t know about you, but I’ve had serious concerns (like most of the REALbasic community) about using MySQL database servers because the GPL-style licensing makes me nervous.  I’d love to use it but if it means I’m on the hook for licensing fees and/or have to release my source code of my apps that use I’d much rather not bother with it.  ARBP did a survey last fall that pretty much showed MySQL usage down 20% and PostgreSQL (which has very liberal licensing) up about the same amount.

Any way you slice it, to us mere mortals the GPL is vague at best.  We’re programmers for heaven’s sake!  We don’t write vague code because vague code doesn’t work.  Be explicit like the MIT license – it’s clear and concise and is far from ambiguous.  I think the GPL should be rewritten to make it explicitly clear.

I didn’t mean to start a whole blog post about someone else’s blog post but I know that there are a lot of questions about GPL and what it means to the developer.  What are your thoughts on the GPL?

Why Pay Someone to Develop Software?

As a software consultant I get asked by non-software developers why do people  have me write custom software when there are easy-to-use tools out there, like Microsoft Access, FileMaker, Visual Basic, and REALbasic?  It’s a tricky question to answer because they aren’t software developers nor or they power users.  They use their computers to write documents, email and surf the web – not exactly the rocket science apps of the world.  So I came up with an analogy that people understand.

This comes from the world of ‘Do It Yourself Home Repair’.  In my younger days (you can read that as not having a lot of money) I would always take a stab at doing all those little projects that come with owning a house.  Faucet needs replacing?  No problem!  I’d go size it up as best as I could, go to the hardware store and pick up what I thought were the parts and tools I needed.

Some of you know where this is going.  On the second trip to the hardware store I’d get the parts I REALLY needed to do the job and on the third trip to the hardware store I’d pick up the things I had no clue I needed to begin with (or possibly to fix what I broke in the process of fixing the original problem).  The final trip to the hardware store is to return all the unused parts.  And all that is assuming I don’t find a leak in the next day or two (or two weeks later).

Did I get the job done?  Sure but it took three trips to the hardware store and an entire day to do it.  I called a plumber to do the same thing recently and they were in and out in 30 minutes and if I’m not happy or something doesn’t work right they come back out (typically for free because I’ve already paid).  My job isn’t too much different than the plumber.

When people come to me for a project I can guess how much work is going to go into it a project before I’m done reading their requirements document (if they have one).  I’ve worked on three accounting applications and the ones that don’t like their current accounting app get excited about that.  I tell them that unless they’re willing to spend a boatload of money and wait a year it won’t happen.  Applications of that complexity are huge, hairy monsters that take time to develop and even then there are yearly (and sometimes monthly) updates (especially if you want payroll taxes calculated automatically).

Sometimes it’s a shame that there are easy-to-use products like FileMaker, MS Access and to a lesser extent Visual Basic and REALbasic.  FileMaker and Access are  powerful tools that let mere mortals do some complex things with a database.  Just like me having a set of minimal tools doesn’t make me a plumber these tools give the user the false impression that they’re a full-fledged database developer when in reality they know how to use some tools.  That’s not to put these folks down because they’ve done some really cool and complex work.

The plumber has a truck full of fittings and miscellaneous parts.  He or she also has a set of specialized tools to aid them in their work and have years of training.  Likewise, software developers have  specialized tools to help us as well and we have years worth of miscellaneous code, controls, libraries that we’ve learned to use.  And perhaps most of all, the software developer knows how to use the tools and parts together.

So sure, you could do your software project yourself and you’ll learn how to do preferences, file I/O, database operations, error handling, licensing and registration, automatic updates, custom controls, and a million other little things.  Software developers already know how to do that.  In the long run, how much is your time (and frustration) worth?

Thoughts?  Did I use the best analogy?  What other benefits are there to having a pro write your software for you?  Do you have any drawbacks?

REALbasic Project Requests up, Up, UP!

I don’t know if you’ve noticed this or not, but requests for quotes for REALbasic projects has been through the roof the past couple of weeks.  Between the REALbasic Developer Network (i.e. the Find a Consultant web page) and the ARBP Find a Developer web page it sure has been busy.  I can only find one “help me learn REALbasic” post in the past month or so.  This is a good thing since there used to be a bunch of them.

I don’t know if  RS marketing efforts are leading to these requests or if the ever-increasing Macintosh presense in the business world is making more people want cross-platform applications but something seems to have changed.  (Or it’s a combination of everything!)  Of course there’s nothing to say if the requests dry up in the next month or so.  Only time will tell.

I find it interesting that a lot of the recent projects are converting from either FileMaker or 4D.  RB can make a nice database application (assuming you know what you’re doing).  RS is always looking to enhance the user experience and I encourage RS to enhance their database tools.  I, however, do not want them to become another FileMaker or 4D because a generic application environment can do things better than a database-centric application, in my opinion.  Likewise there are things that FileMaker, 4D and MS Access do better than a generic application environment like RB.  It depends upon the requirements, in the long run.

Since I help run ARBP you can take this criticism with a grain of salt.  One of my biggest beefs with the RS developer program is that it’s simply a forwarded email.  If you signed up today you’d miss everything from last week (if you did sign up I’d certainly ask for all recent posts since $1k is nice chunk of change).  With ARBP we keep them around for a while (which is a problem all by itself that I’m trying to correct).  Another point is there isn’t a whole lot of information in the posts.  A contact information (name, email, phone) and a brief description of the project.  It would be nice to get more information.  What platforms?  Is it an existing project?  Is it a conversion project?  From what language?  Is it commercial or internal software?  I could probably continue on what I’d like to see, but I’d be repeating myself.

As a consultant, are you busy?  Better yet, are you as busy as you’d like to be?  Have you seen any trends in the past six months?

REALbasic Developer Conference?

ARBP has new survey available asking about the interest level in a REALbasic Developer Conference.  The survey is here.

There are no details on the conference at this point in time.  We are simply getting a feel for what people are thinking.

Here’s what I will share:

1)  This is NOT a Real Software sponsored event (though I suppose they could be a sponsor)

2) Attendance will most likely be limited (the smaller the cheaper it is but some of it depends upon the response)

3) We’re aiming for a weekend event so as not to disrupt work for too many folks (since we know a lot of RB professionals are sole proprietors)

So please take the survey and if you have other ideas and suggestions I’d love to hear from you in the comments section!

Do You Have a Job or Do You Run a Business?

It’s been an interesting six weeks as our kitchen has been remodeled.  Thankfully we’re within days of getting our kitchen back and can finally do some hosting.  The person doing the remodeling has done an awesome job and we’ve had many discussions on being in business.  It’s funny because our discussions mirror what I have with software developers that have their own business.  I suspect that most business owners have the same sorts of problems.

One topic that comes up over and over again is pricing.  Our remodeler gave up trying to compete solely on price long ago because there’s always someone new to the profession that wants to get their foot in the door.  Either that or they really have no idea what their time is worth.  Don’t forget that you should always be aware of what your real costs are because whatever your hourly rate is it should take into account tools and equipment, all forms of taxes, training time, vacation time, sick time, insurance,  and your retirement.  Also you need to plan on NOT having work for a period of time.  All of these factors increase your rate.

The question of having or not having employees seems to be a tricky one.  I’ve always maintained that I want employees smarter than me (depending on who you ask that might not be hard, but I digress….) because I don’t want to babysit and have to explain everything and make all the decisions.  In fact, I’d like to learn a few things from my employees.  The argument can be made that I’m training my potential competitors and that may be true but so far that has not happened and I refuse to live in fear of that.

I’ve been in business long enough to realize that it takes a special person to own and run a business.  There is no day off and you just don’t stop thinking about work at 5:00 PM and restart thinking about it at 8:00 AM the next day or on Monday.  It just doesn’t work that way and anyone who’s going to start their own business based on that belief should just stop right now.  Sure I have the flexibility to go to the gym at 1 in the afternoon, but does that make up for answering tech support emails at 11:30 at night?  Only you can make the determination as a business owner.

Do you have a plan for your business or are you ‘going with the flow’?  I look at it this way:  Do you have a job or do you run a business?  A job is something you go to every day to pay the bills.  A business is something that you manage and plan on growing into something bigger than it is right now.  So whatever plans you have, write them down.  Once you right them down you can start acting on them.

What are your plans for 6 months from now?  A year?  Do you plan on hiring any additional staff?  Do you have plans for new products or updates to existing ones?

These are all questions you need to ask yourself when you’re managing your business.  If you’re not, you might just have a job.

REALbasic and Cocoa Ruminations

There are hints from posters in the RB forums that they think that when Real Software releases REALbasic with Cocoa support that everything will be awesome and that it will be the second coming of sliced bread.  I hate to burst their bubble.

In their June newsletter, Real Software said that Cocoa was taking longer than they anticipated and would happen sometime this summer.  I read this as “not happening in R3.”

Before you get your panties in wad, the switchover from Carbon to Cocoa is ugly.  It’s not simple nor straightforward.  I predict that it will take at minimum two releases before it’s really usable and perhaps three before you can really release apps with it.  I say this not as someone who’s trying to bag on the engineers doing the work, I say this because it’s that big of a deal.

If RS only had to deal with Macintosh OS X it would be easier.  In fact, it would probably already be done.  However, since REALbasic is all about cross-platform, anything that’s changing for Cocoa will also affect Windows and Linux applications because all controls for Cocoa need to be updated so it’s a seamless as possible for those platforms.

Real Software is correctly taking their time with Cocoa support because it needs to be done correctly.  If not, we might as well start looking for another development platform.  It’s worth it for them to not rush Cocoa support and to get it done properly so that when we finally start using it it ‘just works’.  That still means that we (the developers using it) will find many, many issues that they’ll have to fix, tweak, and modify.

So be patient and be understanding.  RS has been planning for this transition for years now.  Will it be painful?  Probably.  Will there be outrage and indignation from certain segments of the community?  Count on it.  Will 3rd party controls, plugins and classes break?  Absolutely.  Will Cocoa be worth the wait?  I have no doubt because Apple has said that Carbon will go away.  And that you can take to the bank.