You have arrived at traas.org — the personal home page of Aaron Traas.
Aaron is a Catholic software engineer with an intense passion for gadgets,
open source software, food, music, theology, and philosophy.
If you wish to find more about the commercial projects Aaron has worked on in
recent years, please visit the portfolio page. If you are
looking for a great solutions-oriented, client-facing technical lead for your
agency, please take a look at Aaron's online, responsive HTML5
résumé, and then send him an email if you
like what you see.
If you want to know Aaron's musings and opinions about many things (mostly
phones and computers), you are invited to read his blog below.
As Marco Arment mentioned numeroustimeson his blog, and reiterated with his co-hosts on Accidental Tech Podcast, the current generation of Thunderbolt, both in terms of bandwidth and latency, is insufficient to use to augment a laptop with a high-end GPU and pools of CPU and RAM, especially in a daisy-chain scenario. If you attempted such a thing, where you connected, say, an 11" Macbook Air to an external box with a CPU, GPU, and huge pool of RAM, the communication between the laptop's CPU and the resources on the Mac Pro Replacement (henceforth, MPR) would be way too slow to yield a smooth experience for games, high-end 3d, video editing, etc.
But what about turning the whole formula around. The MPR could be a box with a pair of Xeon CPU's, a really beefy professional GPU, and gobs of RAM, optional hard drive, but no OS. It connects to a Macbook of some sort over Thunderbolt. The laptop suspends the OS, migrates the OS to running on the MPR, and then the MPR takes over, using the laptop as an external display, keyboard, and trackpad, and hard drive.
In other words, most people are thinking of the MPR as a docking station with some additional compute resources, whilst my proposal would make the MPR a fully functional computer sans OS, with the OS and primary storage provided by the externally attached laptop.
Now, I'm not saying Apple will do this, but this is a way they can.
As I've told numerous people over the years, a real Computer Scientist should be able to learn a new language in about a week. Maybe a bit more if it's a particularly strange language. But most imperative or OO languages should take about a week to learn for someone who is any good at the craft. Now, I'm not talking about mastery. Every language has its own set of idioms, tools, quirks, bugs, performance characteristics, etc. that take quite a bit longer to completely understand. I refer to, instead, basic competence, i.e., the ability to write functional, clean code, and reasonably ability to read well-written code in the language.
I took it upon myself to learn Python a couple months ago. I've been meaning to do so for years. I had just been introduced to Codeacademy, and I wanted to evaluate it so I could recommend it to other people wishing to learn how to code. It's very theory-light, but otherwise a good way to introduce someone to writing web-centric code. While I was there, I noticed the Python track, and decided to do it.
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.
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.
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.