aaron@traas.org

The home of Aaron Traas — man of faith, science, and very bad humor

Aaron's blog, page 3

Which phone do I buy?

Note: The site described in this blog entry no longer exists. The market has diversified a great deal meaning that there was more than one obvious choice for people in a catagory, and no one used this site. So I took it down.

Which cell phone to buy has become an increasingly difficult question to answer. Not because there are more options now than ever before, but because it matters now in the age of smartphones. 6 years ago, all phones sucked, full stop. If you wanted a smartphone, your options were a device running Windows Mobile, Blackberry OS, or Palm OS, all of which had terrible user experiences. You were also in a fairly elite category of users, and likely had the resources to properly research your purchase. For everyone else, there were crummy feature-phones that didn't do anything well, save voice and SMS.

That all changed in 2007 with the advent of the iPhone. The smartphone was elevated to a level of polish, simplicity, and approachability that they'd never seen before. Ordinary, non-nerd users started wanting smartphones. And with the advent of Android, there were tons to choose from, most of them terrible. So I created "Which Phone do I Buy?", a tool to help non-nerds choose a cell phone. There's really only a couple choices worth considering for each carrier based on a few simple criteria. Are you a non-nerd who wants a great smartphone? Give it a try—it'll only take you 3 minutes or less.

There are a couple of caveats. I don't care about price, because American carriers subsidize everything so any phone worth having costs around $200 out of pocket with a 2-year contract. It's never worth going for a cheaper phone; if you go the $100 route, you will have either an old device or a crummy, low-end device that will make you miserable for the better part of 2 years. Isn't $4.17 a month worth your personal happiness?

Also, if you have opinions about whether or not a phone's radio has full receive diversity, a replaceable battery, access to your filesystem, is easily unlockable, has a great selection of third-party ROMs, supports your favorite wireless charging standard, has an NFC radio, has OpenCL drivers, etc., you're a nerd. In fact, if you understand any of the above, this guide is not for you. This is for people that just want a quality phone to use day to day, and don't want to devote the time poring over tech journals, such as The Verge and Anandtech, and trying out a dozen handsets before making a purchase.

I consider camera quality, hardware build quality, software, app ecosystem, speed, polish, and reliability. There's only 4 phones I currently recommend to non-nerds, and these change month to month. Most people at the time of writing are better off with an iPhone 5—it's simple, high quality, and if anything goes wrong, you bring it to the Apple store to have it serviced, often for free. That's hard to beat. It's not my personal choice for myself. In fact, my phone isn't even on the list of 4 phones I currently recommend to normals. But in case you haven't noticed, I'm a bit of a nerd.

Traas.org version 4.0 released

It's been a long time coming, but as an activity related to my recent job hunt, I sought to redesign and rebuild this humble web site. The original design served me well, but it was the best design I was capable of in 2005, and my abilities have progressed. I hope my handful of readers find this format more pleasant.

Design

Since it's safe to rely on @font-face support in browsers today, I wanted to try a very modern, clean, type-driven design. I initially started with Helvetica Neue: a classic, attractive sans-serif font that still manages to look modern after all these years. However, particularly on Windows PC's, it doesn't render well. It's also so very common and recognizable, and it would cost me at least $10 a month for access to it as a web font. As I'm a fan of Google's Android OS, I decided to go with Roboto, a Grotesk font that certainly borrows a lot from Helvetica, but is distinctly different, and freely served from Google Font API. Plus, it's available in 6 different weights, including light weights which I wanted to use on my headlines.

This is the first site I've built with a mobile-first perspective, and it's responsive with 5 distinct breakpoints. The HTML and CSS code have been tuned for scrolling performance, small transfer size, and speed in general. It should behave very nicely on modern phones and tablets, and scale up well in a desktop browser. If you are using a fairly current version of Chrome or Firefox or Safari, feel free to resize the browser window. There's some fun stuff there. I've also added invisible skip links for accessibility purposes, though I'd still like to do more testing with a screen reader.

