I used to work for an ad network (BSA, Carbon Ads, etc) that does not intrusively track and believes in the effectiveness of quality one-ad-per-page. Try contacting @toddo on twitter or email me (in profile) and I'll forward it over.
Anyhow, I'd love to see something like this. I've switched to DDG but often have to reach for Google if I can't find relevant results.
I was actually pointing out the contradiction between your supposed standard and your behavior. But fair enough, it was phrased as a question. Which, it turns out, you did not actually answer, so if you were trying to clarify things I don't think you succeeded.
The real issue here is that it is not immediately obvious that this is actually an interface - one expects the second `err` to be *FormatError due to the signature - it happens to implement the error interface so it goes unnoticed.
Shadowing in a different scope allows it to work properly as well.
I admit that I've never actually run in to this issue in practice as I generally return custom errors as `error`, but I can see why it would confuse someone.
Over the past 4 years, I've bought two System76 machines (FD: work paid for them). Each time, I maxed out what I was able to get from them.
Initially I had wanted to support a company that sells Linux-supported devices.
My first machine - a Gazelle (laptop) - had numerous issues on arrival. It'd randomly crash. Keypresses would get stuck and repeat. It was annoying. After sending it in, I still had random issues until I installed Debian, presumably it was a kernel issue - but for it to be shipped like that..was just bizarre.
My newest machine, I purchased a Leopard (desktop). It had been a few years, and I figured perhaps they'd gotten better at things.
I was wrong. They shipped this machine, knowing full well how long it takes to boot - again, due to some kind of kernel issue - it took over 2 minutes to go from cold boot -> login screen, USB devices would randomly not work, just weird stuff.. I put in a ticket, but nothing ever came of it. I didn't want to send this machine back like I had sent my laptop (TWICE), so I ended up switching OSes again, using an updated kernel, and things seem fine.
I get that they don't really have control over the kernel that comes with the OS they ship. I'm not naive. It's just a bit silly that they'd be comfortable shipping a new machine with those kinds of issues to the point where the machine is either unusable or stuff randomly stops working.
As far as the "physical quality" of the machines go, I'm still happy with both of them. They are well-put-together machines, IMO.
However, I know that my next machine is NOT going to be from System76. It's significantly cheaper to just get a nice Dell or something.
I bought a System 76 desktop a couple years ago. I had extra $$ and like you, I wanted to support a company selling Linux devices.
Previously, I had used Ubuntu on multiple laptops that did not have "hand picked" hardware. I was used to having to fix things randomly after updates and just running into hardware issues from time to time.
I assumed that the selling point of System 76 was that because they chose the hardware with Linux in mind these things wouldn't happen.
Maybe it's a QA thing but I found that I was running into just as many issues on my Sys76 machine as my old laptop. Manageable, but really puts the value prop into question. It became difficult to justify the purchase over building my own PC or buying a pre-built machine from someone else.
Absolutely a QA thing. I don't see how either of the devices I purchased got a seal of approval to go out to a customer.
I just don't see why I'd pay _extra_ for something I'm going to need to reconfigure myself, anyway. Might as well buy parts or generic prebuild and throw a better distribution on it.
Example: Recently built a small service that responds to requests and walks various files looking for data.
The service can be asked to unload (close) the file, but it's hard to say whether it's in-use at the time without some kind of reference count to current requests using the file.