Speak to Me…

One of the new features in the upcoming iPhone 4s is the Siri “assistant.”

I don’t know if this will be the world-changing feature that Apple touts – Android has already had much of this functionality. That said, reports such as those at Ars Technica indicate that it will be at least as well integrated, if not better, while allowing noticeably more natural speech.  

One complaint about speech-based control and dictation systems, even the excellent software by Nuance (Dragon Dictation, etc.), is this: how does a computer, often in an office environment, distinguish between you and the guy next to you when he says “delete files.”?

Plus there’s the whole “who wants to look like a dork talking to their computer” angle.

One huge advantage that speech-to-text and voice command have on phones, as they approach the sophistication of the Dragon line of software, is that these are devices we are used to talking to all the time anyway.

Just food for thought.

So Long…

Not much to say that Apple hasn’t already said. The man is arguably one of the most important and influential people in his chosen fields. Yes, plural. He ushered in not just one revolution in his industry, which few enough manage to achieve, but multiple revolutions, in several industries, and in the lives of people everywhere. Personal computing, how we interface with computers, how we listen to music, how we tell stories in movies, and redefined our concept of how personal a computer can be with the iPhone.

He will be missed.

Rest in Peace, Steve.

Moderation in All Things…

… even moderation.

One of the hardest lessons I ever had to learn in my life – one I still struggle with daily, is that of realizing that usually, “Good enough” is just that. Good Enough.

The problem of course lies in part that – at least in simple programs and math problems – there is no fuzzy “it works.” Things are either correct, or not. As a child playing with the family printer, sending the correct sequence of bytes to a dot-matrix printer resulted in a pretty graphic. Sending another sequence resulted in a jumbled mess. It’s really easy for an incipient geek or computer programmer to fall for the illusion that everything is that black and white, or that at least in the realms of programming or engineering, everything should be perfect.

Of course, it cannot be. For one, people and natural systems are chaotic. Secondly, even engineering is not that straightforward. I learned this lesson the hard way in the Navy, and the teacher was ironically what would appear to be the most unforgiving tutor: maintenance on power plant and propulsion systems aboard a nuclear submarine.

At first glance, that seems ludicrous. The loss of the Thresher almost single-handedly kicked off the birth of rigorous Quality Assurance paperwork and documentation for every critical safety system on submarines. Later, the Iwo Jima had a steam plant leak that killed ten people due to the use of the wrong bolts in reassembling a high pressure steam valve, which subsequently failed. This resulted in a similar program being instituted for surface ships. Obviously there are times where a lack of attention to detail, doing things a little less “perfect” can have deadly results.

The thing is, “perfect” here depends on the standard you wish to achieve. A NASCAR stock racer will blow the doors off a minivan or Humvee, but would fare poorly on anything but the smoothest pavement, and both would be hopelessly mired in conditions that a Humvee would blow through with ease.

Even when you have a primary purpose, there are conflicting standards. On a minivan, the desire for cargo space and the ability to haul said cargo directly conflicts with a desire for fuel efficiency and handling.

The art of engineering, and it is an art, is an art of putting together design choices such that, when all is said and done, the strengths reinforce each other, as many weaknesses as possible cancel out, and the final result is “good enough” at all of its respective jobs.

You have to get used to it.

With submarine maintenance we lived in two worlds. On the one hand, we thoroughly documented the proper installation of the proper material and size O-ring or gasket, with the proper torque applied to the bolts for seawater and steam valves. We obsessively checked off verifying the status of ballast tank valves before a dive. Mistakes got people killed. We spent hours practicing startup and shutdown procedures, done by the book. We drilled over and over again on casualty procedures to hone our response to any problem… and this is where the break with “perfection” began.

There is an “ideal” way to shut down any piece of equipment on a submarine that is listed in the technical reference. There is also a standard startup and shutdown procedure employed as part of the overall ships procedures. In many cases there are even alternate “emergency” procedures, and these are all found in volumes of engineering manuals and procedural guides. Yet there are often discrepancies between what the maintenance and technical reference state for starting up or shutting down a system, and the ships procedures. These differences exist because a motor, a diesel engine, an oil pump, a condenser does not exist in isolation, but as part of an integrated and interconnected whole.

