Anti Spam Systems are Annoying

Recently I’ve had a number of customers contact me for support and when my automated system sent them confirmation, I received back a message that said I had to click a link (a challenge/response system). I have a strong objection to these systems (such as the one from SpamArrest) as they put the burden on me even though I didn’t initiate the contact. After clicking the click, these systems now require me to enter a code seen in a graphic which wastes more of my time. In addition, these systems block legitimate email, such as when ordering stuff, signing up for newsletters, etc. Most people won’t remember to white list every site they want to receive email from, so they’ll miss email and get mad when they don’t receive it. I tried a challenge/response system using procmail back in 1996 or 1997 and found that while it did reduce spam, it also almost caused me to lose important email from someone. Personally I’ve found that dspam is a quite effective, non-intrusive, system. When it catches spam, it quarantines it and then I look through the quarantine periodically.

Please people, stop using these stupid systems; they only cause you to lose mail and annoy me to no end. I’ve now put big warnings on my website that says I won’t click on the links. While you might say that it isn’t hard to click on a link, it is extremely annoying and I’m not going to play the game. My anti-spam system, that I’ve been using for about 2 years, I think, catches 95% of the spam that I get.

I don’t play well with others

For years I’ve known that I sometimes don’t work well with others; this wouldn’t be much of a probably if it was every now and again, but for me it is something I have to work on all the time. I was thinking about this the other day and figured out when this started happening. It was my senior year in college when I had an internship and had to work with a QA person. This QA person had no clue about consumer software and if it didn’t work right for him, it wouldn’t pass. The problem with this is that he was testing from a lab where he had to dial a 9 to get an outside line where our product was targeted at the home user that just had to dial a number (the product setup a dial up networking account). So we kept having to write code to get QA to pass it. This annoyed me to no end because this person just didn’t seem competent to me and actually hindered the product (he wasn’t the only person that hindered it; whoever setup the deal did some poor negotiating). This wasn’t my last time having to write code to get QA to get off my back.

I was OK for awhile as I dealt with people that I thought were competent, but whenever I ran into someone that I didn’t think was competent, things got messy. I won’t say that I’m a genius (OK, maybe I am :-)), but I’m able to think through problems very quickly and when people can’t keep up or don’t come to a conclusion as quickly as I do, I get frustrated and it makes me look like I’m not a team player. In addition, I have a very good memory (knock on wood), so I recall conversations, email messages, web sites I visited, etc. So if someone asks me a question that I know has been answered already and they received a copy of the answer, I’m very quick to jump on him. If I don’t recall the answer or don’t know the answer, I know how to quickly find the answer; something that whoever asked the question should be able to do, in most cases. The Internet is a very powerful tool if you know how to use it.

To make matters worse, I believe that every engineering project should make money (I basically learned this in college; no sense investing resources in something that is dead from the start). This point got me into trouble as well as I can’t recall the number of projects I’ve been on where from the get go, management knew the project wouldn’t make money, but continued to invest time and money into it for years.

This problem has delayed a promotion for me and many times made me want to get up and leave what I’m doing. It’s a good thing I work for myself now, otherwise, I’m sure my boss would have fired me a long time ago! While I don’t think I’ll ever overcome this issue, I’m always working on it. I like working with the best of the best and unfortunately I don’t always have that option.

The nice thing about writing my own software is that I only have one person to blame and that’s me. I try to be as courteous as possible to my customers, but frankly, some people are just too clueless to use my software even if my current products are easy enough for my parents to use (my parents aren’t dumb, but sometimes aren’t the most computer savvy). Some customers really try my patience and in the end, sometimes they are right, but in many cases I feel like a broken record.

Testing out Camino

