Sunday, March 18, 2012

Apple: Keeping It… Modest?

While Apple certainly promotes itself as a premium brand, one thing they do not do is change their hardware designs frequently.

Without close inspection, nobody knows you're using a MacBook Pro from 2008 and not one from 2012.

It's even harder for somebody to tell if you're using an iPhone 4s or an original iPhone 4 from two years ago. HTC alone has introduced what, literally twenty designs in that timespan? Thirty?

With the exception of IBM/Lenovo's iconic Thinkpads ‐ which I also love ‐ Apple holds on to their external designs longer than anybody in the industry.

You could make a case that Apple actually has the most modest designs of any PC or smartphone manufacturer today. Were Apple to ever ditch the big glowing Apple logo from their laptop lids (not likely, of course) it wouldn't even be close.

Please note that I spend less than two hours a week watching television, and well over forty hours a week using a Mac and an iPhone. In contrast, I see perhaps thirty seconds of Apple advertising a week.

So I'm talking about actual Apple hardware and not the yuppified marketing image they present in their TV ads. If you watch a lot of television and see a lot of Apple ads, and don't own any Apple products, you'll probably feel differently - but just know that your opinion is based more on marketing than the physical reality of their products.

Friday, March 16, 2012

Ruby: Staying "In The Zone" With Code Completion

Nothing breaks my flow of thought like a bunch of compiler errors -- or worse, subtle runtime errors -- because I misspelled an identifier name somewhere in my code.

As dynamic languages like Ruby have gained in popularity, we've often had to choose between robust, Intellisense-sporting environments like Visual Studio and the dynamic languages we really love.

Out of the box, Sublime Text 2 (OSX, Windows, Linux; $59; free unlimited evaluation of Sublime Text 2 during its prolonged beta period) has some excellent code completion for identifier names and built-in language constructs. There's an important shortcoming, however: the editor only "knows" about identifier names that appear elsewhere within the current file. A variable declared in File1.rb is invisible to the editor in File2.rb.

SublimeCodeIntel is a promising attempt to fix that shortcoming in Sublime Text 2. Based on my simple, initial tests, it works. There still appears to be work to be done, as the code completion dropdown randomly fails to appear at times.

Another alternative for IDE-like Ruby development is JetBrains' RubyMine (OSX, Windows, Linux; $69), now on version 4.02. RubyMine aims for the full IDE experience, as opposed to the smart-and-extensible-text-editor approach of Sublime Text 2.

And then there's the venerable TextMate (OSX only) which may or may not see itself replaced by TextMate 2 if the author ever gets around to it. While I love TextMate, I've never found the code completion to be particularly useful.

While I like Sublime Text 2 the best for Ruby code completion, the saga of TextMate's pseudo-abandonment makes me awfully wary. Like TextMate, Sublime Text 2 is largely (if not entirely) the work of a single developer. What happens if he tires of the project, or other life circumstances prevent him from devoting himself to it?

This is by no means an exhaustive list. Please let me know if you've got a favorite of your own.


Finally: Affordable, High-Resolution Monitors?

Update, 5/1/2012 I posted an update on the ZR2740W. Long story short: This is a completely unacceptable monitor; don't buy it.

How much screen real estate do you need?

Every programmer has a different style. Command-line gurus are making the most of their screen real estate by using tools like tmux to tile several terminals together.

Others, by necessity or choice, have multiple space-gobbling GUI applications open at once. This is my reality, and shuffling through six or seven overlapping windows has a huge potential for interfering with my fragile mental focus. Dealing with multiple too-large windows on a too-small screen is like trying to do one's taxes on a tiny airline seat tray… maddening!

Fortunately, monitors with resolutions greater than 1080p have finally started to come down from the $999 price point. A number of eBay resellers have started to offer bare-bones, 2560x1440 27" S-IPS Korean displays for shockingly low prices right around $400. Quite a few members of have ordered these displays and have had generally good results.

Unfortunately, those displays are so bare-bones that they lack multiple inputs. None of the $400 displays offer DisplayPort compatibility, which means that Mac owners would need a pricy DisplayPort-to-dual-link-DVI adapter. Anecdotally, however, a minority of users have reported flaky results with MonoPrice's $69 adapter and even worse results with Apple's $99 adapter. Since the Korean eBay displays are essentially unreturnable, I wasn't willing to take the risk.

Luckily, salvation may be in sight. AnandTech reviewed the HP ZR2740w - a 27" S-IPS display that runs at 2560x1440. Long story short, this is their conclusion:

If all you really want is a good display for your PC and you don't need to hook up multiple devices, the ZR2740w is an excellent choice. For such users we recommend it with very few reservations and present HP with our Bronze Editors' Choice award.

Did I order one? You bet.