So, this past week, after a hard drive failure, I did something that many of my friends and colleagues find bizarre: I reinstalled mutt, an open-source command-line email client which runs entirely in your terminal window, and set it up for everyday use on my Mac.

In this post, I’ll explain briefly why I did that, how I went about it, and what programs I use along with it.

Why the heck would you use mutt in 2012?

The choice to go from a full-featured, gui-based mail client (like Apple’s Mail.app) to a command-line client is often confusing to people.  Why use something so spartan, so foreign, with so many GUI mail applications out there.  Open source and cross-platform benefits aside, there are many posts around touting the benefits of mutt specifically.  In an effort to explain my personal choices, I’ll explain not what mutt does, but what using mutt gains me over using Apple’s Mail.app:

  1. mutt is customizable.  Don’t like a key-binding?  Change it!  Don’t like the color scheme?  Change it!  Want it to behave differently?  Change it!  You own your mutt config, and it lets you do whatever you want, without the tyranny of a preferences panel restricting what you can change.
  2. mutt is quick.  Opening a message is near-instant on a remote server, and even quicker if you’re hosting email locally.
  3. mutt lets me sit down and write all the email I need without ever needing to use a mouse.  That means that everything’s just a bit quicker, and just a bit more streamlined.  When I’m using mutt to do something familiar, I become the bottleneck in my workflow, not the program or the input.
  4. mutt lets me blast through emails absurdly quickly.  I can clear my inbox in just a few keystrokes, if needed, and filing is just as quick.
  5. mutt has full pgp integration built-in.  Although gpgmail is great and getting better, mutt makes it all the quicker, and frankly, all the slicker.
  6. mutt lets you use whatever editor you’d like (vim, for me).  This means that even while you’re not coding, you’re still learning vim and getting better with the keystrokes.
  7. Threading actually works in mutt, and doesn’t screw with everything like in mail.app
  8. mutt lets you do magical things.

That last one is important.  Let’s say you want to get rid of some cruft in your (8000+ message) trash mailbox, and thus, you want to delete any message from Twitter.  In Mail.app (with Lion), you’d have to Select the Trash mailbox, type “Twitter” into the search bar, go up there, select “From” (so that you’re not deleting messages that mention twitter), Click “Trash” in the menu bar to limit the scope of the search, Select All, then click Erase and wait for Mail to actually do the erasing.

In mutt?  Get into your trash mailbox, then type: T~f twitter [hit enter];d

… and you’re done.  That’s it.  ”T” for tag, “~f” for from, twitter and then [enter] makes the query”;” means “do this to tagged items”, and “d” means “delete”.  If you then wanted to delete anything from John Smith, T~f John Smith [enter];d.  Or to remove any trace of email from your brief membership in the society for the prevention of cruelty to vowels, T savethevowels.org[enter];d.  Using this, I was able to intelligently cull 2000 messages from my trash last night in the span of around 10 minutes.

Another example is “l”, for “limit”.  If I want to find every email I’ve sent to my friend Ian, I would open my sent folder and type “l ian”[enter].  Then, I would be limited to seeing only posts to him, instantly.  See?  Magic.

As such, working with mutt is damned quick.  With practice, I’ve found that everything I could do in mail.app I could do faster in mutt, and because there are always more optimizations to be done and keystrokes to be learned, I’m still getting faster.  Whereas with Mail.app, I felt like the program was usually the bottleneck, using mutt, my brain and my typing speed is the bottleneck.  Which is an oddly wonderful feeling.

So, uh, what’s the catch?

Well, a few things.

  1. mutt isn’t pre-installed on OS X, and setting it up (the first time) is a bit of a pain, described below
  2. mutt doesn’t “just work”, and you have to edit actual configuration files to get it working.
  3. Be prepared to spend some quality time with manual pages and online sites to get everything up and running.  There’s no friendly GUI, and to get everything working, expect to take an evening or two with your computer.
  4. It’s a paradigm shift.  Even once you’ve got it working, old habits die hard, and until the keystrokes are muscle-memoried, it’s a struggle at first.
  5. Lots of things don’t work out of the box.  AddressBook contact support requires lbdb, url viewing requires urlview, viewing html mail requires lynx and the creation of a mailcap file.
  6. Inline images don’t show inline.  You have to download and then view them manually.  This is probably the biggest drawback.
  7. You’ll need a separate mail notifier program to let you know when you’ve got new mail without looking at the terminal window, like the now-free Notify