These “standard” procedures are often modified. Revisions are supplied by the Navy as a whole based on maintenance and other accumulated data. The engineer and CO have wide latitude to promulgate changes (“Standing Orders”) as long as said changes don’t break things. They even have latitude to break things and order people into situations that will kill them in order to get the job done.

Lastly, casualty training has a brainstorming component where many what-if’s are asked, because it’s widely understood that when things fail, they’re not likely to fail strictly in isolation (unless it’s relatively minor), but in ways not strictly covered by the manuals.

In short, when things actually break, we don’t throw out the manual, but instead use it to – hopefully – make wise choices in what we’re actually going to do. And often enough we ended up improvising repairs to keep things running when the “proper” parts and tools were unavailable. Maintenance procedures would be pieced together as needed from multiple references, choosing the appropriate steps and discarding those that did not apply.

What I learned, in short, was that instead of striving to meet an arbitrary, unchanging standard of perfect, I should strive to meet the requirements of my priorities, because the real world keeps changing the “specification” you have to meet. Push comes to shove, accomplishing the mission, followed by keeping the ship running and keeping the crew alive trumped nearly every other procedure written down.

And since you didn’t have the time or resources to do everything as perfectly as possible all the time, you had to choose which things must be done “right” – accomplished no matter what – which things should be done well (“good enough”), and which things not to bother doing in the time available, and to be happy with the result of your decisions.

Of course, it never hurts to strive to be a little bit better at whatever it is that you happen to be doing, each time you do it – that is the path to mastery.

One More Thing – Scroll Bars, Scrolling, and Lion

The single most annoying thing about the new defaults in OSX 10.7, aka “Lion” is one I nearly forgot because I almost immediately changed the default: The scroll bars are hidden by default.

Why is this important?

Because the scroll bars give you, with very little wasted space, two very, very critical pieces of information.

Their presence tells you that there is more to be seen, and the “footprint” of the scroll tab combines with it’s position within the window tells you both how much of the total page you are seeing, and what your position is relative to the whole document/web page/whatever.

In the default mode, you may never realize that there is more to be seen.

In my opinion, this is the single most egregious mistake they made. Fortunately, it’s also easily fixable. Go to your system preferences, and under the general preferences, select the option “Always” under “Show Scroll Bars.” You won’t lose much space on the screen, but you’ll immediately know if there’s more to see in any open window.

Insofar as the scrolling directions being changed – I actually like it now that I’ve grown used to it. Almost all of my computer work is on a laptop, with a trackpad front and center, and I spend little time on a mouse. 

Time Spent With Lion

Things I like

  • Auto-popup of authentication sheets at public wifi hotspots like Starbucks works great.
  • Love the new spelling correction hints that let you see what it wants to do before autocorrecting it – giving you a chance to say no.
  • Love the fact that you can now hold down a key to get the tilde/umlaut/whatever accent marks.
  • Mission Control allows me to find windows that are open a little faster due to grouping by App than expose
  • I love that Safari auto-restores, and Pages, and Textedit, and…
  • Fast launches
  • Versions of previous pages
  • Apps conforming to the new document standard don’t force me to save before dragging into Mail App, etc.
  • For the same apps, not having to worry about saving the stuff I’m working on when I close the program. It gets saved as I’m working on it too. 
  • Call me nuts but I actually like the new three-column layout in Mail.
  • You can search by multiple terms within Mail, etc.
  • Seeing battery status, etc. on the login screen.
  • PDF annotation. Not just “signature” graphics, but actual text entry, etc. even on PDF’s that are not pre-configured as forms (for an example of the latter, download your typical IRS tax form as PDF).

Things I dislike

  • Effectively borked the minimize-to-app in Mission Control
  • Using “Duplicate” instead of “Save as” can be a bit unexpected at first.
  • The “hold key” behavior does mess up people who like repeat keys enabled.
  • Why did you cripple digital color meter?
  • The “real life” look of the address book and iCal is a bit much, but I can deal with it.

TextWrangler Reminder

If you’re getting started in programming, or you just need a way to sanitize text you copied before pasting it into a web editor, you will want to look at TextWrangler from the guys at Bare Bones Software.

While the interface is considered dated by some, it still has one of the best grep-based multi-file search and replace tools available on a Mac editor, and one of the best file comparison tools I’ve seen. It’s also free, and available via the Mac App Store.


When do You Have to Buy Office?

