The Hiltmon

On walkabout in life and technology

Zombie Email

So, I decided today to archive my old emails, and that meant connecting to the Google Apps holding pen for my last hedge fund which closed in 2009. This is a zombie email account I have not looked at in more than two years.

There were a lot of emails in it.

None of which I wanted or needed.

Surely by now, everyone knows that the company is gone and the email address is defunct.

I guess not.

They still try.

Emails found include

  • Recruiters I have never met offering me candidates for a closed company
  • Vendors who I have never dealt with emailing me about products for my nonexistent company
  • I seem to have been added to a lot of hedge fund mailing lists, even though I have been out of the game since 2009
  • I still get pricing emails for securities traded by the company, even though the counterparties know fully well we no longer exist
  • Follow-ups from people I have not spoken to since 2009. Don’t you love it when people rely on CRM’s to follow up, just like clockwork, every 6 months, to a zombie address.
  • An email from the office cleaning company offering new services, surely they know we’re no longer there
  • New year’s cards from vendors we no longer do business with, I hope they did not send gift baskets too

Oh well, I’ll check it again when next I renew the domain. In two years. Maybe.

My Own Support Call Line

My ideal vendor support line is a direct number to call the exact person I need to speak to for support. Unfortunately, this is not economic for vendors, especially since I may never call this lucky, and quite bored, person for support.

My second worst vendor support line is the most common, a 1800 number that puts one in the queue, where you wait, listening to a robotic voice tell you how long you still need to wait, like a lump. And when they do pick up, the person on the other end is a professional phone answerer not a tech. So you have to go through the process of first identifying yourself, then identifying the product, then, before you explain the problem, having to go through the script that the professional phone answerer must follow. Is it plugged in? Did you reboot? Did you try this? Did you do that? And when you explain the problem, they create a ticket and let you go, with the issue unresolved. As a professional IT person, the only time I call support is when I have exhausted all possibilities, all of which I have to redo as the dumb and useless script progresses.

My worst support vendor support line is one where they want you to pay first. That is a big fat fuck you to your customers. I have already paid for your software. I have already exhausted all channels to get the problem fixed. I am calling as a last resort. And now I must pay before you’ll even talk to me. Way to hate your customers.

And don’t get me started on robo-routers, those that ask you to talk to them. I speak Australian and none of them understand a word I say. I’d probably get better responses in Swahili.

The middle ground, a support line for professionals, would be the best economic solution for both customer and vendor. Give the professionals a different number, use caller ID or a quick identification to qualify those who do call, and send the rest back to the current lines. Professional customers take less support call time because they have already tried everything before calling support, and can usually explain the problem much more clearly. So fewer support resources are needed on the vendor side and the professional customer is happier because they don’t need to queue or dance to the script.

But how to identify these professional customers? Turns out my bank, HSBC, has done this and it works brilliantly. Long term and higher value customers at HSBC get the premier tag, which gives them a special support number and access to an account manager. When I call my bank, I get a person who is ready to deal and knows me. I can get right to the issue and the person on the other end knows what to do and is authorized to get it done.

Lets see how this could work at other companies. HP sells servers to the public and to corporates with IT staffs. The corporate with IT staff should get its own number because professional techs can talk to professional techs, and let the general public who have no idea how to use servers call the regular number. Apple and Microsoft could give registered developers who have been developing for the platform a longer time access to a number to call where they can talk to other developers in support. AT&T and Verizon can give customers who purchase and manage swathes of company phones access to a number where there is no wait to get an issue resolved. Cable companies can use the occupation field in their customer databases to identify technically savvy customers and let them get through directly to network techs. Nikon and Canon can have special numbers for pro-photographers. I could go on.

I think that companies can and should identify their professional customers, and give them access to better support lines without the script. It builds better customer loyalty and makes both parties happier.

Then add me to these programs.

Apple Cinema HD Display Circa 2003

That’s right kids, I am still using the old 23” Apple Cinema HD Display I purchased in 2003, 9 years ago, before Apple went all aluminium.

