Hacker News new | ask | show | jobs
by wincent 1773 days ago
GitHub isn't forcing anybody to use a web IDE. The most broadly used access interface is VSCode. Then there are heretics like me who choose to ssh in so we can use Vim. This is described in the article.
4 comments

How is the latency btw? I SSH to a beefy box that sits under my table and sometimes I hate the latency of running emacsclient over X. But I am not using VIM and I don't use terminal emacs because of clipboard integration betweeen remote emacs and local desktop. I know there are hacks to make clipboard sync between local and remote emacs sessions without running emacs over X11 forwarding, but I always found those to be janky..
It's very good. The rendering and inputs are done locally. Completion, compilation, linting, and other things are done remotely but they are not instant anyway so the network latency is not really noticeable.

I use Github Codespaces with a Vscode and vscode-neovim. Neovim is running locally.

I’ve always thought that remoting to edit text files using X or RDP is doing at the wrong level of abstraction.

VSCode editing over SSH works really well in contrast. I think Sublime has a plugin that ain’t bad. Emacs (TRAMP) is probably the worse of the three :/.

Terminal Vim or Emacs over Mosh is a pretty good option too.

not op, but amazon uses "cloud desktops" with SSH access company wide, and no one really has latency issues there. So its def something supported at some companies...

I don't know how many people would want to use graphic applications over the network however, seems like it would be janky

Do you have to drag your .vimrc and plugins along every time you set up a new code space? My vim setup is pretty bespoke, it would be annoying to have to set that up every time.
You can have it clone your dotfiles repo automatically and run a set-up script:

https://docs.github.com/en/codespaces/customizing-your-codes...

I also have a very bespoke dotfiles config that predates Codespaces (https://github.com/wincent/wincent), so I made a thin wrapper around it that makes it work (https://github.com/wincent/dotfiles). For people with less complicated set-ups (ie. basically the entire universe), it is pretty straightforward.

It's totally worth taking the time to sync your dotfiles via git. There's a little bit of maintenance involved whenever you make a config change on one system that you want to propagate elsewhere, but it pays off.

Personally, I just `git init && git remote add ...` in my home directory and have a .gitignore that ignores everything by default, so I have to `git add -f` whenever I want to sync a config. Submodules work well for `.vim/bundle/the-plugin`. It's also nice for syncing important zsh customizations like this one: https://github.com/MatrixManAtYrService/home2/blob/master/.z...

There are also other strategies: https://dotfiles.github.io/

I once had a setup where I could just clone a repository and run a script to get my dotfiles set up. For Vim, I would just need to then run the command to install the plugins and that was that.

Edit: Here is the CLI program that helped me set this up:

https://github.com/thoughtbot/rcm

Can you install RDP/VNC and just remote into it like that? Then get sudo access and install whatever you want on it?
Well, it's a Linux VM/container, so while you could do that, I don't see why you would, I think all a dev would want to do in a dev container would be command-line in nature.
It's not just a dev container, it's meant to be your workstation, with the code files being stored in it and not on your personal machine. So if I want to install IntelliJ, Beyond Compare, etc. Or even if I don't want to bother with setting up tunnels and port forwarding for testing my web app locally, I could use Firefox in the VM, etc.

Seems it would solve all the issues, which are specifically that it mostly works only with VSCode or terminal apps, but with a remoting solution you could run anything you'd want.

How does setting up a desktop IDE work?
Currently, VS Code is the primary method of connection to each Codespace, and we do not support other editors officially.

If you’re looking to connect via SSH with your desktop IDE, we do have a workaround here: https://github.com/microsoft/vscode-dev-containers/blob/main... -- and I use this regularly for Jupyter Notebooks. :)

This (quick to provision vms of any size you want with your code base etc) for jupyter sounds like a colab and mode killer...the way both of those make it hard to actually check in code leads to a ton of copy and paste code etc. You all should really advertise this capability.
So if I want to use IntelliJ or RubyMine, is there a workaround?
Yeah, go work somewhere else :))))) /s

Jetbrains recently added remote capabilities to IntelliJ, I'm hoping it's going to be usable with codespaces soon.