Mobile mapping isn’t good enough

Today I confronted a limitation of Google Maps. I’m in Buena Park and I need to be in downtown LA around 8AM. Last night, I consulted Google Maps on my iPhone for planning purposes. It answered 31 minutes. I also checked in a browser on my laptop, in case a feature existed that would let me choose a departure or arrival time that accounted for Monday morning’s typical traffic. There is no such feature.

Because of LA’s infamous traffic, I gave us 2 hours to assure we arrived on time. I also consulted Google Maps at 6:00AM when we departed. It offered up 38 min with traffic accounted for. I checked again after arrival and Google Maps predicts 55 minutes. The actual time: 77 minutes.

Perhaps the Google Maps time estimates are typically reasonable in typical cases and LA traffic is an edge case that is poorly handled (as I learned several times in the past week). However, I think this is a limitation of how Google calculates traffic times. It only accounts for traffic as it is at this moment. It doesn’t account for the typical traffic patterns that predictably recur on given days of the week.

This is where other competitors such as Waze and hopefully the new iOS maps app can offer a significant advantage by mining crowd sourced data to make much better predictions. This is almost certainly something we’ll see in a future version of Google Maps.

Microsoft Introduces a Challenger to the iPad

Another quarter, another iPad competitor. But the headline is misleading. I watched the announcement. Microsoft didn’t introduce anything. They merely announced the Surface. This one had better be good, Microsoft is running out of marketable words to name their tablet attempts.

The keyboard idea is clever. It’s original. It might even work. It will take up less space than my iPad plus bluetooth keyboard. But is it better?

Ballmer has been watching Apple product introductions. He was trying hard to channel Steve Jobs. The hushed invites. The buildup music. The decor of the stage and slides. The introduction and invites. The structure of the presentation. The lack of PowerPoint looking slides. The Jonny Ive inspired “design” video. Microsoft is trying really hard to be like Apple.

They talked about the Surface and the ability to do all our Windows tasks on it. But they didn’t actually demonstrate the tablet doing any of them. Lots of talking and hand waving. Here’s the NetFlix screen, here’s the, oops, hang on while I grab another tablet. What? A crash during the announcement? That’s not the part of Windows we want you to bring to the mobile computing world Microsoft. Sad, sad, sad.

They let journalists touch them afterwards. For 90 seconds. With the power turned off. No typing on the vaunted keyboard. If these products worked even modestly well, you can bet they’d have been showing them off, like Apple did at the iPad announcement.

The announcement reeked of desperation. They announced a product so buggy it can’t survive a live demo. It may ship in the 3rd quarter, but Microsoft isn’t known for nailing their ship dates. There’s no pricing, likely because they’re having trouble sourcing components in quantity, because a certain dominant tablet maker owns the tooling and factories that create all the hi-res tablet displays. They have zero third party apps optimized for a tablet, and little enthusiasm from mobile developers. They are paying developers of popular 3rd party apps to port them to Windows Phone 7.

The saddest part of all this is the powerlessness at Microsoft. Back in the 90’s, I recall Microsoft product announcements instilling a sense of doom in anyone competing in a market. Competitors scurried. Projects and sometimes products were cancelled at the mere announcement of a Microsoft initiative, because competing with Microsoft was certain death. Now Microsoft makes an announcement and it’s just sad. Memories of greatness are replaced with memories of PlaysForSure and Zune trying to compete with the iPod. Then the Danger fiasco, the Kin disaster, and the underwhelming Lumia trying to complete with the iPhone. Then there’s the list of Windows powered tablet flops, crowned by the HP Slate. It’s just sad.

What I find most telling is that Microsoft and Google have both publicly confessed that Apple’s integrated approach is best. The modular solutions they previously championed (hardware from them, software from us) are not good enough. Google bought Motorola and will soon announce its own hardware, and now Microsoft has announced their own.

I think it’s premature to declare the Surface an iPad challenger. But one thing is for sure, it’s going to get even tougher for HTC, Samsung, and LG to complete in the mobile computing race.

Flashback and Mac OS X security

I’ve had several people inquire about the security of their Mac, particularly since the media began exploiting the Flashback trojan with sensational titles and coverage that I refuse to link to. If you want a good summary of the Flashback trojan, Macworld has an excellent writeup: What you need to know about the Flashback trojan. As for what you should do, read on.

We need to remember that absolute security is impossible to attain. Safety and security are more accurately described in degrees. What we mac users are accustomed to is a greater degree of security than other PC users. So long as we employ a bit of caution when downloading, we can surf the big bad internet with very little concern.

