Tag Archives: ubuntu

That Was Fun, Done With The Lenovo Carbon X1, Back to GSD!

Over the last couple of months I’ve been double laptoping it. I’ve had a Lenovo Carbon X1 with Windows 8 and Ubuntu dual boot configuration with 8GB RAM, 256GB SSD and i7 and I had a Mac Book Air (MBA) 8GB, 512GB SSD and i7 Proc. The MBA was my primary work machine with the Lenovo being a secondary machine that I was using to test and build Windows 8 Applications and for building native Linux services and related code work.

Windows 8 Critique

Simply, Windows 8 is one of the most broken operating systems I’ve used since Windows ME. Forget Vista, I consider it officially dethroned. Let me clarify what is and isn’t horrible about Windows 8 though. It isn’t that it technically is a bad operating system, it’s that the idea and approach that Microsoft has taken is inherently flawed at several key points.

First, having a desktop on a tablet, which is almost impossible except for all but the finest of finger pointing tablet users, is blindingly stupid. Just go into any place where there is a Windows 8 tablet user and watch them whacking away when they get into the desktop.

The Windows 8 desktop on a tablet is patently absurd for the vast majority of potential Windows 8 users.

However, the straight Metro Interface of Windows 8 (which Microsoft now calls the Windows 8 interface because of legal reasons) is magnificent for tablet usage. There are a few major things that need fixed: responsiveness related to connection state, update status and the availability of high quality applications. Once those things are fixed Windows 8 will be as competent as iOS or Android in the usability department. Until then, it’s a nice dream, with a small number of usable apps with a huge potential.

Now the desktop is the tried and true classic desktop of Windows. Thus, when you’re on a desktop machine or a laptop with a dedicated pointing device or touch screen the back and forth is fine. Matter of fact it is great! I find myself using the touch screen regularly to do a number of tasks, and hope to see its use increase more and more on a number of platforms (yo Apple, got game on this yet or not, OS-X can definitely use a touch interface).

Overall though, Windows 8 – unless you solely do Windows 8 Development, is not a reason to buy a Lenovo X1 Carbon.

Ubuntu Critique

Minus the touch screen, which Ubuntu has no clue what to do with except treat it like a pointer, this is how you see the real power and beauty of the Lenovo X1 Carbon. Ubuntu loads 2x faster and shuts down 2x faster than Windows 8. Comparable builds in IntelliJ, C, C++, Erlang and other compilers are regularly 1.2-3x faster than on Windows. The servers that one would build against, such as GlassFish (see this for my latest on setting up GlassFish & Java 7) are also routinely faster, more responsive and less prone to difficulty than in Windows.

One of the problems that is ongoing, is it is hard to move to Ubuntu unless you are doing dev. Using Adobe tools is a non-starter, best to stick to slow Windows or get real fast using OS-X. Again though, if it runs on Windows and Linux, I’d take a safe guess that the Linux versions will be faster, probably more stable, and all around it’ll likely work better over time. There is something to that whole unix way about building things. One other big booster for Ubuntu, is writing JavaScript, which I do regularly these days is a much better experience than on Windows. I use standard tools, that usually are available on Windows, but launching Sublime 2 or WebStorm is just faster, noticeably, on Linux versus Windows 8 (or whatever version really).

So overall, if you’re going to get a Linux machine, the Lenovo X1 Carbon is a prime choice. If not one of the best. If I understand correctly, there may even be some solid Linux software out there that would make the touch screen more usable too. So if you’re adventurous you may be able to solve that one single issue that I had with Linux running on the X1.

Would I Give Up My Mac for the X1?

This is easy, the answer is absurdly simple. However I did give up the Mac Book Air I had in parallel with the Lenovo for several months, as it belonged to Basho (which I’ve departed from).

Hell no!!!

