Keyhut or DHPOS Cash register is a free lightweight Point-of-Sale solution that we reviewed before. It's a very popular solution that runs cash registers in hundreds of thousands of shops around the world.
Here is an interview with Its creator "Dale Harris" about how everything started, He generously answered all of our questions, and we really enjoyed reading his experience and going through his informative answers.
Dale Harris: I am a 70 year old male that has been retired for the last 3.5 years. My wife will retire in 1.5 years and while my daughter still lives at home she also works. This means that I have my days free to do whatever. Although since I am home, and the women are at work, I do perform about an hour of chores daily.
That said I have found that many relatives and friends feel that once I retired that I am now available at least 8 hours a day to do things for them. (I should have retired in secret.) While this is mostly the usual things like running errands, baby sitting, shopping, etc. I was a locksmith for almost 50 years and I have a shop at my home. So I also pickup about 5 locksmithing jobs a month and do home repairs involving carpentry, electrical, plumbing, etc. I also volunteer for the Six Corners Association and build carnival games for kid’s events. I often say that I wish I could go back to the key shop so that I could get some rest.
So while that all sounds like a lot and does keep me busy it is not every day and not usually all day when I do those things. This does leave me with more than enough time to support my POS program when needed.
And occasionally I find myself with nothing to do and that is the time I can actually do some coding on the program itself.
Dale Harris: Back in 1977 I had been doing the paperwork at the key shop on Saturdays after hours using a pencil and a calculator. It would take an hour or so to do this. At that time there were commercials on the radio and TV about a new gadget called a “Personal Computer” and I thought that getting one of them would greatly improve my life or at least that part of my life on Saturday nights.
So I bopped over to the local Radio Shack to scope out the concept. The deal was that I could purchase a computer of my very own that would do anything I wanted it to do as long as I wrote the programs to make it do those things. Yep, in those days you got a computer, (TRS-80) an operating system (TRS-DOS), a language program (BASIC), and that was it, you were now on your own, good luck. So I purchased the BASIC manual and took it home and studied it for a week at which point I said to myself, “I got this”, little did I know what I had gotten myself into.
So I sat myself down at the computer and after a month I had written the most miserable, amateur, pathetic program that the world had ever seen up to that time. But it worked. I was insufferably pleased with myself and I had had more fun than I could handle.
After that there was no stopping me. Since my wife is a teacher I wrote several educational programs plus a few games and more stuff for the key shop. With the help of a few magazines and one class in BASIC at a community college my programming skills improved.
But mostly my skills came from practice and bugs. If you construct a bug into a program that takes you hours or days to squish that is something that you will always remember and you will not do again. That makes subsequent programs much quicker and easier to code.
But mostly this was a hobby meaning that I had to spend minimal money, time, and resources on it. So while new and improved languages came out, that would require purchasing the language and in effect starting over. So I just stuck with BASIC since I could make it do just about anything I wanted it to do.
I know that the previous paragraph may appall many of you reading this in that I do not keep up with the latest and greatest in programming languages and I am fine with that. I do this as a hobby to have fun, not to earn a living. An additional bonus is that lots of people get a pretty good POS package for free. I believe that makes everyone a winner.
Dale Harris: Over the years that I worked at the key shop the company I worked for had me use many different cash registers / POS systems. From about 1988 to 1997 the one I had to use was PC based and was written in the same language that I then currently used, QuickBASIC 4.5. I loved it! It did everything I ever wanted including giving me all the sales and merchandise information I needed at the end of the week.
In 1997 they replaced that with a new POS machine which gave all the information to the host store but nothing to me, I could not even get the sales for the day. I hated it.
After several months of using the new POS system I found myself with some spare time so I decided to see if I could replicate the POS program that I loved just for fun and after about 6 months of sporadic effort I had finished about 75% of it and went off to do different things.
In the summer of 2001 I got bored and I picked up the cash register program again and decided to see if I could finish it. Only this time I decided to make it a generic program that would work in any store as opposed to the old one that was specific to the type of “concession” store that the key shop was. So I thought about it and also did some research and came up with a feature set that seemed to me to be fairly generic.
So the answer to how long it took to write Version 1.00 I would say it was 9 months but on some of those days I did nothing while on other days I would put in more than 10 hours working on it.
Then I uploaded it to my website and I thought that was it, I was done. (BTW, Version 1.00 is still available for download on the site.)
Within a week I started getting emails from just about everywhere. They liked the program but it was not enough. For them it was unusable unless I added some new features or expanded some of the existing features. So I did. The current version is almost unrecognizable from 1.00. And I had a lot of fun doing it.
While at the key shop I also came up with the concept of a “mobile” key shop which was actually a cart on wheels. Because it was set up outside it could not use the networked POS system. This meant that I was able to use my POS program in the cart. So I was not only the program’s creator but also a user. I am sure that not many other POS programmers also use their program to ring up thousands of transactions every year. This allowed me to identify many annoying things in the program to get it to work smoother.
A bonus question I often get asked is “Why is it called Keyhut?” Actually I call it “Cash Register” and that is the name that comes up on the splash screen when you boot up the program. However when I was still running the key shop it needed a website so I created the domain KEYHUT.COM. When I needed a place to upload the POS and other programs I carved out a corner of KEYHUT.COM for that. Since the key shop closed the domain now holds only my programming efforts. So to many users “Cash Register” wasn’t a real name and since the site was called “Keyhut” they started calling it that.
Dale Harris: While it is impossible for me to come up with an accurate count of users I do know that it averages 50 downloads per day from my site alone. Over a span of 19 years that would be over 600,000 downloads. Add more from other download sites and people trading copies with friends and the fact that in many stores it is networked on multiple registers, that is a LOT of computers running the program even if you factor in folks that either could not use it, didn’t like it, or no longer use it. So I would estimate that the numbers of computers running the program world-wide would be several hundred thousand. This means that every second of every day, 24 hours a day, that someone, somewhere is pressing [+] on my program to total up a sale.
This is completely unexpected and to me, and very cool. When I first uploaded it my expectations where that maybe 50 people in the USA might download and use it. I was slightly off.
Below are some photos that users have sent to me with my POS program running in their stores.
Dale Harris: I have found that the best way to provide software support is for users not to need support. This is why the program itself is filled with instructions and descriptions, especially in the part of the program where you can setup how the program works for you and its functions. In addition there is a 160 page manual that can either be downloaded as a PDF file or read online. The online version can be displayed translated by Google into dozens of languages.
The manual is very important and goes into great detail on everything the program can do. In fact for many features the manual section was written before I coded the feature and occasionally the manual entry took me longer to write than to code the feature.
The website itself also provides support. A POS system has many parts in addition to the actual POS software. It has computers, printers, scanners, customer displays, cash drawers, etc., and users can purchase them from any manufacturer they want even though they all work differently. So my site has pages telling you how to hook all of that up, or at least it tries to.
The site also discusses general POS topics like finding a service provider to process credit / debit transactions, currency exchange rates, etc.
Almost every night from 8:00 to 10:00 I am in a chat room that is dedicated to support my POS software. also have an active Facebook page for the program that I update as needed or just post random things as the main difficulty with the chatroom and Facebook page is the lack of users with problems.
So with all that, while I may have 350 downloads a week I only get about a dozen requests a week for support either from the facebook page or email.
Most requests for support are covered in either the manual or website so it is just a matter of giving them a link to exactly the information they need along with some encouraging words. If I get help requests for the same issue from multiple users and the answer is not in the manual I will add it there.
That leaves only a few requests per week from people that have real issues. In some cases it is just that they cannot understand the instructions or want to know if the program will do something but are intimidated by a 160 page manual. In the first case I would just do some handholding and probably trade screen captures back and forth. In the second case just tell them that, Yes, the program does that, and give them the link with maybe some specific details tossed in.
Finally there are the real problems. These usually involve specific hardware / operating systems, crashed drives, they want the program to do something unique that no one has ever ask for before, interfacing with other software like Excel, or who knows what? This may occur once or twice a week.
Fortunately since my entire support staff (just me) wrote every single line of code in the program, I know what it can do and since it is the “Swiss army knife” of POS software I can usually find some way of getting the program to do what they want. These problems can take from a few minutes to a few hours to solve. In very few cases it may be a couple of days.
Fortunately I am retired so I can spend as much time as needed to solve problems. And since I am old I cannot sleep through the night and am often on-line at 2:00 am which is useful for users from the other side of the Earth, particularly Indonesia which currently downloads more copies of the program than any other country.
But basically my user support philosophy is to be nice and to always remember that while the problem may be stupid the user is not.
Dale Harris: The main program file of the POS program (POS.EXE) has reached its memory limit. This is the file you use to actually ring up sales. Other program files that do other things like displaying kitchen sales, remote viewing of sales, customer displays, etc, are still below the limit. So as far a ringing up sale that is done in the current version as far as new features but I can and do add new things elsewhere.
However I am currently porting the program to QB64 which will not have a memory limit. That is going really slowly but when done I can add new features as I wish.
Dale Harris: That depends on what you mean by “worth it.” If we are talking money, then no. With 18,000 downloads per year my income from donations and AdSense clicks is usually $100 to $200 per year. My users are looking for free software and that is just what they are going to get. On the other hand I have no worries of anyone stealing or pirating the program. It is hard to steal free stuff. And my expenses are minimal and mostly what I need for other things anyway, like owning a computer. I sleep well at night.
However I find it to be a huge ego boost that so many people use my software, like it, and I like helping people. So for me it is “worth it.”
Dale Harris: This ties in with the previous answer. Donations are minimal. There is not enough money coming in here to support anything. All that I can suggest is that you tie in your free software with something that will generate income. For example broadcast TV gives away programming to viewers so that they can sell commercials to advertisers. Similarly Facebook is free, but with ads. Printers are almost free to make you purchase ink.
I do this for the love of it. I never had any intention of making money from it and so far that has worked out perfectly.
Dale Harris: You are greatly appreciated. Over the years your suggestions, requests, and even demands have allowed me to have buckets of fun while improving the software. Any donations I might receive are a special bonus.
I am proud that you like the program and that it is useful to you.
You can add your link to this article by sponsoring it.
Here how to sponsor this post Sponsorship program
A physician with programming skills, Linux user since late 1990s, Open source supporter. Coding with Python, NodeJS (Meteor, VueJS, Express, D3, PhantomJS), SmallTalk & R language.