
Remotely tunneling to a server using an iPad Pro for programming - TheArcane
https://jann.is/ipad-pro-for-programming/
======
scaryclam
Wait, what? This isn't about using an iPad as a development machine, it's
about using a server as a development machine and an iPad + keyboard to access
said development machine.

I get that the author wants to use his iPad for day-to-day stuff, and that's
fine, but it's a stretch to say it's their main programming machine when it's
not actually running the "local" setup.

Heck, it would drive me bananas having to stop working every time I went
through a tunnel on a train, or didn't have reliable connection to my VPN.
Kind of destroys the point of a local environment.

~~~
TheArcane
> every time I went through a tunnel on a train

The author made it seem that mosh would make that a non-issue.

~~~
josteink
So mosh is going to guess the auto-complete suggestions or code-docs your
editor will offer while you are effectively offline?

Don’t be daft. Mosh can in a limited way eliminate latency, but it can’t
provide the intelligence offered by code running on the server if the server
can’t be reached.

For this you either need full connectivity or running the full stack locally.
And right now only Android (and possibly Windows?) seem to offer the latter
option.

------
josteink
So basically what this guys says is "golden" and good enough reason to warrant
buying the most expensive tablet on the market can be summed up as this:

1\. iOS 11 now supports very basic multitasking, years after Android (and
Windows mobile, if that counts)

2\. iOS 11 has support for keyboard-shortcuts, which (you probably guessed it)
Android has had full support for _at least_ since Android 3.0 (and we're now
at 8).

3\. He does no actual local development and has moved his entire development
setup into the cloud, rendering the iPad a mere terminal, and thus it as the
base-platform utterly irrelevant.

The only one who can call the cost-benefit factor of this as a development
setup "good", are the ones already so invested in Apple-stuff that they're
blinded to everything else. Especially its inherent limitations, not to
mention the obscene cost given the limited offering you get.

Really: The cheapest chinese Android-tablet you can find... And no, not one of
the cheapest. I mean the utterly cheapest of the cheap Android-tablets you can
find... Can do all this.

At probably 1/20th the cost.

And it can run local chroots and native docker-containers too, so you have
full offline support.

What's offered as an "amazing" experience here is only amazing if you don't
consider cost a factor in what you get to work with. And once you do, it's
about as far from amazing as you can possibly get, probably worst in class.

------
DigitalSea
Should be titled, "I remotely tunnel to a server using my iPad Pro for
programming" very misleading. Furthermore to the point: what's the benefit of
tunneling to a remote machine for dev work? The latency would suck as would
the overall slowness of things, it would drive you insane. You can hammer
nails into a piece of wood using a rock, but why would you when you can use a
hammer?

~~~
zimpenfish
> Furthermore to the point: what's the benefit of tunneling to a remote
> machine for dev work?

You can do it from anywhere; you don't need a powerful local machine;
controlling what devs do is easier; etc.

3 of my last 4 contracts have been development on remote machines. It's
perfectly fine unless you somehow have abysmal networking (and then you really
have bigger problems.)

~~~
DigitalSea
In your instance though, it sounds like the development on remote machines was
a client choice and not your own? The author is choosing to develop remotely
themselves because Docker makes their MacBook get hot and burns their thighs
when they don't wear pants. Would have just been easier to buy one of those
laptop rests with inbuilt fans than spend money on a monthly server though,
right?

~~~
zimpenfish
> the development on remote machines was a client choice and not your own?

I do 90% of my personal development on remote servers too.

------
therealmarv
With Android and Termux you will also have offline support more.

But from my experience: Better buy a good ultra portable Intel CPU notebook
from/with a brand/os of your choice. There will be a time where you need to
install something which only runs locally.

------
gws
The show-stopper for me of all these set-ups is that you cannot sit on a sofa
with your legs crossed and the machine on your lap which is by far the most
comfortable setting for me

~~~
deepGem
It's a very comfortable position, but not for the cervical spine. I just had
an injury that according to the doc was because of this posture. I don't
believe it though. Anyways, try not to sit in this position for long
durations. The injury isn't fatal but will leave you with shooting pain in
your arms and shoulders for weeks.

~~~
speedplane
If slouching in a chair for long durations is harmful, I would have had
serious problems by now. I haven't met a chair I didn't love to slouch in.

That said, I did twist out my back last year. My doc said ti was due to
sports, but who knows.