Matter of fact, even though I’ve used the laptop extensively with Ubuntu and Windows 8, I’ve just bought a new Mac Book Pro Retina 15″ to do all of my work with Ubuntu, Windows 8 and OS-X. The solidness of the MBP is untouchable compared to the X1. The screen is better, the keyboard is more consistent and easier to type on, the ghost tracking of the track pad is non-existent on the air, versus the X1 Carbon. In this case, I’d even turned off the trackpad entirely on the X1 Carbon. Simply, the X1 Carbon just doesn’t measure up to the Mac Book Pro.

Other observations I’ve made about the two machines. The Mac Book Pro is far more solid, the construction is just not even comparable. The X1 feels solid but compared to the MBP it feels cheap and flimsy. Considering the hardware works flawlessly with the software on the MBP is also no competition. The Carbon regularly needed driver updates, things would flake out and I’d have to restart. This would be prevalent in windows or linux, it didn’t matter. Fortunately a restart would fix it, but none of these issues exist on the MBP, using either OS-X or running a VM with Windows 8 or Ubuntu.

Also, even though the MBP design is over a year old now, the i7, 16 GB RAM and 512 GB SSD makes the X1 Carbon seem like a morbidly out of date, slow and antiquated device even though it is actually a newer device!

So, would I give up my mac for the X1?

Lenovo X1 Carbon Touch :: Opening, Setup and Failure

X1 Carbon with all the standard parts that come in box. (Click for full size image)

X1 Carbon with all the standard parts that come in box. (Click for full size image)

Yesterday I received my X1 Carbon Touch from Amazon. First part of this whole adventure is that I sent it to my old address in one part of town so that led to a little sleuth action to track it down. After a short bike ride up the street I arrived and the office staff had my X1 Carbon. Whew, disaster averted.

I went down to Ace Hotel were one of the local Stumptown locations is to open it up and see what I was in store for. Nothing like a good macchiato while I unpackaged the new machine. When I arrived I ran into Nathan Aschbacher and Eric Redmond. Two of my fellow Basho comrades. We all grabbed coffee and headed up to the roost for some hacking and conversation.


In the package, laptop sitting on the table at Ace Hotel's Stumptown Coffee.

In the package, laptop sitting on the table at Ace Hotel’s Stumptown Coffee. (Click for large image)

Unpacking the Lenovo X1 Carbon is a straight forward process. A simple box, no elegance, just a box with some labels and logos on it. Pulling the laptop out of the box, still just the bare minimum. No bells, no whistles, even the documentation is a 2-3 page pamphlet. Personally, I’m totally cool with this approach. I find Apple’s packaging to be an experience of sorts, however extensively wasteful.

One of the applications I found not available for Windows 8 was a native HipChat client. This actually makes sense, since most of their customers are likely using Linux or OS-X. It really shows how Windows has seriously lost the edge with developers.

Nathan and Eric both give a feel to see how light and strong the laptop is. Nobody actually threw the laptop, but we all wanted to, just to see how it would hold up. Maybe with somebody else’s hard earned Lenovo purchase. ūüėČ

Nathan gives it a look.  (Click for full size image)

Nathan gives it a look. (Click for full size image)

Gleefully smiling at the laptop, Eric proposes we throw it over the guardrail to the first floor below. (Click for full size image)

Gleefully smiling at the laptop, Eric proposes we throw it over the guardrail to the first floor below. (Click for full size image)

No start? (Click for full size image)

No start? (Click for full image)

After Nathan and Eric threaten the poor laptop, I set her down and try and get her booted up. First thing I notice, it doesn’t start. I’m puzzled? Why doesn’t it start? I pick at my PC Tech experience and think, “oh yeah, probably gotta do something stupid an unintuitive like plug it in for some magically arbitrary amount of time first”.

Lenovo lives! (Click for full size)

Lenovo lives! (Click for full size)

So I plug it in and try again. A small light around the power button, kind of a halo, lights up and immediately I get the happiness. The machine is coming to life. A bright Lenovo logo pops on the screen with the notorious Windows 8 swirly working image below.

Move ya mouse! (click for full size image)

Move ya mouse! (click for full size image)

