Recent submissions

Comment · 2 months ago
It was 2018. As someone who worked at GitHub during the Microsoft era, I think Microsoft was a pretty reasonable steward of GitHub right up until Copilot started getting popular. After that, leadership stopped investing in the core product and infrastructure and either incentivized people moving into the Copilot org or just fully reorged teams into it regardless.

The load increase from AI is definitely significant, but I think with proper investment they would not be having this many issues.

Comment · 10 months ago
They're charging you for orchestration, log storage, artifact storage, continued development of the runner binary itself and features available to self-hosted machines. What would your own machine do without the runner and service it connects to?
Comment · 1 year ago
Agree. We're using C# in the backend for an MMO, and while I would still like _more_ control over the memory management, there's a ton of options for dropping down to a low level and avoiding the GC.

Stuff like ReadOnlySpan and IMemoryOwner are awesome to have as built-in language concepts.

Comment · 1 year ago
> On top of that, most infra tooling—Grafana, Prometheus, Kubernetes, Terraform—is written in Go, so choosing Go for the backend comes with a ton of advantages over C#.

Not once have I ever had to interact with these technologies in a way that would benefit from my application using the same language. The language they are written in is irrelevant.

Comment · 1 year ago
It's HTTPS. Not only are you getting checksumming from TCP, but any block that had bitflips would fail TLS decryption and would fail the entire transfer. You're not going to see silent corruption in transit.
Comment · 2 years ago
Unless there were some sort of government-provided zero fee digital system for money transfer. Oh well, surely such a thing will never exist.
Comment · 2 years ago
TCP implementations are an abstraction that work 99.99% of the time, but are still vulnerable to two generals when you look close. TCP is implemented in the kernel with a buffer, the kernel responds with ACKs before an application reads the data.

There is no guarantee that the application reads from that buffer (e.g. the process could crash), so the client on the other end believes that the application has received the message even though it hasn't.

The kernel is handling at-least-once delivery with the network boundary and turning it into at-most-once with the process boundary.

Comment · 2 years ago
You are in control. You can disable secure boot, you can install your own keys, you don't have to boot windows, you don't have to play games that demand invasive anti-cheat. Vote with your wallet.

Relying on the community to police cheaters is not an effective strategy for online skill-based matchmaking games. There's a reason game companies spend money and effort on anti-cheat and it's not because they're ignoring cheaper alternatives.

Comment · 2 years ago
Any number between 36 and 64 should be as good!
Comment · 2 years ago
Wow how did I not think of that, surely the pattern of services getting worse to extract more money from users is due to someone saying a dirty word on the internet.
Comment · 2 years ago
I would highly recommend getting a drone simulator off Steam. You can practice the controls and drill them into your fingertips during times when you can't fly the real thing (battery recharging, night time, weather, ...). Most advanced radios allow you to hook them up to the computer so you can fly with the exact same inputs, but a console controller is also acceptable.
Comment · 2 years ago
It's almost like you didn't read the article. Anyone can increment the variable, and both MS and the Linux communities agreed on the solution.

How dare Microsoft operate within the bounds of an agreed-upon industry standard, what a monopoly!

Comment · 2 years ago
I've always wondered where the love for Go comes from because this is exactly my take.
Comment · 2 years ago
Inspecting intermediate representations is trivial by just collecting them into a variable?

More complicated scenarios are exactly what streaming APIs excel at, by treating each step as a single transformation of data. Lack of a proper group by function is one of my classic examples for how Go forces you into an imperative style that's harder to understand at a glance.

Comment · 2 years ago
C# has an official language server and an unofficial one (that unfortunately seems less maintained now). It works just fine with neovim.

Funny enough, it's the efforts of Omnisharp and the VSCode team that has so significantly improved the experience of using various other languages in open source editors due to the creation of LSP.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton