Live data from Hacker News

First Impressions of GitHub Codespaces

aristotlemetadata.com

21–30 of 97 posts

Re: First Impressions of GitHub Codespaces

#21
post #4
post #3

> as a co-founder who is spending less time as a developer, and more time in meetings, writing emails, strategy papers, [...] this is just amazing [...] I’ve been spending a lot of time getting Windows Subsystem for Linux working lol, just ssh into a $3 vps as dev machine, real Ubuntu, real tmux/(n)vim, no setup, no hassle Edit: to be fair, Cloud9 was my entry drug into remote development bringing me to my setup abov…

I respect developers who make that work, but the development experience over SSH (vim, etc) is never as good as local development. You can't use vs code. You have to deal with lag delaying keystrokes. If you download a file and want to copy it into your dev environment you need to SCP it over. If you want to test a network service its nontrivial to point your local browser at the remote machine. If you sleep your lap…

vim once you get into it is as powerful as vscode, and runs just fine in machine without GUI installed.

Funny enough, your description is exactly how I work, except the java part, but then vscode doesn't have an edge with java either.

Re: First Impressions of GitHub Codespaces

#22
post #4
post #3

> as a co-founder who is spending less time as a developer, and more time in meetings, writing emails, strategy papers, [...] this is just amazing [...] I’ve been spending a lot of time getting Windows Subsystem for Linux working lol, just ssh into a $3 vps as dev machine, real Ubuntu, real tmux/(n)vim, no setup, no hassle Edit: to be fair, Cloud9 was my entry drug into remote development bringing me to my setup abov…

I respect developers who make that work, but the development experience over SSH (vim, etc) is never as good as local development. You can't use vs code. You have to deal with lag delaying keystrokes. If you download a file and want to copy it into your dev environment you need to SCP it over. If you want to test a network service its nontrivial to point your local browser at the remote machine. If you sleep your lap…

All of these frankly just sounds like you're unfamiliar with the typical workflow over ssh and have different tooling preferences.

Nothing wrong with that - it's a matter of taste. But personally the reason I often work over ssh connections is that I find the local-only development experience deeply deficient. I package up environments in containers that I can bring up anywhere by dropping in a systemd unit file to pull the images, which means I don't have to worry about whether I have my laptop with me as long as I have ssh access, or about environments changing when I switch laptops. I can also bring those environments up in containers on my laptop, of course. Once I got into the habit of packaging up everything that way it became easy to do, and keep cutting down on the setup effort when I change laptops or make other changes.

The flexibility to be able to access the same environment and editor anywhere is an important reason why I insist on using editors that work in a terminal, because that flexibility is far more important to me than any specific editor features. While most of the time I work locally, when I need to ssh in somewhere, not having to deal with a different environment matters. And ssh vs. entering a container is a close enough equivalent that the same workflows apply for the most part.

Last couple of years I've used my own client-server based editor that holds all the buffers in a separate process (and traps all exceptions and forwards them to the client, and checkpoints its internal state - I have a couple of years worth of open buffers in RAM, but it just adds to ~24M), because I wanted an editor I could get exactly how I wanted in exactly the language I wanted, and it was worth it.

Lag is an issue if on a slow phone connection or something, but you surprisingly quickly get used to working even with ~100ms+ lag, and that's a rare exception. As long as you pick a VPS provider reasonably close 15ms-30ms is not hard. I'm in London, and mostly use Hetzner in Germany, get consistent And if you work on things remotely, you quickly get used to download things straight to the remote machine rather than download and copy over whenever possible, and it usually is possible - wget, curl, lynx and links can take a while to get used to, but it's rare I need to resort to downloading anything locally. Not that it is usually a problem if I do, but of course more dependent on upload speeds.

Pointing a local browser to a remote machine requires no setup, just knowing the IP. If you want an encrypted tunnel, all it takes is a flag to your ssh client to port-forward. First thing I'll do if I need to do work against a remote server regularly is to set up an alias in .ssh/config to pass the right options.