Windows 8 then shifts into a preparing windows workflow which basically means you fill out a few things and it does something to the OS to make it ready to run. I sit through a solid 7-10 minutes of these screens, these fluctuating colors. It’s rad, in a¬†psychedelic¬†waste of time kind of way. However, I’ll admit, my Mac Book Air is sitting beside me running just fine that I’m using to do work while I wait for all this process to finish. I’m no¬†amateur¬†at loading operating systems, I come prepared. ūüėČ

A Problem Arises

I relocate to Bailey’s Taproom after setting up some basic things and installing Visual Studio 2012 on the machine. While working through updates and installing patches my track pointer (the little red button thingy in the middle of the keyboard, that Lenovo is famous for) stops working.

I toy around with the settings and see why the track pointer is shadowed out in the settings. I battle with Windows 8 trying to find the easiest way into the settings and out of the settings and to the desktop and to the start screen and back and forth. It’s somewhat tumultuous but in the end it’s helping me get used to the new system and where everything is. But still, I’ve no idea why the track pointer thingy doesn’t work. I consult the great Google.

Apparently the drivers that it ships with are the suck. I get pointed to this video by Jesse Anderson.

After I get the drivers installed, everything is working flawlessly again. Onward!

Flakiness o’ Windows 8

As I’m working on Windows 8 setting up some of the cool applications for the start menu (or whatever the metro dealio is called now) I get a really flaky behavior. This is the kind of behavior that screams “we don’t really pay attention to usability” or maybe it screams “we’ve no idea what we shipped” or maybe it’s just a simple example of “oh shit we shipped that stupid user experience“. Whatever the case is, this is it…

Notice something redundant here?

Notice something redundant here?

Yup, on a laptop with a HARDWARE LAPTOP ATTACHED Windows 8 is showing me the keyboard. WTF kind of pure idiocy of a UX is this? My mind is blown. After years of the iPad having this problem figured out (and Apple doesn’t even sell keyboards themselves). When you have a HARDWARE keyboard NEVER show anybody the stupid SOFTWARE¬†keyboard¬†EVER. Seriously, this has to be one of the dumbest UX situations that I’ve seen in ages. This is a total failure of logical flow. Note also, this screen doesn’t fold all the way around, this is a laptop pure and simple, not in any way a tablet. But there’s the SOFTWARE¬†keyboard¬†that one should only see on a tablet! Oh well, it aint the end of the world, it’s just DUMB.

I get everything else setup, zonk for the night after working through all the software installations and patches. All is right. All is cool.

Loading Ubuntu Linux

Loading Ubuntu (Click for full size)

Loading Ubuntu (Click for full size)

Ubuntu (Click for full size)

Ubuntu (Click for full size)

The next morning I rise early and get to working on the next phase of my installation. I don’t, by any means, intend to use Windows 8 all the time on this machine. I want to have a dual boot of Ubuntu and Windows 8 on this laptop so that I can have every OS (OS-X, Windows 8 and Ubuntu) running natively on at least one machine that I have.

I do a little research and find this information about making a bootable USB Stick for Ubuntu from Windows. That information points me to this application that makes it a no brainer to get a bootable USB stick ready for use via Linux Live USB.

Just As I Got Ubuntu Installed…

I shut down the computer after getting all of these things installed. Windows 8 was finally fully patched, Ubuntu was installed and running with all patches too. The X1 seemed to hang on the shutdown. So I held down the power button for about 8 seconds to hard reboot the machine. Thinking that it would startup no problem at a later time I packed it in my messenger bag and headed off to a meeting I had scheduled. I arrived at the meeting and went to start the laptop again.


So I tried to hold the button down for 7 seconds to start it back up.


I packed it back up and returned to a place I could plug it in and try to start it. I swung into Backspace and found an electrical jack. Plugged in, counted a few seconds just for good luck. I then held down the power button for 8 seconds to see if it would start plugged in.




(Click for large image)