I use an ADB to DVI adapter to connect it to the Mac Pro. I love its matte screen, 1080p support and the fact that I have to prop it up using old Final Cut manuals. It still works great, though.

Automatically Managed Files

I’m moving back to the desktop for a while to do some iOS programming. Many of the files on my laptop are auto-managing, so as I am moving the process, I thought I’d share how they are automatically managed using Hazel from NoodleSoft.

Hazel is a background process that monitors folders and executes automated actions on matched files. Once a rule is created in Hazel, I can forget about what I have to do and Hazel takes care of things for me.

The first rule is simple, clean desktop. I drop all my temporary files and stuff on the desktop while I am working, then either file it later, delete it or more often than not, forget about it. Before this rule, my desktop was always a complete mess. My “Clean Desktop” macro monitors the desktop folder, and if I have not touched a file in 1 hour, it moves that file off the desktop into a working folder. Which means I always have a clean desktop.

But that does mean I have a messy Working folder. So I have Hazel monitor that as well. The first rule colors all files that are more than a day old in gray so at a glance I can see the old files.

The second rule clears the gray color if I do access the file.

And the third rule deletes any files I leave in working (which is most of them) after a while.

Another use I have for Hazel is to archive my old nvAlt documents. In order for this to work, I had to install openmeta to enable tagging and enable super-secret openmeta mode in Hazel

1
defaults write com.noodlesoft.Hazel OMToolPath /usr/local/bin/openmeta

Now, when I tag an article in nvAlt as archive, Hazel moves it to an archive folder and clears it out of nvAlt.

The other folder I leave in a mess is handled by default by Hazel. All trashed files that are there for more than a week are deleted. I apply the same rule to the downloads folder. I also use the App Sweep feature whereby when I delete an application, Hazel looks for and deletes all the matching hidden files as well, such as preferences and local data, keeping my system much cleaner.

But the real reason I love Hazel is the next thing I am doing with it, using an Actions folder to have Hazel do all my filing for me. I am at the point where I am switching to a more paperless workflow so I download bank statements and other bills and I’d like them to be renamed and filed for me. This is what Hazel excels at and I’ll write about it once I get it fully working.

US Aircraft Embarkation Etiquette Failures

I just returned from a European vacation which involved flying in several aircraft from a wide variety of airports. Over the past few years, I have flown throughout the USA on local carriers and there are many things about the local embarcation experience that leaves a lot to be desired. Here are some of my annoyances, with proposed solutions as usual.

Recent Travels and Tech

My wife and I have been on vacation the past two weeks, the real vacation kind where you go to exotic places and are too busy seeing, trying, doing, eating and drinking things to keep up with email, tweets and blogging. We travelled to three European destinations with four iPhones, two iPads, a MacBook Pro and two plug adapter sets. Here’s how they performed.

The MacBook Pro

I brought the laptop along “just in case” I needed to jump in and fix any software issues while away. It was a stupid decision as I only turned it on once to backup my camera SD card (I have an iPad camera connection kit that could do it, but left that at home). The laptop was a bulky, heavy item that had to be removed and replaced at each border post and was never needed.

Had I needed to fix a server, my iPad has Panic’s Prompt installed. If any code needed work, Textastic can handle simple bug fixes.

Laptop: Not coming next time (unless I get an Air)

iPads

Both of us used our iPads about twice a day to check email, catch up on the news and twitter. WiFi was available everywhere we stayed, so connectivity was not an issue. A lot of the time, we used our iPads to research where to go or eat during breakfast, and then we would drop them in the hotel safe and head out. We did not carry them with us. And we most certainly did not use them to take photographs!

iPads: Perfect for downtime email, news and research.

iPhones

We each carried our newest AT&T iPhones as we travelled, as well as an unlocked old iPhone 3 each. I had synced the old iPhones with our address books before we left, so that we could install a SIM anywhere and still have access to our contacts, emails and calendars.

For the AT&T iPhones, we both turned off data roaming before we left to ensure we don’t get nailed with the blitheringly insane data roaming charges (US$20/MB, i.e. a single 2.5MB iPhone 4S photo would cost US$50 to email via cellular data). We did use them to receive and make the odd call and of course, maintain text contact.

