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!

Looking back: ficlets launching

I was going to just post a quote for today’s NaBloPoMo, but I was looking for old posts and stumbled on this one about ficlets launching.

Re-reading it, sixteen and a half years later, a few things jump out:

  • How many people I worked with, and thanked in the post, are no longer with us: Cindy Li, John Anderson and Suzie Austin are all gone, and gone way too soon.
  • How often I think about the people I worked with on ficlets, and how much ficlets opened my eyes to what working at a small startup could be like.
  • I thought that ficlets launched in 2006, but nope, it launched in 2007, and I left AOL in May of 2008.
  • How happy I am that all the links to the stories actually work (because AOL never owned the domain name, and didn’t make me give it to them, I took it back around the time I set up the ficly archive, and ta-da, all the stories live again on the web at their original URLs). I couldn’t do the same for the blog posts, unfortunately.
  • How much ownership we felt over the product and the community. Jason, Joe and I spent a lot of time “rescuing” the stories (thank goodness for Creative Commons licensing), and then building ficly.

Most of the hundreds of projects I’ve worked on over the years (LOL, decades) blur together into vague lumps, but not ficlets. It was just the absolute best, most fun, weirdest thing I’ve ever gotten to do, and I miss it all the time (because working at a startup wasn’t really like that – it was way scarier).

The last thing is just how strong my feelings are for the people I’ve worked with. I may do a terrible job of keeping in touch, but I really do love all of them. The products we work on, they don’t matter nearly as much as the people we work with. And none of it lasts, not the products, not the jobs, none of it – but the people, the people are what’s important, so act accordingly.

The Layoff Line

With yesterday’s layoff at Gusto, I was inevitably thinking about my own history with . For my jobs as an adult, I’ve only left by something OTHER than being laid off twice. Here’s the history:

  1. AOL: I survived more rounds of layoffs than I can remember (it felt like we did them once a quarter for awhile), and left on my own after 13 years.
  2. Music Intelligence Solutions: I ended up having to lay everyone off when we ran out of money, and even laid myself off.
  3. Rails Machine: I was laid off (which I think was just in lieu of firing me) because… reasons. I’d be happy to discuss them over a beverage sometime.
  4. Planted: COVID crushed the recruiting business and PPP wouldn’t cover all of us. I was effectively laid off, but mostly because I was both expensive and was able to find a new job.
  5. Outvote/Impactive: I left on my own.

Being laid off isn’t a black mark on your job history. If you’re in tech long enough, YOU WILL GET LAID OFF. It’s the consequence of working in an industry that’s pretty unstable, or for early stage startups.

It’s heartbreaking to go through them, on all sides. It’s obviously worst for those who’ve lost their jobs, but the people who stay get to deal with a flurry of emotions and questions – a lot of which management legally can’t answer, which makes it all even more frustrating.

All of those feelings are completely normal, and justified… but most of the questions aren’t going to get answered in any way that will satisfy you.

Your leadership team will NEVER be able to PROMISE that there won’t be more layoffs, EVEN IF THEY’RE BEING PLANNED. No one will ever tell you a layoff is coming. No one will ever tell you why people were laid off.

Layoffs are almost always followed by people choosing to leave because they’ve lost faith in their employer. That’s normal, and should be expected.

My friend Cindy Li always said, “work won’t love you back,” and she’s right. We’re all “resources” for our employers and the company is not your family.

A long time ago, I made a conscious decision for how I would work:

  1. I will treat everyone with loving kindness, and work where I love the people, the work, and I will love my coworkers as long as it’s possible to work with them. People leave, but they’re not dead.
  2. Change is constant. I will work to be comfortable with ambiguity and help create order from it.
  3. At the end of the day, there are three choices when confronted with any change: Accept it. Fight it. Quit. That’s it. If you’re between one of those three options, you’ll be miserable.

That was a lot. The last piece of advice I’ll give is… if you just survived a layoff, don’t get fired.

Published
Categorized as AOL, work Tagged

My Friend Cindy Li

Cindy Li smiling on top of Twin Peaks in San Francisco

