Swap Your Laptop for an iPad + Linode
linuxjournal.com
linuxjournal.com
That said, I feel the need to warn others who are considering switching to a cloud-based development environment. There are some significant disadvantages to doing development on a remote machine. The biggest issue is that you are dependent on Internet connectivity. If your connection is down, you are dead in the water. If it's slow, you'll get frustrated. Connectivity is only going to get better, but the occasions when you're offline can be very memorable. Additionally, your choice of editors is rather limited. Whatever you use, it has to be terminal-based. A GUI editor like Xcode, Sublime Text 2, or Coda is right-out.
Now let's take a look at the advantages. Cost is mentioned. An iPad is $500-800. A cloud server is $20/month. A maxxed-out 11" MacBook Air is just under $1800. If you throw it away after 2 years (instead of selling it), that's $75/month. In the same time, you'd spend $40-55/month for the iPad/cloud combo. Assuming normal bay area wages, the cost difference isn't worth caring about.
The iPad/cloud setup has one big advantage: battery life. An iPad will last 10 hours. Most laptops can barely do half that. But that's pretty much its only advantage. The laptop beats it in performance, capabilities (you can run VMs and test other OSes/browsers), ergonomics, and expandability. Laptops can also output to larger monitors.
After considering all these things, the best solution is whatever you're most productive using. If you find yourself away from power often, the iPad is your best bet. If you often have slow/nonexistent Internet connectivity or you like to plug into external displays, go with a laptop.
My most productive times are when I'm offline, so my weapon of choice is the 11" MacBook Air. I load it up with the right documentation and virtual machines beforehand. Then I spend the next 5-7 hours writing prodigious amounts of code. At that point both myself and the Air's battery are spent.
Again, I don't mean to imply that the author is mistaken. I simply want to manage expectations for anyone considering following him.
So you can do all your development on your tablet even when offline and upload your work to your server with git when you get back online.
The majority of my code is stored on a Linode server. I use SSHFS to mount my working folder and edit in whatever editor I like (typically Geany). Connectivity is still an issue, but can be mitigated by tweaking the cache timeout.
Not sure I can follow your calculation. If the iPad is (at most) $800 and the MacBook Air is ~$1800, you'll save roughly $1000 if you go with the iPad. If a cloud server is $20/month than it takes you about 4 years to spend these $1000. Thus if you compare the values within a time span of 2 years, shouldn't the iPad+server combo safe you roughly $500?!
I'm sure I'm missing something.
$75(/month) - $55(/month) = $20 * 24 (months) = $480 saved over 2 years.
And it is his argument is that over a 2 year span, that is negligible savings in the tech industry. Especially considering most people spend $2400 in that same span on their iPhone. ($200+$90*24=$2360)
You've taken a $800 depreciation hit on the Mac, and although the depreciation on the iPad was only ~$400, you've also spent $480 on your VPS...
Lower upfront costs do not necessarily translate into savings further down the line, especially when your choice of hardware ties you into a $20/month ongoing expense.
I just want to point out that with a program like WinSCP, you can sync a folder over SSH and essentially work over SSH with whatever editor you'd like.
Both (all) choices involve compromises. It's a matter of choosing which compromises matter.
In my opinion, battery life is a very very important feature. I can see that factor alone swaying my decision...
Not a comment on which is better. We're in a world of ubiquity. I've worked for months at a time in a purely remote-connection style. But speaking purely as a child of the modem, you can pry my local processing power from my cold, dead system chassis.
You'll want the secure shell and chrome remote desktop extensions. Note that there's also a hidden secure shell beta channel [0].
If you have vpn requirements, be sure to check for compatibility first: though openvpn and l2tp are supported, I wasn't able to get either working. Vpn fixes are supposedly in the works [1].
Install ubuntu onto an sd card and dual boot is possible (even on arm) [2]. I haven't needed to do this, though.
Other exciting - but currently abandoned - possibilities: vim and mosh as chrome extensions [3] [4].
[0] https://groups.google.com/forum/#!msg/chromebook-central/f8U... [1] http://code.google.com/p/chromium-os/issues/detail?id=35515 [2] https://plus.google.com/109993695638569781190/posts/b2fazijJ... [3] http://code.google.com/p/nativeclient/source/browse/trunk/na... [4] https://github.com/davidben/mosh-chrome
Moreover, something I just thought of now is that I do a lot of mobile app development. Wondering if I can run the debugger remotely and "export" my local USB over SSH and have it run that way. That would be pretty cool...
Just ordered my Chromebook from Amazon. Now to wait 8 weeks for it. :-(
If you're doing everything remotely you could probably just stick to ChromeOS (it has ssh, you can also use Chrome Remote Desktop or Guacamole http://guac-dev.org/) and not bother with Ubuntu.
The one feature I really need added to iOS is a multi-item/history based clipboard system. This would make working between apps in a uni-window environment much easier.
It started with XMonad on Linux, where alt+n (where n is 1..9) would take me to a separate workspace, each with it's own apps. Workspace 1 is always my browser, 3 is the terminal, 8 is my editor, etc.
I set this up on OSX as well - workspaces are called desktops on OSX and I just set up 9 of them, with command+n being my desktop-switching shortcuts. It works remarkably well, it almost makes me cringe seeing people alt-tab repeatedly, or using the mouse and overlapping windows to try to switch between different apps.
I can't take this working methodology seriously, nor anything which contracts out every last egg to one basket. It's trendy but entirely batshit.
Ignoring the cost model which is broken, if all shit breaks loose, which it does in real life regularly then this is just going to screw you properly then.
Not(or rarely) having to ponder 'is it my environment?' whenever something breaks is nice. It's also usually easy to share the folder and work on a remote vm's filesystem locally with whatever editor you like. (some exceptions are java+eclipse because of the need for a shared maven repo and general eclipse slowness is compounded in this type of setup)
> The hardest part of setting up an SSH client on a tablet is getting your private SSH key on there without entrusting it to a third party. I split mine across multiple services and removed it after recombining it, but a better way would be to SSH in with a password first, then use copy and paste to copy the key inside iSSH itself.
Ideally, you shouldn't be transferring a private key in the first place, and instead, generating a new private key on the tablet itself, specifically for the tablet.
Once you've generated a private key for the tablet, it's trivial to push the public key for it to the server (and safe to entrust the public key to third parties, since it's specifically intended to be public).
It also means that if, say, your tablet got stolen, you could just revoke access for the tablet's key, rather than having to redo everything for your existing key.
I have access to this setup, but also to multiple laptops, desktops, tablets, phones. I use what works for the situation.
When does the ipad+keyboard shine?
When you don't have easy access to wifi, but can get 3g.
When you don't have power. iPad battery life is awesome.
When you want to have a tablet with you for reading, drawing, notating.
When you want your keyboard to be detached from your screen to have a more comfortable position. (e.g. you can put the keyboard on your lap, or even offset the screen while having the keyboard in front of you. Many possible configurations)
When you want the above features, but don't want to have to carry a backpack or some kind of bulky bag to fit a laptop or convertible laptop+tablet or carry around a few different devices.
The iPad is a very general purpose device. A lot of people are saying, "Just use a laptop" and completely missing the point. The author is specifically using this setup for 3g+battery life.
It has a few key advantages:
1. it has a physical keyboard/trackpad dock which the OS fully understands.
2. the dock contains no actual PC, and is 99% battery, effectively doubling your battery-time.
Why would you chose an iPad over this?
Being a Rails developer, I have to constantly run tests, refresh browser and write code, and to do this as efficiently as possible, I'm using dual monitor setup with the guard gem, which makes two things while I write code: runs tests and refreshes browser (both appear on second monitor). The machine is slightly customized Mac Mini Server (SSD + additional RAM) which also comes around $1000 plus the two monitors.
Laptops are simply not fit for any serious Rails development, not only to the small amount of screen real estate, computing power but also because I can rarely get into the zone outside my home office.
While I do believe the future is in cloud based development, I think right now's solution is a duality of the two.
Emacs-TRAMP will let me edit files locally so it will work well even if you're in a location with spotty internet.
1: http://www.androidpolice.com/2012/11/27/logitech-bluetooth-i...
Right, I stopped reading after that. So he has a "small laptop" which is what the ipad+keyboard is and a vps.
The photo suggests several items to carry and keep track of, and then assemble to work. A small light laptop is one box. Seems easier to me (chuck the one box into the bag and off).
Is is possible to have both? i.e. a "remotely managed local system". (1) auto-updated OS e.g. chrome; (2) auto-backup e.g. dropbox.
If you ARE talking about the ipad, care to share a link?
http://www.shoutpedia.com/linux-running-on-ipad-and-iphone-c...
http://www.ifans.com/forums/threads/how-to-compile-and-insta...
http://forum.iphone.cz/viewtopic.php?f=7&t=52521
So, yeah. There's stuff out there. From what I can gather there's not much work been done recently.
And that android, BTW, is completely unusable - I just keep it there in case my 3G gets borked in a need-to-reinstall way (like it did two years ago).
ARM linux is more than great in my opinion, battery life, tablet-when-you-want, laptop the other times.
Plus, you know, the Nexus 10 is cheap and has a gorgeous screen.