Along with this site, I've also built resume.traas.org, a responsive, HTML5 résumé that prints very nicely. It has a similar aesthetic to traas.org, and works nicely on all sorts of devices and sizes.

Framework

The back-end has also been completely rebuilt from scratch, and I'm happy to say that it's roughly 1/20th the number of lines of PHP code. This has been a strong trend from version 3, where I decided to stop maintaining my own blogging engine and outsource that to blogger. In fact, the only code from 3.0 that lives on is the piece that parses the XML from the RSS feed that Blogger publishes to present the content on the front page of the main site. The big reduction in version 4 is the removal of the database-driven CMS_—_no longer is the page content stored in a database. Instead, most of it (save the complicated bits) are stored in static Markdown files, which are checked into my Mercurial repository and deployed via my Ant/Python build scripts.

The build/deploy system is most exciting to me; it's removed the human factor from deploying to the staging and production servers, and allows me to iterate more quickly without the worry of breaking something.

In my quest for lightness, I ditched CodeIgniter for a super-lightweight custom framework that I've been using for a number of simple projects that I call Basic Site Template. I plan on open-sourcing it when it becomes a little more mature. It includes simple template parsing, JavaScript linting, on-demand CSS/JS minification, scriptable sprite building, resource cacheing, some ultra-basic unit tests, a deploy system, and a framework that provides a very loose MVC structure that just gets out of the way.

New Features

The most interesting new feature I added was the ability to call me with an online form using Google Voice. Google offers a widget to do this, but it's ugly and built in Flash. I did a little research, and found that there's an undocumented, unofficial API that a few people have tinkered with, and with about two days worth of trial and error, I was able to get it to work.

The Twitter widget in the contact page, on the other hand, was stupidly easy. And the email component I've done a thousand times.

The Future

Though I feel a great sense of accomplishment, there's still a lot I want to do:

  • Modify the config system to use JSON rather than hard-coded PHP objects.
  • Remove the dependency on Ant; use or make a full Python-based deploy system.
  • Agressive use of sprites for the Portfolio page.
  • Optimize the caching system_—_I think I'm stating files more often than is necessary.
  • Clean up CSS, particularly the forms stuff. I think I have a bit more in there that's unused.
  • Add more pre/post-deployment tests, so I can see if something went wrong during deployment.
  • Automated PDF generation for my résumé.
  • Build a subset of Font Awesome for the handful of icons I use on the page.
  • Make use of a CDN for JavaScript, CSS, and images

Do you have any suggestions? I'd love to hear them.

Nexus 4 Review

The short version: if you're on T-Mobile, or wish to switch, this is the only phone worth buying, period. It blows away the competition, including the Galaxy S III, and my previous pick, the Galaxy Nexus. It's also $300 off-contract, which is absolutely nuts for a high-end cellphone, most of which retail for $600 and up off-contract.

The longer version is much more nuanced. This phone is so amazing that its many minor flaws jump to the surface. I'm going to be incredibly critical in this review of its flaws, but please don't think this implies that I do not like the device. Indeed, I'm very, very happy with it, and wouldn't trade it for any other phone that has been created at time of writing.

Industrial design

Looking at the Nexus 4 and the Galaxy Nexus side-by-side when laid face up on a table, there are very few differences. They are both elegant, unadorned black slabs, with the same fairly unique rounded top and bottom featured on the Nexus S. They both have a roughly 4.7" screen with no hardware buttons. Google has defined how a Nexus phone ought to look.

When you pick up the device, however, the difference in build quality is incredible. Though the Galaxy Nexus was a fair step up in this regard compared to the utterly cheap-feeling Nexus S that preceded it, the Nexus 4 is in a different class. It feels incredibly sturdy and rigid in the hand. The glass back and rigid frame surrounding it look and feel great, if a hair heavier than its predecessor. I like the feel better than the iPhone 4/4S, as the edges are tapered rather than straight, and covered by an extremely pleasant soft-touch material. The front glass is curved on the edges, and is wedded to the frame with a dark glossy plastic rim. The curved edges of the glass feel really great, and make swipe gestures feel a little more natural. This is in a similar (but not quite equal) class of design that we're used to seeing by Apple, HTC, and Nokia.

