Small, Powerful, Elegant, Sexy, and Hard Core

Ok, it’s that time of the year and I’m at the phase of the cycle when it is computer purchasing time.  What do I want, what do I need, who has the best options available? In order of priority here’s my wish list for the ideal machine.

  1. It must be able to run Windows & Linux. Even better would be the ability to run OS-X, Windows, and Linux. Preferably with Linux or OS-X as the core operating system and Windows either virtualized or dual booted.
  2. Another high priority is I want elegant, sexy, and strong design. But not just in appearance but in functionality too. I want the device to be strong. I want the material to be fabricated well, I want the quality and durability to be built into the device. This comes down to the device being a single mold, probably of a high quality material like aluminum.
  3. I want as much oomph as I can get out of the hardware. Demanding elegant and sexy usually dictates it won’t be powerful. Demanding tough is usually another strike against that.
  4. Another thing which is super important, but I may be flexible on, is the resolution. I simply want as much resolution as possible.
  5. The last thing, which isn’t as important, is I don’t really want to pay more than about $1500. I’d be all the happier if I can find something for even less.

Narrowing Down the Machines

The first thing I did was check out what information was available on what I would choose as my ideal computing device. I had found, through research and talking to others, that my options where either one of the new Ultrabooks coming out from different manufacturers or an Apple Macbook Air.

With the narrowing of the playing field and knowing a few things about the Macbook Air already, I decided to look into the Ultrabooks more thoroughly. Several, such as the Lenovo option got dropped immediately. The were huge by comparison to the Air and other Ultrabooks. If several options existed around the half an inch thick size, that was what I was going to aim for. After looking through many of the options it looked like the Acer & Asus were the real viable Ultrabook options.

Touch, Feel, and Fabrication Quality

The next step, was I needed to feel and touch these machines. I wanted to be sure that their marketing hype wasn’t going to land me with a laptop that was flimsy or the fabrication was poorly completed. No machine would be in the running unless the fabrication and manufacturer was of equal or greater quality than the Apple Product.

My first trip took me to Fry’s out in Renton, Washington. Fry’s was an embarrassment, they barely had any products whatsoever. So I plotted my next trip, which a few days later took me to the airport Best Buy in Portland, Oregon. They had everything! I was euphoric. I tried out more than what I was just looking at, and must say some of the tablet options are creeping into replacing laptop options real soon! But I then refocused and aimed back at my main goal, finding out the build quality of the Acer and Asus. This ended up being instant. I touched the Acer and it was, as Steve Jobs would say, “shit”.

Honestly I was shocked by Acer. Maybe they’re just aiming for a low price point, but after touching the device and feeling the horrid quality I immediately dropped it from the running, regardless of how much lower the price might be. As with my priorities above, price is the last concern at #5, I’m not going to settle for a crappy build quality because I’d pay dearly for it later. Why?

The reason why I want something strong & sturdy is because of several things.

  1. I ride a bike on a regular basis and whatever laptop I have needs to survive the bump and grind of the bike commute, the bike runs & errands, and other outings around urban areas. The laptop will be bumped and flung around in my messenger bag, I don’t want to pull out a dead laptop.
  2. I walk, take transit, and generally will up and climb to a lofty rock overlooking a shoreline to have a better area to work and think. Sometimes, I might stumble, trip, or otherwise impact the device. Thus, see above reason on not removing a dead device from my pack.
  3. While working in coffee shops, bars, conferences, or other activities the laptop will be pulled from my pack on a regular basis. While in my pack it’ll probably end up getting kicked, nudged, dropped, or otherwise inadvertently abused. Again, I don’t want a dead device in my pack.

Narrowed to Two

Alright now the battle truly begins. The Asus on one hand and the Macbook Air on the other.

The second thing I decided on was that I’d go with only the 13.3″ devices. They have greater options around storage and processor speed, so it seemed like a good path.

I pulled up the spec sheets on both of these machines. After a thorough review the two biggest glaring differences amounted to these features:

Resolution

Macbook Air: 1440×900 versus Zenbook UX31: 1600×900

USB Connections

Macbook Air:  USB 2.0 versus Zenbook UX31: USB 3.0

Battery “Reputation”

This is a bit of a weird one. All I can say, is that those that have tested the thing have said the Zenbook doesn’t measure up battery wise.

Macbook Air:  7+ hours versus Zenbook UX31: probably not 7+ hours

Operating Systems