------
otp124
So the actual development is all done on a remote server, no local
development? In that case, it would appear that this setup would be more
classified as a thin client than a “main computer”.

------
rollinDyno
I've worked on a similar setup during the last summer. My laptop's battery
busted and since I already own a desktop I decided to buy an iPad and SSH into
my desktop with Prompt.

Prompt is alright although I need to stay active on it due to the iOS app
lifecycle constraints. If an application is suspended for more than 10 minutes
iOS will kill it, meaning that if I'm working on a different application I'll
constantly receive notifications to switch back to Prompt just to reset the
death counter.

I have also spinned up a jupyter server so whenever I want to work on a
notebook I'll SSH into my desktop and start the server. I can then use Safari
on iOS to do browser based work. I imagine something similar can work for web
developers. React Native developers can also upload their applications to
hosting services such as Expo or Codepush and work on mobile applications on
the go.

~~~
bergie
Blink and mosh fix this issue, as with that you can resume sessions even after
the app is suspended by the OS.

However, this doesn't work perfectly yet:
[https://github.com/blinksh/blink/issues/59](https://github.com/blinksh/blink/issues/59)

------
magoon
MacBook 12” works great, has a better keyboard, is probably lighter/smaller
than an iPad Pro

Why not use that instead?

~~~
eludwig
Of course, the reason is that we wouldn't be talking about an article that
described using your laptop to do something that its been doing since the
1990s! ;D

But seriously, I think these kinds of articles are great. I love to hear about
people's different setups and trying to push what can be done on iPads. Why
not?

The thing for me is that I absolutely LOVE my iPad (i have an Air2 for general
use and a 12.9, mainly for art-related use) and I really, really want my iPads
to do more -- to become more "real" work-capable. Why do I want that? I think
the reason is because these things are so close to being a single thing to
carry around. They are so perfect for certain things (web browsing, email,
chat, and many types of gaming) that I would really like to keep expanding
that list. I'd love a world where the iPad is the only device I take with me
on trips.

I also think it's real important for everyone to keep pointing out the glaring
flaws of tablets (iPads in particular). In a way, this article just reinforces
the fact that the inability to do real, local programming work is a real
limiter for a lot of people. Also, my favorite complaint is about just how
awful selecting and editing text is. I'd love for Apple to fix these things.

------
teekert
This seems more appropriate as a title: "Using the iPad pro as a screen for my
server based programming environment."

------
GEBBL
I feel a bit sorry for the author of the article to have put so much effort
into fancy graphics and so on when he has completely missed the point. This
isn't using your iPad as your main coding device. As someone else said
earlier, this is a thin client at best.

~~~
reacweb
IMHO, he has not missed the point. Tablet makers (IOS or Android) are fighting
very hard to avoid that tablet becomes a generic versatile computer that you
can use the way you want. We can stop fighting. Network is more and more
reliable and we can rent very cheaply very good computers in the cloud. I use
a bluetooth keyboard, connectbot and tmux to connect regularly to my web
server. It works very well and I have more latency from the keyboard than from
the network. If your computer (tablet) breaks or is stolen, you do not lose
any data. Welcome to the cloud ;-)

------
dogruck
I would summarize the answer as "it's surprising how much programming you can
do, but it's not a great setup."

(Disclaimer: I _love_ my iPad Pro, and am typing this note from mine.)

------
basilesimon
Posts like these are fun.

OP, I am now curious about using Docker to manage dotfiles and some installs.
Could you tell us more about it, or give some resources to get started?

~~~
vultour
What resources other than the Docker quickstart do you need? He is basically
using a VM to contain all of his settings and software.

------
scarface74
I agree with everyone that is saying that he is not using the iPad Pro as his
main computer, howeve I wouldn’t dismiss using an iPad Pro in a similar method
with GUI based development. I’ve done remote troubleshooting with Windows
environments with nothing more than my iPad and RDP -even remoting in Tony own
desktop and using Visual Studio.

After seeing how badly running a Windows VM on a Mac laptop kills battery and
how cheaply you can setup a VM on Amazon, I will probably just use that for
Windows development when I get another a Mac. Then again, I have a gigabit
internet up and down at home so maybe not.

I could also see using an iPad Pro for a terminal because I have “unlimited”
data on my cellular equipped iPad for $20 a mont but I can’t get unlimited
fast tethering to a laptop.