Not everything is an improvement over the Galaxy Nexus, however. The power and volume buttons, though in the same locations on either side of the device that have been the same since the Nexus S, have a cheap, plasticky feel, and are more difficult to actuate. The headphone jack has been moved to the top, which is awkward when I want to have both a USB cable and headphones plugged into the device at the same time (which I do almost every day on my commute to work—tethered to my laptop to provide internet access while I'm listening to a podcast). Like the Galaxy Nexus, the Nexus 4 has its speaker (unfortunately) on the rear of the device. However, as the Nexus 4 has a perfectly flat back, when sitting on a table, the speaker is almost completely muted. Why do no high-end phones have front-facing loudspeakers? This is preposterous to me.

And though the whole device looks and feels fantastic, it really could be better. The glass back, while adding rigidity and maintaining RF transparency, makes the device more fragile, and more slippery. I've caught it several times slipping off a not-too-level smooth table. Why couldn't Google have opted to ditch the glass rear, and have a milled polycarbonate back that continued the soft-touch material it used for the perimeter of the device?

The shiny plastic rim that provides a transition between the front glass the soft-touch sides is completely unnecessary, and makes the device feel cheaper than it ought, and looks like it will eventually scratch/chip the layer of paint that keeps it glossy.

Finally, while I was pleasantly surprised to find the large size of the Galaxy Nexus comfortable, the added size to the Nexus 4 is actually a detractor. Google made the screen wider in portrait view, and it now is just barely uncomfortable to use in one hand. As the entire industry seems to race for larger and larger devices, a trend which I've generally applauded, my hands are dictating a maximum threshold.

Screen

The screen on the Nexus 4 is really incredible. It's crisp and clear, and feels even closer to the surface of the glass than the screen of the Galaxy Nexus. Though I raved about the Galaxy Nexus screen in my review last year, after a few additional months, the weaknesses of the screen just became more noticeable, primarily the Pentile (RGBG) subpixel arrangement. Though I still prefer the contrast and deep blacks on AMOLED screens, the LG Nexus 4's screen is truly excellent. It's crisp and sharp. The viewing angles are very good. The iPhone 4/4S/5 and the HTC One X still have slightly better screens, but the screen on the Nexus 4 is excellent by any measure. The biggest complaint I have is the somewhat muted, washed-out colors. My guess is this is due to poor post-assembly calibration. I'm hoping that future builds of CyanogenMod will allow me to adjust this myself, but it's a shame that an otherwise great screen shipped with such an easy-to-fix problem.

The touch sensitivity of the screen seems to be a hair lower than the Galaxy Nexus, particularly around the edges of the device. I find it takes more effort to pull down the notifications tray than it does on other devices.

The screen is slightly wider (in portrait mode) than the Galaxy Nexus, making it impossible for me to reach across the device with my thumb. Adding an additional 58 columns of pixels really hampered the usability of the device. However, everyone's hands are different, so your mileage may vary.

Performance and battery life

This is the one place that I will have absolutely zero complaints. Whereas the Galaxy Nexus was possibly the first Android phone to feel "fast enough", the Nexus 4 is simply fast. The Qualcomm Snapdragon S4 Pro is really, really fast. Like iOS fast. Zero lag. Qualcomm's Krait, an out-of-order, 4-issue ARMv7 implementation, is not only incredibly quick, but it also sips power. The bundled Adreno 320 is an excellent GPU, finally providing Qualcomm with a part that can stand up against Exynos 4 and Tegra 3 on all counts. The only SoC's that can really stand up to the S4 Pro are Samsung's Exynos 5 (ARM Cortex A15 + Mali T-604) series and Apple's A6 (Apple Swift + PowerVR SGX-544MP).

The battery life is very, very good. On an average day, I have more than 30% charge left when I go to bed. On heavy use days, it's about the same as the Galaxy Nexus. On light usage days, it's worlds better. This is partially due to the 2100 mAh battery in the Nexus 4—it's just got a lot of juice. But also due to the Snapdragon S4, which sleeps very well. On the three nights that I'd forgotten to plug the phone in before bed, I woke up and found the phone lost only 2 or 3 percent of its charge. On the Galaxy Nexus, this would have been about 20%. It's far from the insane battery life of phones like the Motorola RAZR MAXX HD and the Samsung Galaxy Note 2, but it's good enough for the average work day in NYC, at least for me.

Camera

The camera, much like the Galaxy Nexus, takes fairly mediocre pictures, but does so extremely quickly. Although I really don't take many pictures from my phone, it's unfortunate that Google didn't choose to up their game in the face of competition with the Galaxy SIII, One X, and iPhone 4S/5. However, the phone is $300 on contract, so I guess something had to give.

Miscellaneous

Like the Galaxy Nexus, the Nexus 4 has a pentaband HSPA radio, and operates on T-Mobile, AT&T, and the majority of GSM carriers worldwide. This is the best phone to travel with in existence. The downside that it doesn't support LTE. For T-Mobile and most international users, this is fine, as T-Mobile doesn't have an LTE network yet, and its HSPA+ speeds are quite good. For AT&T user, that means this phone is all but useless in major metropolitan areas, as HSPA is mostly useless. Well, with premium parts like the screen and SoC, to hit the $300 price point something had to give.

T-Mobile is, however, promising to roll out LTE to 200 million users in 2013, and some have found that the Nexus 4 has a latent LTE radio that supports at least one of T-Mobile's bands. We'll see what becomes of this in the coming months.

Software — Android 4.2 Jellybean

Jellybean is a nice upgrade over Ice Cream Sandwich. It's much faster and more responsive, and gets rid of the animation jitter, primarily by implementing system-wide triple-buffering and vsync.

The real star feature of Jellybean is Google Now. Some people have billed this as Google's answer to Apple's Siri, and while that's somewhat apt, it doesn't tell the whole story. Google has had voice recognition, dictation, and search in Android since Android 1.5, and it was always a major competitive advantage. Apple's Siri, released last year with the iPhone 4S, not only filled that gap in its own ecosystem, it also aimed to become more of a personal assistant. Whereas Google Voice Search simply returned search results, Siri would try and actually answer questions and do things for you. Google Now is also a take on the "personal assistant" role, but it goes about the task very differently. It integrates multiple data sources Google already has access to, such as Gmail archives and your browsing history, but also logs different things you do and places you go. When I first upgraded to Jellybean (4.1) on the Galaxy Nexus, it took 3 days for Google Now to figure out where I live and work, without me telling it anything. It just used my real-time location data to figure it out. It perpetually tells me how long it will take to get home by train, warns me of weather alerts, tells me when I have to leave the house to get to my first meeting of the day, and many other incredibly useful things. Useful, but a little creepy. It's really, really handy.

The voice that the whole system speaks in, whether in Google Now, Google Maps turn-by-turn directions, or text dictation, is really, really good. It sounds significantly clearer than Apple's Siri, and speaks quickly, so an impatient, chronically busy North Jersian like myself gets a bit less frustrated.

And that's basically it. Sure, there are tweaks all over the system, and nice little conveniences, but there isn't much that will surprise you if you've already used Ice Cream Sandwich. The most remarkable thing about the software on this phone is that it's just plain Android—no carrier or OEM bloatware. That really shouldn't be remarkable, but it is. The crap shoveled onto Android by Samsung, HTC, Motorola, et al., is just big, bloated, and obnoxious. Though this phone loses in some synthetic benchmarks against the likes of the HTC One X and the Galaxy SIII, the whole experience feels so faster on the Nexus 4.

Application Ecosystem

The biggest improvement on the software side over the last year has been the app ecosystem for Android, largely due to Google's new focus on design with the Holo theme, improvements in the developer tools, and the Android Design Guidelines. Android applications on average aren't as high-quality as their iOS counterparts, but the gap is narrowing. I don't see it truly catching up soon, mostly because Android users seem much less willing to pay for apps than iOS users. Plenty of great games are coming to Android and play very well on ICS and later with decent hardware.

New entrants, like Press, The Verge, and Eye in the Sky take the Android design guidelines to heart and build cohesive, native applications, whilst existing apps like Dropbox, Pocket, and Rom Manager redesigned to follow the UI/UX direction that Google is traversing now, and to great effect. Press, in particular, really sets the bar for fit and finish in a non-Google app in the Android ecosystem; it's the first Google Reader client that is as attractive and functional as the legendary Reeder for iOS. The only area where I'm constantly disappointed is Twitter apps. There's really nothing on Android that can compete with TweetBot or Twitterific. The best I've found is Tweet Lanes, which is excellent but incomplete, and sadly was abandoned by its developer due to Twitter's new terms of service which basically prevent anyone from making any reasonable amount of money selling a Twitter client.

Summary

As I stated earlier, if you're on T-Mobile, this is the only phone you should buy, period. T-Mobile, as of this writing, there is no model of the iPhone that supports AWS, so your choices are Android, Windows Phone, and Blackberry. Let's be honest: only one of those is worth considering for a primary phone. It is not a perfect device by any means. Unlike last year's Galaxy Nexus, it's not available on every carrier, it does not have LTE, and it isn't the only Android phone out there with competitive hardware.

But it is really fast, has a great screen, great battery life, and stock Android with updates directly from Google. And it's $300 off-contract, which means you can pair it with T-Mobile's $30/month plan with 100 minutes, unlimited texts, and unlimited data. Or if you're a heavy voice user, go with an MVNO like Simple Mobile, which offers unlimited voice/text/data for $50/month on T-Mobile's network. It's a really great deal on a really fantastic phone. It's also the best phone to travel internationally with overall, as it supports HSPA bands in a large number of countries.

Sadly, I can't recommend this phone to any users of any other US carriers. You can use it on AT&T, but you won't be happy with the data service, particularly if you're coming from an LTE phone.

Twitter sucks, but I'm not a fan of App.net

Twitter as a company is in a bit of a bind. When they came onto the scene 6 years ago, it exploded beyond anyone's expectation. It turned fairly quickly from a tool used by nerds to communicate to a mainstream tool used by moms, accountants, celebrities, and anyone else. I personally rely on it primarily to follow experts in technologies that I care about such as @joshuatopolsky and @siricusa, but also personalities like @alyankovic and @altonbrown.

Application developers, particularly for smartphones, have supported the platform's API for a long time, and it's really the secret to the platform's success. Tweetie for the iPhone is responsible for kicking off the trend, and they were purchased by Twitter and made into the official Twitter client. And there have been many, many quality Twitter clients for iOS and Android (where Tweet Lanes is my current favorite). This has made the experience of using Twitter on a phone much more pleasant than browsing the mobile website, or posting tweets via SMS. That, and it's created a wealth of different implementations with different ideas, and different usage patterns for different people. Clients like Tweetdeck and HootSuite shine for people that manage multiple accounts and do this sort of thing for a living. Clients like Echofon and Osfoora are more minimalist and simple in design. Clients like Tweetbot, Boid, and Tweet Lanes straddle the line between the power user and the basic user.

This sounds great, right? What's the problem? Well, their problem is making money. They made a great service that's loved by millions of people. It's a free service, so they're not getting money directly from their users. They've tinkered with selling "promoted tweets". They've sold hash tag trending. They do "expanded tweets" for commercial customers. The problem with all of these is that they have a pretty clean, open protocol that the third-party clients consume, and such clients can filter these things out.

More recently, Twitter has been threatening developers that in the future, they'll disallow third part clients that attempt to allow people to read their timelines without using one of the official clients.

The root of this problem is that many companies on the web, in order to provide a free service to end users, have to beholden themselves to advertisers. Thus, their users aren't their customers, the advertisers are.

Recently, App.net has come up with an alternative solution. They launched a Kickstarter-like campaign to raise $500,000 to make a Twitter competitor that isn't free to use, and they succeeded. The backers, going in at $50 a pop, get accounts for one year of service from App.net. The API is similar to Twitter's, the capabilities are similar. It wouldn't be too hard for many Twitter clients to support both. But the price of entry is problematic; it's unlikely they'll get to the critical mass to make it as valuable a tool as Twitter.

Though I applaud them for trying, I doubt it will catch on. Twitter, on the other hand, already has critical mass, and is extremely popular, and could probably make a decent living charging power users a yearly fee to use third-party clients, and this would be better.

Better still would be replacing Twitter with a decentralized protocol that nobody owns and that many vendors can provide as a service. I'd personally prefer it based on OpenID for authentication and email address for identification, as pretty much everyone already has one of those. Google, Facebook, Microsoft, and—heck—even Twitter could offer the service. Sure, it's more tedious to type in a reply aaron@traas.org than @aarontraas, but the benefits of decentralization would far, far outweigh the consequences.

What about spam? Isn't that a big problem for decentralized services like email? Well, it's already a problem on Twitter. Plus, there are potential solutions in place that are largely impractical for email, such as having each OpenID provider have its own digital signature, and cryptographically sign all status messages from a given server. If a server allowed a lot of spam, its peers could block it. This would also make spoofing very difficult, so you can't just pretend you're another user than you really are.

I don't intend to make this sound simple; it's not an easy task. A centralized service is much, much easier than a decentralized one. There's a lot of decisions to be made, like do we completely rely on the DNS system like email does for pulling feeds and locating others, or do we have some sort of discovery mechanism that isn't linked to the domain of the OpenID provider? Does the client constantly poll all of your followers, or is there some sort of server-side aggregation? Does the provider of the service know if a user is being followed by another person, and push all updates to the followers, and if so, what are the ramifications in terms of bandwidth and privacy? How do we get everyone on board?

I do believe, however, for this sort of social platform to enjoy any sort of longevity, there will have to be some sort of decentralization and thus competition among providers. That way, when, say, Twitter or Google or whoever decides to dick over their customers, those customers can just leave and go elsewhere.

That all being said, if Twitter wanted to charge me $25 per year for the privilege of using arbitrary third-party clients and not seeing ads, I'd do it. And at least for now, you can follow me at @AaronTraas.

2 Weeks with the Macbook Air

After months of waiting for the Ivy Bridge refresh of all of the Mac Laptops, I was finally able to order a new workstation: an 11" Macbook Pro. It's such a radical departure for me.

I've owned a Mac before as my workstation, but it was a big hinkin' G5 PowerMac. It was a great machine for the time, but it aged poorly. As the Apple switched from the PowerPC architecture to Intel x86, more and more software wouldn't work on it. Then I got married, went on an expensive honeymoon, and had a kid in a short period. So buying another Mac didn't seem like a great option. I hobbled together a new Linux PC with $400 worth of parts. It got the job done, but the annoying situation with sound drivers and the like that plague Linux systems was just more than I wanted to deal with. That, combined with the fact that I got a smartphone, they got me an iPad at work, I started working more hours, and travelling more, and had a wonderful young child that needed spending time with, meant that I spent less and less time on my PC. What I needed from a workstation was a laptop.

I'd owned laptops before. I have a crappy old Dell laptop running Ubuntu. It did OK. But it was a beast. It was a 15" model with a big but slow hard drive. It weighed like 9 lbs. I did actually wind up using it more than my desktop, because I could use it anywhere. Well,  anywhere I had a lot of space and a power outlet. It got virtually zero battery life (less than an hour with light use), and the slow hard drive made it somewhat annoying to use. The trackpad was a basic one, barely usable, so I always had to use a mouse. So I didn't use it much. I did all my browsing and email on my phone and iPad by this point, largely because I could do that anywhere -- on the couch while my daughter was napping, in bed first thing in the morning, in line at the DMV, at one of those under-sized tables in Starbucks, etc.

And then I got my current job, which is much more of a management role. I'm in a LOT of meetings, and if I want to get any coding done, I need to be able to do it on the go. I now travel a bit more, and the bulky HP laptop I have as my temporary workstation is terrible. I got a Kindle Fire on which I installed CyanogenMod, and started bringing that to meetings for note taking. That was a perfectly OK solution, but I couldn't do much more than I could on my phone.

I decided a while ago that my next workstation would be a Macbook Air. But as I previously mentioned, I was waiting for the Ivy Bridge refresh because 4GB of RAM was too little for my needs. Lo and behold, a few weeks ago at WWDC, Apple announced they were refreshing all of their Macbooks to use Ivy Bridge, and all of the Air's could be upgraded to 8GB of RAM! So I ordered an 11" model, and it came in about 2 weeks ago. I was scared, though. It's the first machine I've ever ordered that wasn't upgradable. I couldn't even change the battery without resorting to extreme measures. Would 2 USB ports be enough? What about the tiny screen size? What about the crappy Intel on-board graphics?

2 weeks later, I still love it. It's faster for most things that aren't compiling large codebases and crazy Photoshop filters than my old desktop workstation. It gets great battery life -- between 4-5 hours. It's really snappy, and wakes from sleep in less than 3 seconds. It's super-light, and tiny enough that I take it to every meeting and pretty much everywhere I go without cramping my style. I get real development work done on it. I've used it, tethered to my phone, to make emergency fixes on the train and bus.

It's also changed my usage patterns. I never pick up my iPad or Kindle Fire any more. The only thing it doesn't replace them for is Netflix streaming, because Microsoft's Silverlight plugin consistently crashes, locks up the system, and requires a reinstall of the plugin every time I use it (launching Netflix in Firefox, Chrome, and Safari yield the same results). I use my phone a bit less too, as I always have the Air with me, so I use it when appropriate. The near instant wake from sleep is honestly the biggest feature of the device. If I have 5 minutes to bang out an email or write a snippet of code, I can.

Most surprisingly to me, I've rarely plugged in a mouse to it. I've never owned a device that had a non-shitty trackpad before. People who know me know that I'm a keyboard and mouse snob. When I do station the thing at my desk, I hook it up to an old IBM Model-M style buckling-spring keyboard, and a fairly high-end (if old) Logitech optical mouse, and a 24" Dell IPS display. It's really nice when I can do that. But the built-in keyboard and trackpad are, dare I say, acceptable? That's really high praise from me. Yes, I prefer mechanical keyswitches with a LOT more travel, and a full-sized, heavy, wired optical mouse to a trackpad—those are objectively superior input devices—but I can do just fine in extended sessions with the built in stuff on the Air.

There's a lot to love about the Air—it's attractive, fast, convenient, thin, light, and portable. I'm happy to be rid of the optical drive. I'm hopeful that Thunderbolt peripherals will start to fill the marketplace. I'm desperately hoping that within a year or two my battery won't be useless, and when it finally does start dying, I can have it replaced. The price was a little more than I wanted to pay for it—I build a desktop Linux machine with the same specs for about a third the cost. But, honestly, the PC manufacturers can't make a similar device of similar quality at a similar cost, so I don't feel Apple is ripping me off. And OS X is nice. There's a bit I miss from Linux, but not a whole lot. Oh, and both Finder and the Dock suck, but that's always been the case.

Keyboard Shortcuts

?
Show/hide help
Right
Select right-hand menu
Up
Next menu item
Down
Previous menu item
Left
De-select right-hand menu