In short, switching to mutt from Mail.app is like switching to vim from something like TextEdit or Notepad.  There’s a learning curve, and it’s not working out of the box.  But if you’re willing to do the learning and put the parts together, it’s a whole bunch faster, as you can tailor it exactly how you want it.  Much like a good vim configuration or a Gentoo linux install, your mutt installation isn’t created, it’s crafted.
Uh… OK.  How do I install it?
Well, first, it’s very possible that a server you love already has mutt installed, so you can try it there before you buy it.  But I’m assuming you’ve started to fall in love and want to install it on your Mac (running 10.6 or 10.7).  Here are the steps I took to get it set up:
  1. Install XCode (from the Mac App Store, free).
  2. Install Homebrew, to make installing all the other tools easier
  3. Open up a terminal once your homebrew install has finished and type:
    • brew install slang lbdb urlview lynx
    • brew install mutt –sidebar-patch –trash-patch –with_slang
    • (Note that the above command includes the ability to show a sidebar with all folders, has you actually use a trashcan rather than deleting messages instantly, and uses slang for better color handling)
  4. Create a .muttrc file in your home directory and edit it to configure mutt (Here’s my .muttrc, for reference)
  5. Create a .mailcap file in your home directory and edit it to configure how different attachments are opened (Here’s my (minimal) .mailcap, for reference, which could easily form the basis of yours)
  6. Now you can just type “mutt” at a terminal, and mutt will open up!

But the above steps will get you working with just homebrew, xcode, and a few text files.  From there, what you do with mutt is your own choice, but I hope that you too, might enjoy the speed, efficiency, and frankly, the magic that mutt has to offer.

More complex configuration

Once you’ve got it working, start reading your mail, and when something doesn’t work quite like you want, start searching around.  For instance, if you want autocomplete,  you’ll set up lbdb using these instructions (although you already installed it above).  If you want offline access, you can set up offlineimap (and gain a pretty signifcant speed improvement as well).  urlview can be used to get you viewing URLs more quickly, and before long, you’ll find yourself with a wonderfully optimized .muttrc for you to cherish (and use) forever.  Then, once you’ve installed gpg and configured everything there, you can sign, encrypt, decrypt and verify any email you want, any time you want, with just a few keystrokes.

Then, you might spend some time working on the OS X side.  It’s useful to make a terminal pre-set just for mutt, which is at the proper size and coloration and which, when opened, automatically opens a mutt window.  Then you might make an Applescript to open one of those mutt terminal windows automatically when clicked, which you can then save as an Application and keep in your dock.  Then you can install Notify, and Growl, and get better notification of new mail than even Mail.app offers.

Or maybe you’ve got a server, and you can put your .muttrc directly onto said server and login to mutt any time you’d like using ssh, with your settings just how you like them.

Is mutt for me?

No, probably not.  As the creators of mutt say, “every email client sucks, mutt just sucks less”, and that’s really only true if you’ve already got a good computing background.  If you’re happy with your email client, by god, stick with it.  If you only get a few emails a day, and send even fewer, mutt’s overkill.  If you’re scared of the terminal, or of text editors like vim or pico, stay clear.  But if you find yourself drifting from mail software to mail software, in search of that one program that will just get out of your way and let you send mail, well, maybe mutt is for you.

Tagged with Computing, Mac OS X, Open Source Software | Leave a Comment


For those of you unfamiliar with Android phones, phones can have either “locked” or “unlocked” bootloaders.  The bootloader is what tells the phone what software to start up when it runs, and phones with “locked” bootloaders will only run software which has been blessed by the manufacturer and carrier.  So, even if you have a custom or improved version of the Android operating system which will run fine on your phone, a locked bootloader will prevent it from running because Motorola hasn’t given it a cryptographic “OK”.  

This is touted as a means of preventing people from loading potentially buggy software, but in practice, it allows manufacturers to prevent devices being upgraded to newer operating systems, thus shortening their useful lives and encouraging people to buy new phones more often.  This post, originally made on Google+, is on that subject, and won’t make a whole lot of sense unless you’re an Android person.  I’ve posted it here for posterity and for Googleability.

So, Motorola just announced a new version of the Razr with an unlocked bootloader, allowing you to run custom kernels, ROMs, etc. Although it’s a nice gesture, the fact remains that many people need the bootloader unlocked on the phone they have, and this does absolutely nothing for them.

The reason many of us wanted an unlocked bootloader in the first place is that, for instance, the Motorola Droid Bionic’s software was incredibly buggy, bordering on unusable, despite excellent hardware. With an unlocked bootloader, the community of people stuck with the Bionic for two years could do for themselves what Motorola refused to: Improving the damned software to get a working phone.

Having moved (by Verizon’s graciousness) to the Galaxy Nexus (which has an unlocked bootloader) from the Bionic, I see the power of being able to run whatever software you please. Stock Android 4.0.2 has some bugs, which are already well fixed in most custom ROMs out there. Additional bugs are open to additional fixes by generous developers, and in many cases, these ROMs can actually be an improvement on stock units.

Locked bootloaders leave the end user, even when rooted, more or less helpless, no matter their technical skills. No matter what problems you can see in the code, you’re at the mercy of Moto and the Carrier as to when (and whether) your individual unit will see the upgrade (and they’re already focused on their next flagship device). This is why I feel that a phone with a locked bootloader isn’t really your phone, and why I will never buy a phone with a locked bootloader again.

So, it’s nice that a developer without an existing phone could have a Motorola now and be able to do something fun with it, but it’s the power-users stuck with a Bionic (or a similar combination of incredible hardware and awful software) who really need the bootloader unlocked. We don’t want our phones unlocked for fun, we want to be able to fix our damned phones when you, Motorola, can’t or won’t. And releasing one “Developer Phone” isn’t going to do that.

