Sharing a Hard/Flash Drive across Windows, OS X, and Linux with UDF

Forget the whole “Mac or PC” thing. Your household does both. Or maybe you’re nerdy (like me) and run Linux alongside the other two. You have a grand plan of using an external hard drive (or flash drive) to transfer/backup files between all of them. Is that even possible?

The answer is “yes”, and it doesn’t even depend on what hard/flash drive you have. Most drives come pre-formatted in a certain file system. Many folks don’t realize that *any* drive can be reformatted in *any* format you choose. Why not choose one that supports multiple OSes natively?

Survey of Native OS Support

A quick survey of Wikipedia’s Comparison of File Systems reveals that only a small number of file systems have native support for Windows, OS X, *and* Linux. Really, only two:

Let’s take a deeper look at these two.

FAT32 vs. UDF

The following table puts various differences between FAT32 and UDF side-by-side. Most of the data came from Wikipedia (as retrieved on 2015-Feb-20):

There are two others that are worth mentioning, along with why they didn’t quite make the cut:

  • NTFS – In OS X, the kernel only has partial read-only support.  Read/write support can be gained with third-party NTFS-3G.
  • exFAT – In Linux, support requires third party driver.

UDF Details

In many regards, UDF seems to be superior to FAT. (This isn’t surprising, as UDF was designed to be a good open successor of FAT.)

Here is a more full listing of UDF’s features:

  • UDF is an open standard.
  • The design and evolution of UDF keeps compatibility in mind.
  • UDF natively supports many modern file systems features:
    • Large partition size (maximum 2TB with 512B block size, or 8TB with 2KB block size)
    • 64-bit file size
    • Extended attributes (e.g., named streams, or forks) without size limitation
    • Long file names (maximum 255 bytes, any character can appear in the name)
    • Unicode encoding of file names
    • Sparse file
    • Hard links
    • Symbolic links
    • Metadata checksum
  • UDF defines how different platforms interact with each other. For example, it defines how to store Mac Finder Info and Resource Fork, NTFS ACL, UNIX ACL, OS/2 EA, etc. It also requires platforms to preserve the information that they don’t understand.
  • UDF is a truly universal file system. It can be used on all kinds of optical media, including read only (CD-ROM, DVD-ROM, BD-ROM (Blu-ray Disc Read-Only)), write once (CD-R, DVD-R, DVD+R, BD-R), rewritable (CD-RW, DVD-RW, DVD+RW, DVD-RAM, CD-MRW, DVD+MRW, BD-RE), and of course block device (hard drives). Even write-once media appears as a big overwritable floppy under UDF.

OS Support

UDF offers moderately wide support across many operating systems.  See Wikipedia for current data, or this page for a good summary.

Formatting UDF

A few different (OS-specific) tools exist for formatting UDF:

However, each of these methods comes with deficiencies:

  • Using Windows’ format method means that the resultant UDF drive cannot be recognized on OS X (at least as of OS X 10.10).
  • Merely using newfs_udf on OS X means that the resultant UDF hard drive cannot be recognized on Windows (at least as of Windows 7).
  • Merely using mkudffs on Linux means that the resultant UDF hard drive cannot be recognized on Windows (at least as of Windows 7).

Why can’t Windows recognize properly formatted UDF hard drives?

A Fake Partition Table to Fake Out Windows

As mentioned by Pieter here, Windows does not support hard disks without a partition table. This is strange because Windows does not apply the same limitation to flash drives.

To make matters worse, OS X only uses UDF disks that utilize the full disk (not just a partition).

The solution, as suggested by Pieter, is to place a fake partition table (via MBR) in the first block of the drive, which lists a single entire-disk partition. This works because UDF (perhaps intentionally) doesn’t utilize the first block. Unfortunately, until now, there has been no easy way to do this, while juggling all of the other variables (such as device type and device physical block size).

One-Stop Format Tool:  format-udf

Great news! There is now an easy, reliable way to format your hard/flash drive in UDF. On OS X, Linux, or any environment with Bash, you can use the open source format-udf as a one-stop UDF formatting tool. Regardless of whether your block device is a hard drive or flash drive, and regardless of its physical block size, format-udf will produce a UDF drive that can be recognized automatically on Windows, OS X, and Linux.

