Remotely tunneling to a server using an iPad Pro for programming
jann.is
jann.is
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.
The author made it seem that mosh would make that a non-issue.
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.
ref. https://c3.nasa.gov/dashlink/static/media/other/ObservedFail...
Funny, my 7 year old laptop seems to be running just fine.
If it continues to work for another 5-7 years, that's when you're getting into the "sturdier than average" realm. Your laptop could be a micron's worth of a whisker away from shorting itself out - you won't know until it happens.
Perhaps I should have stated my earlier point differently, but 2 years is still not a small portion of the lifespan of your average computer.
Everything that's old is new again.
Today, I believe the push to terminals is due to the slow death of Moore's law. Computer performance today is not getting much faster, and it's certainly not growing at the exponential rate it was from the 1970s-2000s.
Previously, if you wanted to double your performance, you would just wait 18 months or so, and some manufacturer would provide it. Now, we don't have that luxury. If you want to double performance, you basically need to double the number of computers. Unfortunately, doing that takes up physical space and power. So the solution is to create massive server farms with big beefy computers that can run in parallel.
The death of Moore's law is depressing.
For better or worse, working within constraints is frequently much more interesting than "don't worry about constraints, Moore will take care of it".
I'm excited to see where we go now that we've started to plateau.
“The Network is the Computer“
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.
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.)
> You can do it from anywhere; you don't need a powerful local machine; controlling what devs do is easier; etc.
I can do that from my mobile too. There is absolutely no comparision with the "powerful local machine". And yes, you do need a powerful local machine, unless you are just writing text.
I do 90% of my personal development on remote servers too.
That's not exactly a benefit for the dev.
> You can do it from anywhere; you don't need a powerful local machine
That's fair, but arguably, that's an argument for CEO to own an iPad, so that they can log in to company network from whatever country they happen to be in this week. For regular employees, that seems like introducing a stupidly huge amount of pointless friction into the dev process, which will directly impact productivity.
If you already take the local terminal around with you, then there's really no benefit to "You can do it from anywhere" as that's 1) not true, you need an Internet connection, and 2) you can do the same thing, even offline, with a halfway decent laptop.
If you want to work from a terminal and log onto a server remotely to get stuff done, that's absolutely fine, each to their own! Just please don't paint it as better than having your local setup on a laptop, since it's not really. Apologies if you weren't saying that, but it came across as such.
Nope, wasn't doing that at all. Just pointing out that you can't apply a blanket "It's not as good" like many commenters are.
(Someone will now come out of the woodwork to remind us of when they did all their development over a 300-baud serial teletype, uphill both ways)
However, at home, I would routinely login to the same remote computer and the latency was horrible, every typed letter was delayed a tenth of a second or so. I wasn't about to spend a fortune on a dedicated line to the work servers.
The point is, when you're working remotely, you're totally at the mercy of the network. If the network is down or flaky, you can't get anything done.
It's more noticeable when jumping around the code, but I've found that such activities are not as intolerant of latency.
I could imagine a middleware doing similar cheating for shell, but in general, you'd have to have a stripped local version of software doing local simulation to ensure videogame-like smooth experience.
I sold my desktop, and now use a cheap £200 garbage laptop as a thin-client to my machine. Not only do I get incredible compile performance due to being able to use 16 core Xeon's, but I am not tied to any desktop.
I can whip out my phone and pop open a tmux session from anywhere, in an emergency I can hop onto a friends computer and thanks to SSH 2FA fearlessly login to my dev system with my full environment that I never have to close.
At this point, I would actively avoid jobs that wouldn't let me work this way. Currently got a sweet remote gig and I'm going to fly to Spain next week and spend a couple of weeks coding on the beach with my 3G tethered laptop.
Edit: Just to clarify, I don't need to work in an IDE or use any Windows software that I couldn't tunnel over X. So it might not work for everyone. Just wanted to give an example of it working out great for someone.
Except on airplanes.
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.
That said, I did twist out my back last year. My doc said ti was due to sports, but who knows.
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.
That sounds ridiculous. Is that still the case with iOS 11? Can you not make an app persistent?
I’m sure it’s not even the app’s fault, but rather a consequence of how iOS and SSH work.
However, this doesn't work perfectly yet: https://github.com/blinksh/blink/issues/59
Why not use that instead?
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.
Docker is a million times better on Linux than any other platform, so if all the work you do is through Docker, it seems insane not to make that as a base-optimization.
(Disclaimer: I love my iPad Pro, and am typing this note from mine.)
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?
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.
http://yieldthought.com/post/12239282034/swapped-my-macbook-...
Please correct the title.
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.
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.
I tried this with my 12.9 (with the same keyboard, the foldable one) for a few days on the train and it is possible to balance it on your lap while sitting nicely with your legs bent at the knee at a 90ish degree angle, feet flat on the floor. The keyboard is stiff enough as long as the gulf between your legs isn't too wide. The problem is that any shifting around can cause this set to move and tip. It just doesn't feel long-term stable. It is possible to do it for a few minutes, say, to reply to an email.
That said, the keyboard is really nice to type on and is really easy to get used to. I know these things are very subjective.
Both keyboards are backlit and I like typing on them.
[0] https://www.logitech.com/en-us/product/create-ipad-pro-keybo... [1] https://www.logitech.com/en-us/product/slimcombo?crid=1762
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.