I’ve worked with hundreds, if not thousands, of people over the years.  I’ve liked most of them, been friends with a lot of them, and loved many of them.  Cindy was definitely in the last category.

Cindy Li and I became fast friends and co-conspirators while we both worked at AOL.  We were on the CSS Working Group together.  We went to SxSW Interactive many many times (we had different but overlapping “gangs” at SxSW but we always intersected somehow during the conference – sometimes in the green room, where we’d try to distract each other’s panelists).  We went to countless dinners, lunches and dim sum brunches.  We caused trouble.  With our pal Jason, we built ficlets and came up with a t-shirt that became a bit of a sensation.

Matt Harris, Patrick Haney and Jason Garber sporting the Geeks Love * shirt at dim sum.

Cindy died on Monday, 10/15/2018. Cindy was amazing. She was equal parts creative, silly, kind, funny and smart.  She was a perfect co-conspirator.  She could take bad ideas and make them brilliant.  She effortlessly seemed to rally people to join the Cindy Li Vortex of Fun Adventures.

Cindy and Kevin making stupid faces for the camera.
Cindy tormenting Jason, one of her faaaavorite pasttimes.
Cindy, about to chow down on a steak at Austin’s Hoffbrau

Cindy brought people together.  She was the ultimate connector, and even though she’s gone, the connections she made with all of the people she impacted all over the world will remain.  After she was diagnosed, Cindy organized a small group of friends from all over the world into her support system.  We were all around, talking to each other about how best to help her and her family, and the whole while she was sick, she was there being the life of the party, right up until the end.  Even with her illness, she was connecting people and spreading love, kindness and empathy.

She was a vortex of love, and fun, and whimsy, and adventure, and you weren’t just along for the ride, you were an integral part of it. I don’t think anyone who knew Cindy thought they were anything less than 100% included and in on the joke, and that’s a rare and beautiful thing.  She was that way until the day she left, I imagine riding a Hello Kitty cloud on her way to organize an adventure with St. Peter and redecorate the gates of Heaven.

Her friends organized a site for sharing memories of Cindy as a way to share with her how much she means to all of us, and as a way for her sons to understand what she meant to us when they’re older.  You can share your own memory of Cindy by following the instructions there, read her obituary, and help her kids out if you’re able.

Coding is a Social Activity

You’ve probably heard about that manifesto that some techbro at Google wrote. This is the response I wish I would have written.

A couple things to highlight and emphasize:

  • Writing software is about understanding problems, and to understand problems, you have to not only know how to solve them with code, but know the root cause of the problem. That requires building empathy. Without it, you’ll never be great.

  • There’s no such thing as “male” or “female” skills. They’re just skills. That people put them in buckets says more about the broken rigid gender roles in our society than the quality or value of those skills. Empathy is much harder to develop than learning how to code.

  • The dude should have talked to some non-bro humans before publishing that crap. They would have, hopefully, gently slapped him around intellectually and convinced him not to be stupid in such a public way.

  • Guys, every single woman you know who’s ever had a job or worked in any situation where men are present has dealt with things you can’t even imagine. Not most. ALL of them. If they haven’t told you about any of them, you probably have a lot of work to do on empathy, because they don’t think you can handle it, or you’re kind of a jerk.

This isn’t totally related, but it’s related enough and I wanted to write about it, so here it goes.

Sara Soueidan tweeted yesterday about other peoples’ productivity tweets, and it got me thinking about how I keep myself motivated and keep myself from feeling too down about feeling stuck. I replied with a couple of things, and I thought I’d share them, because especially early on in my career, they were extremely helpful in keeping me going when I didn’t really have a way to measure my progress.

  • Document your progress, because it’s easy to forget. I’ve kept a work journal in various forms for the last 15 years or so, just a little record of problems I’ve solved, things I’ve worked on, etc.. Why? Because progress is easy to forget and time erases our victories. It’s easy to feel like we’re not getting anywhere when we’re only looking at the last week or so.

  • Whenever I feel down or stuck, I go back 6 months to a year and just randomly pick a day from the journal to remind myself what I was working on. It’s almost always a pretty immediate reminder of how far I’ve come. If I still feel down or stuck, I just go farther back.