Pieter posted a Perl script in 2010 that aimed to accomplish a similar purpose, but the script isn’t compatible with modern versions of Perl. Additionally, the Perl script makes a few incorrect assumptions (e.g. physical block size) and has a some mathematical/logical bugs. format-udf represents an improvement on Pieter’s Perl script, in the following ways:

  • Auto-detects and uses the device’s physical block size (it’s not always 512 bytes anymore)
  • Corrects some bugs in the math/logic for the MBR format (as well as partition table entries)
  • Does not require (any version of) Perl
  • Works in any Bash environment
  • Has more robust error handling
  • Presents a safety check for user verification

Since format-udf assumes a Bash environment, the tool does not run on Windows. Presumably, if you’re desiring to use a drive with multiple operating systems, this shouldn’t be a show-stopper, because you have multiple operating systems available. :)

Summary

Indeed, it is possible to have a portable disk which:

  • Mounts automatically read-write in Windows, OS X, and Linux
  • Supports large files, UNIX permissions, Unicode filenames, symlinks, hardlinks, et al.
  • Is able to be formatted using a single tool, format-udf

Happy formatting!

Household Items Replaced by the Smartphone

It’s amazing where technology has taken us.  One of the more pivotal advancements in recent years is the smartphone.  I recently attempted to enumerate the many ways that owning a smartphone has changed my day-to-day, and this list is my attempt to do so.

I’m not claiming that the below-listed devices have been obsoleted by the smartphone, I’m merely claiming that some people use smartphones in their place.

Enough fluff, here’s the list:

Communication

  • Home phone
  • Answering machine

Location-based

  • GPS
  • Maps, atlas, globe
  • Gazetteer
  • Compass
  • Altimeter
  • Sextant

Time-keeping

  • Alarm clock
  • Wall clock
  • Wrist watch
  • Stopwatch
  • Timer

Photography

  • Camera
  • Camcorder
  • Photo albums

Entertainment

  • iPod, Discman, Walkman, boombox
  • FM radio
  • Personal video playback device

Organization

  • Calendar
  • Address book, Rolodex
  • Task list
  • Notepad
  • Shopping list

Reading, Information

  • Weather forecast
  • Dictionary
  • Thesaurus
  • Encyclopedia
  • Newspaper
  • Bible
  • Cookbook, recipe collection
  • Field guide

Common Items

  • Flashlight
  • Personal mirror
  • Universal remote control
  • Basic calculator
  • Graphing calculator
  • Voice/audio recorder
  • Baby monitor
  • Night light
  • White noise generator

Computer Peripherals

  • Scanner
  • Mouse
  • Presentation remote

Safety

  • Police scanner
  • Weather alert radio

For Musicians

  • Metronome
  • Microphone
  • 4-track recorder
  • Instrument tuner
  • Click track

Shopping

  • Barcode reader
  • Point-of-sale terminal

Personal Tracking

  • Sleep monitor
  • Fitness monitor, pedometer

Gaming

  • GameBoy, gaming device
  • Board, card games

Finances, Wallet

  • ATM (for deposits)
  • Credit cards
  • Loyalty cards, library cards
  • Identification cards

Travel

  • Travel itineraries
  • Translation guides

Sensors

  • Level
  • Ambient thermometer
  • Outdoor thermometer
  • Barometer
  • Ruler, measuring tape

Security

  • RSA authorization token (two-factor authentication)

Cars

  • OBD reader

This list is by no means comprehensive.  Please suggest more in the comments.

Mobile Carriers 2.0 (Why Is This So Hard?)

My contract with my mobile carrier expires in two weeks.  Perhaps not surprisingly, I’ve already been inundated with offers for *this* upgrade, *that* plan, and *the other* deal—all of which (of course) require my signature on a 24-month dotted line.  I think that the day has come such that my response can be a polite, “No, thank you.”

There are many things that I could complain about in terms of the Big Four mobile carriers.  But I’ll keep it simple:  I’m tired of paying such a large monthly bill for relatively little service.  Thankfully, lots of MVNOs have sprung up over the past couple of years, providing a much needed breath of fresh mobile air.