I then sporadically pressed the button. I then used morse code to spell S.O.S. on the power button.


I resigned myself to now owning a large paper weight. Albeit a much lighter paper weight than what laptops traditionally weighed. My X1 Carbon Touch was dead. I called tech support.

Impressive Support

First thing that happens, I navigate through support quickly. The automated voice tells me I am now being connected to Lenovo Support in Atlanta, Georgia. At this point I was impressed. I’m getting to speak to someone in the country where I’ve bought the machine. That is cool.

I get connected to Tom in support. I fill him in on my sitrep. We walk through some basic troubleshooting. Such as the “pin in the battery reset hole” trick“.


Tom wastes no time as I’ve already laid out everything I have in this blog entry. He declares it dead and gets a box on its way to me for returning it to Lenovo. With a promised 7 day return after I ship it to them. Well hot damn, my laptop is dead by I’m stoked to have support like this. I don’t recall support this good since the late 90s!!

As I tweeted about this I got a lot of responses like this. I concur and I already have a mac, this is an machine specifically NOT for using the mac. ¬†ūüėõ

So in the meantime, it’s back to Windows 8 via VMware Fusion on a good ole’ mac!

Windows 8 via VMware Fusion on OS-X. (Click for full size)

Windows 8 via VMware Fusion on OS-X. (Click for full size)

…so stay tuned, for the ongoing saga of Windows 8 & Ubuntu Linux Development on a Lenovo!

Distributed Coding Prefunc: Ubuntu Erlang Dev & EUnit

Erlang LogoAfter installing Erlang on OS-X and then getting QuickCheck installing via Erlang, I wanted to expand the OS options I’m using to Ubuntu (i.e. Linux). So in this entry I’m going to cover the Erlang install, a quick eunit bit, and then a QuickCheck install and sample. The first step in geting Erlang installed is deciding how you want to install it. So far, it isn’t like Rails where it is pretty important which method you pick to how well it will work for you on Ubuntu. For Erlang all methods get you started with a good version that is working. The method I used was simply to install with apt-get.

sudo apt-get install erlang erlang-doc

After installing, always a good idea to run things and make sure they’re all content and happy with your machine. Startup the erlang shell.


Then run some of the commands. Some I’ve found that will present you with useful and interesting information ist he erlang:system_info function with appropriate parameter passed. The otp_release parameter will get the version of erlang, the cpu_topology shows you the processor outlay for you machine (or in this case my virtual machine, with a single processor core allocated to it), and allocated_areas shows a bit about system memory allocations.

Eshell V5.9.1  (abort with ^G)
1> erlang:system_info(otp_release).
2> erlang:system_info(cpu_topology).
3> erlang:system_info(allocated_areas).

Now that erlang is effectively installed we can write a little sample code. To do this I created a directory called “TestingErlang” and in it placed an Erlang code file called “eunit_tests.erl”. Note: I’m using Sublime 2 on Ubuntu, so exchange that for whatever text editor you’re using for your Erlang coding.

adron@ubuntu:~/Codez$ mkdir TestingErlang
adron@ubuntu:~/Codez$ cd TestingErlang
adron@ubuntu:~/Codez/TestingErlang$ sublime eunit_tests.erl

Add the header file include.

-define(NOTEST, true).

Adding the header file include will cause all the function with _test() or _test_() to automatically be exported. An exported function of test() is created that can be used for running all of the unit tests. This also will include the preprocessor macros of EUnit for writing tests. So now throw a super simple test into the file.

You may want to, amid the automatic export of the methods ending in _test() or _test_() not name them this, and you’ll then need to add a line at the top of your code file like this.


After this, add the function test as shown below.

reverse_test() -> lists:reverse([1,2,3]).

The complete code file should look like this.

-define(NOTEST, true).

reverse_test() -> lists:reverse([1,2,3]).

Build it and call the function.

Eshell V5.9.1  (abort with ^G)
1> c(eunit_test).
2> eunit_test:reverse_test().