This is actually a big problem for me, as the Zenbook actually runs Win7 and Linux support for all devices is a little questionable. I know for a fact that OS-X runs flawlessly on the Air and outperforms Windows 7 in about every aspect of performance. So I really want to be confident that I can run OS-X or Linux as the core operating system and then either virtualize or dual boot into Win7.

Macbook Air:  OS-X == Win! versus Zenbook UX31:  Win7 == Fail

So with all those factors taken into account I finally chose…

…drum roll please…

…the Macbook Air.

Summary

These devices are really close, but in almost every measurement the Air comes out slightly ahead in some way or manner. In addition I have the odd requirement of not wanting Windows 7 as my primary operating system. After researching “Zenbook+Linux” and “Zenbook+Ubuntu” it sounds like getting Windows 7 off of the Zenbook and getting Linux running on it is problematic at this point. I’m sure that in 3-6 months Linux will probably outperform and outlast Windows 7 on the device, however now that isn’t the situation.

In other little ways the Macbook Air still has a slightly higher quality also. The power adapter and magnetic connector are less troublesome than most other laptop style power adapter connections. Basically every single thing, once you use it for a while, seems to have a purpose or intent behind the design.

However I will add, that the Asus is of extremely high quality, the absolute highest for a dedicated Windows 7 Laptop. If all somebody wants is a Windows 7 machine with no concern for OS-X or Linux than the Asus is your only real option. The higher resolution almost sent me to get a Asus and is absolutely a big advantage for Win7 on the device. But if you’re still wanting the absolute top tier quality, features, and capabilities for a device that is this elegant and sexy, the Macbook Air is still the prize.

With that, I’m off to determine my purchase options.

OS-X, Top 2 Gripes

I’ve been developing in my spare time on Mac OS-X using Rubymine, Webstorm, TextMate, XCode, and several other apps. I’ve also been using Kindle (the native app and the HTML5 Version), Tweetdeck, and a host of other applications. A bulk of things I’ve also been using, however they’re almost entirely in Chrome/HTML5 or some web application state. Speaking of applications, OS-X has zero shortage compared to any other operating system.

However…

I will admit with honesty, the the interface is very lacking compared to using Ubuntu or Window 7 these days. OS-X is lacking several functionalities that it desperately needs. I’m not writing this blog entry to complain about these either, just pointing out they’re missing, and hopefully someone may know of an app or add-on that will provide this functionality.

  1. Application Placement:  Windows & Ubuntu have a “snap to” type functionality that pops an application window onto a side of the screen when it is dragged. With the arrow keys or in other ways, that window can then be moved from left to right, or if on dual monitors from one screen or the other by 50% increments. This functionality is ridiculously useful when working with multiple applications, and anybody that really uses a computer ends up in this scenario.
  2. Rename, New Folder, and other short cut keys in the “Finder” are pretty crappy compared to Windows & Ubuntu. I’d even give windows top marks in this category. Of course, once one actually does a move, delete or copy they realize what crap Windows is at actual file manipulation. But the Windows Explorer makes it a breeze manipulating files – even if it is 2-5x slower than Ubuntu or OS-X – I’d still however like a nice trade off of file manipulation, viewing what a file is or is not from the finder, and other functionalities that generally don’t seem to exist.

That’s it for now. These are the top 2 items that provide an annoyance when using OS-X vs. Windows or Ubuntu. Any suggestions, ideas, thoughts, or otherwise that may set me straight about this?

Mac Battles, The Personal Day to Day of Software Development and Morale

I’ve been using a Mac for a couple of months now. My employer purchased a few for us coders to try out, and I’ve become spoiled. I rarely want to use my other machines now, as they seem cumbersome and inefficient. Mainly from a hardware perspective, as the OS itself seems to have plusses and minuses versus Windows 7. But slowly I’m becoming easily as productive, and more, on OS-X as I was on Windows 7. The biggest thing is, OS-X seems to just work the vast majority of the time. In addition, I can dig into parts of it that seem impossible on Windows. In addition, I have almost the entire Unix Ecosystem to play with, which dwarfs the Microsoft Windows Ecosystem by greater proportions than I ever realized. The biggest thing I like about the Mac however boils down to two things:

  1. The Hardware – Simply, the hardware is superb. There is nothing else like it on the market. The single molded body, the touchpad, the keys, everything works better than any laptop I’ve ever used. I’m not saying that as someone that’s used one or two laptops either, I’ve literally used dozens upon dozens of laptops over the years. I regularly try out new ones, and nothing comes close.
  2. The platform OS-X/Linux – Sometimes it may seem like they’re underpowered, this is often a complaint I’ve heard. But considering the efficiencies that OS-X/Unix/FreeBSD/Linux provides, a 4 GB Machine with a simple spindle drive compared to an 8 GB Machine with an SSD running Windows 7 will often perform much better. I have as well as others have benchmarked the Mac Book Pro against multiple Dell Machines, and I’ve seen it done with others, and simply – the operating system gives the Mac an advantage. My suggestion to Microsoft – drop windows and just start building a nice UI on top of a Unix variant like FreeBSD or Linux. It’ll serve Microsoft AND the community better.