On my journey to find a next-generation carrier to better suit my needs, here are some things that I’ve carefully weighed—and you should too.

Non-Negotiables

On these below items, I simply won’t budge.

No contract.  I’m done with this.  Contracts made sense when mobile technology was an emerging market.  And that age has passed.  I view contracts as a way of preventing healthy competition in a sluggish technological market.  If a carrier can’t keep me as a customer for a long period of time, then maybe they’re doing something wrong…

Free roaming.  America’s mobile networks have developed far enough such that I shouldn’t need to care to whose network I’m connected.  My phone should work everywhere (within reason), and without artificial boundaries.  Note that “free roaming” differs from “no roaming”.  Don’t try to pull that on me.

  • Update 2014-Nov-21:  After learning more about how carriers bill each other for data roaming (~30x the cost of non-roaming data), it’s not surprising to see most MVNOs moving away from free roaming.  I guess it’s more of a “negotiable” that I’d like it to be.  :(

Really Important

These are the criteria that I feel pretty strongly about.

No frills.  Generally speaking, give me what I’m paying for.  Keep your programs.  Don’t bill me for things that I don’t use.  Explain to me (in plain language) all of the taxes/surcharges I’m being charged.

Device options.  In terms of what device I can use on your network, I’d like the freedom to do one of three things:

  1. Bring my own device
  2. Purchase an unlocked device outright from the carrier
  3. Lease-to-own an unlocked device.  In this scenario, my monthly bill include an charge until my phone is paid off.  Once the phone is paid off, the charge should disappear.  (What a concept!)

Unlimited, unlimited, unlimited.  Voice, text, and data.  Not hard.  I don’t mind if you put controls in place to keep people from abusing the system (in fact, I actually appreciate that).  Once the threshold has been reached, I prefer the option of throttling over capping.  A smartphone without access to any data at the end of the billing cycle is, well, not a smartphone.

I don’t underestimate the psychology of unlimited usage:  I’ll be forced to use my phone much differently if I know that I have a limit (hard or soft).  This is especially true for those of us who don’t have a home phone.

LTE.  This ties into the previous point.  I’d like the ability to use a few bandwidth-hogging apps from time to time.  I promise, I won’t abuse it.

Nice-To-Haves

These items start to add some polish.

GSM.  Somehow, Sprint and Verizon have been able to keep CDMA alive.  Forget that the rest of the world (literally) uses a superior technology.  However, if my carrier lets me BYOD, and my device happens to be CDMA, it would be nice if somehow they could make that work (roaming agreement?).

No carrier-imposed lockdowns.  A pet peeve of mine:  My carrier grants me “unlimited” data; my phone supports tethering; and my carrier has prevented my phone from tethering.  This is one of a few common games that carriers play, and I don’t like it one bit.

Free international roaming.  I understand that making international calls costs more.  However, if I fly to Canada for the weekend, please don’t charge me exorbitantly for that lolcat picture mail that someone sent me.

Bonus

As long as I have this soapbox…

Vanilla OS installation.  Manufacturers, please don’t install your own versions of popular apps, and hope that I accidentally use yours instead.  Worse, please don’t prevent me from uninstalling your terrible apps.  Carriers, I don’t really care about what “news” you feel is worth pushing as a notification to me.  Shut it.

Rooting/jail-breaking.  One of the big reason carriers don’t like their customers to load their own firmware is that it takes away their control over their customers’ phone, features, and experience.  Those things should be controlled by the customer, not the carrier.

Option for WiFi calling/texting.  I suppose there’s no real need for this in an unlimited/unlimited/unlimited scenario; however, I think the technology is really cool.  Besides, why am I paying for Internet access twice?

Further Reading

A few months ago, Ars posted a great article answering Where should I go if I’m looking for cheap smartphone service?  Good read.

Do Your Homework

If you’re starting to lose faith in your carrier, take a look around.  You might just like what you see.

For those ready to make the jump, here’s a calculator that I put together.  It’s view-only, so you’ll need to make your own copy to make changes.  Just plug in your own usage into the gray boxes.

Note:  The formulas used therein are from September 2014, and I don’t plan on updating them going forward. Feel free to build on my work.

The Case Against Home VPNs

Every once in a while, my path crosses with someone who is gung-ho about setting up their own home VPN.  Let me attempt to summarize the rest of this post for you:  Probably not worth it.

But before I start nay-saying, let’s look at some of the legitimate, desirable reasons for setting up a home VPN:

  1. Access your personal files from anywhere
  2. Encrypt your network traffic while using public WiFi away from home
  3. Share your home network resources with others (such as files or servers)

Let me validate these points.  There is nothing wrong with having these goals.  But, may I suggest that, for the majority of my readers, a home VPN is the wrong way to accomplish these goals.  Let’s see why.

Configuration

I ran a home VPN for years.  I used Untangle NG Firewall (then, just named “Untangle”) as the gateway device for my home network.  Untangle includes an OpenVPN server, which can be configured fairly easily using their web GUI.  (This is one of the strengths of gateway services such as Untangle–simplifying what are otherwise daunting configuration tasks.)  Seems pretty nice, eh?

These bundled meta-services work well–except when they don’t.  I was caught on the latter end a few times, and I was frustrated by how little Untangle let me tweak.  (Frustrating for a nerd like myself.)  Eventually, I concluded that, if I want to be in control, I have to setup and configure the service myself.

What’s involved in rolling your own VPN setup?  Setting up hardware (or a VM), setting up the server in your network, adjusting your firewall to accommodate, (re)setting your DMZ and/or setting up port-forwarding, configuring the VPN server itself, installing/configuring VPN clients on your desired devices, distributing keys out-of-band, and managing VPN authentication (passwords/keys).

Side note:  Some of these tasks should not be taken lightly, as even a slight misconfiguration can result in drastic security vulnerabilities.  I encourage you to consult an expert if you don’t know what you’re doing.

Take-away:  Unless you’re a hobbyist, stick to the bundled meta-services, such as Untangle, or even OS X Server‘s VPN feature.  However, even then, you can expect bumps, and security should not be assumed.

Let’s wave a magic wand, and pretend that you’ve gotten your home VPN server installed, securely configured, and functional.  Congratulations!  You scurry out the door and head to the local Starbucks to try it out.  You arrive, order your macchiato, open your laptop, and fire up your OpenVPN client.  What’s that?  It’s not working?  Should have gotten that coffee to go.  You can’t configure your VPN if you can’t connect through it.  (And, even if you could, it’s a Bad Idea.)  So, you head home.  Tweak some settings.  Head back to the coffee shop.  Rinse and repeat.  Four times over.  Ugh.

Performance

Finally, your client connects at the coffee shop, and you try to exercise the VPN tunnel by watching a video of your child’s school play.  Unless you have a media server at home, you can’t stream it.  Your only option is to download it to your laptop’s hard drive.  Fine.  Clickety-click, and it’s downloading.  Estimated download time … 3 hours?  Surely, that can’t be right…

Actually, it probably is.  Think about what kind of bandwidth you pay your ISP for.  For me, it’s 15 Mbps download and 1 Mbps upload.  That’s far sufficient for all that I do at home.

The trick with VPNs is that your download speed at the coffee shop is limited by your home ISP’s upload speed.  So, that’s a best-case of 1 Mbps download, which translates to 125 kB/s.  At this rate, a single 5 MB MP3 file would take 40s to download.  To put things in perspective, in my case, my download speed over VPN is 15 times slower than my download speed at home.

So, beware:  Your download performance over VPN will be poor at best, and you can probably assume that streaming video is out of the question.

Policy

After a few years, my home VPN stopped working.  For no apparent reason.  All of my various in-home tests succeeded.  After some poking around, I was able to infer that my ISP started blocking incoming connections on port 1194 (which is the IANA-assigned port for OpenVPN).  If I really wanted to, I could have started to play games with unofficial ports.  However, two things held me back:

  1. Untangle didn’t make it very easy to do so
  2. How long before my ISP caught on again?

Take-away:  Not all home ISPs allow incoming connections for VPN ports.  Further, some ISPs don’t allow any incoming connections, regardless of port.

Cost

Once I resigned to giving up my home VPN, I eventually just replaced my home gateway server (which was powered on 24/7) with a hefty Apple AirPort Extreme.  (Side note:  It’s solid.)  The biggest difference that I noticed?  I started saving ~$25/month on my electric bill.  (YMMV.)

Decide for yourself:  What’s a reasonable amount to pay on your monthly electric bill for your home VPN service?  Could that money be better spent?

Security

The elephant in the room.  First, a few basic principles:

  • Whatever device you connect directly to the Internet (i.e. from your ISP) had better be darn secure.  It’s your first (and most effective) line of defense.
  • Any port persistently left open (such as for a VPN server) is begging for attention on the Internet.  You can expect that it’ll be hit.
  • If you can access something remotely, then it’s feasible that a hacker could too.
  • If your gateway device is compromised, it’s as if you’ve given a hacker the WiFi password to your network.  They’re in.  (How much more serious if you plan on storing personal files directly on your gateway device.)

In terms of the device you connect directly to the Internet, what’s more secure?  A server with an open port, or a WiFi router with no open ports?  Generally, the best security is having no front doors.

Don’t get me wrong–VPN servers employ security measures to keep the bad guys out.  But what happens when the next 0-day hits?  Or, when someone steals your VPN password/key at a coffee shop because you don’t use a firewall on your laptop?  The best security measures on the planet are useless if the hacker can get in the same way you can.

Standard risk/reward:  Is the risk of compromising/losing your personal data (financials, photos, passwords, etc.) worth the reward of having a home VPN?

Done Better Outside the Home

Let’s revisit our 3 goals for using a VPN:

  1. Access your personal files from anywhere
  2. Encrypt your network traffic while using public WiFi away from home
  3. Share your home network resources with others (such as files or servers)

Let me propose that #1 and part of #3 can be done better (and for free) outside the home by cloud services like Dropbox.  And I’d put my money on their security over yours–especially if you turn on their 2-factor authentication.  If you’re worried that Dropbox won’t fit all of your media files in their free tier (2 GB), then try offloading your music in the cloud using Google Music.  For 90% of us, 2 GB is way more than we need.

Let me propose that #2 can be done better (though rarely free) outside the home by services like Private Internet Access.  Lifehacker offers some good tips on choosing the right one.  For most of us, however, we can skip the paid services and satisfy our basic paranoia by using the free HTTPS Everywhere plugin.

If the above services are cost-prohibitive, then just consider using some of the ~$25/month that you’re “saving” by not running a server at home 24/7.  $10/month buys you 100 GB on Dropbox.  Just sayin’…

No, really…

The astute among you will realize that part of goal #3 cannot be done better outside the home:  If you run a server at home, and you absolutely must have access to that specific, exact server while outside of the home, then congratulations–you’re among the 1% of readers who actually could use a home VPN.  Hopefully you’re also a hobbyist.

For the rest of you, I’ll see you on Dropbox.

In fact, if you want to be nice, use this link when you sign up; Dropbox offers 500 MB of bonus space for every referral.  ;-)