Similarly setting up autossh or similar to automatically re-establish ssh connections (and re-attach to screen or tmux) is a simple one-time affair if you often need to re-attach, but if you run screen or tmux anyway (and I couldn't imagine not doing that on any machines I do actual work on), it's trivial to re-attach to the same state anyway. I run bspwm - a programmable tiling wm, which also means I can easily set up workspaces where it automatically triggers suitable scripts to set up the right windows ssh'd in to the right screen sessions on login, as well.

It's true some of this is extra work, but it's extra work once and you have setups you can copy everywhere, and there's extra work to get used to any new tool, but once you get used to these workflows they are extra-ordinarily flexible, not least because they're also scriptable in ways that allows you to add more and more customised shortcuts for the things you do regularly in a lasting way.

I've carried my current client-side set of configs and convenience-scripts through half a dozen laptops by now.

Re: First Impressions of GitHub Codespaces

#23
post #3

> as a co-founder who is spending less time as a developer, and more time in meetings, writing emails, strategy papers, [...] this is just amazing [...] I’ve been spending a lot of time getting Windows Subsystem for Linux working lol, just ssh into a $3 vps as dev machine, real Ubuntu, real tmux/(n)vim, no setup, no hassle Edit: to be fair, Cloud9 was my entry drug into remote development bringing me to my setup abov…

> I’ve been spending a lot of time getting Windows Subsystem for Linux working I wouldn't spend a minute on it. Why bother with such an abomination when you can just use Linux the way it is intended to be used with less hassle and corporate superstructure that you most likely will never need.

Well if you're actually asking... I do it so I can use Windows tools like Unity (Editor just runs the best on Windows) and good graphics drivers, as well as having access to bash and linux tooling.

Re: First Impressions of GitHub Codespaces

#24
The big draw for me is working on the iPad. If you attach the keyboard it becomes a pretty awesome 'do anything' device, now that you can code on it as well. Can't build native apps yet, but seems like a future opportunity. Web apps / PWA development works great, I can just have the app running in a hovering window / on a quarter of the screen.

Re: First Impressions of GitHub Codespaces

#26
post #15
post #11

Earlier quoted context omitted.

> lol, just ssh into a $3 vps as dev machine, real Ubuntu, real tmux/(n)vim, no setup, no hassle Infamous Dropbox comment: https://news.ycombinator.com/item?id=9224

Yeah but in contrast the idea isn't new, Cloud9 did this ages ago. Github has the advantage that they own a huge dev focused platform. My point is if you deal a bit with code, even as a founder who writes strategy papers all day long, getting into tmux/vim isn't harder than a vscode-like interface, it pays off in the long run

XDrive -> Dropbox

Re: First Impressions of GitHub Codespaces

#27
post #23

Earlier quoted context omitted.

> I’ve been spending a lot of time getting Windows Subsystem for Linux working I wouldn't spend a minute on it. Why bother with such an abomination when you can just use Linux the way it is intended to be used with less hassle and corporate superstructure that you most likely will never need.

Well if you're actually asking... I do it so I can use Windows tools like Unity (Editor just runs the best on Windows) and good graphics drivers, as well as having access to bash and linux tooling.

I didn't see a question mark in there.

If the Unity Editor runs best on Windows then maybe petition the authors to improve it? Otherwise you might end up in a Photoshop/Apple situation and we all know how that ended.

Good graphics drivers are available for Linux, and have been for years.

Access to bash tooling is the norm on any Linux system.

Re: First Impressions of GitHub Codespaces

#28
post #18
post #13

Earlier quoted context omitted.

So it's "no setup" if you've already done all the work to make a portable setup that enables you to do work over ssh, but actually a ton of setup it you haven't.

shouldn't everyone who touched code on a server have some basic tmux/vim config, at least vim? it's no rocket science and doesn't have to be perfect

I’ve been developing for a decade and have never used tmux and have use vim for probably ten hours.

Re: First Impressions of GitHub Codespaces

#29
post #13
post #9

Earlier quoted context omitted.

? click "new vps" at your hoster (60sec), ssh to your new vps, git clone your tmux+nvim config from github (3s), you're ready to go

So it's "no setup" if you've already done all the work to make a portable setup that enables you to do work over ssh, but actually a ton of setup it you haven't.

You've done all the work to commit a setup that already works for you, for the sake of avoiding having to manually create one whenever you need to setup a new machine or vm.

It's one of those things that repays itself by the second install or so.

Re: First Impressions of GitHub Codespaces

#30
post #18

Earlier quoted context omitted.

shouldn't everyone who touched code on a server have some basic tmux/vim config, at least vim? it's no rocket science and doesn't have to be perfect

I’ve been developing for a decade and have never used tmux and have use vim for probably ten hours.

The specific tools are not really the point. The same applies whichever tools you need - sooner or later you'll need to cleanly set up a new machine, at which point committing your configs pays for itself.
Post reply on HN