Live data from Hacker News

GitHub’s engineering team has moved to Codespaces

github.blog

181–190 of 704 posts

Re: GitHub’s engineering team has moved to Codespaces

#181
post #127
post #38

Earlier quoted context omitted.

(googler, opinions are my own). Google allows for normal desktop IDEs, plus having a web based one. The funny thing is, many people move to the web based one because it is so good. But Google is also unique in how piper/citc[0] (our source control) works. It's effectively designed for web/cloud based style development, so the workflow for web based dev and desktop dev are effectively the same. So web dev can work, bu…

Interesting, can you elaborate a bit on "cloud-based" development vs for example a traditional workflow of git and a central repo?

Google has a monorepo in which nearly all of the company's code is stored. The monorepo uses a custom implementation of Perforce. No personal computer could download a whole copy of the repo. So for that reason people need to check out a virtual/cloud copy of the repo in order to do work. This has the added benefit (for google) of not allowing individuals to have code on their device which is bad if the employee loses their device or has it stolen.

There are some exceptions for some teams (like Chrome). And when I was there exceptions for people who did mobile (iOS/Android) development, though Google was moving pretty aggressively towards a world where even iOS code wasn't allowed on the employee's device.

Re: GitHub’s engineering team has moved to Codespaces

#182
post #2

Unpopular opinion with a lot of my peers, but "fragile local dev environment" is usually a sign of an unwieldy, tightly coupled codebase with a lot of parts, scripts, etc. Trying to hide that complexity with docker or codespaces, etc is just a bandaid in many cases vs dealing with the root issues.

In my experience, even with simple flask projects, I've found just the difference between Ubuntu and Arch to be irritating: 1. Ubuntu seems to have trouble with psycopg2 while Arch does not, so I often use psycopg2-bin just so Ubuntu developers can easily install the requirements (learned the hard way). 2. Some older (supported) editions of Ubuntu create extra lines in `pip freeze`, including `pkg-resource=0.0.0` whi…

> difference between Ubuntu and Arch

The difference between Debian and Ubuntu is enough to be a nuisance.

The Dell XPS laptop my employer provided cannot boot Debian and I'm stuck with Ubuntu. Same packages, maybe a version or two are more recent right? Nope. Aside from the egregious transparent snap installs when using apt (which can't uninstall snaps, thanks Canonical), there's a lot of minute details that amount to quite a time loss (that and having a laptop with no USB/RJ45/HDMI ports). Simple scripts that work on one OS and not the other, font scaling and rendering making my standard 1080p screen unreadable, absurd default configuration that makes WiFi unusable, etc.

Glad I don't have to manage the same oddities for the actual work I do. Everything is simple once it's all Dockerized.

But that's not true either. I had a different problem setting up the repository with every developer and they were all using the same OS. No repo in sources.list (how?), no docker group created when re/installing the docker package (why?), all kind of weird stuff happening.

So you tell me there's a way to have all devs working and testing on the same environment? That's great! But it is _not_ worth handing over everything to Microsoft or any other third party.

I'll never trust GitHub, GitLab, or any other forge with business-critial stuff. Host your own code, commit your dependencies, have your build script work locally. I've deployed through Git{Hub,Lab} outages and the leftpad fiasco, and the cost was insignificant. Host a mirror there for cheap if you want, that's what I do for my public projects (but after the copilot debacle how can I trust GitHub with anything?).

And what if you're a remote team? You can't rely on the internet. My ISP was kind enough to remind me of this when I got my very first outage with them one hour before starting at my current company.

As valuable a product GitHub is and Coderspace may be, it is a step closer to the Minitel 2.0 where everything is centralized and controlled by a single entity. It's not the internet, it's MSN at best.

Re: GitHub’s engineering team has moved to Codespaces

#183
post #93

Earlier quoted context omitted.

Don't most IDE's have the ability to edit remote files over SSH? I know VSCode can, and I remember reading a comment from an emacs user doing that. It looks like IntelliJ can do that too, though it seems to edit local copies of files and sync over SSH. There's also SSHFS, though I don't know how good of an experience that is. It can be a pain to set up, but is it more of a pain than setting up a dev environment the o…

Whether or not the editor itself supports it, MacOS, Linux, and Windows can all run sshfs.

An IDE needs to be able to do more than just edit files, though - e.g. for debugging, it needs to know how to run the code on the remote box, and it'll be different from local.

Re: GitHub’s engineering team has moved to Codespaces

#184

Earlier quoted context omitted.

The difference is that you don't pay a monthly subscription to use a garbage collector.

Garbage-collection-as-a-service would get a ton of venture capital though.

At patent office right now with this. My attorney said will go through the USPO like butter.

Re: GitHub’s engineering team has moved to Codespaces

#186
As much as I’d like to try this, the blog post reads as « our dev environment was so heavy, our git repository so old that we put everything in the cloud even your dev env ».

If you’re building a new startup, you don’t need this. Use docker-compose.

The current latest full stack project I built requires a single command: npm run dev. Launches docker-compose (PostgreSQL), Next.js and ngrok (expose/webhooks).

And it takes 10 minutes to setup.

Not everybody has the requirements of GitHub!

Still, I’m sure I’ll use this in a year :)

Re: GitHub’s engineering team has moved to Codespaces

#187

I wonder why they're not telling the security & compliance side of the story here. Getting rid of local development means they have to worry a lot less about what's going on on their engineers' workstations. They've reduced them to dumb clients; any code going in or out of the repository has to be created, or at least pass through, a VM that GitHub controls. That lets them move the security boundary; I wouldn't be su…