Where to Store Your Document

Somewhat frequently, I’m asked about the security of storing documents using services like Google Drive, Dropbox, and SkyDrive (among others).  Instead of jumping immediately into the technical specifics, I’ve found it useful to first ensure that the asker understands the essence of the services he/she is asking about.  More specifically, I’ve found it helpful to present comparisons of the basic philosophies for document storage:

Consider these carefully, and decide which best suits your document needs.

Risk Assessment

The next step in choosing where to store your document is weighing the risks.  It’s a common fallacy to assume that risk increases with more technical solutions.  Let’s explore risks for all three categories:

Okay, great.  All three categories have risks.  Which one should I choose?

Recommendation

Choose a physical document if…

  • you don’t need to access the document remotely
  • you don’t need to collaborate with other people
  • you don’t need to maintain revision history
  • you don’t need to store the document encrypted

The biggest risks using a physical document are loss and theft.

Choose a digital document if…

  • you don’t need to access the document remotely
  • you don’t need to collaborate with other people
  • you wish to manage your own document encryption

The biggest risks using a digital document are theft of computer and having your computer hacked.  If you’re emailing copies of the document around for collaboration, you should go ahead and assume that somebody’s changes will get lost.  For most documents, this is the wrong solution.

Choose cloud-based document if…

  • you need to access the document remotely
  • you need to collaborate with other people
  • you need to maintain revision history