BOOM! Passing. So now we know we have a good Erlang install and eunit is setup and usable. In the following blog entries I have in the works, we’ll dive deeper into what and how Erlang works from an extremely basic level all the way to diving into some of the more complex features.

Ok, Let’s Get Some Definitions & Operational Models Straight Here! PaaS is NOT…

I just got signed up for Cloud Connect Chicago and started checking out some of the talks. One talk jumped out, being that it is about PaaS Technology. After reading it though I immediately felt the need to straighten out some things that looked misleading. Maybe the presenter (JP Morgenthal) will lay these things out well for the attendees, but at this point I don’t know that. I’m making a point to see this session while I’m at Cloud Connect. I’m curious to see how he lays out the content. Here’s the description for the “Navigating PasS: Your Road Map for Application Development“. Hopefully I’ll see you there!

Platform-as-a-Service (PaaS) has most simply been described as the set of tools above the infrastructure (hypervisor) and contains the applications being served out of the cloud. However, this description covers a large body of resources. Navigating the use of PaaS for application development and delivery requires a very wide understanding of the computing environment and doesn’t fully relieve the user from understanding the infrastructure that is used to operate the PaaS.

Hypervisor + PaaS, You’re Doing it Wrong

First off, the thing that really caught my attention about this session is that it sounds like someone from a very specific company trying to sell a very specific thing wrote this initial description. A PaaS, or Platform as a Service does NOT have to run on an infrastructure hypervisor. It has ZERO association to a hypervisor. All a PaaS should do, ought to be, and generally is regardless who it is made by or who is running it, is a set of software that automates deployment, application distribution to systems serving the application, and generally simplifies the deployment of an application and to some degree databases or data repositories. There is, and should NOT be, any type of coupling, especially any tight coupling, to some hypervisor.

In summary, a PaaS should have zero to do with a hypervisor. It should rely on a simple operating system that has minimal resource overhead and minimal requirements. Take Cloud Foundry or Open Shift. They rely on some of the most capable operating systems, Red Hat Linux (RHEL) and Ubunut LTE to run the PaaS Systems. These are by far some of the best choices in the industry to determine the core of where a PaaS should run. Based on this, it is an operating system, at the core that enables these systems. NOT a hypervisor. If you’re looking to base your PaaS System off of a hypervisor, I’m afraid you’ll have made a severe mistake right off the bat.

Now if you put your Red Hat or Ubuntu OS on a hypervisor, or straight on the metal, you’re fine. Just don’t cross the seperations of concern from the operating system to travel from PaaS to hypervisor. That’d just be…


What I Agree With, You Better Understand IaaS

One thing I agree with in the above description and I’m betting JP will put some emphasis on this part of the discussion, is that you absolutely need to have an understanding of your infrastructure that runs underneath your PaaS. There are a multitude of reasons to keep in mind what the infrastructure is doing underneath and how it handles what you’re deploying to your PaaS. Here’s two hugely important topics of concern when you deploy a PaaS into any environment.

  • When an application deploys to multiple instances. What does that mean in your PaaS? Is it on several¬†separate¬†instances? Is it in different geographical areas? Does it go under a different load balancer? How is my database deployed? If you’ve deployed a NoSQL solution, that needs multiple nodes for data¬†integrity, do you know how many nodes are deployed?
  • If I deploy a site to my PaaS, how will it and can it talk to itself or outside via networking? Do I have loop back protection on for security? Will it¬†disallow¬†certain port traffic? What is happening to port traffic and traffic in general?

It looks like the session will cover a lot of these topics. So if you’re looking to attend, I highly suggest checking out JP’s session. I’ll be looking forward to his approach to many of the other topics (check out the site description) such as those I just mentioned along with security, deployment concerns, deploying a single language PaaS (like Apprenda, Cloudbees, etc) and other solutions. In addition to that, I’ll likely be bringing an arsenal of questions, see you all and JP at Cloud Connect!

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:


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.


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.


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! ¬†ūüôā