That’s not so say we’ve had absolutely nothing to worry about. Every year, there’s been an exploit or two and the page view generators declare that “The Mac is no longer secure.” Never mind that no platform is secure. Such facts do not generate page views. Here in reality, we Mac users have seen three primary vectors of security exploits on the Mac platform: QuickTime, Flash, and Java.

  • QuickTime: There have been quite a few QuickTime exploits, often as the underlying open source applications discover and patch exploits. Apple has been pretty good about getting these patches applied and pushed out to users quickly. Software Update is easy to use so most users see and install these updates.
  • Flash: Flash is the gift (to those with malicious intent) that keeps on giving. For a while, it seemed that Flash Player needed to be updated every week to remain secure, where by secure we meant it had no known vulnerabilities. A few years back, I realized that nothing I cared about required Flash, so I manually deinstalled it. John Gruber has a few tips for going Flash free. The benefits I noticed from disabling Flash were the disappearance of animated ads, faster page loads, greater battery life, and a cooler laptop. I was pleased when Apple shipped Lion without Flash and Java. With Flash use on the decline, the internet is already a better place.
  • Java: For the same reason that Java is popular in enterprises (write once, run anywhere), Java is popular with malware authors. Apple has a history of slow Java updates which you can read about at Macintouch. The short version is that just like Flash, Java updates on the Mac require cooperation with a third party (Oracle, and previously Sun). That often delays the release of new features as well as security fixes for Java on the Mac platform.

The only web site I use that utilizes Java is one bank, and it uses Java only for its online check deposit feature. Since I rarely use that feature (there’s an App for that), and having Java enabled poses real security risks, I have little reason to have Java enabled in Safari. Apple has made it very easy to disable Java: Safari -> Preferences -> Security -> Enable Java and click that checkbox off. I recommend that everybody does the same. It is comparably easy to disable Flash and Java in FireFox, Chrome, and Opera. Doing so inoculates you from nearly all internet nasties.

In summary, Mac users can continue to eschew antivirus software and still remain reasonably secure, so long as we employ three basic precautions: apply security patches that Apple releases, disable Flash, and disable Java. This is the way it has been for years. The thing that has changed the most regarding Mac security is that now it’s easier than ever to live without Flash and Java.

Deposit checks to EverBank with a ScanSnap scanner

I have a bank account with EverBank. They have a feature that enables check deposits from home. It uses a Java applet that runs in the browser. The applet includes a scanner driver that directly controls any TWAIN compliant scanner. The general idea is that a customer will go to their web site, log in, turn on their scanner, click the “make an online check deposit,” and then the Java app will scan and upload the image.

That scenario doesn’t work for me because my ScanSnap document scanner is not TWAIN compliant and likely never will be. So I contacted EverBank and their support staff “changed” my account so that it runs a different Java applet. Instead of controlling a TWAIN scanner, it accepts two scanned JPEGs. Once the changes to my account were completed, I tried using the feature and got this error message.

There’s two straight forward ways to tackle this problem.

  • Do as they suggest and select 32-bit Java. Run the Java Preferences app in Applications / Utilities. Reorder the list so 32-bit Java is first. This works, but it means that all Java apps will run 32-bit instead of 64-bit.
  • The other workaround is to set one web browser to run in 32-bit mode and always use that browser for online banking. Since I rarely use FireFox, I set FireFox to run in 32-bit mode and it worked as expected.

Then I set up a new ScanSnap profile for scanning checks. I named it “EverBank” and configured the following options:

  • Application: Scan To File
  • Image Quality: Best (slow)
  • Color Mode: Color
  • Scanning Side: Duplex
  • File format: JPEG
  • Paper size: Auto
To deposit a check, I switch to the EverBank profile, scan the check, and then choose the resulting files in the Java applet. It works.

Minivan + kids + interior lights = dead battery

Our family vehicle is a Honda Odyssey. The dome lights are toggle switches. Push the light, it’s on. Push again, it’s off. There’s no visible way to tell which position it’s in. If a child pushes the light and it gets left on, the next morning we have no minivan until after a date with Mr. Battery Charger. Since the kids were able to reach the dome lights, we’ve been vigilant. There are ways to be vigilant. We’ve tried:

  1. Exit the vehicle. Close all doors. Lock with the remote so interior lights turn off. Peer inside to see if any lights are on.
  2. Disable interior lights entirely with switch on dash.
  3. Re-enable interior lights, but forbid children from ever, ever, ever touching the light switches.

