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:
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.
DocumentWallet Released
Today I released DocumentWallet, a product similar in concept to my ReceiptWallet program. The two programs share much of the same code, but I felt that they needed to be separate applications. The market for this type of program is quite crowded and I own a few of the “competition”, but didn’t find any one of them to meet my needs. I hope that others feel the same way. I think I’ve done some clever sales tactics by offering it for 50% off for ReceiptWallet customers. I also decided not to penalize people that buy one and then want to buy the other. Some vendors give you a great deal for a bundle, but if you don’t buy it then, tough luck. I now choose to run my business in a way that my customers want to come back. Having an easy to use product should make it easier to sell than some of my past products. I hope it sells well.
A solution to an annoying ScanSnap issue
I’ve now had my Fujitsu ScanSnap fi-511E0XM for less than a day now and one thing that I found quite annoying is that if I wanted to scan between scanning to ReceiptWallet and to another application, say preview, I had to go into the ScanSnap Manager preferences (sorry, settings), and change the app. The app has a dock menu, so it wouldn’t have been rocket science to let me switch between apps from the menu. So, with a point in the right direction from a colleague, I present ScanHelper. ScanHelper is a small application that places a menu in the menubar that lets you select which application should be used for scanning. Simply tell the ScanSnap Manager to use ScanHelper and then ScanHelper routes the scans to the selected application. You can now easily select a destination right from the menubar. I’m releasing this as free software, but if you like it, please buy my ReceiptWallet application. You can download ScanHelper here.
Let’s Play “Find the UI issues in the scanner software”
Today I received the Fujitsu ScanSnap fi-5110EOXM that I ordered (I couldn’t pass up the $100 Macworld discount and the $50 rebate). The scanner is great; it scans to PDFs and doesn’t make me look at their ugly user interface too much. However, I thought I’d point out the issues (first off I had to find the version of the software that was Intel native as the CD didn’t have it and it wasn’t readily available on their website:
- They use Command-S to bring up Settings; it should be Command-, and the menu should be labeled Preferences
- The buttons in the settings dialog are all laid out wrong. Mac applications put the OK button on the right, not the left like it is in their software
- They use low resolution graphicsin the settings dialog
- They are inconsistent with the use of periods; they use them at the end of some radio buttons when they shouldn’t
- They should use sheets instead of modal dialogs for some things
- By having too many tabs, they have to put warnings in some tabs, like: “Note: JPEG is available only when “Color” is selected at [Color Mode].” If this were all on one tab, it could have automatically changed (which it actually does, but you won’t notice it until you flip tabs) and the user could see it.
- Location of saved files looks like it is an edit text field, but you can’t edit it. You have to click Browser … and choose the folder
- Browser … button has an extra space in the text
- They don’t need so many sub dialogs as they could have accomplished much of it in the main window
- Under “File name format …, they have “ex.) 2007_01_19_15_56_49.pdf” which is the example of the file name that will be generated. They could have spelled our example or done this another way; there is plenty of room
- When the scanner is off, the dock icon has a big red circle with a slash through it
For such a small application, it really has an awful looking interface. Luckily I won’t have to see it much.
Please, oh please, ask for a user interface review by Apple; they’d be more than happy to rip your application to shreds. (I’ve had a few UI reviews and got my stuff ripped apart, so I know how it feels.)
Product Version Numbers
The normal scheme of version numbering for products seems to work for most developers. Going from 1.x.x to 1.x.x+1 is a minor bug fix; going from 1.x.x to 1.x+1.x is maybe a few new features and bug fixes. In some cases, developers only charge for 1.x.x to 2.x.x updates which makes a lot of sense to me to differentiate the products. That’s how I like to do things. Today I downloaded a new version of a freeware product I was using (I was using version 1.1.2) and when I downloaded the 1.2 version, was extremely surprised to find that it was now shareware ($34). While the developers said that they would be charging in the future, a minor version number update caught me off guard. Furthermore, they didn’t provide release notes on what changed, but instead on first launch, I got an alert to buy it. I poked around for a few minutes and then reverted to the freeware version. I’m not opposed to developers making money, but they should have called it 2.0 and added some additional value to it (or charged money from the beginning). I’m a bit disappointed in this, but on the flip side, it reinforces my desire to write a new application based on ReceiptWallet.
First impressions of the Garmin Training Center for the Mac
Last January, Garmin announced that they’d have a Training Center version for the Mac. That was one of the reasons I bought my Forerunner 305. Last week, they delivered (a little late). I saw a few screenshots before Macworld on the Garmin blog and posted a comment that it looked very un-Mac like just from the 3 screenshots I saw; Garmin didn’t approve my comment. I guess the truth hurts.
I picked up a CD at Macworld (they’re not making it available until later this month for download due to localization issues or some such nonsense; they deliver their other software as fully localized or English only; I just checked the page for the iQue 3600 and there is an English-only and an EFIGS-English, French, Italian, German, Spanish version). I loaded up the software on Sunday and my first impression was not very good. Brushed metal has to go and the main screen just doesn’t look right; there is a lot of space around it. It would have been better to put the information (profile information) in preferences. The application has no drag and drop onto the icon to import files (I downloaded stuff from my MotionBased account) even though there is an import menu item. Heh folks, that is about 5 minutes of code to put it in; just add a Cocoa method:
- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
And add tcx as a file extension to the info.plist file.
Next, I can’t edit any of my activities. The ones I import are all coming in as Skiing instead of running. I can’t sort the columns (clicking on a column highlights it), I can’t turn off columns. I can, however, reorganize the columns. If I choose the Close menu item, the app quits. If I click in the column title for Activities, the sort arrow changes, but does nothing.
Right now I can’t use all the maps I have for my iQue 3600, so I get a totally useless map view in the center of the screen that I can’t collapse.
So, I have no idea what took Garmin so long to do this. Their program didn’t take a rocket scientist to write. My first pass of ReceiptWallet took 2 weeks of almost full time work and then about another month of part time tweaking to release a solid 1.0 product. If Garmin has more than 1 person working on this full time, they should call me to fix it! The MotionBased folks said that they got the USB code for talking to the device from the Training Center developers last March (or so) to get MotionBased working on the Mac, so that leads me to believe that Garmin spent 9+ months on the user interface. Ouch.
For now, I’ll stick with MotionBased; I renewed my subscription last month and it is significantly more full featured that Training Center. Granted, MotionBased is not free, but I would have paid something for a good Mac Training Center.
Someone must like me
Much to my surprise, someone pointed out that my ReceiptWallet program appeared as a featured piece of software on Apple’s Product Guide page today. In case you don’t see it, here’s what appeared (click on the thumbnail for a full size view):