In agile development, my favorite part is always the retrospective. It’s a meeting you have every 2-4 weeks where the entire team answers the following questions:

  • What went well?

  • What didn’t go well?

  • What are we going to do differently next time?

Answering those questions is a way to celebrate successes, build accountability by honestly and constructively figure out what didn’t go well and why, and then come up with a couple things to work on for the next time.

That same set of questions works really well for personal stuff too, so I have personal retrospectives all the time after stressful experiences or times I reacted to something in a way I shouldn’t have or, for me especially, when I overreacted to something.

I don’t have personal retrospectives to beat myself up. They’re not pity parties or self-destructive. They’re hopefully the same as a good team retrospective – they exist only to make sure everyone knows the part they play in the team’s success, and so everyone improves.

And that’s where the productivity tweets, and the harmfulness of judging yourself by others’ public projection of themselves, come in. Those public projections are meaningless to me. I might be able to learn some new tactics from them or a new thing to try, but trying to copy someone’s success only by observing the outward result is a recipe for disappointment.

Things to remember whenever reading any personal account of success:

  • The author is an unreliable narrator and will almost always downplay other peoples’ contributions to their success or that luck played a much larger role than they mention.

  • They’re not you. You’re not starting from the same place. You don’t have the same resources. You have different talents and skills. Do not judge yourself relative to someone else’s position because you don’t know where they started.

I was the first web developer in my group when I moved to Virginia to work in the “main office” at AOL. I had no one to measure myself against because no one else did what I did (my manager used to say, “I don’t know what you do, but everyone loves it, so… keep it up!”). I was young, and dumb, and ambitious, and… had no idea what I was doing, but I wanted to be the best I could be at it.

I’m a big fan of the Golden Rule for teams. I try (and fail) to work so the other people on the team have an easier time of things. I fail at this more often than I succeed, but that’s the goal.

After my first couple of projects, I realized that I also have to practice the Golden Rule on myself. So, now, I really only compete against what I call Past Me, and I try to do my work so Future Me doesn’t think Present Me is a jerk.

This framework has worked out pretty well for work over the last almost-twenty-years. I just recently realized that it’s equally applicable to life outside of work too, and am trying to apply it to my health choices too.

I hope this is helpful to someone. Life is hard. Make it as easy as you can on yourself and others.

Ficly and Creative Commons: The Power of Open

[hang2column width=”250″]The Power of Open book cover[/hang2column]

I’ve been a huge fan of Creative Commons pretty much since they launched. If you don’t already know, Creative Commons provides several ways for you to license your work that expressly allow people to use it in certain ways. It’s sort of copyright** – allowing folks to do things with your work that they might not otherwise be able to do legally without a lot of complicated legal wrangling. For example, there are tons of CC-licensed photos on Flickr. Depending on the license, you can use those photos for non-commercial work as long as you provide attribution, all the way to mashing them up in any way you want with absolutely no restriction. This blog has been CC-licensed since the beginning of Creative Commons. All of my photos on Flickr and presentations are too.

But, this post isn’t about my blog. It’s about Ficly (and ficlets, may it rest in peace). Back in 2006, when we first started working on ficlets, I wanted everything to be CC-licensed. Part of the motivation for that was so we could use share-alike licensed photos from Flickr. The other reason was that the share-alike license perfectly fit the premise of the site: anyone can add sequels or prequels to your stories. It took a lot of convincing to get the AOL lawyers to sign off, but after they did some digging, they realized that they didn’t have to do any work writing an additional Terms & Conditions document for the site, since the Share-Alike Attribution license (for the sticklers, out there, I think ficlets used by-sa 2.0) covered it all.

A few months ago, someone from the Creative Commons reached out and said they were writing a book of case studies of sites that use CC licenses and asked me if they could interview me. And of course, I said yes! Well, I’d totally forgotten about it until I got an e-mail that the book, The Power of Open is out now, and my little interview made the cut! You can download the PDF from the site, buy a copy for yourself, or just check out this screenshot of the page about Ficly.

