phooky boosted

It's hard to find-- I don't think it exists online at all-- but I reread Joanne Greenberg's "Certain Distant Suns" again today, and it remains imo the best short story ever written. It was published in "High Crimes and Misdemeanors", but I found it in Alberto Manguel's "Black Water" anthology; both long out of print, neither available at my library.

Good news: the 299s are fast enough.
This project is driving me insane and I'm just going to do some art instead for a while.

phooky boosted
lmfao, a Cellebrite kit fell off the back of a truck and Signal found a bunch of vulnerabilities: https://signal.org/blog/cellebrite-vulnerabilities/

> In completely unrelated news, upcoming versions of Signal will be periodically fetching files to place in app storage. These files are never used for anything inside Signal and never interact with Signal software or data, but they look nice, and aesthetics are important in software.

awful joke 

who called it a burr grinder and not hamilton's revenge

verdict 

exhale. Ok. Now on to the next one, and the next one, and the next one.

I'm still not sure whether to give up on this project or not. If I'm reading the datasheet right, the 74ACT299s *should* be fast enough for me to squeeze out the additional 16 cycles I need to make this work, but I'm having trouble getting them to go that fast. I'll mess around when I get some time.

Just realized that the rainbow after the biblical flood was literally a redemption arc

Basically I could save myself a ton of grief by just using '245s instead of '299s. I *may* lose the ability to do DMA transfers, though...

Show thread

Worked out the timings and realized I don't *quite* have enough clocks available to do this how I'd hoped. Trying to figure out if I should keep forging along or solve the problem in hardware.

phooky boosted

david's number is an irrational number that can be calculated to arbitrary precision as follows:

take the currently known decimal digits of david's number, then publish them as well as any more digits in a public place with a publicly verifiable timestamp (eg a fedi post. please don't use a blockchain) using the format: "#DavidsNumber is 0.7"

david's number is defined as whatever the most recent of these posts defines it as, provided that post used the correct previously calculated digits of david's number

Show thread

Bumblebee queens, more than I've ever seen, are fighting for nesting space on my roof today. Has anyone tried building bumblebee colony boxes? What's it like living with bumblebees?

Reading an old Ted Nelson article in which he proposes a file structure that's just as much of a fucking mess as an actual desktop

woo, rabbit hole 

Just was reminded of this particular pile of woo:
arkcrystals.com/

Looked at the compiler-generated assembly for the loop that I was going to optimize, and it's actually... very good? Like, I can't really figure out where I'd be able to cut out an instruction. So maybe that loop not being fast enough is not my problem. Back to the drawing board.

Me: ok I'll learn this one-off assembler for this super weird esoteric subprocessor, nbd

Also me: terrified by the prospect of having to write bog standard ARM assembly

phooky boosted

Silica Gel Pack
This is not a snack of honor
no highly edible substance is commemorated here

So I moved the "interesting event" filter to c1, and everything righted itself instantly.

I guess the moral of the story is, "keep an eye on your pipelines"?

Show thread

So I removed the conditional jump from sm0, so that c0 could examine the bus lines and decide when to report an access. Everything exploded. Random addresses being reported, c1/sm0 lockups, ugh. What was happening?

What was happening was that now sm0 was blasting out addresses at 1MHz, and the very first time c0 tried to report an event, it called printf to USB. Which takes a couple of ms. Which meant the c1->c0 fifo filled up. Which meant the sm0->c1 buffer filled up. (con't)

Show thread

A microcontroller debugging story:

I have ARM core 0 (c0) talking to my laptop over USB, reporting useful events. ARM core 1 (c1) just sets up the address bus PIO state machine (sm0) and sends the data along to c0 so it can report anything interesting. Fine. I had set up a jump in sm0 to skip sending the address data unless DEVSEL was pulled low on the bus. This all worked perfectly. Now I wanted to be able to detect IOSEL low events as well. (cont'd)

Show older
Octodon

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