Development on a Chromebook: an opinionated guide
simonmweber.com
simonmweber.com
The Nitrous guys have been extremely responsive, fixing a bunch of bugs that were causing me problems (like awaken-from-sleep, problems with $COLUMNS on a retina display). Their terminal emulator is great; it even has mouse support (although it seems to be off by 1 diagonal column -- looking forward to seeing that fixed soon).
One extremely important point: by default today, ChromeOS discards tabs when it runs low on memory. This experience was sufficiently problematic for me that I almost gave up on the entire thing, until I learned about http://gigaom.com/2013/04/05/running-out-of-memory-on-a-chro.... tl;dr Google is experimenting with zRAM (https://en.wikipedia.org/wiki/ZRam), which will eventually be on by default, and you can trivially enable it right now. Do it.
- a Rails plugin
- a Rails app
- an Ember app
- Ember itself
- Several small JS libraries that I hope to use in Ember
Each of these projects gets its own tmux session (I didn't really know tmux before nitrous.io, and I have basically the same advice about tmux that I had about vim at http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convi... -- use it to keep open sessions and learn more advanced features as you need them).
For the curious, there's a good explanatory post here: https://groups.google.com/d/msg/chromebook-central/r27r3Zcch....
edit: this will be on by default for r27 (https://code.google.com/p/chromium/issues/detail?id=218559).
- great, i will buy one and waste a lot of time to make it work offline.
... genius. just genius.
I would just write it off as a good hack or something, but the chrome books have ZERO advantage. it's hardware is pure garbage if you compare it to anything on the same price range.
And you don't have to "waste a lot of time". Crouton (https://github.com/dnschneid/crouton) makes setting up and using a chrooted Ubuntu incredibly simple and straightforward, and there are other easy ways as well.
They'll taake my 9" eee from my cold dead hands!
However, as much as I like the thought of trying something new, I'm still having trouble justifying the purchase. In other words - why develop on a Chromebook as opposed to a lightweight notebook?
I guess it's a question of typical use case, but I don't find myself too often developing in areas without wi-fi. A 100mb /mo plan also felt like fairly sparse offerings, but it sounds like that's NBD in practice.
As far as the price point is concerned, I'm pretty sure there are refurbished lenovo x220's / 230's available for the same as a Samsung Chromebook (~$500).
Especially with regards to the latter, I guess I'd feel a little weird spending close to the same about on $ on a 3g browser with a terminal.
I'd love to hear thoughts from anyone who's moved to a Chromebook for on-the-go development.
I'd be curious to see how the cheaper ARM Chromebook performs with these tools (especially crouton). Anyone have experience with that?
Which is conveniently an improvement over my current 1st gen atom
I should point out that by no means I meant that the MacBook Air is not worth its price. Even at four times the price of the Samsung Series 3 Chromebook, it is worth every penny in my opinion. It's a much better, faster, classier, sturdier, more beautiful, and higher quality machine in general.
Thanks for the article, Simon. My setup is pretty much the same, except that I haven't tried out mosh yet: https://gist.github.com/gsf/5377654.
I ask, because I did an informal comparison between the Acer C7 and the samsung ARM chromebook (with dual-core cortex-A15), using a computationally intensive JS demo. The Acer C7 was far more performant - by a factor of about x2-x3. Which disappointed me... I'd hoped the A15 was getting there.
It's half the price of the Lenovo you mentioned. It has fairly long battery life, it's small yet has a full-size keyboard. It's slick hardware compared to a $299 Best Buy laptop or a netbook. But it has a whole list of disadvantages.
You can't fire up a VM. You can't browse using the actual desktop versions of Chrome, Firefox, Opera, or IE. You can't use software package X. You need to be connected to the internet to do development. It's just a fancy ssh/rdp terminal in this case.
I understand the romanticism about developing on a Chromebook. I love the 11" Air, and despite the low-resolution screen and low specs (ULV CPU, 2GB or 4GB RAM and 64GB/128GB SSD) you can actually get stuff done. Is it the 'Ultimate Developer PC'? No, but a great machine.
The Chromebook is far more limited, but maybe the next revision along with a regular Linux distribution will be a workable solution for the rest of us.
To clarify, I did mention the price was close to refurbished models. This isn't a like-for-like comparison, of course, but it reflects my choices as a consumer. I'm more likely to pick up a refurbished Lenovo X-series than a refurbished Chromebook, for instance.
For reference, there's a x230 on sale from the Lenovo outlet for $546 [1]. Price and availability vary, of course, but this isn't super uncommon.
[1] http://outlet.lenovo.com/SEUILibrary/controller/e/outlet_us/...
I can't say I've tried running a vm inside my chrooted OS, but I don't think there'd be anything preventing it.
No VPN? SSH as a plugin ???
Using a Chrome plugin for SSH is taking unnecessary risks. I see no reason why there couldn't be a terminal application on the Chromebook.
If it's due to UI, maybe there could be a way out of the GUI - IIRC the Chromebook runs on X-Windows.
If you can't hack it in a way where ctrl-alt-f1 will get you to a genuine linux getty, running standard GNU/Linux command line software after a recompile, I don't want a Chromebook for development.
Unless you have money constraints, it makes more sense to purchase a real laptop - a macbook if you need the battery time.
Using a Chrome plugin for SSH is taking unnecessary risks.
What kind of risks are you concerned about? It's a sandboxed NaCl plugin with a strict CSP that runs OpenSSH. I suppose you could get concerned about key security (since they're stored in an html5 filesystem), but you should really have a passphrase on those anyway. If you can't hack it in a way where ctrl-alt-f1 will get you to a genuine linux getty, running standard GNU/Linux...
Developer mode lets you do exactly this. Crouton just gives you a pleasant way of running a full Ubuntu install.edit: I agree that vpn support is a huge disadvantage right now.
I haven't one, and so far thought against purchasing one, yet if developer mode gives me a real console, I may give it a try. Is it sandboxed or restricted in any way (storage, network, etc), like for the privileges in android, that may prevent me from running an important daemon (say openvpn, creating or accessing tun/tap interfaces, doing tcpdump etc) ?
From http://www.chromium.org/chromium-os/developer-information-fo..., I understood that one had to reboot to get a command line.
I don't want to reboot everytime I need a terminal.
Is it possible to Ctrl-Alt-Fx to get a console while leaving the browser running? Could you please detail about your experiences in developper mode?
(ie can you leave X, or do you just get a xterm)
In http://stackoverflow.com/questions/11205504/chromebook-chome... it mentions Ctrl-Alt-t - but is that a xterminal or a text-mode getty?
I'm old school and prefer having gettys in inittab so that Ctrl-Alt-Fx gets me to the xth getty - and yes I know about tmux and screen.
Is it possible to Ctrl-Alt-Fx to get a console while leaving the browser running?
Yup. With dev mode on, you can enable root access to VT2 (which is getty). VT1 is CrOS, so you can switch between the two as you please with Ctrl-Alt-F{1,2}.There's an example of what VT2 looks like here: http://www.digifail.com/research/chrome.shtml.
Is it sandboxed or restricted in any way [...]?
With dev mode on, you're root, so you can do whatever you want =)Ctrl-Alt-t gets you crosh, which runs hterm in a browser tab.
In fact, I was so interested that before placing an order, I googled a bit to check its internals and make sure that the Chromebook Pixel could be upgraded.
Huh, soldered RAM, soldered SSD - ok whatever, what about the mini PCIe LTE card? Can I remove it and put something more useful in there? Nope - only USB is wired, so you can't put a mSata instead of the LTE card.
And I'm sorry, but that's a dealbreaker.
I would have got one if I could have put 16 Gb of RAM + a decent ssd, I might have purchased one with only 4 Gb - just like my current macbook air, as long as I could upgrade the SSD (like I did - on the macbook air!!), but with less storage that my current laptop and no possibility to fix that? No way.
I'll wait for a new version. If it provided ~0.5 Tb of SSD and 16 Gb of RAM, with the same hardware specs, I could spare with 2k USD - at least until the macbooks get touchscreens.
But trying to use the current model for the kind of development I do is just unreasonable. I need at least storage space, and I don't fancy the idea of travelling around with an external HD or praying for LTE connectivity.
"development" means developing what?
I probably should have put that in: I work on everything you mentioned, with the exception of mobile apps.I do most of my work remotely (my campus wifi is pretty good), but everything works locally as well.
I've assumed you couldn't [compile c++] on a chromebook directly
You can, actually - just not out of the box. I describe switching to dev mode and using crouton for this in my post. does most of your chromebook development come down to using it as a smart terminal
That said, yes; I normally remote into beefy servers on campus. I may find myself doing more local work once I graduate, however.