Hacking ICA – NEAT Receipts scanner working with ReceiptWallet

After a lot of work today, I managed to get the NEAT Receipts scanner to work with ReceiptWallet. It wasn’t easy as there are issues with ICA and the driver that NEAT Receipts ships is quite buggy (if I tell it to scan the entire width, it fails; I have to divide by 3 to get it to work). I suspect that they just got the scanner working with their software and called it a day. Some comments in their forums seem to back this up as the scanner works quite poorly in Image Capture. I’m only going to be supporting 10.5.3 (which was just released) and higher for using Image Capture and this scanner. A large number of ReceiptWallet users are using Leopard, so this isn’t a huge problem.

I’ll be posting a beta probably tomorrow with preliminary support for the scanner. I’m sure I’ll have to keep tweaking the support when they fix/change their drivers. If you don’t have a scanner, I wouldn’t recommend their scanner as the drivers still need work; I’d recommend the Pentax DS Mobile 600 or the ScanSnap S300M. If you already have the scanner, now you can use it with a stable, mature product.

Ouch

I read the following in a forum about a new product:

Calling something “advance release” instead of “beta” isn’t the greatest way of garnering a loyal customer base. Especially in light of an absence of tech support…

Wow, almost seems like this company tried to rush something to market just to appease users.

Nice work Google and Microsoft

My wife sent me email (yes she sends me email even though she is in the next room) asking for help with a rejected message. She was trying to send to a hotmail.com address; since my domain is hosted on Google for domains, the rejection message was from the gmail postmaster. The error message was:

Technical details of permanent failure:
PERM_FAILURE: Gmail tried to deliver your message, but it was rejected by the recipient
domain. We recommend contacting the other email provider for further information about
the cause of this error. The error that the other server returned was: 550 550 SC-004
Mail rejected by Windows Live Hotmail for policy reasons. A block has been placed
against your IP address because we have received complaints concerning mail coming
from that IP address. If you are not an email/network admin please contact your
E-mail/Internet Service Provider for help. Email/network admins, we recommend
enrolling in our Junk E-Mail Reporting Program (JMRP), a free program intended
to help senders remove unwanted recipients from their e-mail list:
http://postmaster.live.com (state 13).

So basically this means that Hotmail is rejecting all email from Gmail. Wow! This is going to be a huge mess. After a bit of searching, I found that my wife wasn’t the only person having problems. In the comments of a year old post, I found 2 references to this issue.

I hope that Microsoft and Google can work out their differences quickly as both are major email providers and the rejecting of email is going to confuse a lot of novice people and piss off even more.

The failure of catchall email addresses

For years when I ran my own server, I made up email addresses for each site I visited and had to enter an email address. They were in the form of somedomain.com@mydomain.com. I then entered an alias into sendmail to forward the mail to me, rebuilt the alias file and all worked well. When I switched to Google for Domains, I couldn’t move over those aliases as I had several hundred and Google limited the number of aliases, so I opted to just use a catchall address. As more and more spammers forge return addresses, the amount of “returned mail” I receive has increased. Spammers use addresses like jorge_1975@mydomain.com and when other servers reject it, I get the bounces. Over the last week, I received almost 25,000 pieces of spam and returned mail.

What do I do? Google’s filters aren’t sophisticated enough to let me only accept mail from *.com@mydomain.com, so I setup another account on my Google for domains to catch all the mail. I’m now in the process of setting up filters to forward legitimate mail to my main account. This isn’t ideal, but at the moment, it is the only way to keep all this garbage out of my main mailbox. What is interesting is that it appears that Gmail’s spam learning is on a per-account basis (at least partly) as my new account has only had a few pieces of spam make it threw even though it is getting the same stuff my other account received.

Now if Gmail supported wildcards in filters, this problem would be much easier to solve.

I can’t give up my catchall address as I’ve forgotten all the sites I’ve signed up for and don’t want to potentially lose stuff (like my bank statement), so I guess I’ll just have to live with this current solution.

Very cute, UPS

A few weeks ago, I opened our front door to check the mail and discovered a package under the door mat.

In case you’re wondering, a 10 pound box doesn’t fit under a door mat very well.

EPSON, grumble, grumble, grumble

This weekend I finally had a chance to sit down with the EPSON CX9400 I picked up on Thursday. After hours upon hours of attempting to debug ReceiptWallet and figure out the problem, I finally came up with a workaround. It appears that the EPSON TWAIN data source doesn’t close a few of its resources when the data source is closed. Then when the data source is opened again lots of stuff has taken place since the last scan potentially causing the data source to lose track of its resources (or maybe Carbon doesn’t like trying to open the same resource more than once by the same plugin). In any case, I worked around this by not closing the data source for any EPSON scanner. I really, really dislike this solution, but I went through a lot of my code and tried removing chunks to see if they caused the issue and then eventually discovered that if I started a scan, closed the scan, then showed the thumbnail view (I normally show the list view), it would crash. So all the code I tested to see if it caused the crash really led me no where.

