I've done this (vps for emacs). My tuppenth worth:
- NoMachine with X works really well, especially over a VPN. Full linux desktop, great scaling and kb support
- Use mosh instead of ssh, especially if connecting over cellular, as it is tolerant of dropped connections
- Like the person who switched to an X230, I followed a similar path finally settling on a Microsoft Surface v7 which was £300 second hand. The hardware is fantastic, with a glorious screen and lovely typecover keyboard. Live in WSL and it could be a linux box. I leave the ipad behind now when I travel.
Having said that, even if it had to be handbuilt against a testflight account, it would be wonderful to have a native emacs app. Seems like the developers of hummingbird eXceed or blink might be clever enough to do that?
Although I went into the purchase knowing about Apple's walled garden, I really do resent the way good hardware has been artificially crippled. It feels like being treated like a child, I should be able to make informed decisions with my own hardware! I won't be buying another ipad unless things change up big time.
I thought "NoMachine on X" was a joke or slang, but it turns out NoMachine is free remote desktop software (Linux, Mac, Windows, Raspberry Pi, ARM, Android, and IOS) . Looks like they make money with enterprise sales. Thanks for the tip!
Does the autodiscovery for NoMachine work on Wireguard VPNs as well?
I use, and love, Wireguard, but I think out of the box Wireguard does not support multicast. And I expect that NoMachine also depends on multicast to do its autodisovery. Probably with mDNS and DNS-SD.
Upon googling now, it does seem like some people have successfully been able to get multicast working over Wireguard. For example:
> Hey! Just in case you (or anyone else browsing this) still needs this, i've got avahi working over my wireguard client-to-site connection. I can access my home LAN computers using hostname.local from any VPN-connected device.
> I think the missing piece was adding 220.127.116.11/32 and ff02::fb/128 (multicast addresses) to allowed ips.
But my real gripe is the lack of these keys in an onscreen keyboard that I could use in Safari.
Online, web-hosted VS Code (via GitHub dot-dev, in my case), and Jupyter notebooks via CoLab or local hosted -- they are nice to have, but the editor library in Jupyter seems to map each word of code in its own text field. You can't use the usual iOS/iPadOS touch editing features, it's impossible to select a line of code... And on and on.
It doesn't sound like it would be such a big deal but it's a show-stopper. "Type F1 for the Command Palette" -- aaargh!
I noticed that I still use Panic Software's "Coda" on my 10-year-old iPad 4, and the terminal, editor, and keyboard design choices are the best I've found for iOS.
And that said, I wanted to call out that on Android, the Termux environment is native, local Linux (userland on Android). I use it for SSH, sure, but I also use it for everything else. Last night I tried some Zsh, FORTRAN, GCC, and Python. All on-device. Performance on my cheap Kindle Fire HD is actually better experience than attempting to use a web browser. Android is old; newer versions may restrict Termux functionality.
Only problem is Macs are missing everything good about the iPad. No touch screen, no pen input, always 2+ lbs.
Apple doesn't need to pull a rabbit out of a hat they just need to stop artificially limiting what iPadOS can do. There's no reason the iPad can't run Emacs natively with a full stack of dev tools except Apple's rules. The $80 Fire Tablet I'm typing this on can (OK it's not exactly quick but $80...).
Why would they do that when it would remove the incentive for their customers to buy one of each?
Give the iPad range Mac features, and it'd cannibalize Macbook sales from the bottom up. Give the Macbook a touchscreen, 5G, and the ability to run iPadOS apps, and it'd cannibalize iPad Pro sales from the top down. Neither of these are in Apple's commercial best interests.
And if the iPad gets much more Mac-like, I might be done with it. I like the iPad for what it is and I like the Mac for what it is. I like that they are very different things and I hope it stays that way. I don't think they can combine them without ruining what makes each thing special.
Huh? I just purchased an iPad Air M1 as a laptop replacement. With stage manager supporting external displays as of iPadOS 16.2, an iPad really is just a laptop without a keyboard.
Combine it with a bluetooth keyboard and mouse, hook it up to an external display, and it's hard to distinguish from any other desktop computer. Remove everything, and it's the optimal size to consume books and video on the couch. Combine it with a Pen, it's perfect for photo editing or drawing. Connect it to your guitar or midi instrument, and it's perfect for making music.
Funny thing is, i'm starting to use the ipad as a keyboard alternative more and more, text dictation often feels more convenient than typing.
Sure, for programming you'll probably want to ssh into another machine (using blink, which also provides visual studio code on the ipad), but that's maybe 5% of my home use of a computer.
Apple was deliberately putting bad cooling into those laptops because they had other priorities I don't understand. So I suppose they could always make the cooling on their new laptops even worse, and then the iPad would pull "ahead".
But I am assured that Design is the key to everything! How will we be able to make things that humans can use, without Designers? At least, that's what Don Norman, ex-Apple, told me in the seminal book.
Ive was good as an executor of Jobs' vision. By himself, his designs were self-indulgent and putting form above function, the exact opposite of Dieter Rams' approach that he claims to draw inspiration from. That said, Apple cannot sustain its aura and profit margins with me-too design, going too far in the opposite direction.
Ive was Chief Design Officer. Now check Apple's Leadership page (https://www.apple.com/leadership/). Design is nowhere to be found on it. It had temporarily been assigned to HR chief Deirdre O'Brien, no more, and Design co-chiefs Alan Dye and Evans Hankey report to the COO Jeff Williams, a.k.a. the Department of Everything Else. It's not a surprise both Dye and Hankey are leaving the company.
While I think Ive was mostly harmful to the company once the strong guiding hand of Steve Jobs that kept him on the straight and narrow went, it's not good to have this level of instability in the critical function of design either. Expect years of mediocre product design and stagnation ahead. On the plus side, no more butterfly keyboards, cables that fray if you look at them funny, or portless Macs either.
Sounds like you're taking a realistic stance here, so I won't tear you to shreds. Like you said, Apple's hardware is improving objectively so it's not a terrible thing. For years though, I've been more bothered by gimped software than gimped hardware.
Guess that means I shouldn't be in the Apple ecosystem, which is fine by me I suppose.
Sure, but the current Air doesn't even have a proper heatsink, and still delivers a ton of performance with thermal throttling setting in quite late compared to what I would have expected. They're pretty much doing it badly on purpose and it's still really good.
The cooling on those machines was bed yes, but their Intel CPUs were also ran more ho than they had any right to. Good Windows laptops with the same CPUs didn’t overheat easily but would run their fans doing nothing and have their fans screaming when being pushed. Their battery life was also pretty abysmal, and that’s only started to improve meaningfully with the last 1-2 gems of x86 CPUs.
> Apple was deliberately putting bad cooling into those laptops because they had other priorities I don't understand
There’s a rumor that was because Intel promised every year 10nm chips, which they ultimately postponed every year. MacBooks chassis were designed for the promised thermal advantages which have never been delivered.
At some point I’ll stop falling for the click-bait. No emacs is a good portion of the reason my iPad Air collects dust. I wanted something portable to do my most critical work functions when traveling. I love the portability, and it supports most of what I need for work. I underestimated how important emacs was to my general productivity.
Not sure what you're referring to. It's absolutely standard for iOS apps to load dynamic libraries that are bundled along with them. Additionally, Emacs itself doesn't consist of more than one executable.
I lose it every time I see the “A note on the JIT” section.
So a warning: Long-term exposure to this code may cause loss of sanity, nightmares about GAS macros and linker errors, or any number of other debilitating side effects. This code is known to the State of California to cause cancer, birth defects, and reproductive harm.
Your comment made my week, I've been looking for a way to run Emacs (not remotely) on my iPad Pro since buying it in 2020. To confirm I just downloaded iSH and installed Emacs 27.2 (i586-alpine-linux-musl build) successfully. Now lets see what devilish compromises I need to make on keybindings..
Or just run alpine with openssh and ssh in locally through an iOS client. I'd be curious how running UTM/qemu continuously would affect battery life. Is it 10% or 50% less? 10% would be an acceptable trade off for me.
Sadly, this configuration is almost unusable for hard-core Emacs users, because you can't use extended key combinations (Super, Hyper, etc). For people who have been using Emacs for 25 years, being restricted to a narrow TTY is a non-starter.
I am still hoping that someone will develop a native Emacs version (willing to contribute to a bounty for that!).
It is possible to use Emacs effectively with just M-, C- keybindings (20+ years experience). Super (windows key) is for desktop manipulation, so no loss on iPad. No idea what is hyper--you likely need to have 40+ years of experience to start with the space cadet keyboard https://emacsredux.com/blog/2022/06/01/the-space-cadet-keybo...
I tried using Blink shell for a while and it was ok, but when my iPad screen broke I got a Thinkpad X280 as a replacement. For emacs, programming and a lot of other things it's way better. I've just spent some time in KiCAD this evening, I couldn't do that on an iPad. Plus if something breaks it's way easier to get parts, a new screen is under $100 and I can install it myself without any tools.
It's really impressive what an iPad can do. But this setup requires you to always have a connection, and the author said that he had replaced his laptop with an iPad completely. What do you do if you're offline (or if reception is bad)?
The iPad in the setup described is just running a terminal with SSH. Emacs (and pretty much everything else described in the blog) is running on a remote server running Ubuntu (so I don't know why he even bothers to compile emacs from source).
"Impressive" is not the word I'd use for running a terminal with SSH. Especially since the iPad is likely several times more powerful than the remote Ubuntu server that is actually running emacs.
It is just accessing a VPS via ssh. That is not at all impressive, rather the opposite: you have to connect to another machine because the ipad just cannot do what you want. And you then still have to deal with keyboard issues....
And that is kind of a shame because the screen and form factor are both really nice.
> and for which iPad is an ideal device to work with
But it's not, the opposite actually. Any kind of serious typing requires a proper keyboard. If you have to carry a tablet, which is essentially just a screen, and a keyboard, you might as well just take a laptop and gain the ability to take advantage of a general computing device.
A real keyboard is absolutely necessary for real work, as you say. I think what makes the iPad Pro attractive is that it can have a real, decent keyboard (and trackpad) that is optional depending on your momentary need.
Unless one flies business class, there is often not enough space between seats to comfortably use a traditional laptop. With a tablet, you can at least do something.
The other big thing is that iPad Pros have very high screen brightness. For working outside it's a big benefit, as most portable laptops don't get that bright. The M2 Air and the M* Pros do, but you can't just pull the screen off when you only need a screen.
The best of both worlds, imo, is to have an M2 Air and an iPad Pro. When you're at a desk to do real work, you get the full laptop benefit plus the big iPad Pro as a second monitor. When you're on the daily outing, you take either or depending on your expected need. But you do now have a $5000 setup, which is more than many people would like to spend for a little more flexibility.
If Apple hadn't done such a great job with the M* Air, it would be easier for me to consider some other vendors' 180 degree folding laptops. But the silence of my Air and the amazing battery life are hard to give up.
I’m doing all my development in the cloud for the last two years and never had any latency problems whatsoever.
And it’s not about feature comparison to a laptop, even with a keyboard as MacBook Air M2 is better and cheaper than iPad. But easy content consumption, taking notes, sketching, writing, and many others. It’s just more fun than a heavy laptop. But yes, it’s not for everyone as using it full-time requires a change in personal habits. There’s also not much pro apps, but for now you can produce videos, music, cad designs, web design (figma, adobe, serif), so it’s not so limiting as it was years ago.
I have previously setup a Hetzner server (EU) with openVPN and Code Server, and then I was able to really have the benefits of pretty secure dev environment that was always on, easily accessible, and powerful. Of course it required a connection to use, but the bandwidth requirements were low. Latency requirements were more important, but they weren't as harsh as if you were using a remote desktop.
I, for example, read Books on iPad when there’s no connection, but with a cellular version that isn’t common. Yet, having mosh connection inside Blink is a blessing exactly for that purpose as I’m always going back to my stuff on desktop.
I tried to do the vim on iPad over mosh thing. It was cool, but rarely worked well enough for anything more than a simple tinker-pad. I got it working on airplane wifi which itself was amusing but as far as getting anything done (even leisure-coding) it was total disappointment and frustration.
There are many things I like about it the iPad, particularly the focused modality of single-screen apps (split screen was also too finicky and cramped to be useful). It felt very productive. But make no mistake if you're reading this, an iPad is no substitute for a laptop. Don't waste 1000 bucks like I did to figure that out.
I use an iPad Pro 12.9 inch and a Magic Keyboard as my primary dev machine and I love it. I have large bare metal servers I can connect to where I run vim+tmux using Termius. I also have a desktop, MacBook Pro, and a Thinkpad so I actively choose to use the iPad. The beauty of the iPad is I can tote it around in a small bag everywhere, it has cellular, and when I’m not deving I can pull it off and watch movies, play games, draw using the best tablet out there.
My whole setup can also be used with emacs. I have an emacs config as well and have tested using Eglot etc - basically the same setup as what I have in Vim.
The real power move here is to stick to a terminal based workflow. GUIs lock you down to a machine and a platform. Using a terminal based editor, tmux, etc. allows you to be instantly portable, infinitely flexible, and allows you to work anywhere.
SSH is also the other power tool. I mean SSH is actually insane. If you understand SSH agent forwarding, port forwarding, proxy jumping, you can actually be anywhere with any keys you want, proxy dev as a prod environment, use services on any computer anywhere you want, it’s absolutely incredible what you can do with SSH.
I've tried to run Emacs this way and quickly gave up. There's just too many packages which don't work at all. Also, it's very, very slow. Finally, for it to be truly useful you need to be able to edit all the text files on your iPad with it and setting that up is either very finicky or doesn't work at all (looking at you, Dropbox).
This is slightly embarrassing to admit but when I went on my honeymoon I brought my iPad along so that I wouldn’t code. Still, we had enough relaxation time that at some point I just set up a $5 digital ocean machine in Europe and I was able to code just fine with a cool eMacs split screen setup and an external iPad keyboard.
I've done this as well in the past - worked pretty well with Blink (and a bluetooth Thinkpad keyboard)!
Ultimately I missed some functionality, mostly viewing images, which are essential to my workflow, and not available in the terminal.
Unfortunately at the time there was no remote desktop tool available for iOS (not sure if one exists now) which would be able to display a GUI client on the iPad through X11 forwarding.
Not sure of Terminal emulator capabilities on Apple devices, but thanks to the Sixel standard  and a recent implementation in the form of libsixel , several applications, including emacs very much support image output in terminals.
No way, the timing! Just received a company iPhone and iPad this month for internal work. Never had an Apple device before, so really happy someone tried this.
I have meticulously maintained my .emacs to work in a TTY environment, with custom themes dependent on whether it's GUI emacs or not. (for buffer transparency to work properly) It's finally paying off.