home tags events about login

tedu rss

Purveyor of modest software.

tedu honked 26 Apr 2024 23:04 -0400

In around the 12th century, European kings began granting charters to villages allowing them to hold markets on specific days.

Weird that the retvrners YouTube videos rarely mention that markets should only be open on government approved days.

tedu honked 26 Apr 2024 22:58 -0400

Stratford was inhabited originally by Britons before Anglo-Saxons and remained a village before the lord of the manor, John of Coutances, set out plans to develop it into a town in 1196. In that same year, Stratford was granted a charter from King Richard I to hold a weekly market in the town, giving it its status as a market town.

I wonder if they had NIMBYs in 1196, like oh no, we can't have market day, it'll bring too much traffic, what with the carts and horses pooping in the streets and all.

tedu honked 26 Apr 2024 21:22 -0400

Bun's New Crash Reporter?

Hardly know her.

tedu honked 26 Apr 2024 20:55 -0400

As a reminder, all statements about honk enterprise are forward looking statements, and users are cautioned not to place undue reliance on these statements.

THESE FORWARD-LOOKING STATEMENTS ARE BASED ON THE BELIEFS OF, ASSUMPTIONS MADE BY, AND INFORMATION CURRENTLY AVAILABLE TO THE COMPANY’S MANAGEMENT. WHEN USED IN THE OFFERING MATERIALS, THE WORDS “ESTIMATE,” “PROJECT,” “BELIEVE,” “ANTICIPATE,” “INTEND,” “EXPECT” AND SIMILAR EXPRESSIONS ARE INTENDED TO IDENTIFY FORWARD-LOOKING STATEMENTS, WHICH CONSTITUTE FORWARD LOOKING STATEMENTS. THESE STATEMENTS REFLECT MANAGEMENT’S CURRENT VIEWS WITH RESPECT TO FUTURE EVENTS AND ARE SUBJECT TO RISKS AND UNCERTAINTIES THAT COULD CAUSE THE COMPANY’S ACTUAL RESULTS TO DIFFER MATERIALLY FROM THOSE CONTAINED IN THE FORWARD-LOOKING STATEMENTS.

tedu honked 26 Apr 2024 20:49 -0400

