Tuesday, May 26, 2015

My Chromebook Dev Workstation - Part 2

So here I am again, looking at another new chromebook and hoping to turn it into my dream workstation.  This time I am using a Dell Chromebook 11, the 4gb model that has the i3 chip.  This clearly should solve the ARM problem I had.

Let's compare the two devices first.  The Dell model weighs a little more, looking, weighing in at a whopping 2lb14oz (2.875 lbs) but the ASUS only weighed, by spec, about 2.25lbs (I forgot to weigh that one before I mailed it back).  In addition, the Dell is not fanless, which may account for the extra weight, and does have a small hum which I really only notice when listening for it.  The fan is also likely the reason that instead of 11 - 13 hours usage like the ASUS, the Dell is down to about 8 hours without charging.

I'm told that the Dell screen isn't as "sharp" as other Chromebook displays, so I tried to find that flaw.  While looking for that, I noticed what they meant but I also didn't see any problem watching videos on Netflix or browsing.  I don't see it as a significant worry, and as someone who is using small-font text editing on it without problem, I don't think it's something most people would worry about.

The Dell seems snappier and more responsive, though to be honest the only lag I saw on the ASUS was when I was dragging a window onto a second monitor.  The window seemed to move a second after I moved the mouse, but other than that it was great.  The Dell, however, had no problems and was snappy and responds like I'd expect from a higher powered machine.  This does come with a problem though, in that it's sticker is a little higher.  Rather than the ASUS pricetag of about $200, the Dell Chromebook 11 sits at $390, putting it just out of the range for a "casual toy purchase" for me, and many others.  Luckily I saw a Woot deal that had it at $280, which made it a pretty simple choice.

So now onto the fun part... Let's put Ubuntu on this thing!

I plugged it in and powered it up, did my sign in to google and was going in minutes.  Then developer mode, then back to signing in, and finally to Crouton!

So I told crouton to install Ubuntu Trusty with Unity desktop.  For any Crouton users out there, I set up keyboard,extension, and unity-desktop.  I flipped over to Ubuntu and it ran smooth.  With the ARM chip (which didn't have freon) it had problems flipping back and forth but the Dell has no issues flipping back and forth from ChromeOS to Ubuntu.

The final punchline... I have Sublime Text with MavensMate, an awesome terminal called Tilde, Git, and all the other dev tools (including Gitk) that I need and they're running like a dream.  100% success, and now I'm carrying a light little 11 inch bag rather than the 15 inch backpack with my Lenovo monster.

Side note: I instealled Steam on the Ubuntu partition too, and even ran UnEpic without problems.  Not about to try Borderlands II though, lol.  Win Win Win :)

Comments, thoughts, and ideas are all welcome!

Friday, May 15, 2015

My Chromebook Developer Workstation - Part 1: The Reasoning & Attempt #1

So for those of you that don't know me well, I'm kind of a gadget geek. I love new toys, playing with things in ways they weren't meant, and seeing if I can use product A for purpose B.

Some minor examples would be the "Hackentosh" I made a while ago, and my rooted HTC, or the Myo Armband charging next to me (that thing is awesome).

So let's jump to the problem I had. I have an awesome laptop (Lenovo Y510P) with 16 GB Ram, 1 TB hd, dual video cards, etc. What could possibly be wrong with that? well it weighs in at just under 7 lbs, not counting the 1 lb, 10 oz power supply. It also drinks power like water, and as I get involved in more and more meetings at work, it's more "pack up computer and power cable, take them to another room, then unpack power cable and computer, plug it in.. then the reverse. In addition, I get the feeling that the laptop that I bought really wasn't meant for or built for every-day-transportation as there are small cracks forming in the case in one corner, and small plastic bits chipping away. I do love this laptop and don't want to lose it to travel wear and tear.

So I had the idea that I need something lighter, but being the budget guy that I am, I couldn't justify spending money when I already had a laptop that, technically, did the job. I had a laptop, and even had my previous laptop (five year old macbook) as a backup, so there really was no reason I absolutely needed a new one.

To appease my own cheapness I decided that if I could sell my Macbook Pro (which still got a fair bit on ebay) I could use the money to buy something new, if I could find something the same price range. Around this time I learned that you could use Ubuntu on a chromebook, and I got that little "I need to try this" glint in my eye.