The third solution works most of the time. On Nov 3rd, I gave some neighbor kids a ride home from school. When they got out, one of them pushed the light switch to turn it off. The lights don’t turn off when the door is opened, so nothing happened. The child exited the van. Having trained my kids not to touch the switches, I didn’t perform #1. On Nov. 4th, we biked to school while Mrs. Odyssey and Mr. Charger hooked up.

On Nov. 5th, I found this post on the OdyClub site, detailing the LED bulbs another Honda owner ordered from China and installed in his Odyssey. I paid $28 for the following ten LED bulbs, shipped: (1) 51109, (4) #51002, (2) 35725, (1) 34641, and (1) #34608. When they arrived a couple weeks later, I installed them in about 15 minutes.

Last night, both kids were reading books on the ride home from swim classes. Both kids left their interior lights on. Both parents failed to notice. This morning, I opened the garage and saw the lights on. I smiled. When I got in, the van started. Mission accomplished.

My Top iOS Apps

iPad Most Used Apps: Mail, Notes, Epicurious, Safari, Instapaper, FeedlerPro, PasswordWallet (PW)

Mail & Safari: neither require much explanation. Both apps are mature and reliable. Mail works great for presenting a unified view of my 6 email boxes (iCloud, Gmail, 2 personal, 2 business). Reading mail and browsing on the iPad are more enjoyable. If the iPad is nearby, it gets grabbed before an iPhone.

Notes and I weren’t very fond of each other at first. The awful Marker Felt font and no decent sync consigned it to an unused app screen. When iOS 4 brought sync support, I finally began using the Notes app as well as Notes feature in on my Mac. On the Mac, I can change the font. What a relief! Since the two sync, I can make changes on the Mac or iPad.

I enter my recipes as notes on my Mac. Then I view them on the iPad in the kitchen. I often make small edits in the kitchen too. All those, “I should update that…” things actually happen now, while I’m thinking of it. Here’s a few of the notes I have: Apple Pie, Whole wheat pie crust, Gordon’s Chili, Carrot Cake, Yogurt [making] notes, Blackberry Pie. I do use notes for other things, like Perl Best Practices, Javascript Cheat Sheet, W3C DOM, Climbing: Plan Trip, Climbing: Packing List, Seattle Bucket List, and notes I’ve taken while reading numerous books.

Epicurious: I like the Epicurious app. It’s rather poky, but it has a recipe sync feature that makes it worthwhile. I can browse through the site and find recipes, add them to my “recipe box” and then go to the kitchen, pull up Epicurious, and then view the recipe I just chose. The laptop in the kitchen idea never worked well (I tried several times) but the iPad in the kitchen is delicious!

Instapaper: Go get it. Use it for a week. You will love it. Trust me.

Feedler Pro: RSS feed reader. An excellent one. If you subscribe to RSS feeds, it’s indispensable.

Password Wallet: I have 788 passwords. Every web site, computer, app, software registration, etc has it’s own password. Most are randomly assigned by PW. They are stored in an encrypted file that syncs between my Mac, iPhone, and iPad.

Less Used But Great iPad Apps: Twitter, Facebook, AIM, iSSH, Photos, Redfin.

iPhone Most Used Apps: Mail, Grocery IQ, Calendar, Camera, Safari, Notes, PW, FeedlerPro, Instapaper, Google Maps, OmniFocus, USAA (killer feature: deposit checks with my phone), Chase (killer feature: the only business checking with iPhone deposit, else I’d be rid of my TBTF bank account entirely), Scrabble, Facebook, Instagram, Reminders.

I have at least a dozen other apps I love, but only use on occasion. For example, the Airport Utility, for configuring my WiFi. I don’t use it often, but when I do, I’m really glad to have it. Apps like that: Stocks, Vanguard, Waze, AIM, WordPress, Skype, NPR, My TSA, FlightView, iBooks, Kindle, Remote, Youtube, Allrecipes, Dropbox, Zillow, Reunion, Epocrates, WordBook, iGrill (bluetooth remote for my kitchen temp probe), and of course, a handful of games and edu apps for kids.

wordpress blank page when updating

WordPress provides an upgrade feature that makes it point and click easy to upgrade themes, and plugins. For years, this has never worked for me. Anytime I click the “update” button, I get the FTP login tab. I enter my credentials and then I get a blank page in the right pane. No error message. No error logged. This broken feature didn’t bother me much because it’s pretty easy to update the plugins manually. But it was annoying.

