Show newer

electronics, horrible website malfunctions 

okay, okay, I promise to not use this in any real products

Emily boosted

Fun fact: the element cobalt is literally named after kobolds.

Sitting in a security training for work, presenter had a slide with a letter he'd received, with his address blurred out. So I DM'd him (a hash of) his own address, because how can I resist that challenge?

Protip: you also have to censor the barcode under it.

tonight's adventure: needing some parts with 10mm holes in them and realizing I do not have a single tool that can make 10mm holes.

I don't have anywhere near a full set of metric drills (but I should), and definitely don't have anywhere near this size, so on to the inchy drills: 1/2in is too big, 3/8in is too small, but it's ~9.5mm so what if I do that and then widen it a bit with a boring bar on the la-- nope, boring bar is more than 10mm wide. So I wound up doing a ridiculous thing involving rolled up bits of coarse sandpaper.

One day I will amass enough tools to not have this problem anymore.

I suspect the answer is no, because asking every host to implement both USB and PCIe seems more reasonable than asking every card to implement them.

Show thread

Why are specs hidden behind paywalls D: I just want the answer to one silly question, I don't want to form a corporation and join the PCI-SIG because that sounds both expensive and exhausting.

Anyway, M.2 has a bunch of unrelated protocols stuffed into one connector. Is the host required to implement all of them, or can it just say "nope, I'm a tiny microcontroller pretending to be a computer, I speak USB and I will ignore anything on the PCIe lanes"?

okay, yeah, the thing where you send a DM and it shows up on your home timeline is *extremely weird and panic-inducing*

amazon being bad 

> your thing will arrive Sunday
> your thing will arrive by 8pm today
> your thing will arrive by 10pm today
> your thing hasn't actually shipped yet, but no worries, we won't charge you until it does (but we already did when we claimed we shipped it)

a bunch of people were talking about the antikythera mechanism today but as far as I can tell kythera did nothing to deserve this

nerd confusing herself 

"I'll make my shell prompts different colors depending on whether they're local or remote! This way I don't have to have the hostname in the prompt"

*sshs from her phone into her desktop, immediately gets confused because it's not the local color*

Mostly. Probably still *should* quote everything like it's JSON, otherwise you'll still eventually get bitten by the thing where `yes: no` parses as `{ "true": false }`.

Show thread

I'd heard that YAML was a mostly-superset of JSON, but I hadn't fully considered the implications of that until now:

It's actually mostly usable if you just wrap the entire file in a pair of curly braces and pretend it's JSON-but-the-keys-don't-need-to-be-quoted.

classism; conferences are actively bad 

Since this is on my mind now: in-person conferences are inherently classist and no amount of ~ inclusiveness ~ will change that. All the attendees are going to be people who can afford to travel (or whose employers will sponsor it, which is so correlated that it's not worth considering separately).

No, having an in-person conference and posting videos online doesn't count, because I know your next thing is going to be "but networking~" and that's just you admitting you want to meet fellow well-off people with the explicit goal of giving each other preferential treatment in the future. If you were doing it for the inclusiveness you'd just skip the conference part and post the thing online.

carbon emissions, and humans utterly failing at reducing them

So the IETF, the people who handle internet standards and stuff, are thinking about how to offset the carbon emissions from people flying to their meetings.

It'd be really neat if the *Internet* Engineering Task Force had some sort of thing to communicate without flying to other places. Like, a global communication network of some sort. Someone should go build that.

I'll probably just slap the CNC spindle on it and move on, and just deal with not being able to use any tools bigger than a 1/4in shaft, and upgrade to a Real Mill one day when I have a garage workshop and not a basement workshop. (The machines I would want to upgrade to are also machines I do not want to try to carry down the stairs.)

I am still curious what went wrong with this one, though. There are entirely too many concentric bearings in there to have that much runout.

Show thread

DIY mill update: I should not have tried to DIY a mill.

(spun up attempt 2 at building a spindle tonight, and somehow it's even more absurdly off balance than the first one?)

javascript: the cursed language that keeps on giving

> JavaScript RegExp objects are stateful when they have the global or sticky flags set (e.g., /foo/g or /foo/y). They store a lastIndex from the previous match. Using this internally, test() can be used to iterate over multiple matches in a string of text (with capture groups).

Which means that if you do normal programmer things like putting `const regex = /.../g;` above several functions that use the same constant regex, you get this Extremely Useful and Exciting Behavior:

> re = /maybe/g
> re.test('maybe')
> re.test('maybe')
> re.test('maybe')
> re.test('maybe')

ranting about chess turn-sequencing terminology 

"A move" referring to two pieces being moved is particularly egregious, because it is also used to refer to specific individual piece movements ("1. Qxd8 is an illegal move").

Show thread

ranting about chess turn-sequencing terminology 

So in , "a turn" and "a move" are the same thing, and refer to *both* players moving a piece each. The numbers in front of written moves are turn numbers; "1. e4 e5" is one turn. Okay.

A single player moving a piece is a ply, or a half-turn, or a half-move. In practice I have never heard anyone say these. People say "your turn" because that is a normal and sensical thing to say. If I told someone it was their ply they would probably look at me weird.

So "a turn" consists of "white's turn" followed by "black's turn".

In practice, this isn't so bad, because context.

But it gets harder when you've constructed a weird extended turn system and you need to describe it for players and phrases like "every n turns" are unclear because that might be "every n turns" or "every n/2 turns" or "every n*2 turns".

Chess's "can't make any move that results in your king being in check" rule is surprisingly hard to implement.

As far as I can tell, to generate the list of valid moves for a piece, you kind of have to just clone the board a bunch of times, make each potential move, and then check for check on the resulting board state.

The obvious optimization (don't *clone* the board, just check if the target square is under attack) does not work because the king itself may be in the way (consider e.g. rook on a1, king on b1, Kc1 is not legal even though the rook currently can't get there).

Show older

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!