• 4 Mice Review of ReceiptWallet!

    A friend of mine sent me a copy of an article in the August 2007 issue of Macworld magazine (the print issue that isn't available on newsstands, yet, just to subscribers) that lists the most useful Mac applications. ReceiptWallet is listed in it and received a 4 mice review (that little blurb is the review). That's not too shabby for my little side project. I'm not sure why it wasn't a 5 mice review, but I'm pretty pleased. This definitely accounts for the nice sales increase this past week.

    (I was going to call this entry, 4 rat review of ReceiptWallet, but decided against it. Way back when I worked in the print shop at my high school, we always used to joke around that the mice ratings were rat ratings; not that they were bad, but it was just entertaining to say things got a 4 rat review.)

  • Yet another new store

    I wasn't quite happy with my online store and was pleased to see a clean, open source store released. Andy Kim of Potion Factory released his store as open source. It's Ruby on Rails, so it was a learning experience for me to get it running again. I learned a great deal in the 2+ days that I spent getting it running, but it is so much cleaner than my old stores. Hopefully I don't have any problems with it as I just put the finishing touches on it this morning. It's at store.receiptwallet.com. Things I learned from installing this on my server:

    • Even though there is an RPM for mod_fcgid on Fedora Core 5 with Apache2, FastCGI still needs to be installed from the source
    • The Apache configuration for FastCGI needs to have:
          DefaultInitEnv RAILS_ENV production
          SetEnv RAILS_ENV production
      

      in it. The first line for FastCGI to work and the second to work without FastCGI

    • ruby-debug gem has to be installed to get the store to work in development mode and MUST be commented out to work under Apache
    • To use multiple databases in RoR, the model has to look something like:
      class User < ActiveRecord::Base
        require 'yaml'
        set_table_name "users" # we need to set this explicitly
        extra_coord = YAML.load(File.open(File.join(RAILS_ROOT,"config/database.yml"),"r"))["userdatabase"]
        self.establish_connection(extra_coord)
      end
      

      (my pool of serial numbers is stored in a separate database and so are my users; I modified the store to interact with these other databases)

    • On PayPal's developer site, if you want to test Website Payments Pro, you need to use a Social Security Number of 111xxxxxx where x is any number, but this number can't be used by another developer
    • STDERR.puts is your friend. It's great for logging stuff to the console
    • RoR running under Apache must use FastCGI in a production environment or it is way too slow
    • In application.rb, it MUST have:
      class ApplicationController < ActionController::Base
      	filter_parameter_logging "cc_number|cc_code|cc_month|cc_year"
      end
      

      otherwise you have important stuff getting logged which is bad.

    • Turn off IPN on PayPal or you'll have an error when processing orders and people will order multiple times because they think it fails

    That's about it for now. I'll update this as I remember more stuff so that I don't waste time in the future and it may help others.

    Thanks, Andy, for the store! While I don't have a use for your products right now, I'll be purchasing them anyway as your store is such an elegant solution, it is the least I can do to repay you.

  • Apache MultiViews option is dangerous

    I was poking through my web logs and saw requests to pages that didn't exist on my server and the server returned something (200 return code), so I started looking at them. I was able to hit the pages with a browser and after much searching, I figured out how pages that obviously didn't exist could return a valid page that was slightly messed up (image references were hosed). Turns out my sites had

    Options MultiViews

    in the Apache configuration files. MultiViews, as I have come to find out, guesses what page to load if the page doesn't exist. Well, its guesses are whacked. So, disabling this feature fixed the problem and now pages that don't exist get redirected to the home page.

  • Doing the right thing

    My previous rants about Sandvox may have been harsh, but as I mentioned before, I see so much promise in it and the sites it creates. I want to offer an apology to the authors; they, like all software developers, do their best to create good products.

    Karelia has made things (financial) right with me and I applaud them for that. I did find out that they offer a 30 day money back guarantee, but I wasn't going to take them up on that as I wouldn't feel right about getting a refund for a product I still wanted to use. They've given me a complimentary copy for my work in tracking down the SFTP issues (I hope the fixes work for others) and I really do appreciate it; my whining wasn't to get a free copy, it was simply to express my frustration in getting my site uploaded.

    Thanks Karelia and keep up the good work!