I’ll admit, I have installed (not that I currently have it installed) Ubuntu and Windows 7 on the Mac Book Pro (MBP) and windows runs ok, albeit it kills some battery life. Ubuntu runs great, it appears as well as OS-X itself. But even with the others, I’ve primarily just stayed put with OS-X at this juncture. It serves its purpose. In the future, when I purchase a MBP of my own, or even a Mac Air, I will likely run Ubuntu and OS-X on the machine. Setup for Ruby on Rails and lots of JavaScript development.

I know after using this machine, that by the end of the year I will be primarily using Ubuntu and OS-X for almost everything I’m doing – including most likely .NET Development. I however still get the strong feeling that I’ll have a Win7 Machine Floating about and readily available.

As for my morale, it is super high these days building software! A passion indeed. In the future, I’m suspecting about 6-8 months, I’ll have a few announcements regarding improving morale. Until then, cheers!  🙂

Observations on Linux (Ubuntu Specifically)

It has been a long while since I’ve used a Linux + GUI. Ubuntu, I understand probably isn’t the most bleeding edge, but just out of the box it has all the candy of Windows 7 plus lots of 3rd party enhancements and drivers or OS-X with the same. I’m honestly amazed that the OS is THIS feature packed. Everything one needs is installed to get going. The other amazing thing is evident in some measurements. These are all done so far on a Dell Inspiron 1720 Laptop, Intel Dual Core with 4 GB of RAM.

  1. Memory utilization on is about 70% of what Windows 7 uses for similar tasks. I dare not even compare it to Vista. It runs almost on par with Apple’s OS-X.
  2. Processor utilization to accomplish the same tasks (i.e. word processor, spreadsheet calcuations, launching web browsers, or straight executing heavy calculations) is a fair percentage lower than Windows 7. Generally around 5-10% lower utilization. This is noticable in longer battery life.
  3. Ubuntu, regular Desktop Edition, has a 5-25% longer batter life than using Windows 7.
  4. .NET Framework Code Execution on Mono/Linux is noticably faster than running the same code on Windows 7/.NET Framework/IIS.
  5. Boot time to load (see GUI + Desktop Features Listed Below) with all features is approximately 10-25% of Windows 7 with default load + 3rd Party Tools Added to match functionality (such as Winsplit Revolution and other tools).

Windows + W = Current Running App Windows for the Desktop that is in focus. Use the arrow keys to select the window to focus on.

Windows + E = Desktops, use arrow keys to select the one you want.

Alt + Tab = Switches between apps, pretty standard GUI Functionality.

Functionality enabled for the Dell Inspiron 1720 without loading a single driver manually:

1. The Func + F1 Combo Works to put the laptop to sleep.
2. The Func + F3 works to provide the battery status on a laptop.
3. The Func + F5 for scroll lock.
4. Func + F8 for CRT/LCD switching.
5. In addition to that the scroll on the track pad works with a default Ubuntu Installation, both vertical and horizontal.
6. Video Card was loaded, update was detected, and an updated driver was downloaded.
7. Network Card, Blue Tooth, and Other Network Drivers where all loaded.
8. Chipset, and other drivers needed for hardware, etc, all loaded.

All in all, the Ubuntu Organization has done and excellent job of building an operating system that easily rivals OS-X or Windows 7.

The Non-Microsoft Realm, Collecting Rubies Part I

Years ago I worked with Linux (Redhat 3.2, SUSE, Gentoo, and Slackware among others) and also played around with PHP.  I’ve never really gotten too keen in PHP, mainly because it just seemed sort of a mess.  But when I needed something to get the job done and didn’t want to wait on the bureaucratic nonsense of corporate governance, PHP was there for me, albeit with a headache to follow.

However my interest in Linux and alternate development stacks, being in Southern Mississippi left me pretty much one option if I wanted to get into software development:  Microsoft’s .NET Framework.

