Category Archives: Tech

Articles relating to a variety of technical themes. Dividing by Zero is not defined, so this fits in as well as anything else does.

Android Integration

As nearly as I can tell, I’m about the only person in North America who isn’t on Facebook. (Evidently all three of my brothers have joined – though apparently none of them are fully aware of the others’ presence yet.) But I have gone and joined a different cult — I now have a Google Android-based telephone (the T-Mobile G-1).
For me, one of the most appealing parts of the Android phone is the way it integrates your phone book and calendar with Google’s contact manager (built into GMail) and calendar. That’s a fairly killer application for me in that it makes everything a whole lot more portable. The only problem is, GMail isn’t my primary means of contact. I’ve had my Dactylmanor address for more than eight years and prefer to use that one.
GMail offers a partial solution to this in that you can set it up to send messages from another address. The down side to this is that messages go out saying they’re from the GMail address on behalf of the Dactylmanor one. So when other people see it (primarily folks who are using GMail as their main address), they tend to capture the GMail address in their contact lists. If they then write to me at GMail instead of Dactylmanor, it could be a while before I see it.
Being forced to move to GMail as my primary email address would have been a deal-breaker for me. A lot of people know to contact me through Dactylmanor and I really don’t want to deal with managing two addresses. (It’s been more than four years since I got rid of my landline phone, but I still occasionally hear about people calling the old number.)
So I went looking to see if there was a way to get an Android to work with non GMail address. One of the free services Google makes available is “Google Apps for Your Domain“; essentially, they provide a version of GMail, Calendar and their online Documents and Spreadsheet tools that work with a domain name you own. (For example, dactylmanor.org!) I figured that would be my best bet.
The first stop in my investigation was a thread on the Android Community Forums where someone was asking the exact same question I was: Does Android work with Google Apps for Your Domain?
And the answer is a resounding yes. Brilliant! (Apparently Google didn’t plan to do this, but later changed their minds.)
The first thing you have to do is setup your email to go to Google’s mail server. The instructions for that show up in the administration panel when you activate the email system. It’s mildly tedious, but fairly straightforward. You do need to have the ability to set custom records in your domain’s DNS server. (Pair makes this fairly simple.)
When I’m at home, I prefer to use Mozilla Thunderbird for my email rather than Google’s web interface. Setting up a desktop email client is also fairly simple, though given the number of them in existence, it’s not possible to document the step-by-step for every system out there. Google’s instructions provide the basic information for server settings, plus a double-handful of the most common clients.
Throw in the Lightning calendar addon for Thunderbird (as well as the provider for Google calendar), and at this point you have something equivalent to Microsoft Outlook, except that along with Windows, you can also run on Mac, Linux and a few other platforms.
Bringing the Android phone into the mix requires that you dig into it’s settings a little (Home Screen | Menu | SD card & phone storage | Factory data reset) and click the button for “Factory data reset.” (Yeah, that step’s a little scary.) When the phone starts up again, when it asks for your Google account, you instead enter an email address and password for your newly Google-hosted email system.
The phone synchronizes its contact list, calendar and email with what’s on Google’s servers and voilà! The Android is now ready to do your bidding.

First Impressions: Android

I’ve been a Sprint customer for the past eight years, but over the course of my most recent contract, I encountered a number of customer service issues:

  • Unable to block calls from unknown numbers.
  • Being charged for text message spam.
  • Sprint deciding to wipe out all user accounts on their web site.
  • Sprint store employees unable to sell replacement batteries.

When I wrote to the head of customer service, Sprint’s response to everything was best summed up as “We don’t do that.” (Amusingly, on one of my phone calls to customer service, the person I spoke to admitted that she doesn’t use Sprint at home.)

When my contract expired in December, Sprint offered me a $50 rebate if I’d sign on for another two years. What they didn’t offer was an apology. That’s too bad, because they certainly are sorry.

So now that I’m footloose and contract-free, I started looking around at some of my other options. I have some misgivings about T-Mobile, and a few more about Google, but the Android Operating System has all sorts of Geek appeal. (Regardless of whether you actually do it, the notion of being able to being able to program your phone is kind of cool.)

