The subject of this SpaceExploration Overflow question:
Hydrazine? Nasty. Gaseous fluorine? Nasty. Liquid fluorine? Uhhh.....
Using the two together as rocket fuel? Nope. Just nope.
The subject of this SpaceExploration Overflow question:
Hydrazine? Nasty. Gaseous fluorine? Nasty. Liquid fluorine? Uhhh.....
Using the two together as rocket fuel? Nope. Just nope.
So, if Ava Gardner married Danny DeVito, she'd be
Ava Gardner DeVito, Baby.
I heard that from an ironed butterfly.
Courtesy of my uncle.
@DogsB Yeah. Any comparison on SKU basis between Apple and non-Apple is going to be sku'd (sorry not sorry). Because Apple only has a very few SKUs per model year, while non-Apple tends to have a lot more. For example, the iPhones sold at Walmart have the same SKU as the ones sold elsewhere, regardless of carrier, etc, while most other manufacturers differentiate heavily between retailers for a lot of those same things--the exact same model/carrier of a Samsung phone might have one SKU per retailer, plus a couple for those sold on the carriers' sites, etc. This is in part so that "best price" guarantees are mostly worthless.
@Carnage said in 10x, 0x, and -10x engineers:
Looks like scrum worded differently.
I think scrum is an implementation detail for this. There are many different models that all end up with similar results.
You've probably heard of 10x engineers--those who are 10x as productive as "average".
A 0x engineer is one who, while they produce nothing of value, also aren't actively counter-productive.
And then there are -10x engineers. All of this is lead-up to a document on how to properly be one of those types. A document that hits way too close to home for me...
Status: There is a dog somewhere in a neighboring apartment that is howling non-stop. And sounds like a cow that is being slaughtered slowly and painfully.
@Arantor said in 😈 The Evil Ideas thread:
@Benjamin-Hall formatting counts as cell content so that shit gets hydrated. It’s good fun, but at least being XML it is at least a format you can do something with, without getting lost in a maze of binary bullshit.
Yeah. Thing is, if it had been actual cell contents, I'd have been able to see it. Or maybe he'd have been able to see it. It wasn't until I wondered "why the heck is this file so darn big" and extracted the xml that I figured out why it was borking all the imports into other programs (or whatever was going on).
@Arantor said in 😈 The Evil Ideas thread:
@Benjamin-Hall said in 😈 The Evil Ideas thread:
@Arantor said in 😈 The Evil Ideas thread:
@boomzilla and the file won’t even be very big while it does this since it doesn’t store all the intermediate cells along the way.
Unless you do an evil and, after you put a 0 there, change the font style of that last column and row. Then it stored all of that. Ask me how I know... Ok, it wasn't the last last one, but it was a bunch of pages down.
If you change just that one cell, it won’t hydrate everything, but if you fill in a full row and a full column, it behaves badly…
Yeah. And it doesn't even need to be actual visible content. The case I ran into it (a friend was wondering why he couldn't transfer this simple XLSX file to Google sheets (IIRC, I don't remember the exact issue he was having, but it was borked)...Because he'd accidentally selected way too much and changed the font color and style. Had to go in to the underlying xml and edit it by hand to remove all the offending cells.
@Arantor said in 😈 The Evil Ideas thread:
@boomzilla and the file won’t even be very big while it does this since it doesn’t store all the intermediate cells along the way.
Unless you do an evil and, after you put a 0 there, change the font style of that last column and row. Then it stored all of that. Ask me how I know... Ok, it wasn't the last last one, but it was a bunch of pages down.
status: the long dark slightly later than teatime of the soul...
@Zecc said in Driving Anti-Patterns - Necro Edition:
without space to overturn.
That became violent really fast
@Watson said in The Cat Status Thread:
@error said in The Cat Status Thread:
She got the callback, too.
The cat? Or the girl.
@PotatoEngineer that's a common bad case--the too-reluctant adventurer. And yeah, it doesn't work well.
@dcon said in Art Wars: The AI Menace:
@HardwareGeek Just noticed - she's pulling back on the arrow, not the bow string - them's some strong fingers!
She only has one finger on the arrow, sort of, and it's going through the arrow. And don't you normally generate most of the force by pushing out on the stave, not pulling back?
@Arantor whereas Polish laptops come with an Ąlt key.
I thought they came with a kurwa key?
@Mason_Wheeler I sadly identify with this way too much.
Ok, I think all beer is nasty. But this? This is a war crime. Or would be if it didn't have the hallmarks of an AI generated image. But still....
@Arantor said in Things that remind you of WDTWTF members:
@topspin More than meets the eye.
But not in any particularly useful way. Also like WTDWTF members.
@Polygeekery said in The Cooking Thread:
Just stop putting retarded amounts of icing on cupcakes
Especially not very good, also bland icing.
@homoBalkanus said in Things that remind you of WDTWTF members:
@DogsB that's just mouldy bread
You spelled moldy wrong .
And that's perfectly good Dwarfish Battle Bread.
@PleegWat said in The Official Status Thread:
@Benjamin-Hall said in The Official Status Thread:
@Zecc On which axis? Assuming the normal right-handed, z is up configuration, rotating around the z axis has very little effect, while rotating around any vector containing non-trivial x or y components may have different results.
In that case I recommend translating the glass to the sink before rotating it.
That I can agree with 100%. Dr. Pepper is nasty. Just like Mountain Dew, Pepsi, and Coke. And the vast majority of other sodas.
@Zecc On which axis? Assuming the normal right-handed, z is up configuration, rotating around the z axis has very little effect, while rotating around any vector containing non-trivial x or y components may have different results.
In other news, Pikachu's shocked face could not be reached for comment.
@boomzilla said in What, exactly is the basic unit of an api?:
But I'd also wonder why they care about this unit.
To be precise, my questioning here was mostly around understanding what it means to the speaker for a project to have a couple serverless functions with "hundreds of apis". Because that just hits my sense of the English language as wrong--that or I'm fundamentally misunderstanding how certain words are used. It just made me go "huh?"
@HardwareGeek said in WTF Bites:
@Arantor Everything is litigable. Whether you have any chance of winning the litigation is another matter, but you can always file a suit.
And Nintendo usually does.
@Zenith That actually adds yet another meaning for this term for me--
I might say that a linux program "only has a unix-like api", meaning it expects to get commands from a "command line" (or equivalent) and outputs them similarly. Effectively "CLI as API surface".
But then I also talk about the "api surface" of a program, application, or even part of an application. Meaning "all the things I expect someone outside this module/program to be able to poke programmatically."
As a side note, my company's core product has 3 "APIs"--
@Arantor My personal gut feeling is that if I have
/foo
endpoints, all related to each other but only partially (or not at all) to bar
/bar
endpoints, all related to each other but only partially to foo
foo
and bar
objectsI'd say it differently depending on what I'm talking about. I'd never say I had "35 foo apis". I might say "I have 3 main apis, the Foo api, the Bar api, and the WTF-is-wrong API." If I'm in a context where only foo
is relevant, I might talk about sub-groupings of endpoints: "use the foo frobnicator
api for that, not the foo retrofunctor
api for that", talking about those X endpoints over there.
If a class implements 3 well-defined interfaces, I'd think (but probably wouldn't say, because I've done so much web dev that "api" and "HTTP REST-like api" have too much connection in my brain) about the "api surface" for the class being really 4-fold--one for each interface and one for the (inevitable, sadly) bits that don't fit into any of the interface definitions but are still public.
@DogsB said in a Lounge thread (no quotes or links for that reason) something about a project having about X apis.
This raises, for me, a question I've had before--is the unit of "api"
Imagine a simple HTTP "REST" server that has 3 endpoints:
GET /widgets
-> returning some kind of collection of widgets
POST /widgets
, taking in a message body and doing something to the widgets collection with it, probably inserting it into the collection
DELETE /widgets/<id>
, which removes a single widget from the collection.
Is this:
widget
api@PleegWat said in Random thought of the day:
@accalia So rather than "I live in New York" you'd say "I live in 40.723688° N, 73.9987042° W"? Doesn't really roll off the tongue.
But even then you need to establish what the zero-point reference is.
Status I'd forgotten how amazing the Nier: Automata soundtrack was...
@HardwareGeek that's certainly the right angle for that.
@Tsaukpaetra said in The Official Status Thread:
@Benjamin-Hall said in The Official Status Thread:
no one wants to talk to.
You think the emails I receive are from people?
I'm so misanthropic that even computers, spammers, and politicians don't want to talk to me.
My inbox stays at zero unread by ruthless pruning and deletion, mostly. And being a misanthrope who no one wants to talk to.
@Arantor said in The Official Status Thread:
@Benjamin-Hall it’s Friday, it’s gone 5pm, work can fuck off until Monday.
Sadly PST.
@dkf said in The Official Status Thread:
And CMake is just the worst thing ever. It seems to be designed to sabotage every platform somehow
From my very limited interactions with it, I completely concur. Although the race for "worst thing ever" is really heavily over-subscribed with contestants these days...
@HardwareGeek said in The Official Funny Stuff Thread™:
@dcon said in The Official Funny Stuff Thread™:
@Watson said in The Official Funny Stuff Thread™:
@dangeRuss said in The Official Funny Stuff Thread™:
Isn't that what the army is? The marines?
No, the U.S. Navy is so large that it has its own army. That's the Marines.
(And the Marine Corps in turn is so large it has its own air force.)
Don't forget, the Navy has its own air force too.
So does the Army. And the Air Force used to be part of the Army. Basically, every branch of the US military has its own aviation section to support its primary mission (except, of course, the Air Force, for which aviation is the primary mission).
What about the Space Force?
@Benjamin-Hall said in The absolute state of web storage protocols:
Yeah, except we're dropping the sockets because they don't really serve much of a purpose except to get in the way. There are a lot of really stupid abstractions here that make it way more painful to disentangle, but we're trying to move in that direction. If product lets us...
Digging in further...it turns out the socket implementation isn't actually some battle-tested websocket library. No, like SO MANY #@%#$% things in this POS code, it's a hand-rolled, pure javascript thing that the R&D guys threw together and tried to make "compatible" with Express.js out of convenience. Basically, I see zero reason this was ever done over sockets in the first place.
From the patch notes of a game I play, published by a Canadian team:
Fixed the Coildrives in the Orb Vallis having erratic pathing, often leading them to drive into walls and drift from side to side. So basically, what you see on the road during Canadian winters.
@Bulb said in The absolute state of web storage protocols:
@Benjamin-Hall said in The absolute state of web storage protocols:
Really, the workers could basically manage themselves, as long as they can ask someone for a list of channels they're supposed to handle and be able to ask "is this person valid". And those two bits of state are already stored very much in a database, so any number of replicas could respond to those requests without any need to "manage" specific nodes.
If the reconnect logic stored the “waiting for the client to reconnect since X” status in the shared storage, and then the redistribution read that from the shared state, I think it should be refactorable to handle both the client reconnecting, in the timeout, via another server node, and also redistributing the channels to workers connected to different server node at the time (with proper transaction handling).
Probably. In the long term, we're moving away from this particular server code because it does lots of screwy things (never trust code you get from the R&D folks, especially when they didn't actually have requirements and made it "flexible"...by which we mean "over-abstracted but not actually flexible in any useful way, just hard to deal with"). When we do, the sockets aren't staying as such.
The one concern is needing to know if a node has gone AWOL (in which case the responsibility for those channels needs to go somewhere else). But that can be handled via a more dedicated heartbeat mechanism or via an outward ping.
Outward ping only checks the computer, but not the service, so a heartbeat is definitely preferable.
I probably used the wrong term. I meant that the workers would contact the server saying "hey, I'm still alive" instead of the server trying to contact the worker to determine that.
Or we could go crazy and allow multicast UDP within a swarm of worker nodes, so each client wouldn't have to be on the same worker as others in that same voice channel. But that increases latency, which is one of our big selling points.
That's probably more refactoring than worth it anyway.
Likely. But sounds like the sort of thing our CTO (aka architecture astronaut #1) would insist on.
And yes, downtime is a big deal. Basically, we're capped at 4 9s uptime if nothing goes wrong just by deploying once per week. And for real-time audio supplementing (not entirely replacing) first-responder radio communications...that's not particularly great.
That makes it sound like it'd be worth considering. The sockets themselves can probably stay—the code is hairy, but it already works—the key is storing the state “waiting for the worker since X” in the shared storage so other server can take over, and adding some code to the worker that will try different servers from the pool when the connection breaks.
Yeah, except we're dropping the sockets because they don't really serve much of a purpose except to get in the way. There are a lot of really stupid abstractions here that make it way more painful to disentangle, but we're trying to move in that direction. If product lets us...
@sebastian-galczynski At least it was too large, so you could cut it down. Too small is much more of a pain to fix.