Technology


9
Mar 10

User Experience & Software Engineering

I remember, as if it were yesterday.

I was sitting in the ground station laboratory at the European Space Agency, needing to setup a test configuration using the “Monitoring & Control Module,” and staring at a grey screen full of mis-aligned, inconsistently-sized tabs on top of three-dimensional squares, on top of more squares on top of more tabs. The feeling was one of hopelessness and nausea. Who designed this thing? What were they thinking? Was the UI simply given to the most available “resource,” or perhaps the summer intern?

It was at that moment that I decided to start a company—MakaluMedia—in which “user experience” would drive everything we do.

Continue reading →


17
Jan 10

My data storage and backup system.

drobo.pngInspired by Steven Frank’s description of his own system, I thought I’d take a moment to document how I store and backup our important data.

Continue reading →


11
Jan 10

Usable paperless statement filenames. Isn’t it about time?

Isn’t it about time that companies that provide paperless electronic statements begin helping us out by giving those electronic documents meaningful names? Here’s the names of two bank statements I just downloaded.


11
Aug 09

Experimenting with Google Voice and Skype

Unfortunately, Google Voice doesn’t yet support forwarding to international numbers, which, for someone like me, living in Spain but with considerable interests in the US, is quite a bummer. (What I particularly like about Google Voice is its call screening facilities.)

To work around this limitation, I have Google Voice forwarding to my US SkypeIn number.

This works well when I’m at the computer, as I can answer my Google Voice calls directly in Skype. But what about when I’m not at the computer?

One of Skype’s preferences is forwarding, and I have it configured to forward unanswered calls to my iPhone. While this works fairly well, a parameter I’m still fiddling with is the time after which Skype considers the call “unanswered” and does its forwarding.

If you set this value too small (like “1 second”), then you don’t have enough time to answer Skype calls when at the computer. If you set it too large (like “10 seconds”), then your Google Voice call will timeout and get dropped long before Skype has time to forward to the iPhone.

Presently I have this value set at “4 seconds”, which seems to be a good trade-off.


19
Jul 09

Rethinking security after the Twitter/TechCrunch fiasco

In case you missed it, TechCrunch received some 300+ confidential documents related to Twitter (the company), which were attained by a hacker. These documents contained minutes of meetings, business plans, talks with companies like Google and Microsoft. In short, a disaster for Twitter.

Continue reading →


20
May 09

Pixmania User Experience (or is it eXpansys?)

I recently placed an order for a camera with Pixmania.es. After a few days I received this email (with my order number edited; so don’t click the link):

Su pedido 9HJ1-6706EDIT fue envíado.
Visita http://www.expansys.es/tracking.aspx?EDIT para más información. Según el transportista elegido, y para tener más información: – contactar directamente con DHL al 902122424 o 915867927 – contactar directamente con SEUR al 972 242 526
Order Processing
eXpansys
+34 933 938 182
mailto:orderstat@expansys.es
http://www.expansys.es

In such a short email, Pixmania have failed on five points:

  1. The email is from Expansys.es, which as far as I can tell, is a completely different company. Presumably they’ve merged or something? This is akin to placing an order with Best Buy, and getting a fulfillment email from Amazon. My first thought was, “Oh no, did I somehow order this thing twice!?!” A short explanation to the customer could prevent a lot of confusion.

  2. The only information available in the tracking link, is a note to say that the product shipped and that they’ve sent me this email.

  3. And this is uniquely amazing: The text beginning with “Según el transportista elegido…” means this: “Depending on the courier company we choose, please call either DHL or SEUR to get more information about the status of your order.” Yes, you read that correctly. They either don’t know which courier they’ve chosen, or just don’t want to tell me.

  4. Without a tracking number, I’m not going to get very far calling either DHL or SEUR. Both this email and the Expansys website only display the Expansys order number.

  5. Finally, when calling the “Order Processing” telephone number +34 933 938 182, I’m told that “This telephone number is unavailable.”

