My New Development Laptop: Samsung Chromebook
stevengharms.com
stevengharms.com
But it is most interesting to see the 'smart terminal' getting re-invented by this author and others. Which really has me wondering about where those guys are now. Is there an actual "use case" for this as a product? What would a terminal designer do?
In many ways the ASUS tablets seem to be good starting points, or the Microsoft Surface. Something that is expecting to have a keyboard attached. And of course ssh and a really nice terminal program are essential. But what else? Could we 'throw' with an air-play like service our social 'situational awareness' feed up on the TV? It is kind of strange because I get this weird "deja vu" feeling about this sort of capability and what you see in the movies sometimes with a bunch of monitors (or projectors) showing aggregate data while individuals toil away at their space.
So here is the picture, you're sitting on the couch coding, you've got your twitter/g+/facebook/rss feeds bouncing around on the screen on the wall. I don't know what the market for that is. Its at least two (me and the author :-)
And I think the second point is my problem with this. Chances are, if I get a cheapo PC or a tablet to code on, it's because I'm traveling. If I'm traveling, chances are I'm not going to have a reliable Internet connection. I've got a mobile hotspot, etc etc, but sometimes the simple method - working locally - is the best.
People who claim that vim/emacs are the ultimate environment typically have a very narrow world-view in my experience. There are absolutely no absolutes!
and then:
> People who claim that vim/emacs are the ultimate environment typically have a very narrow world-view in my experience.
Yes, you add the word "typically" in there, so it's not technically an absolute, but really, what you're saying is not much better.
I'm not going to tell you that you need to abandon your IDE, but I use a DDE centered around Vim, and I like to think that I don't necessarily have a narrow world-view as a result of that choice, thank you very much.
His point is that people who claim that vim is the ultimate environment have a narrow worldview.
Reading a tiny bit into what he said, he's judging those who would see their editor of choice as the ultimate, i.e., as seeing those who don't use it as using an inferior tool.
Honestly, what is the damn point anyways? He made a completely useless comment based on a bs assumption that in all honestly sounds more like a person who just got frustrated and decided to go against the flow of the river. I find it very annoying. Specially since this discussion always seems to start because the other side starts making the same generalization over and over and over again. Now I'm more annoyed. Hah.
To pick just one random alternative, let's take gedit. It looks simple and standard, which is nice. It's newer, that could be OK. It can be installed on more than one platform (though not necessarily simply). It has the major features, it's basically feature-complete. For fancier stuff and language-specific tools, you can write plugins with Python, which makes all kinds of things possible. On the other hand, it can get crashy when you use a few plugins - maturity issue. There are few plugins and fewer actively maintained because there's not a big community to support and build on it. A lot of its behavior is reasonable but not really customizable. Random example - if I personally want to have a simpler interface in the vein of scribes or WriteRoom, I'm SOL. Of course, gedit simply cannot be used from a terminal, so you will use another editor for that, with its own keybindings etc.
Most of the good editors have a story like this. Even if it seems to work great and be flexible enough, the community and plugins aren't there.
If your goal is only (say) to write C# for Windows, Visual Studio is probably best. If you only want to write Java, (say) IDEA is probably best. These are powerful environments. But only for certain things, and in a certain way. If you want to code on another platform, different language, really change the behavior, get around a bug, or get a fancy new capability without paying a vendor lots of money, you are just going to hit limits and have to pick up yet another tool.
If you've learned vim or emacs then you at least have a default which licks all these issues at once. In this sense they are "ultimate editors". And this is an opinion informed by broad usage of many editors.
I want my apps built with the best power-tool that was designed for the target platform. Your list of requirements didn't include that. So, for you maybe something like vim is the "ultimate editor", but for me it doesn't fulfill the primary requirement.
I don't think anyone's a bad person if they really like vim, but it just seems to me that people who think that usually just can't imagine why anyone would not make the same choice as them.
2) He didn't tell you his list of requirements just so you would change your mind about whatever your opinion is at the moment. He did it to explain why people say what the say so fanatically. As a matter of fact, those weren't even requirements per se.
3) Regarding the "best power-tool" comment. His list of "requirements" DID INCLUDE what you just talked about. There are better tools than vim + command-line in specific cases - according to the GP - and he gave you examples of his opinion on such IDEs. Visual Studio is pretty much THE exemplary case, though I supplement it with ViEmu as editing code in a way that's not modal or having to use the arrow keys seems completely foreign to me after years of indoctrination.
He made it clear that he believes that the people that go cookoo for vim + command-line or emacs are so adamant to call them the ultimate environments not only because they include/are better text editors than everything else in the market, but because they're expandable, mature, and portable. And let's not even get into the part that relates to working on a remote server through a terminal emulator.
If you get ONE thing out of both the GP and my response today - let it be this: you say that vim is not the "ultimate editor" for you because it doesn't fulfill the primary requirement (being a power tool according to you)... Well, I'm pretty sure the primary requirement of each and every competent hacker regarding editors and IDE's should be to make the edition and creation of text easy, fast, streamlined, and efficient. I can count the text editors that fulfill that requirement to the T in a hand. Hell, there's three (or four if you dislike being productive). And one of them doesn't have a term version.
4) There are a few very specific tools/toolsets for very specific tasks in the programming world that make more sense to use than the classic "hardcore" editors. Hell in some cases they aren't necessarily better, but are obligatory! Nevertheless it doesn't change the fact that having either vim or emacs as tools in your bat-belt, will indelibly make a more productive developer by a factor of a quattuordecillion and one internet kittens.
5) I'm going to go ahead and make a generalization just as you did. "People who claim that vim/emacs are not the ultimate environment typically have a very naive world-view in my experience. Oh and in 98.64656% of the time (cause internet statistics are just as bad as generalizations) such claims come from people that failed to achieve proficiency in the aforementioned editors."
Notwithstanding the foregoing, I don't think you're bad for disliking vim, and I can totally understand that personal preference, biases, opinions, and memories will dictate what editor you end up using. But pissing a bunch of geeks that love the editors in questions with a comment that sounds biggot-ish, elitist (as elitist as the people you're confronting), and egocentric, makes very little sense if you ask me.
That's not what people "typically" claim.
People typically claim that the "text editor" part of NetBeans / Eclipse / IntelliJ IDEA / Visual C# / etc. do s*ck big monkey balls compared to vim / Emacs.
There are even people who go as far as writing client/server mode for IDEs allowing to "plugin" either vim/emacs inside your IDE or to call your IDE's feature from vim/emacs (cue eclim / emacs-eclim ).
That the "text editor" part of the big IDEs are totally inferior and utter crap compared to vim / emacs is not exactly something open up for debate ; )
Tools are tools, and if you're using a hammer as a hammer it doesn't matter if it's a $12 hammer you got from your local hardware shop or if it's some exotic Estwing thing.
(Estwing make nice tools, but their website? Wow. (http://www.estwingtools.co.uk/index.html)
EDIT: I can't nest ().
http://www.estwing.com/ (looks like there is no co.uk version)
Nested brackets meant my link didn't work, but http://www.estwingtools.co.uk/contact_us.html is a valid site by "Map UK" who (I hope) have some distribution agreement for Estwing.
Sharpening your tools is an investment where you trade time now for power later. Vim is very much an instance of that trade-off. It's a ridiculously flexible power tool. If you are a machine at driving nails with a rusty hammer and you are happy, then there's no reason to stop doing it that way.But if the reason you don't use vim is that you're scared of it, it's not as bad as you think. You don't have to be superior to learn it, you just need a week and an open mind.
2. But vi isn't the best for iOS dev or J2EE and I recognize this. But my work is usually CLI or web, so this works for me.
3. Offline: REcently I've gotten an ubuntu running in dual boot...so ... keep your eye on my site, I may post soon.
"No, you want your phone book to be managed by Google or Apple"
I suspect lots of people will never ever want any company to manage their phone books.
I think given the choice, most consumers usually pick the later since convenience trumps privacy concerns...that is until privacy/ownership bites them in the behind...
Although, I would prefer to have that choice rather than being forced to go one way or the other...
The people who don't want this experience are a small minority.
With the older iphones, the phone book was backed up every time you synced. The phone numbers are still accessible on the computer and you could even get vcards from it. Then, when you upgrade (like I did from 3GS to 4S) transferring numbers was a snap: just connect and hit sync.
Note that no phone numbers were stored on google's or apple's servers. A very significant portion of the iPhone crowd still sync via cable.
Except that it may not. You have the initial cost and then the $25 a month for basically the life of the Chromebook. Not to mention that it becomes rendered useless if you hop on a plane and happen to be on one of the many planes not equipped with wifi. Even if it does have wifi, it is just another expense to add to the cost to use a Chromebook as a development computer.
And yes, the VPS/month is a cost, but I pay that anyway regardless the platform. I like having my contexts preserved and constant on a machine whose costs I can expense for tax purposes.
Hardware
Look, no one’s going to beat Apple at this game, so I won’t lie to you. It’s not as nice as typing away on a MacBook Pro. It also costs less than one-tenth of the price of the MBP, so, given that, the hardware performs much better than one-tenth the quality components.
I agree that Apple products are significantly more expensive, but saying that it's "less than 1/10" the price of a MacBcook Pro is a bit disingenuous. The most comprable Apple laptop to the Chromebook is the 11" MacBook Air, whose price starts at $1000.Since I already use the browser to look up stuff all of the time anyways, having that a tab next to my shell makes it all the more convenient. And I can use split screen when needed, or make my shell its own window when I want to do distraction-free coding. I see no reason to upgrade for now, I'll probably wait until the 3rd generation to switch over to ARM.
To anyone planning on doing this, I would recommend getting dynamic dns, most routers these days can work with dyn.com (the major provider), and the cost is much lower than Linode or any VPS provider, and you probably already have an older computer that's much better than cheap VPSes.
But if you're a web developer, you should by all means do whatever it takes to make development easier.
For less than $200, I've supplanted my need for MacOSX with a neat system that will upgrade quite easily. There are already faster/nicer PC-on-a-stick style products on the immediate horizon, so I think I'm going to be very happy with this Lapdock for some time to come ..
If I could get a solid Linux install on a Chromebook (Debian or Slack for example) with a super lightweight tiling WM I would be in heaven.
I love the idea of doing the heavy lifting on a remote server but I also want/need the ability to do _some_ work on the system without internet access so a local gcc, gdb, vim, emacs, java, python, etc. install is a must for those times I can't get online but still want to hack a little bit.
I do believe the future for me will be cheap lower powered systems which I use for the light work and offloading the heavy stuff to a VPS but the hardware and software (OS) balance isn't there just yet.
There are less expensive alternatives to Linode. I switched to Loose Foot Computing (http://www.lfcvps.com) about a year ago and their service has been great. They often have promotional deals listed on lowendbox. See http://www.lowendbox.com/?s=loose+foot&searchsubmit=Find
tmux is amazing and takes care of window management. No need for dwm or xmonad anymore.
Lastpass integration with the browser works great with Chrome OS. This replaced keypassx for me.
USB tethering with my android phone "just works" to get on the internet.
Really happy so far. This is the right mix of easy, fast, cheap, and secure for me.
Hm. Googling suggests that there's kinda X-forwarding, but it's full screen only? http://blog.tomtasche.at/2012/01/developing-on-chromebook-pa...
At a bare minimum, unless you're targeting a very specific audience, you need a couple of virtual machines running Windows so you can test in IE, and ideally a way to run Safari as well.
Of course, you could keep it thin and have an instance running those virtual machines up in the cloud somewhere, and VNC (or whatever) into it with your Chromebook.
Browserling lets you run an interactive session (not just screenshots) and will SSH tunnel so you can test sites on your local machine/network that aren't publicly net-accessible. Neat!
Why not just get something from System76? Or install whatever OS you like on one of the notoriously Linux friendly Lenovo laptops? You end up with better hardware specs, more flexibility, and comparable portability for the same price.
I've also been able to use a local ubuntu on this machine, not that it matters too much since I'm on a VPS, but i guess on planes or something I can have code available to me by means of a git before i get on the flight (or cron or something similar).
I don't know what a system 76 is...
Let me summarize a few points. I've tried to reply in-thread.
I recognize this approach isn't for everyone or for frequent air travelers, but I walk everywhere (live in SF) and like being able to take my hack context with me and pick it up wherever, whenever.
Yes there are risks: VPNs could tighten things up.
VIM is very fast, even over high latency.
Offline support is coming. I have an ubuntu running in the chromebook.
But your (linode- or whereever)server, 24 h available and exposed on the net, has a latent risk of being "0wned". And there goes your stuff.
IMHO the risk of your server being 0wned is much greater than losing your notebook (or being stolen), so this model is the unsafer choice.
However, I'm sure it's enough for front-end development or what have you.
Doesn't that make more sense.
Edit: using these instructions, which work fine despite the slightly scary warning at the top:
https://fedoraproject.org/wiki/Architectures/ARM/Samsung_Chr...
For my purposes they both work very well. The reason I switched to Ubuntu on the Chromebook was that an easy to use installer was available. Now that I can do development on the machine locally I can use it on the train, where previously the 3G connection wasn't reliable enough. I love it.
However, it should be noted that I used vim for both setups. Although I haven't tried, I don't write Java in my spare time, I think that using Eclipse or Netbeans would be disappointing on the Chromebook. But if your tools are simple you can get a great deal of joy from these laptops.
I have really never enjoyed a computer as much as I enjoy my Chromebook. Alas, right now I am typing this from my monster VAIO laptop, because my wife took the Chromebook on holiday.
I am guessing all those "heavy IDE" users aren't subscribers to the "code in the cloud" paradigm. Yet.
You can do text mode in near realtime on a 56k modem, OTOH I still have some noticeable lag (typing is ok, but menus etc lag) on my home broadband if I'm doing X11 forwarding.
Interestingly enough, one of the main problems vim was attempting to solve was the annoyance of dealing with a high-latency connection:
Actions that require a lot of redrawing tend to lag, though: if you only know `hjkl` navigation and visually select every string you want to work on you will definetely experience some lag.
On the other hand, if you use more "advanced" movements and use text-objects and Ex commands extensively, you won't find reasons to complain.
What does it have to do with a Chromebook / terminal exactly? I've got exactly the same for my regular workstation...
I'm using a Debian Linux workstation for development using full disk encryption. Should it be stolen the account would be locked up (I always lock it without even waiting the timeout when I stand up: one shortcut and it's locked and you can't unlock it without my password) so there's no way anyone is accessing my data without my password. No, sure, if an attacker knows my password (and/or the boot-time disk encryption password) he can access my data, just like he could access your cloud data should he know your password.
Should my house burn and my workstation (be it a laptop or a desktop) be broken, it's essentially commodity hardware too. What makes you think I don't have automated backup scripts? (gpg + scp FTW).
There's simply no way I'm accepting latency back/forth to some cloud thing. And the "bad" thing with physics is that physical ain't going to change: short of major scientific breakthrough no matter the $$$ we're not getting better latency anytime soon.
Also, I consider an environment which can suddenly "stop working" because something changed server-side to be fundamentally broken: I'm in total control of my dev environment and there isn't a single update that can be made without my consent.
You're giving up all that power once you decide to develop using a "terminal".
Of course that power comes at a price: you need to be able to install and configure your OS so that it uses full-disk encryption, you need to write a few scripts taking care of automated encrypted backups, you need the discipline to "lock" your system everytime you stand up (by now it's a habit), etc.
But once it's set up, my dev environment doesn't change.
Can you pick up your hacking session while at the apple store if you happen to have no computer whatsoever with you? That's worth a lot to me since i rarely travel and, if I do, my goal is to get away from computers.