Mid-caffeination Mastodon Thoughts

Derek Powazek posted this on Mastodon yesterday:

An actual use for machine learning that I’d want: a bot that records all the posts that cause me to block someone, saves them into a db, and then automatically hides posts that match above a certain threshold.

Derek on Mastodon

I love a good brain exercise, so I’ve been thinking about it, and I don’t actually think this is that hard, and is very possible using tools you already need to run Mastodon in production.

I might play with actually implementing this during my week off around cooking and family time, but if someone else wanted to do it, this idea is 100% free.

To enable search in Mastodon, you have to install and use ElasticSearch. It has machine learning goodies in it already like nearest neighbor and vector search.

Basically, we should be able to build a very personal spam/block bot for Mastodon given some training data (posts that pushed you to block someone) and some fiddling about (which is the hard/fun part).

Right now, there are no dates on blocks in Mastodon (I haven’t checked the schema yet to see if they’re there but not returned), and you can’t see which post “triggered” the block. I think that could be added fairly easily – or at least something like “Add this to Blockbot” to use it to train the bot.

Mastodon doesn’t really have a plugin architecture yet, so I’m not sure if this should be a standalone app that sits alongside your running Mastodon instance or a feature – I’ll probably try it as a feature to get familiar with Mastodon.

Basically, we take “blockworthy” posts, index them, and then use that to compare posts to the blocklist to get a semantic distance. Once we have the distance we can start manually testing for accuracy and tweak settings until we get something close to a “block score”. Users could then say, “yep, don’t show me anything with a block score greater than 1.5” and ta-da, a little robot janitor is just cleaning up your feed for you. That’s probably computationally intensive to do on every post, but I think you could apply it to people you don’t follow who reply to you to weed out the worst Reply Guys and riff raff.

You could also have community-wide block bots that are trained on a communal collection of blockworthy posts. It could help get around rigid blocklists by allowing targetted removal of replies from timelines instead of blocking whole instances.

It could also be used for finding good stuff too… Imagine something that found you people who post things like you do and brought them to you. It could be used as an “attract” bot as well.

I think ideally, it could be used like left and right handed whuffie. When you come in contact with a profile, how alike and how different are your posts from theirs’? Do we agree on anything? Are our disagreements strong enough, and on topics that are sensitive enough, that I probably don’t want to engage with them? Then it’s more informative than just a robot going out and sweeping up my replies.

Yeah, this is hand wavey, but a lot of this stuff is just built in to ElasticSearch already, so it’s not like we have to invent anything (yay, because that’s hard). We just have to assemble it and feed it enough data.

It should be fun, and I think it could be helpful, especially for folks who get inundated with awful replies.

And if you beat me to implementing it, that’s great! Then it’ll be out there in the world and we can all play with it!

Sunday night’s alright

Especially when you don’t have to go to work the next day! I spent this weekend recovering from all the people time from the work trip, and unpacking.

This week is all about getting ready for Thanksgiving, my favorite holiday. It’s all food, no presents, and being thankful. I love it.

I hope you have a good week, and a good holiday, if you celebrate it.

Recovery times may vary

I flew home from a work trip yesterday, which required setting an alarm for 2:30AM to make sure I got to the airport before a 5:15AM flight.

I knew I needed to sleep, but I didn’t want to sleep through my alarm so I skipped my usualy melatonin and then… didn’t sleep. I can’t remember the last time I stayed up all night, but it’s been years.

I was a mess all day, but I didn’t miss my flights! I went to bed at 7PM, was asleep before 8PM and then woke up around 9AM. That’s 13 hours of sleep, and I’m still tired and sore and generally uncomfortable.

I used to be able to stay up all night, go to work, be productive, get some sleep and be absolutely fine.

That’s the thing about aging. It’s not that I can’t do things; it’s that doing them requires a lot more recovery than it used to.

If you need me, I’ll be snoozing on the couch.

Stupid sleep

My alarm is set for 2:30AM, which is in less than an hour. I’m supposed to be asleep so it can wake me up. That is not going to happen, as I never actually got to sleep.

I have to get in a car at 3AM so I can get to the airport so I can get on a plane set to leave at 5:15AM so I can go home.

I didn’t take melatonin at 7:30PM because I was afraid I wouldn’t wake up. It turns out, my body doesn’t know how to get to sleep on its own anymore, so, here I am, at 1:43AM, typing this on my laptop, sitting here in my underpants, cursing the fact that I have about 18 hours until I’m home, and I didn’t get any sleep.

So, how’s your day going?

Strategic apathy

I have a bad habit at work of saying “I don’t care” without qualifying it. It comes off as sarcastic or dismissive, when that’s not how I mean it – which means I need to find a new way to express it.

Most of the time, it pops out of my mouth when my manager asks me if I want to work on something and then she gives me a look, and I have to explain myself.

Here’s the explanation: I no longer care what I work on. I’ve built one of pretty much anything I’d ever want to build, and the what just no longer matters. What matters to me is how I work, and who I work with. I alluded to this in the post about ficlets, but the individual projects blur together. The thing I remember is the thrill of building something with people. I remember the people, and how I felt while we were building whatever it was.