You would think that somebody at Pixmania (or Expansys?) responsible for user experience would have, just once, placed an order at their own site, and observed what happens.


13
Aug 08

Drupal to WordPress Weblog Migration

In February of this year, I switched this blog from WordPress to Drupal, the reasons for which are explained here. Today, a handful of months later, I’m switching it back.

While Drupal is an amazing platform for software development—indeed, my own company extensively uses Drupal in some our projects—my opinion is that it’s not appropriate for mainstream bloggers.

So, here’s the short tale of my road from WordPress to Drupal, and back again:

Continue reading →


12
Jul 08

How to create POIs from Google My Maps on Mac OS X for a Garmin Nuvi GPS

I have a Garmin Nuvi 370 GPS device, and a Mac OS X MacBook. We’re planning a trip to Stuttgart, Germany and I hoped to be able to easily load waypoints, locations, POIs (Points of Interest)–in other words, “places”–onto my GPS beforehand. I don’t know if I’ve discovered the only way to do it, but I did find a way. And it is far more complicated than I’d hoped. So, until I find a better way, here’s how it’s done:

Continue reading →


22
Jun 08

How to geo tag photos on Mac OS X using Garmin devices and HoudahGeo (and then display on Flickr)

Some friends have recently expressed interest in knowing how I geo tag my photos, and so this article describes the process.

Continue reading →


22
Jun 08

Using two Garmin GSC 10 Cadence Sensors with a single Forerunner 305

In the past I’ve wondered whether it’s possible to use a single Garmin Forerunner 305 GPS trainer watch with two Garmin GSC 10 cadence sensors (i.e. with two different bicycles). The answer is, yes, you can; however, the device can only work with one sensor at a time. When you switch from one bike to the other, you have to enter Settings -> General -> Accessories -> Cadence Sensor, and from there perform a rescan, so that the 305 will pair with the other cadence sensor. So, you can only be paired with one sensor at a time.

It should be noted that when you pair the 305 with a cadence sensor, you should be well away from the other bike. If you try to pair when you’re physically close to both bikes, you’ll get a “Multiple Cadence Sensors” error as soon as you select “Start Rescan”.


8
Feb 08

Wordpress to Drupal Weblog Migration

Today we (my buddy Arto and I. Ok, Arto with me looking over his shoulder) made some major under-the-hood changes to this blog, namely, migrating from the Wordpress blogging system, to Drupal. In particular, Drupal version 6.

Why the change?

Continue reading →


31
Jan 08

Lucky me.

I’ve been a happy owner of a hacked “Jailbroken” iPhone for a long time. My iPhone has been running perfectly well for me on version 1.1.1 for, well, since I bought it several months ago.

I also work with young people who live (and sometimes cut themselves) on the very bleeding and dripping edge of technology. One such “yoot” (taking a line from My Cousin Vinnie) told me the other day:

“Matt, I can upgrade you to 1.1.3 in about 30 seconds. It’s smooth, and easy, and risk free.”

So I caved. A day and a half later, my iPhone was running 1.1.3, and in my case, this carried both benefits and drawbacks.

Benefit: I can now manually reorganize the icons on the screen. If I don’t like the SMS icon at the top, I now have the power to do something about it. I can drag it to the bottom.

Drawback: The telephone ringing sound no longer works, so I now miss all calls. (Same with the alarm sound; so I now get up late and miss appointments.) According to the Apple Support website, “This is an issue with Jailbroken iPhones running 1.1.3.”

And, of course, there’s no way to go back. So, I now spend my days re-organizing icons, staring at the screen and waiting for phone calls to come in.

As my buddy Niall said, “Who needs a phone to do something as old fashioned as RING for goodness sake. I mean, you can drag your icons round.” Lucky me.


19
Jun 07

DabbleDB / User Interface / User Experience

A while back, there was quite some chatter about DabbleDB, “a better web database to share, manage and explore your information.” The web application is apparently based on some impressive technology, at least based on a cursory exploration of the demos.