Finding a cheap SIM for the old iPhones was easy everywhere in Europe. One deal I particularly liked was a Europe-wide unlimited data-only SIM plan that would enable us to use cellular data without a phone number (and Skype for free). What we found was that most of our friends had spare prepaid SIMs that they use for when their families come to visit, and we borrowed these instead.

But the biggest use of our iPhones was for photography. I carry my trusty Nikon D80 with its lovely 18-200mm VR lens everywhere when I travel. I use a Nikon Hand Strap with it, so it is literally handy. But there are times and places where bringing out the big gun was not necessary, and the iPhones came out. We would then Facebook a photo of our current statuses directly from the iPhone via local free WiFi, which meant our poor suffering friends could follow our adventures in semi-real time.

Oh, and the low light performance of the 4S seems better than the D80.

iPhones: Will carry both again, good to have the usual US phone number for work, with the benefit of local data on the other one.

Travel Adapters

All these gadgets require juice, especially the iPhones after a hard day’s vacationing. We took only one adapter set, but needed a second to keep the tech juiced.

Adapters: 1 per traveller, for each country visited.

Facebook

The final element in our tech package on this journey was Facebook. We used it to share some of our adventures photographically. I think maybe this is what Facebook really excels at, allowing us to share our journey with friends and family, and for them to join in on the journey. A friend of mine is in Japan right now and is sharing pictures of the lovely inn they are staying at, and I am looking forward to his next post. From both the traveller’s side and the friend’s side, this workd great.

Facebook: Share the journey, and travel along.

Well, we’re back now, processing the photos in Aperture, updating all computers and installing Creative Cloud, ready to go back to work.

Application Context Packs

When developing in Rails, I use a certain pack of applications; when coding for iOS, I use a different pack of applications; and when in a blogging context, I use a third pack of applications. And then there is the regular set of applications that I usually leave running. Starting and switching between these contexts used to take time, until I found a better way.

The Old Way

After a clean reboot, I would then have to go through the same dance every time, launch the regular applications manually. Start Mail.app, OmniFocus, Billings, nvAlt, Twitterrific, Reeder, iChat and Skype, waiting for each to launch before clicking the next one.

Then I would choose what to do next and start the application pack for that context. If I were to be programming in Rails, that means two terminal sessions, TextMate, BBEdit and Safari. If iOS, then it’s Xcode, BBEdit and Photoshop, blogging, MarsEdit and Safari.

To switch contexts, I would manually close the unnecessary applications, and then manually launch the new ones. And then configure them for the project I was working on.

This was painful, slow, and I often forgot to either close unnecessary applications or launch the ones I needed.

The New Way

I have set up a bunch of Keyboard Maestro macros and shortcuts to take care of all of this, and use TextExpander snippets for configuration where necessary. Here’s how it works.

I have setup a Keyboard Maestro macro mapped to ⌃⌥⇧⌘W that opens all my standard applications (called ‘Start All’). This macro launches all my regular applications, then hides the Skype window. One keystroke, and everything is on. I boot, I hit this combination and it’s all done. I also have a matching ⌃⌥⇧⌘Q (‘self-destruct’) macro that kills everything, one keystroke and all my running apps terminate.

To switch contexts, I have a series of context macros linked to the same key combination ⌃⌥⇧⌘C. In Keyboard Maestro, if you use the same key for more than one macro, it displays a panel for you to choose from. Here’s mine:

I can either use the mouse to select a context, or just press 1 for the first, 2 for the second, etc. The macros themselves are pretty simple: if I am already in that context, it terminates the context applications, else it launches them. It determines whether I am in a context by checking if the key application for that context is running. For example, if Xcode is running, then triggering the Xcode context terminates it, else it launches it.

This works great in my blogging context. Trigger the macro and a terminal session is opened in my blog folder, ready for me to create a new post. I have modified the new_post code in Octopress to launch Byword. When I am finished blogging, I trigger the same macro and Byword and Terminal are closed. Back to a clean system.