Tagged with Android, Computing, Mobile Computing | Leave a Comment


Although much of the focus right now is on defeating the existing web censorship bills (SOPA and PIPA), I think the internet on the whole would be better off considering these things not as an “if”, but a “when”, and considering the long game, not just fighting for the short-term defeat of these bills.

In a sense, those who aim to take away internet freedom to suppress speech, prop up dying business models and make money have now shown us their “better mousetrap”, and we need to consider the current lag of support for these bills as our extra time to build better mice.

The fact that people around the world were forced to stop and consider the effect that the US Congress can have on the internet means not just that Washington is broken, but that the internet is too. This, then, should be a time when people around the world, where such work is still permitted, start focusing in on new ways of conducting the internet that are immune from such measures. Whether this comes by restructuring DNS, by implementing speedier and more widespread darknets, by mesh networking, we as geeks should now have one goal: to create an internet which is decreasingly vulnerable to censorship and exploitation by governments, private enterprise, or other censoring entities.

Opportunity to work constructively with Washington would be nice, to be sure, and I’d love to see the Free Internet considered as Free Speech. But I believe that although pressure should be applied to politicians and the political fight must be fought, only long term solution is to improve our technology to make sure that when purchased politicians push for censorship, overtly or silently, Team America: World Internet Police will find their methods even more futile than SOPA’s methods currently are, and democracy and free speech will have a chance to persist through whatever laws, blocks and shutdowns that special interests and lobbyists may purchase.

Tagged with Computing, Open Source Software, Privacy, The Internet | 1 Comment


So I’ve finally fully deleted my Facebook account, and look at the bit of charming they included in the “Deactivate your account” window.  Just a little bit of last minute emotional manipulation to keep you on board.

The best/worst part?  One of the friends pictured died just over a month ago.  Thanks, Facebook!

 

Tagged with Privacy, Social Networking | 1 Comment


So, recently I’ve been working to do something very difficult: I’ve been trying to get off of Facebook after more than 7 years.  Mind you, the difficulty is not in cancelling the account.  That’s a four or five step process.  It’s the emotional divorce that’s been difficult, fighting the feeling (which they very much promote) that Facebook is your social life, and that by turning your back on FB, you’re really turning your back on your friends.  Getting past that feeling of “Oh, I’ll never know what _____ is doing with his life”, or “How will _____ contact me?” has been oddly difficult, and has forced me to move past any number of irrationalities, and has drawn the ire of many on my facebook feed as well.

Rightly, I’ve been asked why I’m taking this drastic step at all, and even moreso, why I’ve chosen to remain on both Twitter and Google+ while eschewing Facebook.  In a word, Privacy is why I’ve chosen to leave Facebook, but it’s a little more complex than that (as Twitter offers no privacy at all, and Google+ is owned by yet another data-mining collaborative), so let me explain.

The Expectation of Privacy vs. No Expectation of Privacy

My chief problem with facebook is that when Facebook started, it was pitched as something that happened between friends (and until it got big, it was). Posts were meant for consumption by the people you chose, and you had (limited) control over that.  You can argue (rightly so) that Facebook is (and was) the internet, and you have no expectation of privacy on the internet, but given that I was much younger then, as was our ability to mine data, that was my feeling, my understanding, and how I treated the service.  Although I was never so stupid as some, I was not nearly so cautious with my posting in 2004 as I would have been had I seen what Facebook had become.

Unfortunately, since 2004 (when I started there), FB has, much like a gropey frat boy, constantly pushed users to expose more, to make more of your information, posting, and life public. First, they changed the nature of the network, changing it from being a group of College students hanging out to a free-for-all, where your professors, parents and younger siblings were just as welcome.  Then, they started selling us.  First, with beacon, “Well, we’ve changed your security settings to allow your friends to view anything you rent from blockbuster. If you don’t want that, I guess we’ll let you disable it.” Then more and more was broadcast. “Oh, we made all your posts available to friends-of-friends. Did you not care for that? Sorry, luddite, go back and change it.”  Then, they realized that they could sell your posts.  ”Hey, we’ve made your posts visible to third party advertisers.  That’s cool, right?”, which led into “Hey, you mentioned Starbucks, so we’re going to use you in an ad for Starbucks to show your friends.  Don’t be lame, it’ll be awesome!”.  In each case, the public found out about Facebook’s latest invasion of privacy shortly after it went live, leaving those of us who cared scrambling constantly to shut the windowshades after Facebook had again decided it was more profitable for them to be open.

Timeline, the next step in the endless march towards openness

The latest (and last) straw in this series is Facebook timeline.  Timeline is a complex offering, but in short, it’s a completely different way of presenting information which makes one’s very first posts on Facebook just as easy to view and access as the posts last week.  In short, it breaks down the difficulty (to other users) of dredging up the past, and offers one’s entire history on the site for easy examination and analysis.  In principle, there’s nothing wrong with this, and it’s actually quite well designed, but, like the gropey frat boy that Facebook is, it was implemented with only the loosest user consent.