> Getting rid of local development means they have to worry a lot less about what's going on on their engineers' workstations.

Wait, what?!?

No, it doesn't. Their engineers' workstation software can read or edit their code just as easily as their engineers can. Going into the cloud just adds another liability, it doesn't take any one away.

Re: GitHub’s engineering team has moved to Codespaces

#188
> How far we have come from the hand oiling of early motorcycles is indicated by the fact that some of the current Mercedes models do not even have a dipstick. This serves nicely as an index of the shift in our relationship to machines. If the oil level should get low, there is a very general exhortation that appears on a screen: “Service Required.” Lubrication has been recast, for the user, in the frictionless terms of the electronic device. In those terms, lubrication has no rationale, and ceases to be an object of active concern for anyone but the service technician. In a sense, this increases the freedom of the Mercedes user. He has gained a kind of independence by not having to futz around with dipsticks and dirty rags.

> But in another sense, it makes him more dependent. The burden of paying attention to his oil level he has outsourced to another, and the price he pays for this disburdenment is that he is entangled in a more minute, all-embracing, one might almost say maternal relationship with . . . what? Not with the service technician at the dealership, at least not directly, as there are layers of bureaucracy that intervene. Between driver and service tech lie corporate entities to which we attribute personhood only in the legal sense, as an abstraction: the dealership that employs the technician; Daimler AG, Stuttgart, Germany, who hold the service plan and warranty on their balance sheet; and finally Mercedes shareholders, unknown to one another, who collectively dissipate the financial risk of your engine running low on oil. There are now layers of collectivized, absentee interest in your motor’s oil level, and no single person is responsible for it. If we understand this under the rubric of “globalization,” we see that the tentacles of that wondrous animal reach down into things that were once unambiguously our own: the amount of oil in a man’s crankcase.

> It used to be that, in addition to a dipstick, you had also a very crude interface, simpler but no different conceptually from the sophisticated interface of the new Mercedes. It was called an “idiot light.” One can be sure that the current system is not referred to in the Mercedes owner’s manual as the “idiot system,” as the harsh “judgment carried by that term no longer makes any sense to us. By some inscrutable cultural logic, idiocy gets recast as something desirable.

> It is important to understand that there has been no “high-tech” development such that it is no longer important to stay on top of oil consumption and leakage. With enough miles, oil is still consumed and will still leak; running low on oil will still trash the motor. There is nothing magical about the Mercedes, though such a superstition is encouraged by the absence of a dipstick. The facts of physics have not changed; what has changed is the place of those facts in our consciousness, and therewith the basic character of material culture.

Shop Class as Soulcraft: An Inquiry Into the Value of Work by Matthew B. Crawford

Re: GitHub’s engineering team has moved to Codespaces

#189
post #85
post #40

Just a couple of years ago some kid gained access to every repo on github. Now githubs code is going to be developed on an online platform, which works by sharing code others have uploaded. I have a feeling that this is not a good recipe.

>Just a couple of years ago some kid gained access to every repo on github. Very curious to know more about this. What exactly are you talking about? Closest thing I could find is this[0], but you said "couple of years ago". [0] https://www.zdnet.com/article/hacker-gains-access-to-a-small...

No, not that.

Another kid, got access to every single private github repo.

It was on hackernews, he declared it, made a write up about it and got given a pretty small bounty from github. Google it, otherwise I guess the net was scrubbed of it. I follow him on twitter but yeah just google more and you should find out all about it.

I was always surprised it wasn't a much bigger deal. Basically since then I think any company ( most that I work for ) are clinically insane to upload their proprietary code to the site.

On a related note - was it not just a couple of weeks ago people were concerned the codespaces system is using other peoples proprietary code? ( I havent kept up to that on that one so not sure if its still an issue)

Re: GitHub’s engineering team has moved to Codespaces

#190

> "So we moved to 32 core, 64 GB RAM VMs. By changing a single line of configuration, we upgraded every engineer’s machine." On GitHub, that instance type is $2.88/hour or $2,073 monthly per developer for a single instance. (Granted, that's running 24/7 but still - wow, that's expensive for a single instance)

That pricing is a ~70% markup over standard Azure rates.

Companies typically buy laptops with an assumed 3 year lifespan; so, let's assume a high-end $3000 laptop, that would be ~$83/month. Of course, you need a computer to access Github Codespaces, so this isn't saving all of that money. Maybe companies can cut some costs by buying cheaper laptops?

Or if you want a more apples-to-apples; a Lenovo ThinkStation P620 runs ~$2800 for 32 threads and 64gb memory. DIY would also land somewhere around that $3K mark; a Threadripper 2950x (32 thread) is $1100; 64gb of memory is around $250.

This, of course, is the most expensive option they have; the more standard option would be 4/8; for which you would pay ~$85/mo (all the time, normal work hours), for the privilege of a machine that's far less powerful than any laptop any of our developers have. For god's sake, my M1 MacBook Air is an 8/16, with four of those cores far more powerful than any three year old Xeon Azure has running. And it was like $1400.

I understand maintaining dev machines isn't the easiest thing in the world. I have never once worked anywhere where it was such a problem that the company would justify tens of thousands of dollars in spend. Because it kind of is one-or-the-other; time invested in making Github Codespaces work for your company is time not invested in maintaining local dev environments. And Github's ideal end-state is companies totally rely on Codespaces, so the local dev environments languish.

Its not worth it.

Post reply on HN