
Swap Your Laptop for an iPad + Linode - mikegirouard
http://www.linuxjournal.com/content/swap-your-laptop-ipad-linode
======
AngryParsley
First of all, kudos to this guy. He's happy with his set-up. It works for him
and it works for a lot of other people.

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.

~~~
WillP
You can actually still use a GUI editor with cloud-based development.

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.

~~~
lallysingh
Some editors support editing remote files. Emacs and TRAMP
(<[http://www.gnu.org/software/tramp/#Overview>](http://www.gnu.org/software/tramp/#Overview>))
does this perfectly well. BBEdit 10 also does it (<[http://www.andre-
aulich.de/en/perm/edit-remote-files-using-y...](http://www.andre-
aulich.de/en/perm/edit-remote-files-using-your-local-bbedit-app-and-a-secure-
ssh-connection>)). That editor is completely underrated.

~~~
Freaky
Vim supports remote editing too, with netrw:
<http://vimdoc.sourceforge.net/htmldoc/pi_netrw.html>

------
twiceaday
The 11" Air weighs 100 grams (10%) more than iPad + wireless keyboard and for
that 10% you get much higher effective resolution, no compromise keyboard and
trackpad, option to connect external monitor, up to 128gb storage, USB, etc,
etc. Why compromise?

~~~
admiralpumpkin
The iPad gets double to triple the battery life, has a higher DPI; the
wireless keyboard is probably better than the MBA (or at least on par).

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...

~~~
MaxGabriel
I don't see why battery life would be that important for coding. With the
iPad+wireless keyboard setup, you're already committing to using a desk or
table -- won't those typically have a power outlet? Also, depending on the
case/orientation, it'd be harder to keep the iPad in a stand with the charging
cord in the way.

------
Adaptive
I find it interesting to contrast this ubiquitous-connectivity model with the
development style of Joey Hess (git-annex, et al) modeled on extremely
sporadic connectedness.

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.

------
obilgic
Swap your laptop for a chromebook + ec2

~~~
HorizonXP
I'm honestly seriously considering this. I'm still trying to figure out if
Ubuntu on the Chrome book is stable enough for SSH, VNC, X, and web work.

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...

~~~
HorizonXP
Looks like I answered my own question: [http://www.howtoforge.com/how-to-set-
up-a-usb-over-ip-server...](http://www.howtoforge.com/how-to-set-up-a-usb-
over-ip-server-and-client-with-debian-lenny)

Just ordered my Chromebook from Amazon. Now to wait 8 weeks for it. :-(

------
jackhammer2022
Previously discussed at: <http://news.ycombinator.com/item?id=3186476>

~~~
staffordrj
Here as well: <http://news.ycombinator.com/item?id=4543345>

------
jsz0
One point I'm not sure this article mentions is how gracefully you can switch
between apps on the iPad with gestures. I do a lot of (non-development) work
via Prompt and when I need to consult documentation I just swipe over to a PDF
or web page. Not being able to see the two side-by-side is almost a blessing
simply because when I switch over I read the documentation carefully and only
switch back when I'm ready to actually resume my work. This helps me out a lot
because instead of skimming the documentation as I go I actually spend a few
minutes reading it all and absorbing it. When I'm ready to switch back to my
work I'm less scatterbrained about what I'm trying to accomplish. I'm way less
prone to skimming the documentation just for the relevant parts. I'm starting
to think uni-windowing is way underrated. When I work on my Mac I often do the
same thing with full-screen apps now. I feel like it's made me more
productive.

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.

~~~
ehsanu1
It's the same reason I don't use multiple monitors simultaneously. I feel
really productive having full screen apps. But even better is the fact that I
have keyboard shortcuts set up to switch between apps.

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.

~~~
DigitalJack
How did you bind command-(1..9) to the different spaces on osx?

~~~
rsneekes
System Preferences -> Keyboard -> Keyboard Shortcuts -> Mission Control ->
Switch To Desktop (1..x)

~~~
DigitalJack
Awesome, thanks!

------
meaty
Yes swap my 129GBP ThinkPad T61 running debian for a more expensive, less
capable device with a pissy screen that falls over if you let go of it,
rubbish keyboard, short shelf life, non replaceable battery, subscription
based, lock in promoting glorified vt100 terminal that only works if you have
an internet connection available.

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.

------
siliconc0w
I recommend creating a reusable 'development vm' (or lxc container if you
swing that way) for your entire team. It really cuts down on development time
and you can generally host it anywhere (locally, 'the cloud', whatever).

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)

------
aiiane
Something I'm surprised I haven't seen mentioned so far is a comment regarding
this:

 _> 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.

------
forensic
There is no reason to force yourself to one solution.

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.

------
josteink
If you're going to go full cloud, a tablet like the Asus Transformer seems
like a much better fit than the iPad.

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?

~~~
trotsky
The most likely answer is because of the heavy, ongoing advertising.

------
tzaman
While this might be working for the author, I couldn't take this approach,
since there is just too much compromises I'd have to take.

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.

------
film42
I couldn't live without AWS or my litte VPS. As a developer and fellow HN fan,
I'm always reading about the latest frameworks and projects. I love demoing
them, but I feel it's risky on my laptop because the 500GB I have fills up
quick if I'm not paying attention, so I avoid installing anything unless it's
going to be used with a real project at work. I do my best to run all examples
on AWS or my VPS first, the reason for this is so if ruby blows up or my
recently configured kernel panics, I can easily reset or reinstall the
instance and we're back in business.

While I do believe the future is in cloud based development, I think right
now's solution is a duality of the two.

------
bryanlarsen
I'm waiting for the Android port of Emacs to mature. It currently has issues
with hardware keyboards and with Tramp. But once it works well, then I'm
getting a Nexus 10 and a Logitech K810[1]

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...](http://www.androidpolice.com/2012/11/27/logitech-bluetooth-
illuminated-keyboard-k810-review-yes-you-want-one/)

------
Nux
Oh, cmon, let's check the inventory: \- tablet \- wireless keyboard

Right, I stopped reading after that. So he has a "small laptop" which is what
the ipad+keyboard is and a vps.

~~~
keithpeter
[http://www.linuxjournal.com/content/swap-your-laptop-ipad-
li...](http://www.linuxjournal.com/content/swap-your-laptop-ipad-
linode?page=0,3)

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).