I’ve certainly heard plenty of good things about the phone. A co-worker has been raving about his since the week after they came out, and when I bumped into her at Farpoint, Katie started evangelizing about the G-1.
So, I decided to give it a try. I ended up buying the phone directly from T-Mobile and arrived home on Thursday to find a note from UPS waiting for me, saying a signature was required. I finally got the phone late Friday evening when I went to the UPS pickup location.

When you first turn the phone on, it prompts you to either login to an existing Google account, or create a new one. So I entered my information and clicked the “Sign-in” button. The login process ended with a message telling me that the phone couldn’t log in. It might be a temporary problem, or it might be that the SIM card hadn’t been set up correctly. After twelve hours later, I’ve ruled out the idea of it being a temporary glitch.
The first call to T-Mobile’s “Customer Care” number (Whatever happened to calling it “Customer Service”?) didn’t go so well. First I got a bad connection. Next, the representative kept telling me how I could find out the new phone number by entering a code (Gee, if only I could get the phone set up, I could try that!), and then I got cut off.

The second call was a bit more productive. It turns out that when I ordered the phone, the sales person forgot to sign me up with the required data plan. (Buying the G-1 phone absolutely requires you to buy a data plan, but somehow the sales person managed to skip that step.)
I’m set up with data service now, but the Customer Care rep told me it may take anywhere from a couple hours to a couple days before the service starts working. (If it ends up at the “couple days” end of the scale, I’ll be returning the phone. I’m already several days into the trial period without being able to try it.)

So my first impression of the G-1 Android phone is this: It’s a brick. I’d been hoping to write about how well it was working, maybe even post something via the phone. (Before it died, I would occasionally post via my PDA.) Instead, I’ll have to settle for letting Katie write about her phone in the comments.

Most likely the problems I’m having are because somebody turned off the satellites.

In Orbit

Given that this particular model has a reputation for draining it’s battery even faster than I can drain a can of soda, it’s good that the new new phone includes a card with “Tips to make your battery last even longer.

My favorite tip? Turn off GPS satellites when not in use.

Well OK. But won’t that be inconvenient for the rest of you?

Hiding From Google

Google has announced plans to make their ads more “interesting.”
Evidently the plan is that they’re going to track what web sites you visit over time and use that information to decide what ads you might find interesting. They’ve had this capability for years, every time you visit a site with Google ads, they set a cookie in your web browser. By serving up a cookie with the ads, they’re able to track you no matter what sites you visit. If the site includes Google ads, Google will know you visited it.
Do you find it a little creepy that Google will know your every move? They’ll let you opt out. You just have to be know that they’re watching you and also know that there’s a way to turn off the tracking. Because, you know, this is going to be completely obvious to everyone. (Believe that and I have some ocean front property in Colorado I’d like to talk to you about.)
My personal preference for dealing with this is to change my browser settings to discard cookies every time I exit from the browser. That way, none of the various trackers (Google is just the largest company to do this) knows my usage patterns outside a single session.
This is fairly easy in Firefox: Go to Tools menu, select the Options sub-menu and a dialog box will open. On the Privacy tab, change the setting for “Keep Until” to say “I close Firefox.” Note that after making this change, most web sites with logins will require you to login again for each new browser session.
Turning off cookies in Firefox.
Internet Explorer is a little different, but not too much more difficult: Go to the Tools Menu (you may need to press the [Alt] key to make the menu visible), select the Internet Options sub-menu and a dialog box will open. On the Privacy Tab, click the “Advanced” button.
Turning off cookies in Internet Explorer, part 1.
This will open a new dialog box. Click the “Override automatic cookie handling” checkbox (1). To block ad-based cookies, in the column labeled “Third-party cookies”, select “Block” (2). For greater privacy, you can also choose “Block” from the “First-party cookies” column, however this will prevent some web site logins from working. Check the “Always allow session cookies” which will allow cookies to be set for the current browsing session (3).
Turning off cookies in Internet Explorer, part 2.
Full Disclosure: You may have noticed that my site makes use of Google ads on a number of pages. I don’t care for Google’s new tracking technology, so I’ll be removing the ads completely over the next week or so. Between the privacy concerns, the lack of relevancy, and the number of blatant scams appearing in the ads, I don’t think they’re worthwhile.
Until I remove the ads, I’ve modified the settings in my Adsense account to exclude my content from the interest-based ads. In the meantime, Google’s context-based ads will continue to appear. It may be entertaining to see what sort of ads result from this post. 🙂

