Inbox by Gmail's accidentally abusive algorithm

The modern world really loves to use little algorithms here and there to help us speed things up. Inbox by Gmail is no exception.

Inbox has a concept of "speed dial" - an algorithmically determined set of "frequent" contacts that appears when hovering over the compose button:

Speed dial shows up on the right when hovering over the button for composing a message

In theory, this is great. It was really handy when it picked my fiancé, my mom, and a close friend. At some point, my own email replaced my close friend's because there were a lot of times when it was easier to email myself a bunch of notes than create line item reminders out of them. Still immensely convenient.

Later, Inbox decided to switch my mom out for someone else. This someone else had been emailing me a lot, though I think my mom had still been emailing me more. Occasionally, I'd reply when I was obliged to, but I was definitely sending more emails to my mother. Whatever the specifics, the algorithm replaced my mom with him.

What Inbox didn't know was that this person had been harassing me.

No amount of additional emails to my mom would put her back in speed dial and kick him out. I poked around in settings, hoping to find a way to pick my own speed dial contacts or a reset button, but I found none. An obscure post from 2014 on the Gmail Help Forum told me I could delete my contact to remove him from speed dial, but this only worked for the web version. It didn't remove him from Inbox on my iPhone, and I could only get him out there by uninstalling and reinstalling the Inbox app.

These aren't good solutions. Fortunately, his email address easily identifies him so I didn't mind deleting the contact info that tied his name to it, but had he had something more reminiscent of early 2000s AOL addresses, I might have needed to rely on that contact information. The energy it took to find these roundabout solutions and time I continued to have him in speed dial before finding those solutions kept reminding me of how he didn't respect my boundaries. The speed dial algorithm was hurting me instead of helping me out.

I don't think we should eliminate handy tools like this; most of the time, I'm a big fan. But I do wish that there were always easy to find manual overrides - or at least an easy to find kill switch - for algorithmically generated content so that we can minimize their inadvertent accidental cruelty (content warning: loss of a loved one).

Liz rides the subway on May 12, 2016: women's financial planning

Liz rides the subway is a series containing thoughts I have on the subway, mostly as an experiment to get me to write more. Today's ride home from choir practice:

Former Citigroup CFO Sallie Krawcheck launched Ellevest yesterday. Ellevest differs from other investment platforms because it focuses on women's investment needs:

Women, for example, need a platform that takes into account not only her earnings, but also her salary arc - which is different from men's. It needs to account for the fact that women live longer than men, on average, when planning for retirement. It needs to understand the salary differentials between a womans pay and her male counterpart's pay and how that impacts her strategies.

Matt Levine counters:

People overrate the importance of an adviser who understands an investor's unique needs, because what all investors need is as much money as possible without losing any. (The financial solution to the loss of income from taking time off to raise children is to have more money, but that is the financial solution to every problem.)

Levine's response tricks you by letting you take "without losing any [money]" completely for granted, but investments aren't risk free. Ultimately, the risk you're willing to take on is influenced by how much money you have to invest - which is largely influenced by your earnings and career arc - and how much you cannot afford to lose - which is closely tied to how many more years you need to be able to support yourself. Seems to me that Krawcheck has a point, whether or not Ellevest is the solution.

Now, charging 50 basis points per year when your competitors charge half that is criticism I readily agree with.

Understanding GNU Screen's captions

I love screen. I know all the cool kids are using tmux now, but screen keeps it simple and does everything I really need.

One of the things I (possibly mistakenly) want is lots of windows. The problem with having lots of windows is they quickly become hard to keep track of, especially since the default screen configuration doesn't have any guiding information quickly available to the user. Fortunately, you can fix this with a caption that appears at the bottom of your terminal.

screen caption

I do this in my ~/screenrc, which boils down to:

### pass commands to screen for describing windows
shelltitle '$ |sh'

### set caption
caption always '%{= kw}[ %{y}%H%{-} ][ %= %-Lw%{+b M}%n%f* %t%{-}%+LW %= ][ %{r}%l%{-} ][ %{c}%c%{-} ]'

There's a lot going on here, and it took an unfortunately long time to work out...

shelltitle '$ |sh' is all about making it easy to know what's in each window, but it's only possible with this extra scripting in my ~/.bashrc:

# dynamic titles for screen
case $TERM in
  screen*) export PROMPT_COMMAND='echo -n -e "33k33\\"'
esac

This passes the last command to screen to use within my caption to identify what's currently happening in each window. This is a lifesaver for someone who makes the questionable life decision of having at least eight windows open in every screen she launches.

That's the simple part; now, let's break down my complicated caption format. Captions aren't documented well. Lots of people post theirs, but usually without explanation - likely because it's a pain to describe. I started off by mashing up other people's captions, but that didn't get me very far. I completely redid mine last week, and I realized pretty quickly that I'd only make it perfect by understanding how to build it up part by part. Inspired by Jay Sitter's article on hardstatus strings, I present a breakdown of my caption:

### set caption
caption always '%{= kw}[ %{y}%H%{-} ][ %= %-Lw%{+b M}%n%f* %t%{-}%+LW %= ][ %{r}%l%{-} ][ %{c}%c%{-} ]'