I still believe in constant incremental improvement, and only competing with myself. I also now finally understand that just building something that’s technically superior doesn’t guarantee success. Success or failure in the eyes of the market almost never has much to do with the code that implements it. It requires the work of everyone on the team, every discipline, and a ton of luck.

And all of that means I’d much rather focus on making sure that I’m helping everyone else on the team do their best work, and asking them to help me make sure I’m doing mine. That’s literally all that matters to me at this point. Yes, I love big meaty technical problems, but that’s a very small part of the overall solution. The most important part is the borders where disciplines meet and making sure that those borders are seamless, complementary and supportive of the rest of the disciplines involved. That’s way more complicated, and way more rewarding when it works.

Published
Categorized as work Tagged

Bring me all the joys

I’ve co-lead Gusto’s Employee Resource Group for families for the last year and a half, and it’s been a ton of fun. It’s brought back a ton of memories from when the kids were little, and reminded me (constantly) that parenting never stops being stressful. The stressors just change over time, get more complicated and the mistakes get more costly.

And that gets even more precarious the more “sprinkles” that we discover in the lovely desserts that are our children. I love that phrase. I got it from one of the parents who leads one of our committees, and it’s just lovely.

My kids are both in the “non-boring” parts of the gender and sexuality spectrums, and it took me years to realize how much fear and worry comes with that. I am afraid for them all of the time. It never stops.

Which brings me to the joys.

I just finished Charlie Jane Anders’ Unstoppable series and I loved it. It’s full of queer teens and space battles – and joy. Joy at coming out to yourself, to your friends, and being accepted for your strengths. Read it. You’ll dig it. It was the most recent reminder that while I’m afraid, I also need to embrace all of the joys that come along with life with sprinkles.

More joy? One of the first communities I discovered when I joined Mastodon was the trans community. Seeing happy trans people, celebrating their transitions and the little victories along the way has been such a relief, in a way that I didn’t really understand for a while.

Joy is a vaccine against fear. Does it make the fear go away? No, but it makes it easier to fight and get through.

So, get out there, bask in the joy. It really does make the fear easier to handle.

Travel Tired

I used to travel for work a lot. I just started really traveling for work again, and… it’s exhausting. I’m not in travel shape anymore, and my back screams at me after every flight. Adjusting to time zone changes is harder.

I love seeing people in person, but getting there sucks and I’d like it to be more comfortable, more humane and overall less of a literal pain in my backside.

Forget going to Mars. Get me from Savannah to anywhere else and let me feel like a human being during and after.

Please and thank you.

App Defaults

Why not do an old school blogging meme for day 13? Well, that’s what I’m doing today, so… let’s go! I’ve seen it a couple of places, but I last saw it over here, which is where I was convinced that it would be today’s post.

I’m pretty much all Apple for end-user things. I’m also an Ubuntu users, but I pretty much only interact with it via the command line.

  • Mail Client: Mimestream on macOS, Apple Mail on iOS
  • Mail Server: It’s GMail all the way down.
  • Notes: Apple Notes
  • To-Do: Apple Reminders for long-term and recurring things. I use Day One for short-term to-dos and my daily work journal
  • Photo Shooting: the iOS Camera or Hipstagram if I’m feeling fancy/silly.
  • Photo Management: Apple Photos
  • Calendar: Fantastical
  • Cloud File Storage: Google Drive and iCloud
  • RSS: NetNewsWire everywhere, and I’m so glad it’s back.
  • Contacts: Google + iCloud (they’re a mess)
  • Browser: Firefox for personal stuff, Chrome for work, Safari for mobile. I’m polybrowserous and am fine with it.
  • Bookmarks: Firefox and Chrome (in profiles because you gotta keep things separate)
  • Read It Later: Pocket, but it’s mostly later because I forget to check it.
  • Word Processing, Spreadsheets & Presentations: Google Suite
  • News: The aforementioned NetNewsWire for following blogs like Talking Points Memo (which has been awesome for 20+ years), Apple News+, NY Times, Washington Post, The Ringer and The Athletic.
  • Music: Spotify and my Plex server for live shows and mashups
  • Podcasts: Overcast
  • Password Management: 1Password
  • Code Editor: VS Code, but I really miss Atom.

Proof I can maintain something

The celebration image Duolingo gave me that says "I'm on a 1500 day learning streak!"

Today is my 1,500th straight day of doing at least one lesson on Duolingo. That’s over four years of learning Spanish (and trying out Korean, Chinese, Turkish and Portugese, but I always go back to Spanish). Am I conversational yet? Oh no. Can I understand more than I used to? Yes. I can even make myself understood in Spanish if the topic isn’t technical.

I just want to remind myself that I can stick to something because I missed posting for yesterday. I have a great excuse: I felt like garbage and didn’t do much other than take a nap.

I don’t feel much better today, but here I am, trying to make sure that I only miss one day.

And that’s really the thing with habits, isn’t it? It’s not that you never miss a day – it’s that you don’t let missing one day make you miss two, then three, then stop altogether.