There are minimal risks for using a cloud-based document.  The biggest downside, however, is trusting someone other than yourself to store your data.  (Believe it or not, Google isn’t very interested in stealing your term paper.)  Provided that you’re using good technology hygiene, this is often the best solution for most documents.

Vying to Become the Ubiquitous Messaging Service: The Contenders

(This is part 3 in a series of 3 posts on the topic.)

Last time, we took an in-depth look at the criteria for the “ubiquitous messaging service”.  To close this series of posts, we’ll look at some of those currently contending for the title.

Runners-Up

To qualify for consideration, a messaging service must make a good effort to meet a significant portion of the criteria discussed last time.  While none currently meet all of the criteria, there are a few that are worth discussing.  These services are attempting to find the right mix of instant messaging, social media, and voice/video chats–and aren’t doing too badly a job of that.

iMessage

First off, iMessage from Apple.

  • This splendid little service does a lot right:  seamless cross-device support, concurrent media types, and group conversations.
  • Where iMessage sorely lacks:  cross-platform support, real-time voice/video chat (albeit available via FaceTime), open participation, and thus, widespread adoption.

For me, the nail in the iMessage coffin is our previous Mistake #2: Exclusive participation.  Sadly, iMessage is closed to any devices without an Apple logo.

Facebook Messenger

