HN user

marwatk

196 karma

me@marcuswatkins.net

Posts3
Comments56
View on HN

Hardware tokens (Yubikeys, etc) are signed by their vendor. They support attestation which allows q site to disallow vendors not in a white list. Some banks (Vanguard was/is one) actually enforce this preventing all but a handful of hardware keys from working with their 2FA.

Regardless, the fact that companies raise their prices in response to shortages is not only defensible but desirable.

Gouging is good. I'm sure they'll be lowered again when supply stabilizes. Any time now.

RedHat spends a lot of time back-porting security updates to older software (e.g. RHEL7). Stream is always only the latest RHEL version, I believe.

The whole point of RHEL is the long term support (the back-porting), which is what they're going to stop publishing.

Go Style 4 years ago

I've read the assertions section a few times and I still don't understand the argument. How is:

  if got == nil {
    t.Errorf("blog post was nil, want not-nil")
  }
Better than
  assert.NotNil(t, got, "blog post")
? They seem to suggest that you lose context, but their "Good" examples are similarly devoid of context.

The bigger issue is that returning the error without wrapping provides zero context and after a crash you're stuck trying to figure out which of a hundred calls to Write was responsible for "write error" or some other equally ambiguous message that's nearly impossible to track down.

So you have to resort to a poor man's stack trace: if err != nil { return fmt.Errorf("my thing: %w", err) }

(We use wrapcheck via golangci-lint to enforce it because not having context for an error has bitten us so many times)

In things like rest APIs you need them quite a bit to distinguish between a value being the zero value and not present at all. Most libraries I've seen have an IntPointer or similar function exposed globally.

This prevents me (a Tello user) from getting the new phone. There are only like 3 US MVNOs that support eSIM. I wonder how long that will remain the case now that the writing is on the wall. I tried Google Fi eSIM a while back prior to traveling and even after working on the phone with Google support they had to ship me a physical SIM to bootstrap the eSIM.

This is addressed in the article:

A critical limitation in the IRS’s ability to audit millionaires is the availability of IRS revenue agents. Only this class of auditors, given sufficient training and experience, are qualified to examine complex tax returns – the types of returns typically filed by high-income individuals and large-scale businesses.

With severe budget constraints, IRS has tended to trade off the replacement of revenue agents with hiring more tax examiners. These certainly are paid less, but they are also less knowledgeable. While revenue agents used to outnumber tax examiners, this has slowly shifted over time.

Tangentially related, I just finished porting wxWabbitemu (TI calculator emulator) to WASM last week [1]. I recently switched to iOS from Android and sorely missed the TI emulator app. I use my TI-85 from high school as my desk calculator and the primary calculator on my phone.

The UI is meant for cell phones, I don't have a max-width set so it looks funky on a full desktop browser.

[1] https://marwatk.github.io/wasmwabbitemu/

What, exactly, are you saying that Go can't do that Java can?

Runtime library addition (plugins) and dependency injection are two big ones. (We can argue the merit separately, but they're not possible in Go)

I think if Java had easily distributable static binaries k8s would have stayed Java (it started out as Java).

Go 1.18 4 years ago

I have an irrational dislike of go because for every X it's missing the community's answer is "you don't need X" (until they decide you do). Package management, generics, sum types, decent error handling, etc. It's an arrogant approach that rubs me the wrong way. It reminds me of "You're holding it wrong" and seems ingrained in the go ethos.

That's not to say I'm not productive in go, but I could be vastly more productive.

I've been working on this but my family is pretty hung up on Google Photos so we're migrating most things there trying to preserve as much as possible. We're doing Google One family. As much as Google has annoyed me with the change, the other options weren't any better (O365, iCloud+, random non-FAANG services)

I'm documenting everything here if you're interested:

https://github.com/marwatk/gsuite-to-gmail/#google-voice

We drop a statically compiled BusyBox binary on images like that as "sh". If we need more we can symlink to it in /tmp at debug time (or just call it directly). It strikes a good balance between slim and debuggable.

Update on Omicron 5 years ago

Isn't Delta vs Alpha a pretty convincing counter argument? It was more transmissible, more severe and better at avoiding acquired immunity.

I suspect it will know where the lane markings are better than human drivers. They are mapped ahead of time and the car can likely localize itself via other landmarks to determine where they are without being able to see them.

The harder part is driving like a human and detecting that a path has been made in the middle of two lanes in heavy snow and not obeying the lines at all.

I'm not sure that follows. That would imply that every kid has already had/been exposed to COVID and that's resulted in those per 100k numbers.

It's definitely not exact to use the infection as the denominator, but I'd argue it's much closer than using the 100k as the denominator. I think I stand by my original post.