- A private pilot who departs their local airport without filing a flight plan and flies around for a while.
- A charter jet that departs whenever the passengers show up.
- A medevac helicopter departs a hospital to return to its base. While en route, it is rerouted by dispatch to pick up a patient at a different hospital.
In general, this is actually done: there are defect detectors that are installed along tracks that monitor for several conditions as trains pass over/through them. Once the train has passed, a voice radio message is sent to the train crew.
The article mentions a takedown notice they received from GitHub instructing them on how to remove certain content from their repo. I'm guessing maybe this PR contains some of that content they were asked to remove, and there's a bug in GitHub when rendering a pull request page that references deleted content?
I'd guess that far greater than 99% of the people using (most) products do not have perfectly color calibrated monitors. If it doesn't look good on the developer's "kinda close" monitors, that seems like a decent indication that the design needs to be updated to allow for "rougher tolerances" so to speak.
> 99% of the people using (most) products do not have perfectly color calibrated monitors
I think I would disagree. And I'd disagree on the grounds that a large swath of users mostly use a tablet or smart phone. These devices do tend to have wide color gamut and pretty good color accuracy. A lot of mid-tier and gaming laptops and monitors purely focus FPS and these are the devices coders are often coding on (obviously there are exceptions, especially anyone using an Apple device, but other OEMs too like ASUS who has been putting out 100% DCI-P3, Pantone-validated OLED panels on even mid-range laptops).
Calibration, part II, is important too. Having calibrated monitors for friends that were lower-end, they remark on how big the difference is for them, meaning calibration is still valuable even if the monitor itself wasn't of good quality.
A monitor is an important part of IO and aside from aspect ratio and resolution, developers don't tend to care about the other specs of the monitors. A good calibrated monitor would be like using the same code formatter--everyone is on the same page at least about a specific category potential issues. By eliminating color as a factor, you can now focus on having different arguments.
The problem that I've found is that no other CI/CD provider has feature parity to GitHub Actions & integration with Git. Sure, there's external providers (Travis-CI, Buildkite, etc) but none of them feel like they have the polish of GitHub Actions. GitLab & Azure DevOps also don't compare at all - I've migrated whole organizations off of both because they just don't feel polished / break rather frequently. So I'm personally stuck with GitHub, simply because no other company provides anything better.
GitLab CI is definitely competitive with GitHub Actions. What's the specific feature set you're missing? "Polish" is pretty vague, especially in the context of a post that laments GitHub Actions' poor uptime record.
Not at all true. GH actions are about as simple as they can be and can be replaced by mostly any other commercial service that does the same. Also, any CI/CD tool can integrate with GH.
Gitlab IMHO is definitely in parity, if not better. I've had loads of success with it at a few places now, using basic stuff right up to full Autodevops with custom buildpacks for Elixir/Pheonix.
I have the exact opposite experience. GitHub CI is probably the worst CI I've used so far (except for custom homegrown messes), and Gitlab CI by far the best.
GitLab CI isn't even on the radar. I'd take Actions or Buildkite anyday over the existing offerings. I'd argue the GitLab CI ecosystem is non-existent.
When I talk to Hashicorp or AWS they provide tooling specifically for GitHub Actions. I don't see the same level of vendor commitment when it comes to GitLab. If I'm not going to get vendor commitment I might as well run buildkite which is awesome or even look to something like Tekton for Kubernetes if I'm just doing Kubernetes anyways.
Mine doesn't show the routes. Originally it did, but it was too visually busy. I like the way you did it where the route shows up when you select a vehicle!
Your "state of the art" Go code is not really a good example of how that functionality would be written.
If you want to check for a specific error condition, then just define a value for that error and use `errors.Is` to check for it. This works as you'd expect with wrapping: https://go.dev/play/p/rJIlKKSYn9Q
> With the current go error handling, you need to add the informations yourself in the string, not as a real data structure.
This is completely false! If you want to provide a structured error, then you just need to define a type for it. In your example, a Go programmer might use errors.Is(err, fs.ErrNotExist) and errors.As if they wanted to retrieve the specific file path that does not exist in a strongly-typed way, something like https://go.dev/play/p/hdHPLAVbQuW.
> Delegating error handling to a try/catch block with a typed data structure allows the caller to care for certain type of errors and delegate the others to its own caller. With the current error type in Go, what would you do? parse the error message?
Certainly not! I think there is a misconception that "an error is a string" -- in Go, an error is actually any type that satisfies the error interface, i.e. has an `Error() string` method. It can be any type at all, and have as many other methods as you like in order to provide the functionality you need.
> what if the function is defined in a dependency you have no control over?
There's nothing stopping you from writing `throw new Exception(String.format("file not found: %s", filename))` in languages with exceptions either. In both cases, it would be recognized as poor API design.
Regarding stack traces, Go makes a strong distinction between errors (generally a deviation from the happy path) and panics (a true programming error, e.g. nil pointer dereference, where the program must exit). Errors do not provide stack traces since there is no need for them in a flow control context, panics do provide stack traces for useful debugging information.
- A private pilot who departs their local airport without filing a flight plan and flies around for a while.
- A charter jet that departs whenever the passengers show up.
- A medevac helicopter departs a hospital to return to its base. While en route, it is rerouted by dispatch to pick up a patient at a different hospital.