------
6ren
Soon, a tablet will be fast _enough_ to compile locally. But the article's
setup still has the benefit of someone else managing OS/backups.

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.

------
olgeni
But how do people connect their Model Ms to their iPads?

~~~
eertami
Yeah the hardest part of the article to stomach for me is that someone could
type on one of those keyboards for 3 months and not get frustrated.

~~~
w1ntermute
Those Bluetooth Mac keyboards are absolutely horrible, but so many people use
them because they don't know that there are better keyboards out there.

------
jamesjguthrie
I've read a few posts on various sites about Ubuntu running on jailbroken
iPads, if it's a full Ubuntu experience I'd love to do that.

~~~
beagle3
I can't find any, and I'd be surprised if it exists (it would mean drivers
written for most of the ipad's hardware). Are you sure you aren't thinking of
ubuntu on nexus (which is available, and easy because android IS linux)?

If you ARE talking about the ipad, care to share a link?

~~~
jamesjguthrie
You clearly didn't Google hard enough.

[http://www.shoutpedia.com/linux-running-on-ipad-and-
iphone-c...](http://www.shoutpedia.com/linux-running-on-ipad-and-iphone-
complete-how-to-guide-coming-soon/)

[http://www.ifans.com/forums/threads/how-to-compile-and-
insta...](http://www.ifans.com/forums/threads/how-to-compile-and-install-
openiboot-on-ipad-1g.321963/)

[http://forum.iphone.cz/viewtopic.php?f=7&t=52521](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.

~~~
beagle3
I actually have android on my iphone 3G (as a "recovery partition"). But I was
asking specifically about ubuntu; perhaps I should have been more clear.

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).

------
bitwize
Hehehe, how about NO?

------
reustle
Glad to see this article made it into Linux Journal!

------
swah
But I just bought a new mechanical keyboard!

------
drivebyacct2
The sad thing is, the Nexus 7 and Nexus 10 could be full powered Linux tablets
(the Nexus 10's SOC is used in numerous places with Linux). Put that in a
keyboard dock or something like the Transformer Prime dock...

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.