So I learned that, and work with it regularly, and I dig it.  Most of the time.  It serves its purpose.  I have however wanted more, so I’ve started digging into other things again.  This is something I do frequently, and in my not so humble opinion think any serious developer should also dive into regularly.  Step outside of your comfort zone and try other things out, often this helps expand both options (such as .NET and Java, or Ruby on Rails, or whatever).

Recently I’ve decided I’m diving head long straight into Ruby on Rails.  I’m working on a new personal project and have determined I’m not going to use one lick of Microsoft Software (you can read in other motivations if you want to).  This project will be 100% Linux (maybe some Apple Gear & Bits) and Ruby on Rails.  I’ve not determined much beyond that.  Database or data store, TBD, graphics, TBD, and other such are all TBD.

Ubuntu Download
Ubuntu Download

With that, this is how & where I started from the ground up.

  1. I snagged Ubuntu and loaded it (yes, it does dual boot on my machine that runs Windows 7).  http://www.ubuntu.com/
  2. Next I went straight to TekPub and started downloading some of the Ruby on Rails Video Tutorials the crew over there has put together.  I purchased a membership because they’ve put out a lot of great material on everything from .NET, Entity Framework, NHibernate, Good SOLID Code, to Linux and Ruby on Rails.  I like the efforts, the teaching style, and they’re rather entertaining.  If you really don’t want to shell out any cash, there are other videos available on the Ruby on Rails Site.
  3. I hit a few snags on working with Ubuntu, mainly because I had not touched a Linux UI System in years.  The first two issues were;  1) How do I change the screen settings to not duplicate my dual monitors and 2) How do I take screenshots.  < Click on the respective issue to see what page I found to resolve the issue.  Yes, they were both that easy to resolve.  Literally first click links of Google results.  Very cool.  🙂
  4. The next issue I ran into was related to playing the TekPub Videos.  Using the Synaptic Package Manager however I was able to download all the additional codecs I needed.  I have to say, since the UX was vastly superior to Microsoft’s Windows Media Player (or whatever it’s called these days) I was able to get the codecs without much manual searching.  I just clicked ok, the package manager popped up, found what I needed, and I clicked OK.  This experience reminds me more of Apple’s OS-X than Windows strangely enough.
  5. With the TekPub Videos now viewable I downloaded the first Rails 3 Video.

While watching the video, which includes great coverage of what Rails 3 is all about, I worked through the following bits.  For these I also left the GUI Synaptic Package Manager and went with the command line, simply, it is just easier and faster.

Git

This was stupid simple.

[sourcecode language=”bash”]
sudo apt-get install git git-gui git-doc gitk
[/sourcecode]

Build Bits

Some important parts for building Ruby.  Yeah, this is kind of a kicker, super long, crazy command, best to copy and paste.  😉

[sourcecode language=”bash”]
sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
[/sourcecode]

Curl

Reached out and got some curl.

[sourcecode language=”bash”]
sudo apt-get install curl git-core
[/sourcecode]

RVM (Ruby Version Manager)

Bash some Ruby Version Manager.  Note I put in “cd~” just as a reminder to get to your user directory.  Most likely, after installing RVM you’d already be in that directory.

[sourcecode language=”bash”]
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
cd ~
gedit .bashrc
[/sourcecode]

At the very bottom of the .bashrc file add the following text.

[sourcecode language=”bash”]
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
[/sourcecode]

Once you’ve done that, close the terminal down and then reopen it so that all the paths and such can load.

[sourcecode language=”bash”]
sudo apt-get install libruby1.9 zlib1g-dev libssl-dev libreadline5-dev build-essential
[/sourcecode]

Ruby 1.9.2 Bits

Now comes the exciting part, getting Ruby loaded up good and proper.

[sourcecode language=”bash”]
rvm install 1.9.2 –with-zlib-dir=~/.rvm/usr
rvm use 1.9.2 –default
[/sourcecode]

Now if you check with “ruby -v” the ruby 1.9.2p0 version will be default.

Setting Ruby 1.9.2 as Default
Setting Ruby 1.9.2 as Default

Collecting Gems

Now you’ll need some bits, in this case, called gems.  This is one of the very powerful parts of Ruby on Rails.  Beware, these bits have glorious AWESOME all over em’.

[sourcecode language=”bash”]
gem list
gem install rails
[/sourcecode]

The gem list command should list what is currently installed. Initially, only the rake gem is installed.  Once you execute gem install rails, then do another gem list, you’ll have a whole set of gems installed.

Checkup On Your Software

These are just a few of the commands that are helpful in identifying what is installed now. Try em’ out to get a view of what is available.

[sourcecode language=”bash”]
rvm gemset name
gem list
[/sourcecode]