So today a friend of mine created an application at DabbleDB, and shortly thereafter an email arrived in my inbox inviting me to participate. I clicked the link, logged in, and was greeted by the following screen. I was left speechless. Regardless how good the technology is, in my humble opinion, the chances of this (or any product’s) success in the marketplace are severely handicapped by such disregard for the importance and critical roles that user interface and experience play.

Continue reading →


16
May 07

MacFUSE, MacFusion, Dreamhost and rsync Backups

This is sort of a summary post related to a combination of recent technological advances, combined with older technology, that’s making my networked life a lot more convenient.

MacFUSE & MacFusion: Mounting Volumes over SSH

Our company is very distributed — we have offices in Germany, Spain and the US, with a number of employees living in yet other countries like France and Ireland. File sharing, for us, has always been a challenge.

In the past, the central file server has been located in the Germany office, and those of us outside Germany have accessed it via SFTP (using a client such as Interarchy). The office here in Spain has kept a local copy of the file server, mirrored using the Unix rsync utility, and manually updated with our files via SFTP.

The lucky people in the Germany office have always mounted the file server on their desktops with standard Mac OS X AppleShare mounting.

The introduction of MacFUSE, MacFusion in combination with open-source Xen virtual machines (VMs) have allowed us a new, more convenient means of working.

  • MacFUSE. MacFUSE is a Mac OS X kernal extension that exports the file system API to the user space. In English, it’s the fundamental component that opens the door to various things like SSH accessible directories, Flickr directories, and Subversion directories to be mounted just like ordinary volumes (such as hard drives). You don’t need to know much more than that, just download MacFUSE and install it. (You do not need anything else from Google, such as sshfs.)

  • MacFusion. Once you’ve installed MacFUSE, you can then install MacFusion. MacFusion is the tool that lets you mount SSH and FTP servers as volumes in the Mac OS X Finder, and work with them just as if they were local hard drives. MacFusion, when launched, creates a new menu item, where you can quickly mount SSH or FTP servers, as well as create and access SSH or FTP server bookmarks, for quick access.

  • Xen. Xen is similar to virtualization technologies like VMWare and Parallels. Basically, it allows you to run any number of “virtual” server machines, on a given “real” server.

Here’s how we hook all this together:

  1. On one of our internet connected dedicated servers, we run two Xen VMs: one for staff-accessible documents, and one for management-accessible documents.

  2. We allow key-based SSH access to these servers. So all staff SSH public keys are located on the first server, and all management staff SSH public keys on the second.

  3. Using MacFUSE and MacFusion, all staff can then mount the file server(s) “Management” and “Staff” over compressed SSH access, over ISP-level access speeds (instead of our office DSL speeds).

This is very, very nice!

My own personal off-site backup…