One tool that no computer should be without is the one we typically
call an “Office suite” – a collection of programs to manipulate words,
numbers, and data so that we can present that information to other
people. Microsoft Word, Excel, Access, Powerpoint, and Outlook are the
gold standard for this. For years, companies spent hundreds of dollars
for each copy – and frankly, many pirated copies – because they were
the de-facto standard if you wanted to send files to someone else and
have them be understood.

Office has withstood the onslought of Adobe’s PDF standard, because
you cannot easily edit spreadsheets and text documents once they are
PDF files. Despite the foothold in the law community, Wordperfect is
effectively an also-ran.

Yet, there are alternatives. On the Mac side, there is Apple’s iWork
suite and the OpenOffice – based NeoOffice. For mac, Linux, and Windows, Open Office and Libre Offic all try to capture the
breadth of features and feel of Microsofts 800-lb gorilla. For most
people, they succeed admirably, and given how well most convert
documents in and out of the MS Office formats, there is little need
for most people to buy a copy from Microsoft.

So why in this environment should anyone go out and pay good money for a suite that comes from Microsoft?


Google is making significant headway with its powerful online mail, document, and calendar sharing services. Nevertheless, it doesn’t quite meet the power and flexibility – or cost, complexity, etc. – of an Exchange server, especially when it comes to shared contacts. Exchange is completely integrated with Outlook, and nothing else quite works so well for the people who need those features.


Office provides several ways for other programs to communicate with them. A number of programs – especially business or industry-specific ones, use these to create emails or documents from scratch including word processing and spreadsheet documents. Unfortunately, in this case, no combination of Open Office, Thunderbird, etc. are going to quite do the job.


Other office suites currently are very capable when exporting to or importing from the Microsoft document formats. Minor variations in formatting can creep up between different versions of the Microsoft suite (2003, 2007, Mac) as well. Nevertheless, when formatting fidelity, etc. is a must, the results are much better if you stick to the same software all around instead of converting between completely different document formats.

Your boss/school/etc. Told You to.

You can argue that “Exchange” or “Compatibility” also qualifies here, but if your boss, company, or school says to use office, well, then that’s what you do.

In short

If no-one is forcing you. If you don’t need complete integration with an Exchange server. If you don’t need as close to perfect compatibility as possible with other MS Office users, or use software that requires Office to use all of its features, you may want to consider the cheap or free alternatives available to you. Otherwise, well, you need to bite the bullet and go get a copy of MS Office.

Lion: Smooth Sailing With a Few Waves

I’d been putting together some thoughts on Facebook, Google+, Twitter, etc. when Lion was released. Obvioulsy, I immediately installed it – I can afford to. I have backups. Lots of backups.

So what is there to say that hasn’t already been said?

First, some high points. In case you’ve never been bitten by this, never, ever, ever upgrade a business-critical computer until the software you need is updated to work with it. Ever. That especially applies to niche software like architectural CAD software, or if you make a living as a graphic designer.

Also, “rosetta” – the technology that allows Macs to run older programs depending on “PowerPC” chips, is no longer available, at all. This especially hurts those who use products like Quicken for the Mac  (Intuit, along with Adobe, is another company that seems to think that adapting to long-announced changes and providing current product updates is just passe). Also, Mac versions of MS Office before Office 2008 will not be usable without an update or switching to iWork or Open Office/Libre Office.

Please note – if you are using Quicken for the Mac, please export your file as a backup before upgrading OS X.

So now what?

Well, I’m not every user. I make my living helping other users. That said, many of the programs I use are the ones I recommend to others.

 The Install

Straightforward. Buy the app, let it download, let the installer run. Wait 30 minutes or so after that, and a new splash page appears with your login.

The first thing I checked, as with every major update since 10.5 completely reset the printer settings, was to verify my printers were still there. Yes they were, and yes they worked. Also, the 10.7 update didn’t scrub my custom keyboard shortcut for  printing PDF’s (originally at OSX hints).

 Personal Information and Mail

I started up the new Mail app, and ended up waiting quite a while for it to update the mail database to the new format. In the meantime, I opened up my google account in Safari, and discovered a new wrinkle. When logging in to at least several services that Lion recognizes using Safari (I can verify this for Gmail and MobileMe), Safari helpfully asks of you wish to add the account to your mail and calendars. Since those accounts were already in Mail.app (which was updating) I simply said no thanks, but it’s a nice touch that goes hand-in-hand with automatically opening up the login sheets at many public WiFi hotspots.