So, this proves to me (beyond a reasonable doubt) that the EPSON scanner driver is a piece of junk and causes lots of problems for ReceiptWallet users.

While I’m beating on EPSON, I decided to grab a screenshot of their latest user interface. This is 2008, not 2000 when I bought my last EPSON scanner. Can we at least get the buttons to be nice OS X buttons and use fonts that don’t look like crap? This UI is completely unacceptable; it’s kind of interesting that the Apple store doesn’t sell any EPSON scanners or all-in-one devices (at least the online Apple store).

I recommend that Mac users stop buying EPSON devices (unfortunately I had to buy one to test) until EPSON decides to spend some money and fix the drivers. They are in such sorry shape, it isn’t even funny.

High cost food isn’t worth it

Last night, my wife and I went out to dinner at a nice restaurant. My sister had given me a gift card for my birthday, so we decided to use it. It was one of those restaurants where each entrée was over $25. Before we went, I kind of had a feeling I wouldn’t be impressed as I’m usually underwhelmed when we spend a lot of money on meals; the quality is only OK and the portions leave me very hungry. This place was no exception; to top it off, I had to fork over a nice chunk of change on top of the gift card to cover the meal.

Why do restaurants think they can charge so much and deliver so little value? There is one nice restaurant we go to where the portions aren’t that big, but the food is excellent. Maybe I just expect a good value for my meals.

I feel so dirty

I decided to purchase an EPSON scanner to maybe workaround issues with their drivers and ReceiptWallet. I have an old Perfection 1250, but the drivers aren’t universal binaries and I wanted to give EPSON a fighting chance to make it back on my list of acceptable scanners. So I saw that Fry’s had a few on sale and purchased the EPSON CX9400. I feel so dirty purchasing the scanner as I’ve said so many bad things about EPSON. I unpacked the scanner and said “oh, this is a pretty scanner”. My wife laughed at me as I described a printer as “pretty”. It looks well made and it might replace my old HP OfficeJet 6110xi for faxing and copying.

I installed the drivers from EPSON’s site (I chose this model as it is current and has Intel native drivers) and away I went (the download was only about 20 MB vs HP’s 100+ MB). I started up Image Capture and was pleased to see that Apple’s TWAIN Bridge let me use the ICA scanning dialog instead of the EPSON dialog. Next I tried ReceiptWallet. It scanned on the first try, but crashed on the second try. Wow, that’s what people have been telling me. The crash clearly looks like it is in the driver, but I’ll take a stab at working around it as it will help many ReceiptWallet users. In addition, if ICA works acceptably, I might turn that back on as an option in ReceiptWallet. The TWAIN UI for the EPSON scanner still looks like crap, but if it works, then ReceiptWallet users may be happy.

Taxing those that can’t do math

The latest attempt at getting out of California’s budget problems is to increase marketing of the lottery. Someone once told me that the lottery is for those that can’t do math as the odds of winning a substantial payout are astronomical. So the state is hoping that those that can’t afford to spend money on the lottery buy more lottery tickets. I’m not saying that those that can afford it don’t play, but my gut tells me that many of those that do play can’t really afford it, but hope that just the next ticket will be the big one (it never is). What a brilliant plan; I’m once again impressed my our government.

My partial solution (not just to the state’s money problem, but all government money problems) is to tax each person that has served an elected office for each year that he served. Some amount, like $10,000, would be a start. Those in office currently or in the past got us into the mess that we’re in now. I’m sure that this will go over real well with the politicians. This won’t solve everything, but it may make politicians think twice before wasting our tax dollars.

Collecting scanners

Yesterday I placed an order for my competitor’s scanner. Why did I do this? I have no interest in looking at their software; I want to try out their scanner driver and make ReceiptWallet work with the scanner so that users can switch to ReceiptWallet. That got me thinking about my collection of scanners and what I need to add to it.

  • Fujitsu ScanSnap 5110 EOXM
  • DocketPORT 465
  • Pentax DSMobile 600 (currently at Apple)
  • IRISScan Express (sitting in the original box)
  • EPSON Perfection 1250
  • HP OfficeJet 6110xi

So when I add my competitor’s scanner, that will total 7 scanners. I need to get a newer EPSON (one that has Intel native drivers) as well as a newer HP. While I still don’t recommend EPSON or HP scanners, I can at least try to make them work better.

Do I really want all these scanners? No, but in order to make ReceiptWallet more compatible with a wide variety of scanners (many with broken drivers), I have to add to my collection.