Reply to All

More than once, I’ve seen where somebody hit “Reply-to-All” when responding to a company-wide email. I’ve seen people follow-up by using “Reply-to-All” to tell people not to use “Reply-to-All.” And just once, about five years ago, I’ve seen that escalate to three or four levels of people saying “You idiot! Don’t use Reply-to-All.”
I’m not sure how much coverage the news story got outside the DC area, but back in January, employees of the US State Department managed to cripple their own email system by hitting “Reply-to-All.”
Gene Weingarten’s matter-of-fact reporting of that event has to be the funniest thing I’ve read in quite a while.

Call For Backup

For years I’ve been urging my friends and family members to back up their computers. In the past 10 years, I’ve probably succeeded in getting fewer than five people to back up their computers even once. (The fact that Dad backs up his important files once a year is one of my greatest success stories.) In that same time span, I’ve probably told at least one person a year – including all three of my brothers – that there really wasn’t anything I could do to help them after something got wiped out.
Probably the one biggest thing that gets in the way of my own backups is that it takes a tremendous amount of time to copy everything to a CD or DVD. (I haven’t done a tape backup in 10 years and it’s probably been closer to 12 or 15 since the last one involving a stack of floppies.) What’s been saving my bacon in recent years has been automation.
Hard drives are cheap these days. You can buy a gigabyte of storage (equivalent to about 714 floppies) for about 60 cents. For the past three or four years, I’ve had an external hard drive hooked up to my computer and set up a program to automatically back up my files every night about the time I’d be going to bed. (I started using Norton Ghost for this, but when I switched to Vista back in February, my copy of Ghost was no longer compatible and I’ve been using the built-in backup program.)
Backing up files to an external drive is a huge step in the right direction and it’s helped me out more than once when I discovered I’d permanently deleted the wrong thing. And if I ever have a computer flat out die, copying everything from the backup beats the heck out of paying a data recovery company a few thousand dollars to try getting everything back. But it doesn’t cover all the bases.
A (hopefully) rhetorical question people sometimes talk about is what would be the one thing they’d want to save if their house was on fire. Aside from the obvious (family members and pets) one common answer is the family photo album. But with the ubiquity of digital cameras, most people’s family photo albums are stored on the computer. And in the event of a fire (or flood, earthquake, etc) the computer’s not an easy thing to grab. (Similarly, in the case of a theft, the computer and secondary drive are likely targets for theft.)
This is why businesses keep a copy of their backups at another location. Individuals can do that too, keeping a back up copy of important files at a trusted friend’s house, but even with the best of intentions, that doesn’t happen very often because it involves actively remembering to do it.
For the past few weeks, I’ve been experimenting with a free online service called Mozy Home. The free service allows you to store up to 2 GB of files on their servers. It’s not enough space for my photo or music collections, but its sufficient for some of the other things I work with quite frequently such as the various web sites I work on as well as both my email and snail-mail address books. For $5 a month, I could get enough space for everything on my computer, including the aforementioned photo and music collections. (Caveat: One thing I won’t share with them is the login information for my online bank account, but I don’t keep that information on the computer anyhow.)
Best of all, the backup program runs automatically every night. It doesn’t take any special effort on my part.
I’m sure this sounds like an ad for the service, but I really do encourage you to check it out. I’d really love to have a year where I don’t have to tell anyone their important file is gone for good.

Naming Conventions