Once the mail had finally updated, I looked in the system preferences. Oddly, even though the soon-to-be-obsolete MobileMe control panel listed that I was syncing my contacts, the (new) unified “Mail, Contacts, & Calendars” account panel showed my Mobileme account as only synchronizing calendar items, mail , and chat items.

Yes, chat items. I’m not sure where that will lead just yet.

Either way, my contacts do sync.

Looking into my address book, I discovered that Address book was no longer syncing with Gmail. I fixed that, and after a few rounds of discrepancy reviews, had my contacts under control again.


I’m still torn on the scroll direction reversal. I will say that it’s actually fairly natural when scrolling via a trackpad.

That said, the hiding scrollbars were driving me nuts. I need to know where I am in the document, and the default setting to hide them when not scrolling can make it difficult to tell if there is anything further to scroll to.


Despite the dire warnings at the beginning of this post, very little broke.  The following third-party apps worked without any apparent hitches:


  • Hazel – an automated folder cleanup tool.
  • Both of my password programs – 1Password and Little Secrets – worked fine.
  • DropBox
  • BBEdit – text editor
  • Candybar – custom icons.
  • Chrome
  • iStumbler seems to work
  • LibreOffice
  • Kindle
  • MailPluginManager seems to work
  • Notational Velocity a text note taker that works with simplenote
  • Google music manager
  • Picasa picture manager
  • Microsoft Remote Desktop Connection 2
  • Steam seems to work – but I havent tried to play any games yet
  • VLC – video player for flash and WMV videos
The following programs needed or had a Lion specific update that hadn’t yet been installed:
  • Xcode – New copy currently free
  • Homebrew – a system for installing linux utilities. Installed apps actually work, but you need to isntall the updated Xcode to add anything else.
  • Firefox 5 had an update when I opened it, but didn’t like my 1Password plugin.
  • Carbon Copy Cloner – excellent bootable disk backup system.
  • iStumbler – for finding WiFi networks
  • I updated Silverlight just in case
  • Scrivener has an update for Lion specific features
  • VMWare Fusion – this virtual PC emulator installed updates
  • Mail Act-On – a mail management plugin for the Apple Mail app, needed a reinstall.
Then a had a few issues that needed more work:
  • Pixelmator (a lightweight, awesome, and cheap image editor) had an issue – but an App Store update is coming soon to resolve it, and there are workarounds to get it running.
  • All of my Emacs (another text editor that works on different platforms) customizations and add-ons will have to be rebuilt, but the version I installed through Brew, as well as my GUI-based copy, both work fine at the default settings.
Lastly were the programs that flat out didn’t work:
  • Pocket Tanks – an “artillery” game knockoff.

All’s well that ends well.

Overall, it was a very smooth update. While there are a few things that are known to break, very little broke unexpectedly, and I’ve now had enough exposure to this to start getting really comfortable. Many apps did not need updates at all, though a number of the ones that didn’t need post-upgrade updates had already been updated in the recent past to be compatible with Lion.

Ha Ha Only Serious…

There’s an expression in the geek community, “ha ha, only serious,” that tells the listener that the previous parody, joke, etc., may have been intended to be humorous, but also includes a large degree of truth. 

This comes up because I was explaining to a friend a large part of why “Like a D6” (that I mentioned earlier in Parody) was funny. For a lot of gaming geeks, hanging out around a table playing D&D, wargames, boardgames, etc., is just as fun and looked forward to just as much as a “good time” (if not more so) as hanging out in a club with friends and dancing, etc.

New Options for Version Control for the Mac

If you’re writing code. Ever. Be it Java, Python, Objective-C, Perl, or plain old C, you really, really need to get in the habit of using a version control system for managing your code. It allows you to experiment, and to easily roll back your code if you completely mess something up.

There are several excellent and simple systems available. My preferred system is Git, but Mercurial is also an excellent, modern system to use. It’s also fairly easy to set up. And if you don’t want to mess around with the command line a lot, or don’t want to pay for the (excellent) Tower, then there’s a new, free option for managing your git repositories at the popular online service GitHub. (Note – you don’t need to host your repositories online – they never have to leave your computer. Unless you want to share them with other people not in your home or office).