So a little ways back I added code to honk to handle forwarded replies. (When Alice replies to Bob, bob's mastodon will send that to his followers.) In theory, this allows for more complete threads. In practice, this renders threads for any semi popular user almost illegible.

When I open a thread, I'm mostly looking for self replies (follow ups) or replies which the original poster thought seems worthy of another reply. Not 100 AOL me toos.

I think I need to revisit the thread sort algorithm, or some filtering, or something. Or disable the feature entirely. It's the very, very rare thread I peek into where I find a reply that I would regret missing.

Just musing at this point, but I'm trying to consider how it should work on a multi user server where the many replies might arrive organically.

tedu honked 26 Apr 2024 20:25 -0400

A black market for fake keypass attestations.

tedu honked 26 Apr 2024 20:01 -0400

"What the hell is going on in nixos?"

Evergreen question.

whatthehellisgoingoninnixos.com

tedu honked 26 Apr 2024 19:56 -0400

My assumption is that they're addressing this ad to #philly, but it could also be read as being about Philly?

Rodent control: "Philly kills & prevents"

tedu honked 26 Apr 2024 19:11 -0400

But why is it called a playoff? Shouldn't it be called a playon if the winner advances to the next game?

tedu honked 26 Apr 2024 18:20 -0400

const req = new XMLHttpRequest();
req.overrideMimeType("text/plain; charset=x-user-defined");

The magic happens in line 2, which overrides the MIME type, forcing the browser to treat it as plain text, using a user-defined character set. This tells the browser not to parse it, and to let the bytes pass through unprocessed.

tedu honked 26 Apr 2024 16:55 -0400

This rust is bad blog post is longer than every other rust blog post I've ever read combined.

tedu honked 26 Apr 2024 14:29 -0400

Employee of the year.

Tracing the genesis of the recording, investigators determined that it had been sent by email to three school employees, including Darien, the day before it ended up on Instagram. One of those employees, who is not identified in the charging document, told police that she sent the recording to a student “who she knew would rapidly spread the message around various social media sites and throughout the school.”

https://www.washingtonpost.com/dc-md-va/2024/04/26/baltimore-ai-voice-audio-framing-principal/

tedu bonked 26 Apr 2024 02:53 -0400
original: tedu@flak.tedunangst.com

adding activitypub to humungus

adding activitypub to humungus

I added ActivityPub support to humungus using the vocabulary defined by ForgeFed so now I can follow my commits with honk. Statements dreamed up by the utterly deranged.

federated code

I self host my code, as one should.

humungus was originally supposed to be just a web frontend for existing repos. It shows diffs and commits. But it’s very limited on the write side. I don’t need a website to create issues, and I don’t want to deal with having to allow randos to create accounts, who probably aren’t interested anyway. But if you can use an existing federated identity to comment on projects, and maybe I’ll see it, that seems reasonable. It’s low friction for you and low effort for me.

There’s also email, etc., for that. But then I have to run a listserv, and if somebody creates a fork, as they should, then they have to run a listserv, etc.

I like AP over SMTP for development because it’s easier to join a project or ticket on an adhoc basis. Getting a week old email from before you subscribed to the list into your email client is annoying. AP conveniently provides web accessible versions of all messages. In theory.

Which brings us to an ActivityPub extension, ForgeFed. In practice, nobody is using ForgeFed, which is still in development, but the spec seems far enough along I can implement the relevant portions. So I did.

humungus doesn’t have any concept of projects or teams (or issues, or ...) but it does have repositories and commits. It’s not hard to create json representations for them, and we’re halfway to federation. The “hard” part is handling follow requests, but having some code already written for that purpose, it’s just a helicopter drop away.

helicopter drop

The majority of the code was simply copied from azorius, another project that federates. In theory this code could be a modular library of some variety, but I think the interface abstraction then starts to take over.

For example, there’s a file, deliver.go, that handles deliveries and retries. It needs to talk to a persistent store, which it currently does via variables like stmtAddDelivery which is just a prepared statement. It needs signing keys. It needs a means to connect to the network. It needs a logging facility. Turning all of these dependencies inside out would probably double the size of the file. And trying to use it in the application would require that much code again for setup and initialization.

For better or worse, implementing even the basics of ActivityPub requires lots of moving bits, few of which are particularly large, but all of which are intertwined. But once you’ve written the ball of string, it’s easy to copy it around. If this had been abstracted, I’d just be copying the boilerplate factory constructor around.

The good news is the helicopter drop worked really well. I copied all the necessary files, fedi.go, activity.go, deliver.go, etc., deleted the parts for activities we don’t care about here (Page, Note, etc.), and then added Repository and Commit.

This is a somewhat unfashionable definition of code library now, but I think the wisdom of the ancients has some merit. You have some useful code you keep around in your library, and you include it into your programs as needed, but in doing so, you literally copy it into the program.

honk side

On the honk side, adding support for Commit was little more than another switch case fall through. I also added highlighting to the diff text so it’s pretty.

People like to complain that there’s too many AP objects and it’s too hard to support them all. At some level, they’re all the same. The type property provides some hints as to preferred presentation, but you can get pretty far without any special processing.

challenges

humungus was originally developed to be read only, so it took a while to get the unveil paths corrected to allow for write operation.

There was a kinda widespread security issue recently with ActivityPub servers processing activities unexpectedly found in user uploaded files. Peril of user content. Obviously a concern for code hosting as well, which provides upload capabilities at predictable paths. Fixed with a simple check to deny requests with the Accept header set for anything inside the repo.

And that was about it. Only a few hours work.

status

Well, it seems to work. I can federate messages from my server to another program running on the same host.

The reference implementation of ForgeFed, Vervis, seems to be down more than it’s up, and the flagship instance doesn’t federate anyway. The presumed other leading implementation, Forgejo, isn’t even self hosting. So who knows how complete interoperability is. They also seem to be focused on some VCS called git, whatever that is.

(#activitypub #project)

tedu honked 25 Apr 2024 23:04 -0400

Downloading llama 3 so I can generate my own t'pol/shran fanfic.

tedu honked 25 Apr 2024 22:58 -0400

New startup idea: fuses for star ship bridge consoles.

tedu honked 25 Apr 2024 18:49 -0400

Oh my, #today I learned about html hidden="until-found". I can see some uses, but this seems spectacularly cursed.

tedu honked 25 Apr 2024 17:12 -0400

With latest commits to honk and humungus, got the diffs (syntax highlighted even) showing. Slowly becoming a viable code review tool.

I may need to change the context handling, though. I'm not sure it makes sense for every commit to appear in a giant thread. Conceptually, yes. Practically, no.

https://honk.tedunangst.com/u/tedu/h/42x423X3kRJ83S4B3s

tedu honked 24 Apr 2024 20:20 -0400

I asked the paperclip maximizer for tardigrade images, and it was 100% consistent in rendering them with only four legs. Smash the bell and subscribe to my substack to learn what this means for the future of science education.

tedu honked 24 Apr 2024 20:17 -0400

Telling the classroom the homework policy is tardigrade on a curve.

A tardigrade on a curving road

tedu honked 24 Apr 2024 19:04 -0400

Found a weird CSS quirk where webkit and Mozilla render something kinda different. Webkit renders about as I'd expect, but the Firefox version is kinda cool and industrial looking, which is about what I was going for anyway. So I changed the CSS to deliberately look a bit more like Firefox.

tedu honked 24 Apr 2024 18:58 -0400

What if instead of Star Trek Enterprise we get Star Trek Hentai Prize?

tedu honked 24 Apr 2024 18:47 -0400

For a fun giggle, make a list of the things HN trad lifers consider natural vs unnatural.

tedu honked 24 Apr 2024 18:25 -0400

A CSS selector for sudo classes.

tedu honked 24 Apr 2024 18:03 -0400

What if graduated happy hour?

If happy hour is $2 off drinks and ends at 6:00, but you order at 6:12, I think you should still get $1.60 off. This is a very simple adjustment for computerized sales systems to implement.

If Biden cared about America, he would tell the FTC to make it happen.

tedu honked 24 Apr 2024 16:59 -0400

Amazing how many people seem to prefer "US should be more like China" to "China should be more like US". I mean, if you think China has the better system, you can just move there, right? No need to wait for the US to catch up.

tedu honked 24 Apr 2024 16:53 -0400

So if TikTok added activitypub support, would US instances be required to defederate from them? Would the FBI seize your server if they detected traffic going to TikTok?

tedu honked 23 Apr 2024 18:49 -0400

It's been almost two years since Google fired the whistleblower who tried to warn us the chatbot was sentient.