It’s almost same for programming in Rails. Trigger the Rails context and Terminal, TextMate, BBEdit and Safari all launch. The problem is that I work on multiple rails projects at the same time. I could have simply created a context for each Rails project, but given that I bounce between Rails projects while staying in the same context, having to quit and launch the same application pack just wastes time. Instead, I have created a set of TextExpander snippets to handle the configuration of the context.

For example, when I wish to work on Kifu, I do the following:

  • Launch the Rails Context using ⌃⌥⇧⌘C and then press 2. This launches my Rails application pack and leaves me in the terminal.
  • I type ;cdki which TextExpander expands to the Kifu source folder path and press enter.
  • Type ;md (which expands to mate .) to open the project in TextMate which is already loaded.

And I’m ready to program. Everything I need is loaded, configured and ready for action.

And when I am finished, ⌃⌥⇧⌘C and 2 again terminates them all. Back to pristine.

Dealing with OS X Lion

I am very comfortable with this workflow, but a few OS X Lion features get in the way. The first is the application resume feature. Since I may be using the same application in different contexts, I sometimes do not want the state from the previous context to be resumed in the new context (and sometimes I do). I have therefore gotten into the habit of hitting ⌘W a few times on the main context application to close all windows before triggering the context switch.

The second is that Lion resumes all applications on a reboot. Most of the time this is OK, but I want control. So I usually hit self-destruct ⌃⌥⇧⌘Q before rebooting so I don’t have to uncheck that darn checkbox to prevent it.

My iPhone Home Screen

I have noticed of late a trend in people or sites showing off their iPhone home screens, the first page on your iPhone with the dock, and explaining why they rearranged the applications and icons. Some have even moved the Phone.app off their home screens.

They are all doing it, so it must be cool.

My home screen on the iPhone is factory original. All the applications are exactly in the same place that Apple put them when the iPhone was first set up. Much cooler. Why? Two reasons.

So that others can use my phone.

My phone gets passed around all the time like a two-bit hooker. I am always giving it to people so they can read a tweet, look at a photo, interact with an app, play a game, or make a phone call.

Somehow, all my previous phones seemed to be private, mine and mine alone. Maybe because all they did was make calls (anyone remember when you could actually make calls on a mobile phone in New York?). Maybe because I was embarrassed to have such crappy devices. Maybe because there was rarely a need to.

But the iPhone with it’s lovely display is more than a phone. It’s a picture frame, a game console, a web browser, a GPS, and none of these things feel private. All my data, text and pictures are on it, and the whole internet is on it, it’s both the container and the medium of all things I wish to share.

So I leave the device home screen as expected, so when I hand it over, others can use it easily.

Spatial Awareness

As an old-school Mac, I remember when the finder would remember where and how the last time a folder was opened, and would always open it again in the same place in the same way. Since every item on the screen was always in it’s place, I did not have to hunt for anything on the computer. I always knew without looking where everything was. This knowing is called spatial awareness, and we humans are pretty good at it.

I expect the same on my iPhone. I know where everything is on my phone, without having to search for for it. I know the phone app is in the bottom left corner and SMS is the top left. The camera is top right, Instagram is one swipe to the right top right. It enables me to use muscle memory to navigate the phone quickly and efficiently.

It’s taken me a while to choose and place the third party apps on my phone, and every year I do seem to rearrange the them as new ones come and go. But the home screen remains pristine. That muscle memory is too ingrained. Which also means that when Apple does move things around, as they did for iOS 5, it drives me mad until I get used to the new default layout.

So if you want to see what my iPhone home screen looks like, because looking at these is cool, just nuke yours, and after it reboots, that’s it.

This Industry Is Full of Crap

Lovely rant by Amber Weinberg in This Industry Is Full of Crap:

We get to do something that regular people can’t understand so we’re think we’re cool. We’re not.

And I’m right with her on this too:

I love the fact that as a freelancer, I can choose who ever I want to work with – both in terms of clients and other freelancers.