Another service deserving praise:  Facebook Messenger.  While a popular scapegoat, Facebook has made some nice ground as of late.

  • Here’s what they’ve got down pat:  seamless cross-device support, seamless cross-platform support, medium-agnostic (supports non-smart phones), concurrent media types, group conversations, and open participation.
  • Facebook Messenger could stand to improve on: real-time voice/video chat, archival controls (going “off the record”, having a respectable privacy policy) and widespread adoption.  (i.e. While Facebook has a large user base, a significant portion of my friends absolutely refuses to open a Facebook account.)

For me, the nail in the Facebook Messenger coffin is our previous Mistake #3: Change in workflow.  I don’t want to go to yet another website just to send/receive messages.  Further, many of my Facebook friends never receive/reply to messages sent via Messenger.  There’s also the perception issue:  Something simply feels funny when conducting business conversations over Facebook.

Strongest Contender:  Google Hangouts

One somewhat-recently unveiled re-birthed service is the greatest current contender for the title of “ubiquitous messaging service”:  Google Hangouts.  Hangouts brings a few things to the table, beyond the reach of its three disparate predecessors:  Google Talk, Google+ Messenger, and the “old” Hangouts (the video chat system formerly present within Google+).

  • Google Hangouts does these well:  seamless cross-device support, seamless cross-platform support, concurrent media types, real-time voice/video chat, group conversations, collaboration tools, archival controls, and open participation.
  • Unfortunately, Hangouts still lacks:  widespread adoption

The biggest move that Google made with the new Hangouts is a native iPhone app.  For the first time, Apple users can interface with Google’s messaging service.  This is a pivotal step in the race toward becoming the ubiquitous messaging service.

Suffice it to say that none of our final three have adoption wide enough to be useful at large.  But this is a good thing–we (the consumers) like competition.  While not perfect, Hangouts seems to be closer to the goal than anyone else.  And, stay tuned for more features.

Surprise, surprise:  As with all threatening innovation, there has already been some backlash from those with something to lose.

Underdogs

Be on the lookout for the up-and-coming WhatsApp and Kik Messenger, both gaining ground quickly.  Don’t be surprised if you see BlackBerry Messenger make a move sometime soon.  Time will tell what Microsoft will do with their acquisition of Skype–hopefully something good.

Wrap-up

There’s been a lot of movement in the race to become the ubiquitous messaging service.  Google Hangouts is currently the strongest contender, but Facebook Messenger and Apple’s iMessage aren’t far behind.  As messaging services continue to innovate, consternation from mobile carriers will ensue; this we can count on.

Unashamed plug to iPhone/iPad users:  Do yourselves a favor a check out Hangouts.  You might just like it.  :)

