matt is a user on writing.exchange. You can follow them or interact with them if you have an account anywhere in the fediverse. If you don't, you can sign up here.

matt @matt@writing.exchange

Pinned toot

Sometimes you want to take a picture, capture how the morning light looks filtering through the trees; your cooled skin; the sound of birds.

But you can never smell the air in that photo. You can't look around to see the rest of the world from that spot you stood, capturing a split second of light.

The only way to remember it is to sit for a while; feel it as deeply as you can; accept that it'll never be as good as it is right now.

Success!! Got post federation working! ๐Ÿ’ฅ I figured out the HTTP Signature issue -- mostly turns out I had a bug fetching the correct keys for individual blogs.

Now I'm cleaning up code, submitting PRs for the libraries I used, and adding things I skipped, like handling unfollows.

Write-up coming soon, and with any luck, it'll be live on @write_as this week.

Sooo with some additional logging on my server I confirmed it's the HTTP Signature verification failing. If I cheat and disable that on my instance, posts show up! ๐ŸŽ‰

But apparently Go's libraries don't create a valid signature -- and neither does openssl when I call the CLI with the parameters I did. If I could figure out what arguments are passed to create the digest, I could quickly make it work. But that's enough for today too.

Was going to try to implement LD-Signatures to see if that's what's giving me the 401 on Create activities, but there's nothing out there already for Go, and I'm not comprehending the specs for the signature algorithms right now (I got the headers part, don't understand what part of the payload to sign).

Going to start on a simple read-only server so I can follow other accounts, see what they're sending out, and compare.

Follows work! Finally! I was missing the `@context` property ๐Ÿคฆโ€โ™‚๏ธ

Now to see about those posts.

Accept activity still not having an effect, despite seeing a 202 response in the logs. So went ahead and started sending Create activities for new posts, and oddly I'm getting a 401 back for that. Think I've done enough for tonight

Tried that library, but everything broke when I had different versions of OpenSSL on my dev machine and server. Now just calling the CLI from the app.

Keys look good now, Mastodon is accepting my requests, but the Accept activity isn't having any effect. Going to start digging some more

Got HTTP Signatures in, but Mastodon is giving me this error:

OpenSSL::PKey::RSAError (Neither PUB key nor PRIV key: nested asn1 error)

Looking more into things, it doesn't seem the Go crypto libraries create keypairs that are compatible with OpenSSL, so switching to this one github.com/spacemonkeygo/opens for generating the keys.

matt boosted

Found it! ๐Ÿ˜‚ ๐Ÿ™Œ๐ŸŽ‰
This is an that I was looking for! I'm excited!


thedisconnect.co/

Still working on sending the `Accept` activity back after receiving a `Follow` on @write_as. If I don't sign the request Mastodon rejects it.

I'm reading that there's no official authentication method in the spec, but that HTTP Signatures should be enough, but also that I might need Linked Data Signatures for things that'll get passed around (like posts). Will see.

I'm now looking at and Mastodon's code to figure out what data to send.

GETting an outbox works; correct number of posts shows up. Now I guess I need to keep track of followers on my end to know where to deliver events when a new post is published.

Okay some of that stuff is from OStatus and not needed for a pure application. Test accounts now show up in search; working on posts next.

This is exactly what I want to do: github.com/tootsuite/mastodon/ ...but things seemed to have changed in a year. So I'm looking at Peertube as well as Mastodon; have Webfinger support; getting ActivityStreams in there; I think I need Pubsubhubbub now? What the hell is "salmon" and this "magic key" that I apparently need?

Going to write a tutorial on building a "Hello World" service for the fediverse as soon as I can figure out how to federate with the fediverse.

Down from the mountain; still a few days till I'm home in the swamp.

I got the new perspective I needed. And I think the pooch enjoyed it too, even if it's not a couch at home. New photos of him on @snap_as: snap.as/matt/holden/Fa15KT4

Writing Exchange registration Show more

Drowned out by the human cacophony; free to speak again among the insects and night creatures.

It's been a few months. Headed to the mountains again.

Goals: spending creative energy on something other than code; being in the moment for as many consecutive moments as possible; getting slapped in the face with a little more wonder than usual.

matt boosted

I just started a Patreon. Help me get the word out? The patron can access two novels and one graphic novel, serialized month to month, plus lots of concept art, finished art, character sketches, and posts on the process and problems of writing, depending on their patronage level. The patron sees all kinds of stuff that will likely never be available anywhere else. Check the site out: patreon.com/SteveLoy Help spread the word! Wide dissemination would be greatly appreciated.

matt boosted

Hey everyone! I've just published a beta of my new app for writers -

writingstreak.io

It's a simple tool meant to help writers to develop a daily writing habit, achieve their writing goals, and track their progress.

If you're interested in this sort of thing - it'd be really awesome if you could check it out and let me know what you think. I'm looking for any feedback, first impressions, your thoughts on what could be better.