Also I feel like Google had attracted some idealistic people who are surprised when real life doesn't conform to their expectations, then their reaction is disproportionate and overly centered on the work environment.
3,384 karma · joined January 15, 2012
More about me: http://bradconte.com/about
My reading list: * tptacek * sdevlin * NateLawson * sweis * cryptbe * moxie * pbsd * cperciva * daeken * tytso * andrewbinstock (editor of drdobbs) * FiloSottile * matttproud
Also I feel like Google had attracted some idealistic people who are surprised when real life doesn't conform to their expectations, then their reaction is disproportionate and overly centered on the work environment.
This a reasonable thing to outsource: let someone qualified build their own.
What's funny is that this is pretty much what ReCaptcha v3 is. Asking how "authentic" the Google cookie looks.
I would believe it.
From what I know, trust is a fickle, and irrational attribute. It places disproportionate value on first hand sensory input, and it isn't nearly a commutative as would seem reasonable.
Writing code that can handle both old and new schema is admittedly annoying. But it's safe and forces a thoughtful rollout.
Even data mutations can be rolled back. Dual storage writes, snapshots, etc.
The goal isn't to eliminate risk, it's to reduce the risk and make it calculated and bounded. Heck, having a rollback plan that says "we'll restore a snapshot and lose X minutes worth of data mutations" is fine in some cases. It's tradeoffs.
(I've seen a case where literally adding a column caused an outage, because the presence of the column triggered a new code path. Rollback was to delete the column.)
Couldn't find a resume on her site to confirm it.
> Item: Rollbacks need to be possible
This is the dirty secret to keeping life as an SRE unexciting. If you can't roll it back, re-engineer it with the dev team until you can. When there's no alternative, you find one anyway.
(When you really and truly cross-my-heart-and-hope-to-die can't re-engineer around it fully, isolate the the non-rollbackable pieces, break them into small pieces, and deploy them in isolation. That way if you're going to break something, you break as little as possible and you know exactly where the problem is.)
Try having a postmortem, even informal, for every rollback. If you were confident enough to push to prod, but didn't work, figure out why that happened and what you can do to avoid it next time.
> Item: New states (enums) need to be forward compatible
Our internal Protobuf style guides strongly encourage this. In face, some of the most backward-compatible-breaking features of protobuf v2 were changed for v3.
> Item: more than one person should be able to ship a given binary.
Easy to take this one for granted when it's true, but it 100% needs to be true. Also includes:
* ACLs need to be wide enough that multiple people can perform every canonical step.
* Release logic/scripts needs to be accessible. That includes "that one" script "that guy" runs during the push that "is kind of a hack, I'll fix it later". Check. It. In. Anyway.
* Release process needs to be understood by multiple people. Doesn't matter if they can perform the release if they don't know how to do it.
> Item: if one of our systems emits something, and another one of our systems can't consume it, that's an error, even if the consumer is running on someone's cell phone far far away.
Easy first step is to monitor 4xx response codes (or some RPC equivalent). I've rolled back releases because of an uptick in 4xxs. Even better is to get feedback from the clients. Having a client->server logging endpoint is one option.
And if a release broke a client, rollback and see the first point. Postmortem should include why it wasn't caught in smoke/integration testing.
I so badly wish I could buy a license to get a specific piece of content, get a copy to play on my own computer, then also have the ability to "upload" (aka, unlock) that content on a cloud streaming service of my choice.
I've made so many mistakes because I couldn't tell something overflowed. The scrollbar doesn't have to be big and ugly but it should still be present. At a minimum give a visual indicator that there's more content and then I know to try scrolling to see if it works.
It's a stupid UX fad.
I didn't imply every skeptic was donning tinfoil, but I saw a couple claims here and elsewhere in that range.
The default setting is to allow e-mails to be sent confidentially, not to actually send them confidentially. Seems like a typical default. Here's a new feature, by default you're allowed to use it unless domain admins want to disable it.
This is aimed at Enterprise, not individuals looking for a Signal-like messaging platform.
"Confidential" e-mail implementations already exist in many places. Plenty of messages need to be e-mailed but the contents can't be inlined due to compliance. eg, medical systems send e-mail updates that are just a plain message but the e-mail is just a link to an auth portal and behind that is the actual message. Not great user experience.
But here, is G-Mail already has Google-grade auth and the same auth as Google Vault, so the document can be stored in Vault and in the e-mail the link and payload itself can be automatically swapped when sending or receiving. Smother user experience. eg, vertical product integration.
This is clearly targeted at Enterprise (G Suite, plus half the questions are about compliance). By default, Apps users are able to use this feature, although it can be disabled at the domain level by admins. It is not the actual sending of e-mails in this manner that's the default.
Put another way: If you don't see the point of the feature, you aren't the target audience. It's not trying to be Signal.
I just don't smell anything nefarious here.
Disclaimer: Am Googler, but unrelated to the project. Just heard about it now and have enough experience in this area that the feature's context seemed clear to me.
Not every recommender is a moral agent. Auto-suggest and conspiracy videos aren't the same thing.
And technically, yes, there's not such thing as a non-editorialized recommender, but this feels like a pointless nit since there's a world of difference between trying to be a reflection vs intentionally not reflecting based on a human-made moral judgement.
What even is the moral editorialization in auto-suggest? It's obvious we don't want conspiracy videos pushed front and center of educational topics, but how on earth do you balance the number of "yes" vs "no"? That's clearly going to be a completely made up number. If you don't have a clear problem to fight, it's probably best to not editorialize just to say you did.
Whether this is the right decision for this specific issue is a different story. But the fact that they aren't checking boxes for the sake of it is evidence of this style WAI.
An untrue claim[0] that's been copy-pasted for a while. It has happened twice recently and three times before that, stop making it sound like it's unprecedented. None happened in the 1900s, so it's very rare (well, an 11% occurrence rate now) but not more than in the rest of history.
[0] https://en.wikipedia.org/wiki/United_States_presidential_ele...
Their wireless audio protocol is bad and they should feel bad.
> Sometimes I run into a group that I want to be more involved with that organizes on Facebook. When I mention I want to be involved but am not on Facebook, there is usually sympathy and a response that there are others interested in the group which are not on Facebook, either. Many organizations are multi-platform to be inclusive, and more organizations if more people spoke up to request a non-Facebook option.
I have not found this to be the case for casual (eg, meetup of strangers) or small (< 20) groups. They pick one coordination method and it's take it or leave it. Non-FB solutions have a strong drawback of some sort (lack of adoption, complexity of use, etc). Facebook groups and events are just super easy to set up and blast out.
I've been unable to avoid FB's groups and messaging. Adoption is just too high and so many people just can't be bothered to use something else.