%{= kw} clear all text attributes and set to text color to white and background to black
[ plain text to mark sections
%{y} set text color to yellow
%H hostname of the system
%{-} go back to previous text settings (text color to white)
][ plain text to mark sections
%= with the later %= in the caption, pad this section on the left so that the caption spans the entire line
%-Lw list windows before current window, the optional 'L' indicates that these windows show their flags
%{+b M} the current window section starts, make text bold, set text color to magenta
%n current window number
%f flags of the current window
* plain text I use to mark the current window
%t current window title
%{-} go back to previous text settings (text color to white, normal weight)
%+LW list windows after current window, the optional 'L' indicates that these windows show their flags
%= with the earlier %= in the caption, pad this section on the left so that the caption spans the entire line
][ plain text to mark sections
%{r} set text color to red
%l current load of the system
%{-} go back to previous text settings (text color to white)
][ plain text to mark sections
%{c} set text color to cyan
%c 24-hour clock
%{-} go back to previous text settings (text color to white)
] plain text to mark sections

Hopefully this explanation inspires you to customize your screen caption to your heart's content!

Oh, by the way, my dotfiles are now available on GitHub.

Footnotes

  1. You could also fix this with a hardstatus. I don't like this solution as much because hardstatus is for status messages from screen, e.g. to alert you about activity, while caption is more thematically in line with giving the details of the windows within the screen.

Liz rides the subway on May 9, 2016

Liz rides the subway is a series containing thoughts I have on the subway, mostly as an experiment to get me to write more. On today's commutes to and from work:

A Fine Frenzy's "Rangers" is a much more poetic song than Taylor Swift's awkwardly similar "I Know Places." A hunted rabbit is a tighter analogy than a hunted fox. Also, I sure haven't looked for any new music lately...

Naomi Novik writes fanfic! Fanfic is my new favorite commute buddy.

It would be really rad if Matt Levine's daily Money Stuff email was sent out before I got on the subway each morning instead of after I got off it.

I feel lucky that it made more sense to drive than take the train every time I left the house last weekend, since I certainly would have been a lot grumpier about not getting a seat then than today. The bruises from falling down a flight of stairs last Friday does not a happy standing Liz commute make. Dreaming of a passive, low effort way to signal invisible pain that is easily understood and widely respected.

Cate Huston's recent article on saying "no" comes at a time when multiple women I care about have hit the same wall from putting in unsustainable amounts of emotional labor to improve tech for women. A choice quote from Huston's writing that can apply to anything:

Saying no is a powerful thing. Refusing obligations and choosing your own priorities is an act of self care and an expression of hope. Saying no is an act of strength. A peaceful resistance. I embrace it, and as with all things, the more I do it the easier it gets.

Amen, sister.

Hearts, stars, and trumpets: the things I 'favorite' but don't 'like'

Twitter recently changed "favorites" to "likes".

We want to make Twitter easier and more rewarding to use, and we know that at times the star could be confusing, especially to newcomers. You might like a lot of things, but not everything can be your favorite.

It's true - not everything can be my favorite. For me, there are three categories for tweets I "favorited": tweets talking about something I like, tweets about something important, and tweets that make me want to offer the author support. I probably didn't favorite anywhere near all of the tweets that talked about something I liked, but I find there's only so many times I'm interested in actively clicking to like a gif of a cat rolling around.

The other two categories - tweets that are about something important and tweets that make me want to offer the author support - are not always things I categorize as things I "like." In fact, the ones that I think are most important to favorite are definitely not things I like, such as commentary on Sandra Bland's death or a friend struggling with her workplace's sexism.

By favoriting, I could help highlight something important, especially since favorites/likes are one of the "engagements" that influence Twitter's "While you were away" selections, and I could highlight anything I found important, not just the easier topics I found "like"able. There are a lot of important stories I want to tell that social media algorithms overlook because they are not "like"able, and in my circles, Twitter was one of the places that was less affected than average by this phenomenon. By favoriting, I could increment a counter. That counter makes it easier for the author to see that myself and 54 other people found their thoughts important and supported them. As the type of person who can internalize metrics better than scattered - though thoughtful and appreciated - notes, I can attest to the positive impact a high (or even just non-zero) favorite count can have. By favoriting, I could express support with a mere click. I enjoyed being able to provide that support when I didn't have the energy to do more than that or couldn't find the time to phrase my support correctly, and I felt a little bit better when friends did the same for me. These nuances are lost when I have to "heart" someone's comments instead of "star" them.

More granularity for our reactions can be helpful. Slack employs a very liberal "do whatever you want with an emoji" reaction, and thanks to Emily Price's creativity, my favorite channel - XOXO's #ladies - uses the trumpet emoji to express emotional support. It works well because we've agreed that "the emotional support trumpet" is sounding our support and because we also agree that we do not need to say anything more to show meaningful support. This is awesome beacuse it's much easier to give support when you don't have to turn often complex feelings into words first. I feel intrinsically empowered to give emotional support trumpets to others, and I feel warm and fuzzy when I receive emotional support trumpets, too.

Maybe adding something like the emotional support trumpet to Twitter's responses could replace the support usage of "favorite"; maybe adding another different thing could replace using "favorite" to highlight something important. But that's just covering how I used the less specific "favorite" where I won't use "like." With an audience as large as Twitter's, we might not even be able agree on a finite set of specific reactions. Whatever the next steps, I miss "favorite" a lot and feel like we've lost something important.