Vying to Become the Ubiquitous Messaging Service: The Criteria

(This is part 2 in a series of 3 posts on the topic.)

Last time, we covered the landscape surrounding the ubiquitous messaging service.  We recounted a brief history, looked at some dead historical platforms, and examined some common mistakes that communication vendors make.

No Success

In the past few years, many companies have tried to insert themselves as the next ubiquitous messaging service–and, in large, nobody has succeeded.  This is because they stop short of providing what the general American public deems as a full feature set.  While text messaging tends to still be the greatest common divisor in America, it falls short in many areas.  We’ve all experienced hints of the following features in some services, but no one service has yet captured them all.  And certainly, there is a need:

xkcd: Preferred Chat System

The Criteria

The ubiquitous messaging service of today should include:

  • Seamless cross-device support.  Message using any device you desire: phone, tablet, laptop, desktop, television.  User experience is seamless across devices, even when switching in the middle of a conversation.
  • Seamless cross-platform support.  Message using any platform you desire: mobile app (Android, iPhone, Windows, Blackberry), desktop application (Windows, OS X, Linux), or browser (Firefox, Chrome, Safari, Internet Explorer).  User experience is seamless across platforms, even when switching in the middle of a conversation.
  • Medium-agnostic.  Communicate without caring about how your recipient will read your message.  You shouldn’t have to remember that Joe is a Google Voice user, and as such does not reliably receive MMS messages.  Focus on the message, not the limitations of the medium.
  • Location-agnostic.  Message without concern about whether you (or your recipient) have access to a desktop computer or mobile network data service.
  • Always on.  Message without needing to know someone’s office/business hours.  Trust that they’ll get the message when importance of the message deems it.  Goes hand-in-hand with…
  • Offline messaging.  Don’t worry about whether your recipient is online.  Again, trust that they’ll get the message when importance of the message deems it.
  • No length limitations.  I can convey this point by mentioning a single number: 140.
  • Real-time.  Your message should be delivered immediately.  Not 15 seconds from now; immediately.
  • Ability to see when your message has been read.  Knowing whether and when your recipient has received your message helps avoid both miscommunication and over-communication.  (Side note: This is not a desirable feature for everyone.)
  • Ability to see when your other party is typing.  Knowing whether your recipient is still engaged in a conversation helps make more productive use of your time.
  • Concurrent media types.  Send text, links, pictures, and videos–all in the same conversation.
  • Real-time voice/video chat.  Don’t limit real-time conversation to text-only.
  • Notification control.  When you have a new message/conversation, be notified exactly when, where, how, and how often you want.  Don’t worry about your recipient–let them decide for themselves.  For example, you need not wait until morning to send a message just because you fear waking up your recipient.  On the other hand, if the importance of a message warrants it, there should be a way for the recipient to be interrupted if busy/unavailable.
  • Group conversations.  Remember telephone party lines?  And while you’re at it…
  • Collaboration tools.  Screen/content sharing.  Moderator-controlled sessions.  Think business meetings and classroom settings.
  • History archival.  Save off all media used during the conversation (text, pictures, video, content) for future reference/searching.
  • Archival controls.  Store/record exactly what you want.  This includes the ability to go “off the record” and a respectable privacy policy.
  • Inherent security.  Designed with security in mind.  HTTPS only (no plain HTTP), multi-factor authentication, etc.
  • Privacy controls.  Be visible to only those to which you want, and only when you want to be visible.  Ability to block people who want to harass/spam you.
  • Smart parsing/formatting.  Turn web addresses, phone numbers, addresses, dates, and times into usable context-appropriate, device-appropriate, and platform-appropriate links.
  • Open participation.  Not specific to a single device, platform, browser, or carrier.  Open API for third parties.  And finally…
  • Widespread adoption.  What good is it to have the ultimate messaging service, but to be the only of your friends using it?

The astute among you will note that many of the items on this list have come to light only in recent years.  And thus, the feature set required for the ubiquitous messaging service is a moving target:  It will evolve again in the next few years.

Next time, as we continue this discussion, we’ll identify some who are vying for the title of “ubiquitous messaging service.”