• No financial incentive to recycle

    Here in San Diego we have free trash pickup (for single family residences) due to the People's Ordinance of 1919 which I believe came out of the city selling refuse to pig farmers and making money on it (hmmm, it would appear that the city leaders back then had some of the same issues of public trust as the current ones). With free trash pickup, what incentive do we have to recycle? We recycle as much as possible and just started a compost bin last week to reduce the amount we send to the dump. If the city wants to encourage more recycling, they should offer a financial incentive (don't take away the free trash pickup) to say lower property taxes or something like that. The city is already in hot water as state law requires it to recycle more, but it isn't meeting that. While people should just feel good about "going green", let's be realistic. Unless it positively or negatively affects people's wallets, it just isn't going to be adopted by everyone.

    (I'm not new to "going green"; back in 1990, I started a paper recycling program for my Eagle Scout project. Times have changed, but I've tried to do my part to help.)

  • New features for newer operating systems

    I've written a number of times (I think) about how long should I support an older OS. I've also said that I'm not abandoning Tiger users, quite yet, but I may have mentioned that new features are likely going to be Leopard only as required to make things easier. In the recent past, I've implemented 2 Leopard only features; the first is support for Image Capture scanners. Image Capture seems like a broken framework that might be fixed someday. In the meantime, the only way for me to reliably test and get things working is to require Leopard.

    The other feature (which I just finished today) is allowing a library to be encrypted. The approach I took was to create an encrypted disc image and shove everything in that. Encrypted disc images are supported on Tiger, but one of the slick features in Leopard is a sparsebundle. What is a sparsebundle? Well, it is a growable disc image that has "bands". This means that if you modify a few files in the disc image, only the necessary bands are updated. This is absolutely necessary for backups otherwise each time a user touched a ReceiptWallet library, he'd have to backup the entire disc image (backup apps do the right thing; it isn't a manual process to copy the bands). With one of my libraries approaching 1 GB, that would be a complete waste of time. Time Machine uses sparsebundles for the Time Capsule and if it is good enough for Apple, it's good enough for me! So, I've disabled encryption on Tiger. I'm sure that some people won't be too happy about this, but doing encryption another way would have taken significantly longer with no true reward.

    Everyday, I look at the statistics I collect on what operating systems users run. The large majority run Leopard. In the graph below, you have to make one big assumptions as the data is anonymous so users that check for updates all the time (more than the default once a day) will get recorded more than once, and that is that Tiger and Leopard users check for updates at the same rate. The actual numbers are irrelevant; it is the trends I look at and the ratio of Leopard to Tiger users. The blue and red lines represent the most recent versions of Leopard.

    UserData.png

  • GrandCentral Dialer

    I've been using GrandCentral for awhile now and think I have finally managed to get people to start calling that number. The flexibility is great; I can pick the phone I want to use and if I travel, I can set calls to goto my cell phone. If I'm around, calls goto my VOIP line. One of the interesting features they added to GrandCentral was the ability to call a Gizmo Project number as a calling number. Combine this with click to call on GrandCentral's web site and I basically can get rid of a phone line. I currently have a BroadVoice VOIP line which costs me about $12 per month.

    So the other day I was thinking, could I get rid of the BroadVoice number? After some searching, I found that Gizmo Project is a standard SIP provider and if you can configure the phone to connect to a SIP account, you can get it to work. OK, easy part done. Phone rings when my GrandCentral number is called. Next the harder part. I wanted to be able to dial any number via GrandCentral so a) it doesn't cost me any money and b) the caller ID is from my GrandCentral number. A few web searches later, I found a perl script to do what I wanted. The UI, of course, is non-existent, so I put my Cocoa skills to the test. I started my little app yesterday and completed it this evening. I now have a little menu bar item that lets me select my "originating number" (usually my Gizmo Project number) and lets me dial any number. To top things off, I added a little AppleScript support so that I can dial from the OS X Address Book.

    Very cool. It could stand to use a little more polish, but I'm pretty pleased with it. Now I have to contact GrandCentral/Google and see if I can use their logo as the menubar icon. I'm sure that will go over real well.

    I still need to decide if I'm going to sell this or give it away. Hmmm. I think it hinges on what GrandCentral says. Can't sell something if they get pissed at me.

  • Less complaining, more fixing

    I, like many modern Mac developers, use Sparkle for auto-updating ReceiptWallet. This is an amazing framework that keeps getting enhanced. Many developers just shove it in and forget it. When there is an issue, they just complain about crappy code (I know I do that a lot). Today in updating ReceiptWallet, I found that my update crashed. I am using the absolute latest and greatest Sparkle code, so it always has risks. I dove into the code, found the bugs and suggested fixes. Andy Matuschak, the Sparkle guy, must not sleep (well, he is a college student), as he fixed the bugs within hours after I reported them (someone actually reported one before I did, but I identified the exact causes) and then when I was looking at the fixes, I noticed that Andy made a mistake (probably easy to do with a lack of sleep) and reported it again. Andy quickly fixed it and all is well. I really love Sparkle and it is the only way to get people to keep up-to-date on my software.

    I'd suggest that other developers try the latest code and report bugs. This is the only way to improve the framework.

    Anyway, thanks Andy for a great framework and keep up the good work!