So I arranged to sell my MacBook, and several peripherals, to a friend and that gave me a budget of about $400, but my attempt is to see how inexpensive I can make this process, to make it repeatable for anyone who wants to do Salesforce (or any non-local-compiling) development with a little cost as I could find. Just a reminder that my requirements for this project are:


  1. Portability 
    • The machine needs to be easily transportable and have the ability to do several hours of meetings at a reasonable display level without being plugged in. 
  2.  Functional work machine 
    • The machine needs to be able to code, type, copy and paste, view google docs or open office, (in my case also able to compile to Salesforce) without undue delay. For example, if I am typing, then stop typing and look at the screen and see letters still appearing, that's just not going to cut it. 
    • Personally I find a second monitor to be exceptionally important for my job, not to mention the fact that portability and cost will likely lead to an 11 inch screen which can become tedious to hunch over all day. 
    • Note: I am NOT trying to create a high-end machine that can do rendering, games, video editing, etc, but it needs to be exceptional at the simple work, while not worrying about the high-end stuff 
  3. Cost 
    • I'm looking for this to be an option for developers to purchase work-dedicated machines for low cost, or for employers to have "stand-by" machines for when employees have their own machines unavailable, that sort of thing. 
I was drawn to the idea of using a Chromebook for this because they are known for being light, having a long battery life, being rather "snappy" because of the SSD instead of a HD and carrying a relatively low cost.

I did my research, and watched the markets and sales, and came across a relatively new machine from ASUS, the c201 model (not to be confused with the c200 model). I'm going to get a little technical here, in stating that the ASUS c201 used a relatively new chip known as a Rockchip. It was a quad-core 1.8 CPU that runs fanless, which means that it's lighter than machines with fans, and can last longer on battery because there are no mechanical parts.This, compared to the ASUS c200 which runs a Bay Trail style Intel Celeron dual core 1.8, seemed like a dream come true since the c201 actually costed less. The Rockchip 4GB model was only $199, and since I had hoped to aim around $250 for the device, this seemed ideal.

So I ordered the Chromebook, paid for 2 day shipping from amazon because I'm just not patient, and got it. Let's take a moment to talk about the model I got, before I go on.

I'd like to say, off the bat, that the ASUS C201 4gb was a pretty wonderful machine. It looked pretty snazzy with it's blue-toned body. It was incredibly slim and lightweight, weighing around 2 lbs, and was made of a high-quality plastic that didn't feel cheap or flimsy at all. Booted in seconds, setup ChromeOS easily, and I was typing emails in only minutes. I opened a number of tabs, hopped between them, played youtube videos, and everything ran relatively smoothly. The only thing that gave me even a moment of hesitation was that when I attached a second monitor, and drug a window off the chromebook onto that monitor, it seemed a little laggy until I placed the window and then it was fine again. This could also be because I already had a chroot of trusty running at the time behind the scenes, but I'm getting ahead of myself. If you're looking for a quick ChromeOS based device for low cost, this is a top contender if you ask me.

Ok, back to the project at hand. I followed the steps to put my chromebook in developer mode, get crouton, and set up the chroot of a trusty Ubuntu with the lxde environment. I'm sorry to say I was watching TV so I didn't document exactly how long it took, less than half an hour, I know that much. For future steps I'll take more notes, as I hadn't planned to share this experience until now.

(The process to set up these things on a chromebook is well documented all over the net, but I'm more than happy to answer questions about the exact procedure or share links, just ask in comments)

Long story short (too late, right?) I had Ubuntu running on my Chrome book and, just like chromeOS, it was responsive, easy to use, and just like the Ubuntu I remembered.

Now comes the "but."... the part that tells me that I dun messed up, and shows me where my research was just plain lacking.

The primary software I use for development in Salesforce is a program called Sublime Text. It's a fantastic editor that I would suggest to any developer, it's got features for just about every language of development, and has a plug-in for things like Salesforce, Git, and so many others I couldn't hope to list them all.

Well it seems that the Rockchip CPU runs an ARM architecture. I know, we're back into geekspeak, but in it's simplest terms, CPU architecture is basically the language that the CPU speaks, and software is compiled for certain CPU Architectures. Most mobile/tablet software is compiled for ARM chips, while most desktop/laptop applications are compiles for the x86 Architecture. Since I'm a casual hardware guy who's still getting back into the field as a hobbyist, I never thought about that, and is seems that while many desktop applications do offer ARM compiled versions with an unsupported "mostly working" version, SublimeText does not.

This took me several hours of battling with installing, and testing, and forums, until I found the answer that, frankly, I should have known earlier. I now had a laptop that was perfect for ChromeOS and Ubuntu with any ARM software I wanted, but couldn't run the one software that was non-negotiable in my personal needs.

This was, unfortunately, a deal-killer. Here's where Amazon made me very happy. I contacted them, told them that the Chromebook was perfectly fine, but not for my needs and they sent me an RMA slip and I sent it back to them. I've had problems with Amazon in the past, but this is 100% perfect customer service this time. I reset the machine to non-developer mode, and to be safe did a "powerwash" (something that ChromeOS offers, that removes all user info and resets the machine back to factory defaults), and sent it back in to Amazon today.

I've already ordered the replacement, and I'll chronicle Part 2 (hopefully the last part) when it arrives, but shipping time looks like it will be about 2 weeks. Thanks for reading and see you all soon!!