Today I installed another WP blog for a client and decided I really ought to make this work. I double checked permissions, and then noticed that even after providing credentials, I wasn’t seeing a FTP connection arrive when I attempted an upgrade. It was then that I had my ‘duh’ moment. I have a minimal PHP install, with only required plugins. I installed the FTP plugin for PHP and voila, plugin and template install/updates work.

If you are getting a blank page when upgrading a wordpress plugin, verify that PHP’s FTP module is installed and active.

Form 1120S Schedule K-1 Worksheet

After my corporation bought back some stock certificates, the method I used to calculate Item F, “Shareholder’s percentage of stock ownership for tax year,” became more complex. Neither Google nor WolframAlpha led me to an equation so I set about creating a spreadsheet to simplify the problem.

The IRS instructions for form 1120S Schedule K-1, Line F, describe the method to use thusly:

Each shareholder’s pro rata share items are figured separately for each period on a daily basis, based on the percentage of stock held by the shareholder on each day.


If there was a change in shareholders or in the relative interest in stock the shareholders owned during the tax year, figure the percentage as follows.
• Each shareholder’s percentage of ownership is weighted for the number of days in the tax year that stock was owned. For example, A and B each held 50% for half the tax year and A, B, and C held 40%, 40%, and 20%, respectively, for the remaining half of the tax year. The percentage of ownership for the year for A, B, and C is figured as presented in the illustration and is then entered in item F.

IRS Form 1120S Schedule K-1 Item F table

I built myself a spreadsheet to calculate Item F correctly in the simple and complex cases. My spreadsheet implements the IRS described method without requiring the preparer to manually perform all the interim calculations. The only required inputs are the quantify of shares held by each shareholder and the number of days they were held.

Without any alteration, it supports up to 4 changes in shareholders and there’s no limit to the number of shareholders. I just plop in the raw numbers from the Stock Transfer Ledger and the spreadsheet does the rest.

I post it in Numbers and Excel formats, hoping that others will find it useful as well.



City of Seattle – Home heating fuel costs

City of Seattle – Fuel Costs

Notice the oil and electrical resistance heating systems. Even with a newer 80% efficient oil furnace, the cost of fuel is still more than double the cost of an older natural gas furnace. If I had a house with oil or resistance heat, buying a new gas furnace would be a no brainer. When paying $1,000 extra per year, it doesn’t take long to pay for a more efficient heating system.

But look at that high efficiency heat pump! It costs only $350/yr to heat the house. Because it’s a heat pump, it’s also an air conditioner. By switching to a heat pump,  A/C is included.

Using a heat pump is also the best choice for our environment. Here in Seattle, the vast majority (91% – of our electricity is generated from hydro. An electrical powered solution burns almost no fossil fuels and contributes almost zero pollutants to the environment.

If that still isn’t enough reason to choose a heat pump, consider the rapidly declining costs of solar power generation. The installed costs declined from 2009 to 2010 by 17%.  Costs have further declined by 11% in the first half of 2011. Solar now costs less than $6/W installed. Germany and Japan are further ahead, and installed costs there are under $4/W. In a few more years, residential solar will be the cheapest way to purchase energy. Having all electric appliances is preparation for that future.

MacBook Pro sleep causes network failure

A short time ago, my MacBook Pro developed a new and annoying habit. After putting it to sleep by closing the clamshell, and then waking it, the WiFi network wasn’t working.

Safari would report “You are not connected to the Internet” and DNS queries via dig in Terminal would fail with an “Unknown host” error message.  Interestingly enough, ifconfig reported that I did in fact have an IP address:


ether 60:33:4b:XX:YY:ZZ

inet6 fe80::6233:4bff:fe0a:d552%en1 prefixlen 64 scopeid 0x5

inet netmask 0xffffff00 broadcast

media: autoselect

status: active

And netstat reported that I had a default route which pointed at my default network gateway:

$ netstat -rn

Routing tables


Destination        Gateway            Flags        Refs      Use   Netif Expire

default             UGSc            7        0     en1

10.0.1/24          link#5             UCS             4        0     en1

Upon further examination, I was also able to ping the default gateway. And I was able to send DNS queries (dig @ syntax) to the gateway and get them resolved. But attempts to resolve hosts using Snow Leopard’s DNS recursion failed.

The workaround was turning WiFi off and then back on. Voila, problem solved until the next time I put my laptop so sleep. Today I decided to find and fix the problem. The solution was disabling IPv6 support on the WiFi network interface (in Network control panel). Voila, problem solved.