For the last few days, I’ve been playing with Camino as my default web browser. For my new help system, it has some components that rely on Firefox (for editing knowledgebase articles), so I wanted to give Firefox a try. Unfortunately Firefox doesn’t look like a Mac application. Camino is supposed to be a Mac-ified version of Firefox, so I decided to give it a try. While it’s better than Firefox in terms of being a Mac application, it still has some weird behaviors. It appears to be faster than Safari and seems to be functioning well. I imported my bookmarks and since I’m using 1Passwd for storing passwords to websites, the transition was easy. One bug that is kind of annoying is there are 2 checkboxes for Passwords; “Allow saving in the Keychain” and “Auto fill passwords in web forms”. Unfortunately they don’t work properly. With 1Password, I fill in my passwords with it so I turned off Auto fill passwords in Safari and now Camino. In Safari, the HTTP Authentication passwords still got filled in, but web forms didn’t get filled in. Camino, however, requires that “Auto fill passwords in web forms” be turned on to fill in web forms as well as HTTP Authentication passwords.

I should probably just download the source and fix it, but the last time I touched anything related to Mozilla, it made my head spin and I found some source I had written when I was at Qualcomm that was used without retaining the copyright message (the original source I wrote is still available).

The jury is still out on if I’ll keep using Camino, but the speed and better support for editing in Cerberus and my blog (both use TinyMCE). We’ll see.

New technical support system

This week, I installed (actually I had someone else install it as he had experience doing it and it only took him 30 minutes) a new technical support system for ReceiptWallet and DocumentWallet. I decided that I needed a more dynamic way to update my FAQ and better handle technical support inquiries as many of them are the same types of questions. For the last few weeks, one of my clients has been evaluating a new CRM system as it has outgrown its current system. I’ve been following along to see what would work for me and nothing that was being evaluated met my needs. So, I started looking at its current system, Cerberus, and found that it actually could work for me. They have a free version which I had installed and for now, it seems to meet my needs. If I need more, the $200 fee for small businesses is pretty reasonable in my opinion. So, check out my support site and see how the end user portion works. The backend that I use to respond to support tickets also seems to be working well. There is one bug in the user interface that I’ve been unable to fix (source is included), but that’s minor.

I hope to grow into this help system and have enough sales to bring someone else in to answer support inquiries. I’ll be ready for it, when (not if) the time comes!

Fringe benefits?

The other day there was an article in our local paper about how Google has setup a transportation system to shuttle some of its employees to and from work. In addition, they provide free chef cooked meals, doctor checkups, etc.. While this sounds like a great idea, the article clearly quoted a Google employee as saying that these perks allow google to get a few extra hours a day out of each employee. So instead of employees working 8 hour days, these “perks” make them work 10-12 hour days. Hmmm…seems to me that they should pay employees more, but these perks probably cost less than paying their employees more. Google contact me a few weeks ago about a job in Colorado. Leave San Diego? For chef prepared meals (I’m not sure if the non Silicon Valley offices get the same perks)? I think I’ll stick where I am. 8 hour work days (OK a few more as I’m self employed) as all I can handle.

My first reseller!

I’ve signed up my first reseller for ReceiptWallet and DocumentWallet. DataViz is now selling the products on their website. Already (in its first day) this has driven at least a few people to my products that would never have otherwise seen them. I hope that this works out well and doesn’t cannibalize my direct sales.

Failing the first test to become one of my customers

Just when I thought that ReceiptWallet and DocumentWallet were the easiest to use applications I’ve ever created, I had a user contact me saying that he couldn’t install the software. The installation couldn’t be easier. You mount the disc image and look at the picture:

Picture 1.png

Just drag the icon to the applications folder, open the applications folder and double click ReceiptWallet. Should I have a video to show people how to do this? Unfortunately for this customer, he had trouble with that step. I’m very scared about the questions this user will ask in the future if he failed the first test.

Scanner drivers suck

I’ve probably written this before, but most scanner drivers for the Mac are garbage. This includes drivers from the major vendors such as HP, EPSON, and Canon. I’ve been pleased with the drivers from Sysscan for my DocketPORT and the Fujitsu ones are OK. I keep seeing crash reports with my products that clearly point to the scanner drivers. One that came in today looks like:

Thread 0 Crashed:
0   <<00000000>> 	0xffff926c __bigcopy + 300 (cpu_capabilities.h:194)
1   <<00000000>> 	0xffff9188 __bigcopy + 72 (cpu_capabilities.h:194)
2   com.hp.HPScanPro               	0x0379fb54 TwainEvents::SendEvent(TW_IDENTITY*, unsigned long, unsigned short, unsigned short, char*, unsigned short*) + 176 (TwainEvents.cpp:126)
3   com.hp.HPScanPro               	0x0379e320 DS_Entry + 792 (SampleDS.cpp:156)
4   org.twain.dsm                  	0x97f9a7e4 EntryDS(TW_IDENTITY*, TW_IDENTITY*, unsigned long, unsigned short, unsigned short, char*) + 180
5   org.twain.dsm                  	0x97f998b8 DSM_Entry + 456
6   ...gtenterprises.receiptwallet 	0x00014724 -[Scanner aquireNativeXfer:] + 356

What does this mean? It means that ReceiptWallet sent a TWAIN command and TWAIN passed it to the HP Software. HP’s software crashed likely while copying some memory. The thing that gets me about this crash is the crash shows the file name where the crash happened, “SampleDS.cpp”. HP didn’t even bother to rename the Apple sample code. While this may seem like a minor thing, if they overlooked such a minor thing, what else did they overlook?

I had a customer tell me yesterday that he was relieved to see my comments about the HP drivers on my FAQ because he thought he was the only one that had issues with them.

Then I’ve seen EPSON drivers where they incorrectly implemented part of the TWAIN driver; there are 2 choices for scanning, Memory Based and Native Transfer. If you use Native Transfer with some EPSON scanners, you get a yellow background. This is reproducible outside of my application, so I know it isn’t my problem. So I had to implement code for Memory Based transfers which was a pain.

Why, oh why, can’t scanner vendors focus less on they’re “pretty” interfaces (I say that factitiously as the interfaces look like crap) and more on functionality? On the consumer level scanners, how many people play with all the controls? Most don’t, so the driver should just have a scan button, maybe a preview and ability to crop, but anything more than that is overkill and prone to making things more complex.

Think first, code later

Several weeks ago, I was working on reports for ReceiptWallet and thought I had it all done in one weekend. The following Monday I realized I missed a part, handling sub items. I poked at it a few times and got nowhere. I then thought about the problem for 3 days and figured it out (all without coding). I told my wife that it would take me 1 hour to finish it. So the following Saturday, I got up, coded for 1 hour (exactly) and said that I was done. I went to test it and it didn’t work. Damn. I had breakfast, thought a little more about the problem, came back, added one line of code and then everything worked.

While it is obvious to think first, I’m not sure a lot of developers do that to solve complex problems. For me, these types of problems are all consuming and I must solve them before I can move on. Luckily no one complex problem seems all that difficult to me; I may not want to code it, but that’s another story. Not wanting to code something has more to do with tediousness than complexity.

Long story short, think first.

Childhood obesity

Several months ago I started seeing and hearing numerous ads about childhood obesity. It kind of surprised me that there was a huge campaign to fight it that just appeared when this problem has been known for years. It sickens me to see overweight children. People blame computers and video games for many of the problems. While I’m not going to disagree with that, I think the problem lies in the habits parents teach their children. I use a computer 10+ hours a day for work and other things; however, I make it a point to go for a run 4-5 times a week and carve out that time in my schedule. In addition, I watch what I eat. I was never raised to drink soda all the time or have chips everyday for lunch. Society can be partially blamed for this, but maybe parental influence can also play a factor in preventing this. I don’t have children, so I don’t know how hard this is, but it would appear (from an outsider’s point of view) that good and bad habits start in the home.

I hope that the new initiatives against childhood obesity work as this problem is getting worse and is not only disgusting, it will cost our country a significant amount of lives (and quality of life for those who have it) and will be quite costly monetarily to treat the health problems associated with this.