Admittedly, I’m not very good at coming up with names for things. If it were left up to me, the street in front of my house would simply be called, “The Street” and the street over by my friend Jeff’s would (at best) be called, “Jeff’s Street.” (It’s also quite possible that this other street would be called “The Other Street.”) But in some odd way, it’s still good to know that I’m better at names than some people.
For the longest time, my standard for poor naming conventions was a set of classes for managing the transitions between modules in a web application. The classes were named, “TransitionType1”, “TransitionType2” and “TransitionType3” which didn’t really convey much information about how they differed from one another. (The same developer was responsible for a set of login functions named “LoginType1”, “LoginType2” and so on up to “LoginType6.” By a not-so-amazing coincidece, that was also the order of the different types in the requirements, so it was slightly better, but still not particularly descriptive.)
Today I encountered the Holy Grail of interesting names. The names were completely descriptive, but still caused me to do a doubletake.
A blogging package I’ve been evaluating exposes a set of events you can capture for specialized processing as a user edits a post. You can’t capture the update event itself, but before and after the update, you can capture the delightfully named PrePostUpdate and PostPostUpdate events.
I’d love to be that creative with my own confusing names.

Three Phases of Technology Adoption

A discussion at work today turned to how my most recent project (currently in testing) may be the first one moved to dotNet v3.5 as a pilot for the 2008 versions of Visual Studio, SQL Server and Windows Server. Once we find out what it takes to move a simple project to the new platform, we’ll start looking at moving the more complex systems over.
One of the new technologies being considered is LINQ. None of us have any hands-on experience with it yet, but this conversation led us to realize there are three distinct phases all projects go through when adopting a new technology:

  1. Refactor the entire system to heavily overuse the new technology, especially in manners where it was never intended to be used and/or is completely ill-suited.
  2. Refactor the system again in attempt to remedy the problems caused by the previous refactoring.
  3. Refactor the system with the next hot technology.

The planning to assure that this will be the time you finally break out of that cycle is spread across all three phases.

Migrating to Vista

Two weeks after the new computer (A Dell XPS 420) arrived, life has finally settled down enough for me to start moving all my stuff. Moving the data files was easy enough (I figured out years ago that a LAN is the easiest way to do that), but getting Apache up and running so I could work on some of my web sites turned out to be “painful.”
I’d been running v2.0.50 of the Apache HTTP server on my XP machine for the past five or six years, so my first attempt was to just rerun that install and be done with it. No such luck. The install ended with a message stating that the service hadn’t been installed and nothing further.
My first thought was that Vista’s tightened security was probably responsible, so I logged back in as an admininistrator and ran the install a second time. Still no dice.
Hoping to find some tips for installing under Vista, I headed over to the Apache Project’s web site and discovered that the current version of the HTTP Server was 2.2.8. Aha! Perhaps the new version has some adaptations to handle Vista? (Reading the site later, I discovered that the newest version of Windows mentioned in the online install tips is Windows Server 2003, so perhaps not. Then again, nobody likes to write documentation – myself included – so I don’t really know.)
A quick visit to Google however, searching for the terms Apache, Vista and Install led to a suggestion that perhaps User Account Control (UAC) was to blame and suggested turning it off during the install. Voila!
So, here’s the steps that worked for me:

  1. Login as an administrator.
  2. Go to Control Panel, Go to the “User Accounts and Family Safety” applet, Click on “User Accounts” and then select the option to turn User Account Control off. (You’ll have to reboot at this point.)
  3. Run the Apache 2.2.8 installer, using the recommended settings. (In particular, make the server visible to everyone on port 80.)
  4. Point a web browser to http://localhost/ At this point, you should see the message, “It works.”
  5. Go to c:\Program Files\Apache Software Foundation\Apache2.2\conf and make whatever changes you need to the http.conf file. (Make a copy first, and forget about simply copying the entire file from an earlier version, though you may be able to copy sections. At a minimum, you’ll probably want to change the DocumentRoot to something outside the Program Files tree. You’ll also likely need to change the permissions in the <Directory /> section a few lines further down. )
  6. Once you’ve changed the http.conf file to your satisfaction, log out from the administrator account and log in again as a regular user to make sure the server is still accessible.
  7. Optionally, login again as the administrator, repeat step 2, and re-enable the User Account Control.

I still need to go back and set up PHP, but this was sufficient for me to get back to some more pressing web site work.