I’m proud to be a part of it, and proud of the ficlets and Ficly communities for creating and sharing almost 70,000 stories with the world.

Weird Dreams

I had a weird dream last night (two, actually, but I’m only concerned about writing down the first one). In the dream, I was back at AOL sitting through a horrible product requirements meeting when I lost it and started yelling about how bad the requirements were, how they didn’t do anything original, were a waste of paper and no one would use this thing even if we built it (I don’t even remember what it was now). I got in a fight with the product manager, and all I remember of the screaming match was that she said something like, “You’re not the only ship on this sea, pal,” to which I replied… and I remember me screaming it: “Not the only ship?! I’m the sea!“\
Then, I got fired. It was a strange experience, watching dream me pack up his crap in boxes and get escorted out. I lost it a few times in my thirteen years at AOL (wait, sorry, now it’s “Aol.”), and one or two of them almost got me fired, but those were early on when I was still in tech support. I lost it in meetings a handful of times (which I think is a pretty good record considering how many awful product meetings I sat through) and called BS where I needed to, but I don’t think any of them ever got me close to the “terminating offense” line.\
Yeah, I don’t know what it means either, but I thought it was a pretty good comeback, especially for a dream.\
The other one was a nightmare where I was Doctor Who. It was so scary, I actually woke up and had a hard time getting back to sleep. This robotic zombie fell on me, had me pinned to the floor and kept saying “I know what you are” over and over again. shudder.

Published
Categorized as AOL, Kevin

Someone Doesn’t Like the Name “Ficly”

\
(the ficlets bit starts about halfway through)\
Well yeah, when you say it that way. Seriously, I think stories will still be called “ficlets” because calling them anything else would sound silly.\
In other news, Jeremy Kieth and Simon Willison both posted about ficlets’ use of Creative Commons. Why did we do it? Well, I wanted to use flickr’s CC-licensed photos and I thought it would be only fair (and possibly required by the license on the photo) if we also licensed the stories under CC. It also fit with the whole concept of the site. Every sequel and prequel is a work inspired by the original, so we might as well allow the inspiration to expand beyond the “walls” of ficlets. It didn’t really develop that way, but it could have. My favorite by-product of the discussion with the lawyers about using CC was that it ended up meaning we didn’t really need any other user agreements. By agreeing to post under CC, you free up anyone to use the stories pretty much however you want. I didn’t think I would be one of those using them, but here I am…

The Ficlets Memorial

Finished and installed just in time, the ficlets memorial is up and running. It’s on my Dreamhost account, so it’s not going to be super speedy, but I’ve cached as much as I can, so it shouldn’t be too slow.\
I’m not entirely happy with it, but I didn’t have time to do much other than make sure I had all the data and that it’s navigable. Thanks to Alexander Grässer, I was able to get all the mature stories as well and now have a full archive of the site from last weekend. The stories should be up-to-date as of this morning, and I’ll do another update tonight before ficlets gets shut down for good.\
I have more plans for the data, and the design, but they’ll have to wait.\
Update: Someone asked if they’ll be able to “take ownership” of the stories in the memorial. Since I don’t have any user data (like how you logged in, your AIM screen name or OpenID), I can’t confirm that the person trying to claim the stories is the original author. AOL won’t budge on giving me the database, and I’m tired of asking. As for how the original ficlets will be included in ficly, I don’t know yet. I’m hoping to at least let people use them as inspiration, but I’m not sure how that will work.\
If someone wants to get the stories and do something else with them, I’d be happy to share the data. I’m planning on creating several sharable versions of the data at some point, but I just don’t have the time right now. The best I can do is a MySQL dump (which won’t help any “normal” people). I’ve never tried creating PDF’s in Rails, so I’ll probably play with generating those from the stories (mostly because I’m curious how many pages The Big Book of Ficlets would be), but that will have to wait.

Published
Categorized as ficlets