Pinned post

I have just released Hometown v1.0.5+3.4.0! This release adds no new features, it simply brings Hometown up to date with Mastodon v3.4.0.

Pinned post

I've been building a Facebook Events style event organizing system for the Fediverse. It's based on the simple, open source, privacy-respecting event organizing tool

The attached video is a work-in-progress preview and shows compatibility with Mastodon. My hope is to get it working with lots of software, including stuff like Friendica that supports events and calendars.

Check out more at my Patreon:

Pinned post

I finished my stint as a Mozilla Fellow and now I'm relaunching my Patreon with a focus on, well, fixing social media.

This means I'm going to continue my concerted work trying to make the fediverse a better place, in the form of best practice guides for running instances, external advocacy, and technical tutorials and training so that more people can contribute software to the fediverse at large.

You can read a partial summary of my work so far at my new Patreon page!

Relevant news for people who build decentralized software 

The W3C Decentralized Identifiers standard is now a 1.0 draft.

(I only just heard of it today, I have no opinions on it right now.)

Cursèd political alignment 

Ocean Spray™ CrAnCap

One of my favorite things about Looney Tunes as a kid was them repeatedly clowning on Betty Smith's 1943 novel "A Tree Grows in Brooklyn". Had I ever heard of it? No. But as a little kid I loved that they were making fun of it.

(Now that I look it up it seems like a very serious coming of age novel that deals with poverty and substance abuse.)

Kiseki stuff 

@danbruno so I never got more than a few hours into Ao but I recently cracked my Vita and realized that there is an English psp iso floating around. Look at this glorious thing

@SpindleyQ I tripped over this project sometime last year, in another context (they've also registered their own URL schema!) and the best way I can think to describe it is "outsider art of protocol design."

Remembered out of nowhere that there is an entire TLD called .frogans, which is reserved for “Frogans sites”

What are Frogans sites? From what I can tell, Frogans is a doomed / cursed project that has been labouring for a decade to pointlessly redesign every web technology, up to and including URLs, so that when you view a Frogans site in the official (still-unreleased) Frogans Player, it will look exactly the same on every device, down to the pixel.

software dev tip 

@darius Possibly related: I never leave the keyboard at the end of a scene or chapter. I always toss a few more sentences into the next scene or chapter, even if I know they’re wrong. It just primes the pump and makes it easier to recapture momentum the next work session.

software dev tip 

If I feel I'm not "done" with a programming task at the end of my work day, I leave myself detailed notes on what to do the next morning. Like: the next ~3 things I think I am going to need to do (update function X, run the tests, investigate function Y if the tests fail, etc). I've attached this morning's notes-to-myself.

Basically this lets me just "follow orders" at the start of my work day and ease my brain back into a place where I can start thinking at 100%

In case anyone cares, here are two open source fonts I use on any desktop computer that lets me customize fonts:
Inter, a variable width sans serif:
Iosevka, which has several flavors including a nice monospace I use anytime I'm reading or writing code:

Newish JavaScript syntax I like 

There are of course ways for it to bite you in the ass. If you use eslint, you can tell it to complain at you if you are using it in an unsafe way:

Show thread

Newish JavaScript syntax I like 

"Optional chaining" is really nice!

If you have written any JS you have probably had to do something like this this:

if (myObject && === 1)

in order to prevent things from going to shit if myObject happens to be undefined.

Optional chaining lets you do this:

if (myObject?.foo === 1)

It's made a whole lot of my code a whole lot less verbose. It's of course even better when accessing sub-sub-sub properties. More here:

My gosh! Sure, I read the announcement earlier, but this is really cool to actually browse. Great implementation!

Nudged by @maxvel. :)

graphql talk 

Learning about graphql fragments and while I totally see the utility, uhhh, this also seems like a way to completely entangle your data with your UI and ensure that migrating from graphql to any other kind of API will be an enormous pain in the ass.

bilingual pride facts 

because acronyms are basically impossible in Arabic I was curious what the accepted equivalent of LGBT was. I grew up a clueless straight boy so I didn't know offhand.

turns out it's مجتمع الميم mujtamaa al-meem, literally "meme community" or "meme society"

happy pride everyone

Show older
Friend Camp

Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.

<svg xmlns="" id="hometownlogo" x="0px" y="0px" viewBox="25 40 50 20" width="100%" height="100%"><g><path d="M55.9,53.9H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,53.9,55.9,53.9z"/><path d="M55.9,58.2H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,58.2,55.9,58.2z"/><path d="M55.9,62.6H35.3c-0.7,0-1.3,0.6-1.3,1.3s0.6,1.3,1.3,1.3h20.6c0.7,0,1.3-0.6,1.3-1.3S56.6,62.6,55.9,62.6z"/><path d="M64.8,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C66,54.4,65.4,53.9,64.8,53.9z"/><path d="M60.4,53.9c-0.7,0-1.3,0.6-1.3,1.3v8.8c0,0.7,0.6,1.3,1.3,1.3s1.3-0.6,1.3-1.3v-8.8C61.6,54.4,61.1,53.9,60.4,53.9z"/><path d="M63.7,48.3c1.3-0.7,2-2.5,2-5.6c0-3.6-0.9-7.8-3.3-7.8s-3.3,4.2-3.3,7.8c0,3.1,0.7,4.9,2,5.6v2.4c0,0.7,0.6,1.3,1.3,1.3 s1.3-0.6,1.3-1.3V48.3z M62.4,37.8c0.4,0.8,0.8,2.5,0.8,4.9c0,2.5-0.5,3.4-0.8,3.4s-0.8-0.9-0.8-3.4C61.7,40.3,62.1,38.6,62.4,37.8 z"/><path d="M57,42.7c0-0.1-0.1-0.1-0.1-0.2l-3.2-4.1c-0.2-0.3-0.6-0.5-1-0.5h-1.6v-1.9c0-0.7-0.6-1.3-1.3-1.3s-1.3,0.6-1.3,1.3V38 h-3.9h-1.1h-5.2c-0.4,0-0.7,0.2-1,0.5l-3.2,4.1c0,0.1-0.1,0.1-0.1,0.2c0,0-0.1,0.1-0.1,0.1C34,43,34,43.2,34,43.3v7.4 c0,0.7,0.6,1.3,1.3,1.3h5.2h7.4h8c0.7,0,1.3-0.6,1.3-1.3v-7.4c0-0.2,0-0.3-0.1-0.4C57,42.8,57,42.8,57,42.7z M41.7,49.5h-5.2v-4.9 h10.2v4.9H41.7z M48.5,42.1l-1.2-1.6h4.8l1.2,1.6H48.5z M44.1,40.5l1.2,1.6h-7.5l1.2-1.6H44.1z M49.2,44.6h5.5v4.9h-5.5V44.6z"/></g></svg>