Yesterday Dreamhost announced the registration of their 500,000th domain, and (thanks to a tip from Arto blogged about a special offer: The first 500 people to sign-up for L1 hosting would receive:

  1. 500GB of disk space.

  2. 5TB of monthly data transfer

  3. $50 off the first year’s cost.

I quickly signed up, and for less than $100/year, have 500 GB of offsite backup space! (Nevermind all the hosting options provided, should I ever be interested in that…)

In order to backup my local files, I chose to use the Unix rsync utility since:

  1. It’s easy to specify a particular set of source locations (folders).

  2. It can do it’s job over compressed SSH

  3. It can limit the used bandwidth

  4. It can do archiving of changed or deleted files.

I used BBEdit to create a file called “Dreamhost Backup.command” (the .command extension causes the file to be opened and executed by the Terminal application.) Here’s the contents of that document:

#!/bin/sh

right_now=$(date +"%Y-%m-%d_%H-%M-%S")

rsync -azRv --delete --bwlimit=15 -e ssh \
--backup --backup-dir=_Archives --suffix=.$right_now \
--exclude ".DS_Store" \
'/Users/mhenders/Desktop' \
--exclude='/Users/mhenders/Desktop/Incomplete' \
'/Users/mhenders/Documents' \
--exclude='/Users/mhenders/Documents/Downloads' \
'/Users/mhenders/Library/Application Support' \
'/Users/mhenders/Library/Preferences' \
username@subdomain.dreamhost.com:Backup/mhenders/

With the following notes:

  1. I’m creating a variable called “right_now” to add as a suffix to my archived files; otherwise I could only have one single copy of any given archived file.

  2. I’m limiting the bandwidth to 15 kilobytes per second, so I can run this thing all day long without killing the ADSL line.

  3. I’m archiving to a directory called “_Archives”

  4. I’m specifying a list of source directories like “/Users/mhenders/Desktop”, while…

  5. I’m also specifying for each source directory, some directories to exclude, like “/Users/mhenders/Desktop/Incomplete”

So I run this file when I startup my computer, and when I connect to the office or home network.

In order to access Dreamhost via SSH without a password, I had to:

  1. Create a new SSH user at Dreamhost via their web-admin.

  2. SSH into Dreamhost as this new user, and create a “.ssh” directory (with permission level 700) and within that directory a “authorized_keys” file (with permission level 600).

  3. Copied the the contents of my local SSH public key “iddsa.pub”, into the “authorizedkeys” file in my account at Dreamhost.

So, that’s a neat system to keep an archived set of offsite backups!

(It should be noted that Dreamhost is a shared hosting provider, so while security is probably high, you probably wouldn’t want details to your swiss bank account stored in the clear there…)


5
May 07

Case Logic camera case for my Canon IXUS 850 IS

camera_case.jpg

Today’s article will likely go down in the annals of blogosphere history as one of the more profound pieces ever written, as I explain why I’m so happy with my new $5 camera case.

I am a tremendous fan of the Canon PowerShot (“IXUS” here in Europe) family of cameras. They are rugged, compact, and take pictures that to my eye rival digital SLRs (especially after a bit of unsharp masking). I’ve owned just about every other generation of this camera, and after my last one was lost, ended up purchasing the latest, IXUS 850 IS, including a fantastic new wide angle lens.

So how did my last camera get lost? Quite simply, it feel out of my cheesy old camera bag. My former bag had a flap that one day allowed my camera to slip out while I was having lunch. (The bag was attached to my Timbuktu messenger bag strap, which I’d left sitting under the table.)

I should have seen that coming, since the same loose flap also caused me to once lose an extra battery.

So today, while browsing around in FNAC, desperate to spend some money as it’s just been so dang long since I’ve bought something (other than my brand new 3 GB memory upgrade kit!!! for my MacBook, from Other World Computing), when I walked pass the digital camera bag section. That’s when it hit me, BAM!, that’s right– I need a new camera bag!

Something else strange happened, something my wife would hardly believe: For the first time in history, the bag that I decided I want, happened to be the cheapest bag on the shelf! So now I’ve got myself the digital camera bag of my dreams, for five bucks.

And that bag is… The Case Logic DesignWorks Function with Style Digital Camera Case (“Sac pour appareil-photo”, for all you French readers, and I know there are many…) The particular model, I’m guessing here, is the QPB11 (that’s the only thing printed on the packaging that remotely looks like a model number.) According the the packaging this baby sports the following features:

  • Holds digital camera (man, how I’ve been waiting for that one)
  • Form-fit protection (always good, for a number of products…)
  • Detachable lanyard included (I’ve always wondered about the origin of “lanyard”)

But seriously, the reason I like this new bag, is that it has everything I want in a digital camera bag:

  • Super compact
  • Holster strap with a snap
  • Zip closure (no flaps!)
  • Internal pocket for extra battery and memory card
  • Nice logo

I just checked, and Case Logic even have a web page available for the product:

Case Logic Compact Camera Bag


19
Apr 07

RSS / Email / Notifications / Demographics

Arto, Alex and I were having a discussion (ok, argument) over coffee yesterday morning about the suitability of email notification for events which are available via RSS. An interesting part of the conversation came when we reviewed the history of RSS, and how it become popular. RSS was created for news syndication, and later exploded in popularity when it became identified as an a potential part of the solution to the problem of following many, many websites.

Clearly trying to follow 100 websites can become time inefficient, when only, say, 5% of them have been updated since the last time you visited. Two possible solutions are email notification (push), and something like RSS (pull). From the perspective of server-side resources, implementing an RSS was dead simple — just publish a simple feed — compared to the alternative of maintaining a subscriber list, a mailing infrastructure, bounce handling, etc. And so RSS, and feed aggregator programs (desktop tools like NetNewsWire and web apps like Bloglines) soon exploded in popularity.

However, following sites via RSS and aggregators still hasn’t seemed to permeate into the mainstream, and we suspect that’s because the mainstream still don’t have the need or desire to large volumes of websites (nor participate in tools like Basecamp, and forums, which more and more are offering RSS feeds.)

We closed the conversation without any real conclusions, except that mapping the right communication mechanism to a given purpose isn’t always an easy task, and one may have to take into account the demographic context of the application. Even among the three of us, we couldn’t really agree on what would be the preferred notification mechanism for, say, a custom-configured Amazon search — email notification, or RSS?


4
Sep 06

US Telephone Services

This US is clearly ahead in many fields, but telephone services doesn’t appear to be one of them. I think it’s long been agreed that mobile services in the US are far behind their European and Asian counterparts (and this was in line with my personal experience last time there.) But after witnessing my mother’s recent adventures, I’m starting to think this might apply to fixed-line service as well.

Since I was about knee-high to a grass-hopper (yeah, I’m from the south) our family had the same telephone number, with, I think, AT&T service. Nothing special, it worked.

About half a year ago, my mom succumbed to the lure of internet telephony and VoIP. So, she switched to a VoIP provider in the US, and for about the next six months was practically incommunicated with the rest of the world. (Oh the number “gizmos” that failed and had to be replaced.) So, now, she’s switched back to a traditional phone service, but with a different carrier. After losing our family’s longtime phone number, and then getting it back, I tried to call home today. It went something like this:

  1. Robotic Voice: Hi, the number you are calling doesn’t accept phone calls from just anybody. Please tell me your name.

  2. Me: Matt

  3. Robotic Voice: Thank you, please hold while we check that it’s ok for you to call.

    [Elevator Music]

  4. Robotic Voice: Thank you, please record your message after the beep.

I then called my mom’s cell phone, and she said, “Did you just try to call? Some voice said they were connecting me to you.”

Oh well….


4
Aug 06

Refreshing Reboot

NetNewsWire (690 Unread Articles) -> Mark All as Read -> Aaaaaahh :)

…and just like that, I feel better. (Somebody let me know if I missed anything real important in the past couple weeks.)


12
Jun 06

What’s the world coming to?

Global Warming: You know it’s a problem. A big problem. And the kind of problem that just sort of creeps up on you. But how you fix it? Equally big problem. Who knows?

My email is sort of the same thing. I’ve spent the last hour cleaning, and my “Actionable Inbox” is down to 30 mails. My “Holding” box has 60. And my “Waiting for…” box also has 60. My Spam box has 4830 messages, accumulated over the last 30 days. (Spam Sieve report 99.5% accuracy, which means some 24 messages in there are probably good. I’m not going looking for them, though.)

So much of my time is now spent processing email. I’d hate to look at a graph of my email processing time per week, over the past five years, in fear of what that might indicate things will be like in another five years.

Maybe Donald Knuth got it right.


3
Jun 06

The Building of Fincalena

Not too long ago we launched a site — Fincalena.com — representing a milestone in what for me was a really interesting project. For anyone interested, I published an article about it over at Summit, our company weblog.

The Building of Fincalena