Rather than giving us the option to not switch to Timeline, we were told “Well, you can do it now and have a week to clean everything up, or we’re going to turn it on on the 22nd of December”.  Once again, even this is not so horrible, except that Facebook has the utter hubris to allow people no control over what is shown in a practical way.  What Facebook offers us is the chance to hide old posts, but only one at a time, and using a 3-4 click process for each, which is nominally a privacy solution, but in practice, is a disincentive for anything to be hidden.

Rather than allowing us to, for instance, hide all posts older than ____, Facebook has put a considerable penalty on people wanting to let bygones by bygones.  You have the choice to either spend 12+ hours clicking through their UI to hide your prior posts, or to just put it all out there.  Mind you, all of the content was already there, and a persistent enough friend could have found it, but because of the nature of the site, it wasn’t right there in your face.  Associations you no longer care to keep, posts which, although not embarrassing or non-work-safe, are likely best kept in the past (think of every lovey-dovey thing you might have posted to an ex), all of these things are revealed to even the most casual mouse clicker, unless you spend your time repeatedly informing the tactless voyeur, Facebook, that “No, I’d really rather keep that particular piece of my past private”.

Finally, Timeline’s biggest sin, in my mind, is that it takes away the benefit of learning.  Those of us who got involved with Facebook when it was still college students only got involved when we were 18 or 19, which, as I now understand, is not an age where we should be involved with anything which will affect the rest of our lives.  Whereas most people now understand that Facebook is public (and constantly pushing you to be more so), data-mined, and that you’re the product, not the client, people took a while to learn that, and our posting habits changed as we did.  Many, like myself, were quite happy with the past being difficult to access.  By doing what they have with Timeline, posts which we now would think better of are thrust out front and center, and we’re no longer able to simply let the past be cloudy and do better in the present.

All things considered, I’m actually quite proud of 2004 me with respect to personal privacy on Facebook, but nonetheless, I dislike that I was even asked to worry about it, and the gropey and non-consentual way that Facebook went about it was the straw that broke this camel’s Facebook account.

There are other evils, mind you

Facebook is, in addition to being a gropey voyeur, a major corporation, and we’re not customers, clients or users any more than a cow walking into a slaughterhouse is an invited guest.  As it comes out just how much information Facebook is keeping about us, who is funding them, how you’re being tracked as you move around the web and Zuckerberg’s feelings on Privacy, anybody who cares at all about personal privacy should be thinking twice about participating.  But most people who are on Facebook are aware that it’s evil, gropey and against your privacy.

“But twitter is public! And Google’s just as evil”

Yes!  I agree completely, on both counts.

Twitter is completely public, but the wonderful thing is that they’ve claimed that all along.  Those of us posting there know that we’re posting to the world, and nothing is said which we would expect to be otherwise.  You have no privacy on Twitter, but more importantly, you could have never expected any.  There are no privacy settings to change, no (misplaced) trust to betray, as you know damned well that everything is minable.  And, Twitter does allow mass deletion of old posts.

Google+ is Google’s baby, and Google has a very liberal definition of where Evil starts and ends, so those of us who have started with Google+ have known all along that everything is essentially public, but Google+ has a much nicer way of managing the privacy of your postings, and frankly, offers a more pleasant UI and better experience overall, except for the fact that, well, most people aren’t on it yet.  In addition, the Circles concept (designating specific groups of people and tailoring the availability of your posts using those groups) is a powerful one (which facebook has already stolen), and does wonderful things for helping you maintain privacy (at least with people, everything is likely still available to Google and to advertisers).

I’ll also admit that using G+ is a calculated move.  I have an Android phone, so much of my information can already be assumed to be compromised to Google (although I refuse to use GMail so that I have at least one psuedo-private means of communicaton).  They’ve got it already, which is the price of admission (right now) for using what I feel to be a superior smartphone, so, while I’m being sold, I’d as might as well enjoy the full benefits offered to the cows by this particular slaughterhouse.

Finally, there is Diaspora, which I’m a member of, along with nearly 10 other people (more than that, but that’s how it feels).  It’s a very-early prototype of a networking system run for the users, not for the advertisers, but it’s largely used for discussing Diaspora at the moment, and a total of two people I know are on it.  If you’re on there, please, please email me so my feed will grow just a bit less depressingly sparse.

So, that’s why.

I’ve chosen to close my account on Facebook.  It’s not so much that there are things in my past which I want to leave behind, or friends I don’t want to follow.  Just the opposite, really.  I wish I could tell Facebook to forget everything before 6 months ago, download it all for my own use, and move on with life.  I’m going to miss seeing updates from people I care about, and I know that by leaving Facebook, I’ll lose touch with people who have brought me joy.

But I’m tired of being groped and exposed.  I’m tired of seeing “Facebook” in headlines and having to immediately go over to my profile and tell them that no, it’s still not OK for them to expose more of my life.  I’m tired of finding that they’re cutting me up and selling me in a novel way, and frankly, I’m tired of having these arguments with myself.

Although the temptation is there to delete my current account and create, in a few weeks, a completely psuedonymous account, which would accomplish some of my goals (effectively erasing my past and starting over fresh with absolutely no expectation of privacy), Facebook would still have my information, they’d still be tracking me, they’d likely be able to link me to who I was based on who I friended, and I’d still be feeding what amounts to a very ugly beast.  But it’s a very tempting thought, I’ll be honest.