------
dhimes
A guy (Mark O'Connor) did this 5 years ago. At the time I had a full dev stack
(LAMP, vim, tmux, hg, etc.) on a netbook eee1001 (or whatever it was, the
little guys) for portability. I liked my setup way better as I took my dev
environment with me. But I would probably go nuts if I had to work on that
little screen all the time.

[http://yieldthought.com/post/12239282034/swapped-my-
macbook-...](http://yieldthought.com/post/12239282034/swapped-my-macbook-for-
an-ipad)

------
jlebrech
it's looks more like a classic terminal, I bet you get more work done that way

------
0xFFC
When you are sshing into server you are using the server, not the local
machine (beside the terminal and ssh app itself).

Please correct the title.

~~~
darrenf
The "but it's not local and therefore not programming!" style reactions make
little sense to me. Programming is an activity; where the code resides or
executes doesn't change that fact. How would you have the title "corrected"?

~~~
josteink
If the title says "using device $X as a main computer for programming", that
linguistically entails two things:

1\. that "main computer for programming" is the one running the stack and
software used for programming and

2\. that this device is $X.

In this case the main computer for programming is a machine in the cloud ($Y,
not $X), and $X is a terminal connecting to the cloud ($Y).

The title for this submission is clearly inaccurate and misleading.

~~~
darrenf
We will have to agree to disagree. When I'm programming, as a backend engineer
(like the article's author) I am almost always making use of numerous
computers at once: my local hardware, a remote dev instance, remote production
instances, databases, etc etc. The one I consider to be "main" is the one I
use to input commands, write code, etc. Like the author's iPad Pro.

------
vim_wannabe
Comments here went a bit crazy. Just think of the article as "The iPad Pro as
main computing device for programming".

~~~
iddqd
"Remote server as main computing device for programming"

------
DrNuke
I use my mini 2 to connect remotely and do some work from my couch or my bed.
I cannot see doing this 8 hours a day though.

------
stevenleeg
This is awesome! I've been eyeing the ability to use an iPad for a dev device
for a while now. As a frontend and react native dev I'm unfortunately still
restricted by my need for a good web debugging experience (eg chrome dev tools
+ react/redux dev tools) and the ability to compile to an iOS device. I can't
imagine either of these are coming anytime soon, so for now I'll stick to an
old fashioned MacBook Pro.

That said, sometimes I wonder if Apple will ever make the plunge and make an
iOS version of Xcode. The thought of a mobile version seems scary, and
obviously this would only be practical on the iPad, but at the same time if
they ever try to make the iPad replace the professional workhorse that the Mac
currently is that'd be a natural direction to go in.

------
0x006A
can you work with those keyboards without a table, like put it on your lap?

~~~
brightrhino
The Logitech Create keyboard/case [0] for the 12.9 iPad Pro works great on my
lap. The new Logitech Slim Combo case/keyboard [1] has a removable keyboard
that doesn't work well on a lap but makes using it as a tablet easier.

Both keyboards are backlit and I like typing on them.

[0] [https://www.logitech.com/en-us/product/create-ipad-pro-
keybo...](https://www.logitech.com/en-us/product/create-ipad-pro-
keyboard?crid=1762) [1] [https://www.logitech.com/en-
us/product/slimcombo?crid=1762](https://www.logitech.com/en-
us/product/slimcombo?crid=1762)

------
dekhn
I got a Surface Book 3 for $600 and runs Windows 10. The keyboard detaches,
and you can install a full dev environment (Ubuntu Linux).

------
mpweiher
Aka: I use an iPad Pro as a terminal.

------
Lapsa
I wish my vim could show ligatures. still - not enough to switch away from
simple term

~~~
majewsky
Are you sure that's a problem with vim and not with your terminal (emulator)?

------
cm2187
The title should really say "Using an ipad to be able to develop in one's
underwear"... Outside of this key element, there is really no upside over
using a laptop!

~~~
zimpenfish
> Outside of this key element, there is really no upside over using a laptop!

From the article:

> Even though the MacBook's retina display is a really great display, the iPad
> Pro's display is another big step up. I don't know if it's the Pro Motion,
> the True Tone or the Wide color (P3) but the iPad Pro display just looks a
> lot better than my 2015 MacBook Pro's.

~~~
cm2187
For writing some javascript?

~~~
zimpenfish
It's what you're looking at whilst doing that, yes.

