VS Code on a Remote Server
github.com
github.com
If there was a way to solve the annoying zoom-in behaviour when the editor or any text field was focused it would be workable.
Seems like a good option for those would-be iPad-using developers if they can easily run other environments.
(FWIW, RStudio server has similar issues, but they switched editor components recently to try and get this working better).
I don’t do much in that way normally, but it might have coaxed me into actually using my data plan a little while on the road!
Was it mainly UI bugs because of the device or did it actually grow sluggish?
Many years ago (around 2011/2?), I remember there was some company that was taking care of emulating native Windows applications in browser, i.e. Notepad++ editor or Serious Sam game but I can't remind the name nor link to archive.is nor any other source...
I splurged on an expensive desktop, while I'm using an old laptop with an i3 processor and 4GB RAM my brother gave me.
RStudio server let me work from the same R sessions, wherever I was, while giving me (high end) desktop performance for running simulations like MCMC, wherever I was -- from R.
I did similarly with Jupyter for Julia, but I always preferred Atom/VS Code. So my work flow, away from home, was using things like remote-ftp and ssh. But I can't seamlessly continue a session I had at home from my laptop. Needless to say, I am excited about this.
https://blog.rstudio.com/2018/10/09/rstudio-1-2-preview-reti...
I like the workflow of working on code in a script, with hotkeys to run code blocks in the REPL and jump to the next block. If I am actively working on code, I'm unlikely to want to run the entire file, but that is the default in Python for VS Code, for example. So in terms of quickly getting comfortable and focusing on the work, reticulate with RStudio worked well for me. I also like it more than Jupyter, unless you're making reports where mixing code with markdown and LaTeX is great -- although RStudio supports this too.
But I've also used a lot more R than Python, and am already comfortable with RStudio. For someone who hasn't used RStudio before, there's probably better options to jump into Python for data analysis.
I brought up RStudio Server in the first place because I find it to be convenient, and even use it at home in place of RStudio Desktop, so that I can resume the same session I left at home remotely on my laptop.
Code-Server looks like the equivalent of RStudio Server. While I still haven't tried code-server (still planning on it -- just haven't yet because I'm not used to downloading and running binaries I find online), it has those same benefits, and much broader language support. I am happy to see it.
My understanding is that much, if not all development at Google works like this. I don’t know their specific policy but a friend works on a similar project internally.
(The other ways of writing code aren't publicly mentioned yet in any talks or papers that I know of, so I'll leave that one alone)
From the 2016 ACM paper.
> Most developers access Piper through a system called Clients in the Cloud, or CitC, which consists of a cloud-based storage backend and a Linux-only FUSE file system. Developers see their workspaces as directories in the file system, including their changes overlaid on top of the full Piper repository
https://m-cacm.acm.org/magazines/2016/7/204032-why-google-st...
1) I may not need to see the data itself during most (or all) of my dev loop, but just see any errors that are thrown.
2) Taken as risk mitigation, data temporarily cached in your browser is less risk than data permanently stored on your laptop, esp. when the threat you are mitigating is lost / stolen laptop.
Why setup your codebase and all the dependencies to run locally on a laptop when you can just spin up an instance on a server that matches your production environment and remote into it to work?
Another would be developing ARM code using native ARM toolchains on a SoC board.
Game Changer? Innovation? This sort of thing has been possible with x-windows for decades.
ssh -XWayland, Pipewire, and H.265 will be a much better general solution to remote desktop access. In the meantime, VSCode via browser is a MUCH better approach than trying to forward it over X over any but the fastest network links.
[1] https://wayland.freedesktop.org/faq.html#heading_toc_j_8
What they're suggesting allow you to do just that.
Definitely not recommended.
With version 4 of their protocol they went closed source, but before that it was released as GPL (don't remember if it was the case of their client/server, IIRC they were proprietary) anyway I think V3 is used in the X2Go[1] client/server. There was also a Goggle client in Python years ago...
I found out today that X2Go version 4.1 is available on Debian Stretch via "backports"; I don't need it at the moment but if I'm bored in the future, I could play with it without much friction...
NoMachine, according to their download page, should support Windos/Mac/Linux on the server front, but I don't have a direct experience.
For end-users, Citrix was just way better, even if more expensive, and there was no compelling reason to switch...
Yes, I evaluated AWS Cloud9 and walked away, because it was obvious that it could never compete with the ecosystems of the major editors. New tools and frameworks will keep coming, and proprietary cloud developer environments won't keep pace.
This project or Theia[1] look much more viable, if they can maintain enough compatibility with VS Code.
Theia remains the furthest along of any that I've seen. I'd love to know if someone thinks another "VSCode in browser, running on a remote server" is along further; there seems to be a new one every other month!
For any Emacs users looking for an equivalent, you can edit a file over ssh like so:
emacs /ssh:username@host.example.com:~/path/to/file.txt
Dired, etc. works like a charm. Best if you have your ssh key installed on the remote box. vim scp://remoteuser@server.tld//absolute/path/to/document
https://vim.fandom.com/wiki/Editing_remote_files_via_scp_in_... cd /ssh:computer.name:
ls
...
Even better, most programs "just work" as if you were on that machine.It’s quite amazing.
It essentially consisted of them sitting me down with an old crappy laptop that kept logging out every few seconds and asked me to write an encrypted reverse proxy from scratch while simultaneously asking unrelated technical questions with a time limit.
I guess to test how people code with distractions and stress? But, yeah I definitely don't want to work anywhere that looks at their potential developers that way.
The way they interview in my work place these days also hard and imo ridiculous but yet they still find someone who meet all the criteria.
Bad because they don't eliminate the stress (as much as possible) and distraction.
If you want to work somewhere full of distractions, crappy hardware, and lots of stress then look for those kinds of interviews.
Nope. If I succeed I’ll just end up on the other side of the table interviewing candidates on weekends...
I think you can reclaim some by running in full screen, but it's not great.
X11 forwarding is just terrible, completely useless over WAN.
sshfs is also a bad solution for coding as it doesn't do inotify properly, so if a file changes on the remote end it doesn't properly notify your local mount of the changes. Even worse, doing tons of small i/o operations (which is exactly what git does) is terribly slow with sshfs over WAN.
Right now I do most of my work in vscode locally and use the "Run on Save" plugin to automatically rsync my code changes to the remote server(s). It's the best solution I have found after trying many things.
vim is great for remote work too. very great in it's own right. But even despite the electron-based UI, the local, "native" experience and plugin ecosystem of VSCode is unmatched IMO.
Theia is about to complete the VS Code extension support. At that point it will be the better option as it is architected to run in remote scenarios from the ground up.
Very useful.
There are other previous attempts at running vscode in the browser - such as Ives Van Hoorne's very popular https://codesanbox.io. Curious if code is being shared between these projects.
Most definitely throw props to the VS Code team for the great architecture. It would have been much more difficult if it wasn't for their foresight.
Exactly what I was looking for to code at my public library, which provides macs but no permissions to install software.
I haven't run into any issues so far, except for the obvious permissions issues which were easy to fix. Extensions all install. I'm sure I'll have more to say about it as I use it more heavily.
I've been running GalliumOS on mine for years and it's superb. It might be the best $350 I ever spent. I wrote a huge review and write up of the process at: https://nickjanetakis.com/blog/transform-a-toshiba-chromeboo...
I would still get the same Chromebook today too if you can find one. That specific model happens to be a perfect storm of massive value / great specs at a low price.
I think this is a good first step, but there's a lot more problems that are harder to solve than what this offers (and are what I'd consider the main problems that need to be solved...)
One example is language services. Integrating something like C++ autocomplete is difficult, and not something they seem to have done (looking at their page). The right way to do it is to run the C++ autocomplete on the server, and have some way of providing those suggestions over the connection to your local editor.
[1] https://en.m.wikipedia.org/wiki/Language_Server_Protocol
No need for integration. Its really up to a C++ plugin as this is just straight up VS Code.
I use a mac for all other development except for this project. I have nothing against windows, just looking to simplify my development workflow across all projects.
You could keep it to .Net core, but this limits integration.
But the answer of RDP is not sarcastic... as it is probably the only way to get what you want.
It would be a nice project to get a Docker service running where users could sign-up and get an instance with persistent storage for their projects.
https://github.com/kstenerud/ubuntu-dev-installer/blob/maste...
FROM codercom/code-server
RUN apt-get update
RUN apt-get -y install curl gnupg
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get -y install nodejsI've almost let go of IntelliJ in favor of this.
The Teradici company license their technology to other vendors: it's what AWS Workspaces uses.
This is probably why it wasn't so good. I've only used the AWS Workspaces client, which handles encryption, and that worked even on 4G connections.