That temptation is telling, too.  As I do all of this, and even as I write this, I still can’t believe how tough it has been even to wrap my mind around clicking a few buttons to close an online account.  If nothing else, the fact that this moment, this simple act, can be so emotionally loaded, shows just how bizarre the human emotional experience can be in a digital age.

Edit: … and apparently they know all about the emotional difficulty of leaving, and aren’t afraid to use it to try and keep you on board.

Tagged with Computing, Privacy, Social Networking | Leave a Comment


So, my Third-generation iPod (the very first with a dock connector!) finally died on me. It had been living in my car, hooked up to a older aftermarket stereo system via a dock connector cable, and served mostly to play podcasts and music in my car, controlled through the head unit (a Panasonic CQ-C700U). Its battery long dead (it had around 10 seconds of screen-on once the dock connector was disconnected, it was only a matter of time, and eventually, the hard drive itself died, leaving my iPod cooked for good.

Luckily, a friend had just switched cell carriers, and offered me a now EOLed, small capacity iPhone 3G (without a cellular service plan) to fill the void in my vehicle. Unfortunately, given that this is Apple Hardware which Apple firmly believes should be in a landfill and replaced with something shinier, it wasn’t easy. So, I’m writing this down somewhere with the hope that somebody will have an easier time with this than I did.

Not all docking cables are alike…

Unfortunately, although my Panasonic stereo unit happily charged my old iPod (which only charged by Firewire), it did not charge the iPhone at all, and hooking the iPhone up resulted in a “This accessory cannot charge this iPhone”. The workaround for this was a little adapter from Scosche (called the Scosche passPORT Charging Adapter) which I got from Amazon for $18. Once that was plugged onto the docking cable from the car stereo, and the iPhone was plugged into it, the iPhone charged happily and my music was freely accessible.

The Podcast Problem

However, Apple changed something in how the new iPhone, iPod Touch and iPod Classics handle Podcasts. Before, Podcasts were saved on the unit as part of the actual music library, so if you had a smart playlist which, say, automatically grouped all episodes of NPR’s Car Talk, then you could just select the “Car Talk” playlist and it would start playing the episodes.

In the newer units, though, Podcasts are kept separate, and stereos and accessories which are not blessed by Apple to see the Podcast directory cannot see the podcasts at all. So, I could hook the new iPhone up to my computer, sync all the podcasts I wanted onto it, but when I plugged the iPhone in and found the smart playlist for Car Talk (for instance), it was empty.

The internet was full of awkward suggestions for beating this (“Convert the podcast files to AAC, copy them onto the desktop, delete the old podcast files, and drag them back into your library”), but eventually, I stumbled upon a lone comment by Pedro Romero with a simple and graceful solution at the very bottom of this blog post:

I haven’t checked with iTunes 8 or former, but at least on iTunes 9 you can select the full podcast → Get Info → Options → Media Kind and change it to music… so it all goes to the library… viceversa from library to Podcast…

… and that did it! Once I did that, all of my podcasts were instantly placed back into my music library (so they’ll show up when shuffling, the only downside), and the smart playlists I’d created for each of my podcasts was once again filled with episode upon episode of podcastic goodness. Unfortunately, I’ve had to re-do the set Media Kind step again whenever I want to update the files with the latest episodes, but that’s a small price to pay for having it work.

So, one $18 adapter and many, many hours of googling to solve the podcast problem later, I now have a new iPhone working with an old iPod-equipped stereo. It’s a niche case, but if this post can save ANYBODY some time in fighting these same issues, then damnit, it was worth it.

Tagged with Apple Products, Computing | Leave a Comment


So, around two months ago, I upgraded to Lion, and at the time, I penned a (somewhat mixed) review of OS X 10.7 “Lion”. Well, I’ve been using Lion for a little more than two months, and I figured it’s time for a followup. In a word, if you’re thinking about upgrading to OS X “Lion”, well, don’t.

Lion has many wonderful things. The scroll bars are much improved, and aesthetically, it’s just a prettier operating system than Snow Leopard. In addition, there are bits of polish present in Lion which make it a much nicer experience.

There are also some very useful features to be gained in going to Lion. Whole Disk Encryption works nicely (albeit slowly, and while breaking Linux dual-boot), and even more useful is the external drive encryption (useful for locking down backups stored off-site). In addition, there are lots of bits of polish which make life easier, like the fact that plugging your open laptop into an external monitor then shutting it now results in only the external monitor being on. Mail.app is head-and-shoulders above Snow Leopard’s version in Lion, and a number of my favorite apps have now leveraged Lion’s new technologies to create even cooler features. Looking at the list of features, upgrading to Lion seems like a no-brainer.

Unfortunately, Lion broke lots of things. In addition to breaking Rosetta (support for running PPC programs) as promised, Apple also deprecated lots of audio methods, leaving smaller, open-source apps like sndpeek flapping in the wind with bus errors and leaving you scrambling for non-PPC versions/replacements for your older applications. In addition, the hiding of the ~/Library folder has broken many tutorials around the internet, complicating font installs for Granny, and forcing even my IPA guide to send users to the Terminal. In addition, the OS itself is far less stable than SL, with no significant changes or updates since release. Force closes of Apple apps are way up since going to Lion, and I’ve had more forced shutdowns in the last two months than I’ve ever had.

In addition, many developers have taken Lion as a good chance to force a paid upgrade, such that your programs may work OK with Lion, but if you want them to really run well, you’ll need to shell out $__ for the upgrade license. This isn’t a problem with Lion per se, and developers have the right to charge what they want for what they write, but it’s definitely a hidden cost of upgrading.

In addition, Apple has fixed none of the issues mentioned in my first review. Spaces (“Mission Control”) transitions are still offensively slow, and the eye candy still makes the whole OS feel slower, even after disabling as much of it as the internet knows how to do. The Address book and Calendar apps are still ugly (although I’ve managed to re-skin them), and we still have far fewer customization and personalization options than in Snow Leopard, and we’ve still lost control of things as simple as mailbox list fonts. You’ll be glad to know, though, that Apple’s spending plenty of time implementing iCloud in 10.7.2, their newest way of helping users store their data on somebody else’s computer.

When you add in the Lion Passwords vulnerability (still unfixed, although there’s a workaround in that article), Apple’s slow response to fixing the DigiNotar issues, and the simple lack of communication with their users about some of these issues, one thing becomes clear: Lion (and the Mac as a whole) isn’t Apple’s priority anymore, and that’s a problem for you.

OS X: the disappointing elder child

You’re welcome to dismiss me as an alarmist or a “back in my day” luddite, but it doesn’t take a weatherman to know which way the wind blows. Apple is making money hand over fist with the iOS and the iPhone, iPad, and iTouch. There, they have a closed ecosystem, and the only way onto the hardware (by consumers or developers) is by giving Apple their cut. Apple has been working to implement that same ecosystem in OS X (the Mac App Store), but let’s face it, compared to iOS, the historically open Mac OS platform just can’t make the same kind of money that iOS can. In the long game, Apple can make more money by slowly locking down the Mac platform and making it more iOS-like, because then they get both hardware and software cuts, and can dull the pain of somebody keeping a laptop for four or five years by dinging the dev for 30% with each software sale.

But right now, as Android slowly gains market share and Apple faces the longest between-iPhone drought since the product’s introduction, it just doesn’t make financial sense for Apple to focus on the desktop. So, based on what I’ve read, instead of tweaking the desktop for a better experience or focusing on fixing the bugs introduced with Lion, they’re currently trying to get iCloud up and running on the Mac for when iOS 5 and the new iPhone hit. Maybe once that has calmed down and iOS is again optimally pumping dollar bills into Apple’s coffers, Apple will spend some additional time trying to get OS X back to stable and secure, but that’s unlikely to be anytime soon.

Don’t

So, in short, if you’re still on the fence about upgrading to Lion, get off the fence and back into Snow Leopard territory. Right now, Lion isn’t ready for use, and unless 10.7.2 brings fixes for at least a few of the issues mentioned above, I’m likely going to revert back to Snow Leopard myself.

I’m hoping that the next major upgrade to Lion (a “Snow Lion” release) will actually bring Lion into stability and use. Knowing Apple’s schedule, that’ll likely not occur for months, and it may well come with yet more user lockdowns which make the price of stability simply not worth it.

I love the Mac OS, and I really wanted Lion to help me fall in love with the platform again. There are still many wonderful things about the Mac OS, Lion included, and it’s still the best operating system available for 90% of users. But the fact is that right now, OS X 10.7 “Lion” is half-baked, and smells a bit funny. Whether you want to brave that is up to you.

Tagged with Computing, Mac OS X | 1 Comment


Pardon my geeking, but I’ve had a number of requests for a review of sorts of Mac OS X 10.7 “Lion”, and now that I’ve been using it for nearly a week, I figure it’s time I write something up.

The Good

Whole Disk Encryption – Lion actually provides a much nicer security implementation than Snow Leopard did, in the form of Filevault whole disk encryption. Given the number of data leaks into unencrypted folders outside of your encrypted “Filevault” folder in SL, whole disk encryption is really the only way you can be sure that copies of your grades, medical records, etc won’t wind up on your drive in the clear. This also works well with Time Machine, allowing you to back up in real time, and in practice, I’ve had little-to-no performance hit for my applications. There are still some flaws with the implementation involving sleep, and you should assume that storing your master key with Apple leaves it open to subpoena, but if you’re as boring as I am (or if you too decide to forego storing the key with them), that’s not a worry.

Added bonus: When you enable whole disk encryption, you start your computer and almost immediately enter your password, then everything from the white-screen-gray-apple to your desktop happens on your own. Power, password, then go get a drink and you’ll find your desktop just as you left it, no intermediate login.

Time Machine Backup Encryption – This is a killer feature. The same whole-disk encryption described above can be applied to external hard drives, which can then be used for backup. This is massively important because encrypting your whole disk then backing it up in the clear to another drive is rather pointless except for physical machine protection when traveling. You can simply elect to encrypt an existing backup, or if you don’t mind losing your prior backups, you can reformat as HFS+ Encrypted and just start a new backup on the new drive. In the future, you’ll plug the drive in, but before it mounts, you’ll have to type a password.

Added bonus: Buy two small portable drives, encrypt them both, back up your machine onto both. Leave one with a trusted friend/parent/office (without giving him/her the password), and switch them out whenever you visit your friend (so that you’ve always got a semi-recent backup). Bam, instant secure offsite backup.

Mail.app 5 – I send and receive a LOT of emails, and Mail.app 5 is a welcome improvement in nearly every way. GPGMail is broken for the time being, though.

Terminal is tweaked – No major changes, but the Aerogel effect is cool, and going to 256 colors in Terminal is nice.

Full Screen Mode – I didn’t expect to like this, but I’m using it with Safari right now. It’s rather nice sometimes to be distraction free, and putting a terminal window in full-screen mode makes me nostalgic for my Gentoo installs of yore. It’s also nice if somebody asks to borrow a browser. it hides the bookmarks bar by default, and basically leaves them sandboxed (although they can exit at any time. Here, though, the animation is annoying.

Window changes – Windows can now be resized from any side and scroll bars have disappeared. I was skeptical, but I like it.

All the backend stuff – They’ve done a lot of backend work, described in the Ars Technica review. Which I appreciate, but isn’t immediately apparent to the end user.

Most linguisty programs work – IPA, Praat, Audacity, MacTeX, and all the other programs I use as a Linguist work just fine. That’s a wonderful thing.

The Bad

PowerPC programs don’t work – Moving to Lion meant that I could no longer run Diablo II, Starcraft (I), Duke Nukem 3D, and lots of small utilities (like “Shorten”, for opening .shn files) no longer work. No big loss for me, but check which of your programs are still PowerPC, and whether this will break anything important.

It feels slower, but I don’t think it is – This kills me, but all the eye candy added makes Lion feel slower. Animations which take a full second (switching between desktops, for instance) aren’t uncommon, and just make for a frustratingly slow experience. Apple fell on the wrong side of the pretty/performance continuum with Lion, but there are plenty of hacks online (and there will hopefully be more) which eliminate these “Amaze grandma” effects for those who want speed and efficiency. Edit: Many of these window effects can be disabled by putting the following into a terminal window: defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO

Mission Control is a step back – Mission Control, Apple’s replacement for Spaces/Exposé, isn’t as useful as either for power users. It’s nice to see all spaces at once, but the loss of flexibility (MC only allows one row of “spaces”, and its exposé clone doesn’t display windows as neatly. This is yet another feature that’s great for Grandma (much simpler to use), but disappointing for people who really use the machines on a daily basis.

Launchpad isn’t useful – But that’s OK, you really should be using Launchbar anyways.

Granny doesn’t need ~/Library/ – Apple has hidden the ~/Library folder by default. The command chflags nohidden ~/Library reverses that, but it’s another nod towards Granny because what’s in there will just confuse her, apparently.

Address Book and iCal – it’s cute that they’re trying, but the Address Book and iCal windows are now shaped like an address book and a desk calendar, just like Grandma remembers them! I hope this fad fades.

Apple keeps locking down settings – You can no longer adjust the font in the Mail.app Mailbox listing (although the size can be changed in System Preference -> General -> Sidebar Icon Size). Folders placed in the finder sidebar no longer display custom icons. Want two rows of spaces? No, no you don’t. Apple continues the arrogant policy of telling you how you want your computer to look/work/act, rather than allowing you to give your preferences. Apple is loving the control they have in iOS, and it seems like that same arrogance is moving into the OS X world, creating a bulletproof experience for grandma, but locking down people who can manage their own machines. All we ask are preferences, hidden or otherwise, to allow us to control our computer, but in 10.7, there’s no such luck.

There are bugs – Unlike Snow Leopard, Lion made a LOT of changes, so there are bugs. If you’re needing rock stability, wait for 10.7.1 or 10.7.2.

A mixed bag for power users

Imagine somebody worked on your car. They tuned the engine up, changed the tires, installed a car alarm, and made the seats a little more comfortable. However, they also swapped out your radio. Now it only lets your access your twelve favorite stations. And your ignition switch is replaced with a big “on” switch, which starts the car, but you can’t just listen to the radio with the engine off. Also, your windshield wipers now turn on with rain, but don’t turn on with just a little rain, and they took out that switch.

That’s OS X Lion. Right now, Apple has forced a sacrifice: performance for limitation. It’s actually a wonderful update under the hood. Encryption, improved backend speed, improved terminals, and all sorts of wonderful little tweaks make Lion a great upgrade, but to get in, you have to give up some control of your machine (but not, as far as I can tell, for a good programming reason)

For Grandma, OS X Lion is a slam dunk. It streamlines the experience, removes settings that will only scare her, and makes things pretty and more impressive. The same could be said for anybody who’s just an occasional user of their computers, or somebody not doing that much customization. Lion makes OS X much less threatening, and more like iOS in terms of ease of use.

However, for power users, or even for people who have been using OS X for a few years and are more comfortable with settings, Lion feels rather patronizing, at least, at the 10.7.0 version. I have no problem with Apple improving the default settings, or even making a very streamlined and uniform experience, but I do have a problem with their changing settings with no means for users to change them back. Similarly with animations: it’s wonderful that Apple is including cool new whizz-bang animations, but it’s frustrating that they don’t provide an easy way to disable them once they get old (and they do).

All that said, to be honest, I’m still glad I’ve upgraded, and would still recommend that you all do the same. At the end of the day, I love the Encryption, the UI did get nicer, and enough of the built-in programs were improved that I feel like there’s a net gain of functionality and pleasure-of-use, despite the patronizing aspects.

Here’s hoping, though, for a wonderful 10.7.1 upgrade.

Update: Two months (and a disappointing 10.7.1 release) later, I’ve finally come to decide that upgrading to Lion was not a good idea, and I’ve rescinded my recommendation that people upgrade. See my followup review for more information and comments..

(Also, no offense to the computationally proficient Grannies out there. I know you exist, but you’re not Apple’s target market any more than I am :))

Tagged with Computing, Mac OS X | 1 Comment


This is a quick guide on compiling and installing the Festival Text-to-Speech Package on OS X. This was somewhat of a gigantic pain, but eventually, seemed to work fine. The below is a collection

This tutorial assumes you have MacPorts installed from http://www.macports.org/ and can use the port command.

1. Festival and friends seem to work best on a Mac when compiled from the latest sources, obtained from SVN

1a. To install SVN:
sudo port install subversion

1b. Make a directory in your home folder called “tts”:
mkdir ~/tts

1c. Move into that folder:
cd ~/tts

1d. Checkout the latest versions:
svn checkout http://svn.berlios.de/svnroot/repos/festlang/trunk

1e. Copy the “festival”, “speech_tools” and “festvox” folders into the ~/tts folder, using the finder or otherwise.

2. According to , you’ll need to open speech_tools/include/EST_math.h and change:

/* Apple OSX */
#if defined(__APPLE__)
#define isnanf(X) isnan(X)
#define isnan(X) __isnan(X)
#endif

to:

/* Apple OSX */
#if defined(__APPLE__)
#define isnanf(X) isnan(X)
#if (__GNUC__ >= 4)
#define isnan(X) __inline_isnan(X)
#else
#define isnan(X) __isnan(X)
#endif
#endif

3. Now compile speech tools:
cd ~/tts/speech_tools
./configure
make
make test
make install

4. Now compile Festival:
cd ~/tts/festival
./configure
make
make install

5. Now compile festvox
cd ~/tts/festvox
./configure
make

6. Now ready OS X’s audio for this. This next part is stolen (and updated slightly) from :

Fire up Xcode (you do have the Developer Tools installed don’t you?):
File -> Open… /Developer/Examples/CoreAudio/Services/AudioFileTools/AudioFileTools.xcodeproj
Build the project.

Open up a terminal:

sudo mv /Developer/Examples/CoreAudio/Services/AudioFileTools/build/Debug-Tiger/afplay /usr/bin/
sudo chown root:wheel /usr/bin/afplay

If you find yourself missing any of the above files, download a precompiled version of afplay and copy it to /usr/bin/afplay as described above.

7. Open ~/tts/festival/lib/siteinit.scm and add the following:

(Parameter.set 'Audio_Required_Format 'riff)
(Parameter.set 'Audio_Command "afplay $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)

If the file doesn’t exist, create it as a plaintext file such that it contains only the above lines.

8. Go to and download:
festlex_CMU.tar.gz
festlex_OALD.tar.gz
festlex_POSLEX.tar.gz

Then drag the folder inside the festival/lib/dicts folder in that file into ~/tts/festival/lib/dict (create it if it doesn’t exist yet)

Also download:

festvox_kallpc16k.tar.gz

Then drag the festival/lib/voices into ~/tts/festival/lib/ on your machine.

9. Open ~/.profile and add the following lines:

export PATH=/Users/stylerw/tts/festival/bin:/Users/stylerw/tts/speech_tools/bin:$PATH
export ESTDIR="/Users/stylerw/tts/speech_tools"
export FESTVOXDIR="/Users/stylerw/tts/festvox"

9. Don’t bother with the “prompt them” script for recording. It’s a gigantic pain. Instead, do any recordings in . Then, for instance, if you’re recording files for a clock, split the recorded prompts into “time0001.wav”, “time0002.wav”, etc. If you want to attempt “prompt them”, you’ll need to install sox (sudo port install sox) then change any calls to na_play with “play” and the na_record line with ” rec wav/$f.wav trim 0 $duration” (Thanks to ).

10. From there, run whatever tutorial you’d like, you should be good to go. Also, sorry, but I can’t really support this method. Please don’t email me or comment looking for additional tech support information about this.

Enjoy! (and sorry for the exceptionally dry post, but this is a useful bit of information to have out there :))

Tagged with Computing, Mac OS X, Open Source Software, Speech Technology | Leave a Comment


Site Information

  • Categories

  • Latest Linguistic Posts

  • Archives

  • Site features