-
Tracking down bugs
One of the toughest parts of my job is tracking down bugs that either I create, are operating system bugs, or are a combination. Most of the bug reports I get are extremely incomplete and don't help me. I also get crash reports sent to me so that I can try to see the problems. With the crash reports, some users put in a sentence saying what they were doing. Unfortunately, this doesn't usually help me find the problem and fix it.
Since releasing ReceiptWallet 2.0, I've gotten more crash reports than I would like; I've fixed some of the issues, but a few have eluded me. Last night I tackled reports dealing with rearranging collections; while I couldn't reproduce it (and no one provided enough information to help me), I reworked some code and am much happier with that chunk of code. Will it fix the problem? I'm not sure. Today I looked at another crash report dealing with turned on a preference. All of the reports related to this said "turned on show details with thumbnails". The crash reports made no sense to me as they were in Apple's code and not mine. I spent about 20 minutes trying a bunch of combinations to see if I could reproduce it. I was making no headway when I decided to open 2 libraries. Still no crash, then I closed one library, hit the preference and boom, crash. Yeah, I tried again and had the same result. So fixing it would be easy. It actually wasn't that hard to fix it, but when I started digging, I encountered another issue where closing a library never released the memory (dealloc wasn't being called), but that's another story.
The more complete the bug report and having reproducible steps makes my life so much easier. For one project I had more than a decade ago, I was told "make this not crash". OK, easy, right? No, it took me 4 months of 8 hours a day to track down the issue (a bug in the ethernet driver). Was it worth it? Probably, I was working on a prototype system that was used to launch CDMA packet data.
-
Software is never done, it's just shipped
In today's world of consumer software, the phrase "software is never done, it's just shipped" is the norm. Prior to the wide use of the Internet and downloadable updates, this wasn't always the case. When it cost real money to send out updates on media, software was tested more, but also people didn't expect updates as often. When I released ReceiptWallet 2.0 last week, I knew there was going to be an update. I released 2.0.1 this past Sunday and followed it up almost immediately with 2.0.2 b1 as I found more issues.
This phrase may sound like a cop out, but I believe that it is the only way to write software. There are far too many variables to produce a product and have it work everywhere. There are some many different models of computers, various operating systems, hacks that modify the system, different applications that produce PDFs, etc. 10+ years ago, the combinations were far fewer, so it was easier to fully test a product. It is just not practical or even realistic to believe that anyone can ship consumer software that is bug free. Notice I said consumer software; if you have complete control (or significant control) over all the variables like the software in a microwave or a cordless phone, shipping bug free software is possible.
Having said that, I personally like more updates rather than big, infrequent updates. As a developer, this lets me get out fixes to those that need them and as a user, I like to see that developers are actively working on the product.
I'm a huge fan of the Sparkle framework and think that all programs should have this type of update mechanism built in. It makes it simple for users to get the updates and automatically install them. So, pushing out updates is quite easy.
-
The tax man taketh
It is time for me to pay my taxes again. As someone that is self-employed, I have to pay quarterly estimated taxes, so this happens 4 times a year. One of the things that gets me (it's a mental thing) is paying taxes in such huge chunks. Salaried employees have taxes withheld and in theory, the total withholdings equals the total tax, so the money comes out in small increments and people don't end up with a huge tax bill. Being self-employed, my income varies each year. If I have a good year, I end up with a big fat bill. If I have a year worse than the previous year, I get a refund.
Enough about the technical side of paying taxes. When I write the check (figuratively, not literally as I pay my taxes online so the check doesn't get lost in the mail), I always think about what my taxes buy me. Really, nothing that helps me. You might be asking, what about the roads I drive on? Or the police? Or the fire department? OK, I'll give you that, but isn't some of that funded by sales tax, property taxes, and state income tax? What is the federal government giving me? Here's my list:
- 1 war in Iraq
- 1 war in Afghanistan
- 1 partially finished border fence
- 1 bailout of Bear Stearns
- 1 bailout of "greedy" lenders and borrowers (hey, the news used the word "greedy" last night to describe them)
- 1 fleet of very, very expensive presidential helicopters (now costing something like $11 billion when the budget was $6 billion)
- 1 questionable detention facility in Cuba
- And lots more stuff that doesn't do me any good...
Wow, with that list, I should be more than happy to give the government more money! I reluctantly pay my taxes because if I didn't, they'd nail me faster than Al Capone.
-
Error Message of the Day
I have to admit that some of my error messages to users aren't that friendly, but I've tried to put in a message at least that says "Please contact support and report the above error.". Sometimes I can help users, sometimes I can't. I was using QuickBooks today and I received the following error message:
That's a huge help! It doesn't tell me what to do, what happened, or how to correct it. Personally I think it looks completely unprofessional to display build paths in error messages. While they might help Intuit fix the issue, I don't even have a clue where to start reporting that. Do I contact support@intuit.com or do I have to go through their web based system? I don't want an answer, I just want to report it.