Twitter should allow users to “hide” old tweets: my correct opinion

Twitter should allow users to “hide” old tweets so that they are only visible to that user, and selectively “un-hide” individual tweets from that collection so that they once again become available at their original URL, in quote tweets and threads, and in sites where they are embedded around the web.

The need for a mechanism to remove old tweets is very clear and becoming abundantly moreso with every rightwing campaign trawling for old statements to weaponize by taking out of context. Numerous guides have been written about how and why to delete your tweets, and it’s beyond the scope of the argument I’m making today. Many of these guides, too, address the emotional difficulty of actually pulling the trigger and wiping an archive—in many cases spanning a decade or so of interaction.

One of the best encapsulations of this problem (and that solution) is John Herrman’s Awl 2015 piece “Time Is a Privacy Setting.” Even just the phrase in the headline is an important contribution, and gets at why simple dichotomies of “public” and “private” are so unsatisfying. A lot more goes into our understanding of privacy than a binary toggle, and time is certainly a factor.

And just as interesting, to me, is something Herrman said this week, in a tweet thread that began with his a link to that now three-year-old essay: “You thought you were talking, but you were writing.” It’s true! Twitter has managed, for many people, to clear out a barrier that can otherwise be insurmountable, letting people be comfortable writing down their thoughts and conversations. Something the tweet-deleters flirt with, but never seem to quite put their finger on, is that writing (as opposed to talking) has some real advantages in addition to the drawbacks.1By definition, most of the articles about deleting tweets are written by writers. Writers, again by definition, tend to write more stuff down. So maybe the benefits of having a place to write stuff down if you otherwise wouldn’t isn’t quite as clear to them.

This observation is obviously not new to Twitter. My father, a writer, has always exhorted me to keep a journal or a diary, though I’ve never really been able to. One real value of Twitter, for me, has been breaking through that hesitation by setting the threshold of participation so incredibly low that I can just, y’know, write. It’d be better to keep a journal or to blog, but in many cases tweets are good enough.

Over the decade that I’ve been on Twitter, I’ve gone through periods of prolific writing and total dry spells. I’ve maintained this blog regularly at times, and at others it’s sat dormant for months. And the thing is, I frequently refer to and read the old entries for time periods where they exist! Human memory is fickle and fragile, and it is genuinely interesting and educational for me to look back on old writing and see the germs of ideas that later grew into real passions. Looking up old tweets isn’t quite as good, but it fills in the gaps.

Beyond just lowering the threshold to producing such writing, Twitter did some important things to make online writing even more valuable. Search, the villain in recent sagas, is a powerful tool when used for good. Joanne McNeil recently raised a use case I love:

I do that too! Yes, it’d be great if all my friends blogged about every movie they watched or book they read (and I had a good way of finding those posts when they became relevant to me), but this is a decent runner-up. If you want, too, you can see first interactions with people who later became important to you, or all the people who’ve made a joke you just thought of, or people discussing an article you’ve just read, and Twitter (helpfully, in this case) collapses the time gap between you and those people.

Beyond that, Twitter puts a time stamp and a URL on each of these things. In recent years it even preserves the semantics of threads. I don’t want to downplay the very real harm these attributes can cause, but it’s also true that in some situations they provide a ton of value.

Which brings us back to tweet deletion and why it is emotionally difficult for people to do. For better or for worse, this archive we’ve created of our own writing is valuable, and deleting tweets is permanent. (Emily Dreyfuss’ article at Wired does an especially good job at grappling with it.) Every guide I’ve read to deleting tweets walks through the process of creating an “archive,” but even doing so misses some of these benefits of keeping old tweets online.

Archiving-then-deleting may preserve a copy for you, but it permanently rips each tweet out of its context in threads, at a URL, within quote tweets, embedded in articles, and in the Search index.2Beyond that, there’s no easy way to present your archive on your own terms to anybody but yourself, a feature I’ve argued for in other contexts. Maybe you want to do all those things, and you should have the power to do so! But with a corpus of tens of thousands of tweets, in many cases, it is overwhelming to permanently make that decision for everything all at once.

(Side note: that permanence is in large part a result of Twitter’s centralization. Under a more decentralized model,3Check out Mastodon. where we controlled our own domains, you could maybe just rebuild your database from a backup and point all the right URLs to all the right content. There’s pros and cons to such centralization—and in particular, people seem to love the guarantee that the archive hasn’t been tampered with—but in any case that’s the situation we’re in and what can you do.)

So here’s the solution, referred to up top. Twitter should give users a new option to “hide” old tweets, which would look to every other user like deletion, but which would be a reversible operation. Your hidden tweets should still appear in your searches and views of old threads, but greyed out to indicate they’re not otherwise available. And—and this is probably the hardest part—Twitter should introduce a per-tweet configurability for these settings.

That’s the kicker. Individual tweets could be deleted (fully gone), hidden (just for you), private (for your followers, no retweets), or public. That would be a big change! But it’s important.

(Another side note: when I posted this opinion on Twitter, I got a few responses that such an option should not be available for public figures or politicians or what-have-you. I tend to think that we should not rely on Twitter to preserve these public records, and that their introduction of a feature that has real benefits to real users shouldn’t be hindered by the possible exploitation by shifty officials. And just as with deleting tweets or blocking critics, the behavior can be barred without Twitter needing to intervene.)

Twitter the company has mismanaged Twitter the product in a dozen different ways, and its policies on speech, censorship, harassment, and abuse have often been incoherent. It’s also provided an invaluable platform for many of my favorite writers and thinkers, and done so in a way that is reasonably consistent with the technology of the web.4Two good things that stand out: canonical URLs for every tweet, and the fact that unavailable embedded tweets degrade gracefully into text. On the other hand, the normalization and ubiquitous use of a URL shortener sucks. Giving users more tools—in this case a new privacy setting with more granularity—is the right next step in overcoming the former without diminishing the latter.

   [ + ]

1. By definition, most of the articles about deleting tweets are written by writers. Writers, again by definition, tend to write more stuff down. So maybe the benefits of having a place to write stuff down if you otherwise wouldn’t isn’t quite as clear to them.
2. Beyond that, there’s no easy way to present your archive on your own terms to anybody but yourself, a feature I’ve argued for in other contexts.
3. Check out Mastodon.
4. Two good things that stand out: canonical URLs for every tweet, and the fact that unavailable embedded tweets degrade gracefully into text. On the other hand, the normalization and ubiquitous use of a URL shortener sucks.

Subtitles for Norway’s SlowTV train ride to Oslo

One thing I enjoy is Norway’s public service broadcaster’s production of a train ride from Bergen to Oslo, which was first broadcast in real time, over seven or so hours, in 2009. It’s predictably pretty quiet stuff, but—at least now that it’s on Netflix—there are in fact subtitles of what little dialog there is.

Netflix makes it pretty straightforward to extract the subtitles from a given program, and it stores them according to a very fun standard called the Timed Text Markup Language, or TTML, which just missed adoption by the WHATWG in favor of a lighter-weight, less-XML spec called WebVTT.

Anyway, I pulled out the (very spare) subtitles in that format and wanted to convert them to something a little more usable. So first I converted them to JSON, and produced an array with an object for every subtitle, and then processed it a little further and created a version where “adjacent” subtitles are combined into single objects.

The result is nearly as hypnotic as the original video:

        "begin": "00:17:21",
        "end": "00:17:23",
        "text": [
            "[metallic clang]"
        "begin": "00:19:40",
        "end": "00:19:44",
        "text": [
            "[indistinct conversation / woman laughs]"
        "begin": "00:19:52",
        "end": "00:19:54",
        "text": [
            "[woman laughs]"
        "begin": "00:19:57",
        "end": "00:20:01",
        "text": [
            "[indistinct conversation]"
        "begin": "00:21:47",
        "end": "00:21:48",
        "text": [
            "[metallic clang]"
        "begin": "00:22:10",
        "end": "00:22:12",
        "text": [
            "[metallic clang]"

Archiving threatened outlets for the Freedom of the Press Foundation

A little over a month ago, I launched one of the Special Projects I’ve been working on at my new job at the Freedom of the Press Foundation. The Threatened Outlets collection at Archive-It aims to capture the archives of news sites that we deem vulnerable to “the billionaire problem,” wherein wealthy individuals or organizations can eliminate unflattering coverage through litigation or by purchasing media companies altogether. From the launch announcement:

Those efforts help individual journalists. But another important thing we can do to reduce the effectiveness of this kind of attack on press freedom is to commit ourselves to the wholesale preservation of threatened sites.

In this case, we seek to reduce the “upside” for wealthy individuals and organizations who would eliminate embarrassing or unflattering coverage by purchasing outlets outright. In other words, we hope that sites that can’t simply be made to disappear will show some immunity to the billionaire problem.

To my surprise and delight, our launch received some nice and encouraging coverage, in WIRED, TechCrunch, The Next Web, The New York Times, and others. Sometimes when you’ve got your head down on something that feels like a niche topic, it’s nice to come up for air and realize that the general public is interested, too.

“The Florida Project” and questions of control

I had the opportunity to catch the new movie The Florida Project this week, without any background on how it was made or what it is about. That’s my preferred context for seeing movies, but it does sometimes lead to my feeling a bit adrift in the theater, or—in this case—stressed that something catastrophic was about to go down. Still, I feel like I end up with a better idea of what the movie is actually about if I don’t know the plot going into it. Here’s the trailer, if you want a sense of it.

That was certainly the case with The Florida Project, which has attracted nearly universally positive reviews from critics (and some confusion from audiences about the ending). Just about every review I’ve read since seeing the movie describes is as “empathetic,” which is spot on, but none really dive into what the audience is feeling empathy for. This post lays out my explanation, and to do so includes some very minor spoilers. I don’t really think this movie can be “spoiled,” but skip this post if you want to.

To my mind, what the movie does a great job of showing is how people seek spaces where they can be autonomous and in control. It shows children exploring and imagining, but (most importantly) testing out their agency. At the same time, it shows adults, living precarious existences, staking out small pieces of space where they are in charge.

The building manager Bobby is an obvious example, and his arguments with tenants can almost always be framed in this light: whether he’s enforcing the pool rules, confronting unwelcome strangers, or (most tellingly) moving tenants around to prevent them from establishing residency, he is exerting control over his designated space and limiting the autonomy of the people in it. In that last example, too, he alludes to the fact that he’s an agent of another level of power, specifically pointing at the surveillance cameras to explain how his hands are tied.

Halley’s actions in this area are even more illuminating. You can see it best when she gets into conflict with her best friend Ashley. Though Halley doesn’t even know the basis of their argument, she takes it out on her friend by finding a space where Ashley has no autonomy—her workplace—and exercises arbitrary control over her. From that perspective, it’s only a matter of degree when their dispute escalates to violence, and then when Ashley (it’s implied) calls for an intervention by the state.

In that penultimate scene, where Halley is arguing with DCF agents, she makes this unspoken theme somewhat explicit, saying that they’re on her “property.” Throughout the film there are a lot of reasons to think that unit 323 isn’t really Halley’s “property,” but in that moment she reaches for that language to express that she is in control.

The final scene takes that declaration and escalates it to a sort of surreal and metaphorical place. Echoing the film’s tagline (“Find your kingdom”), Moonee and her friend run to a place that feels like their kingdom, where they are the kings. It’s a bit jarring in a film that’s seemed so grounded and “real” to get such a visual metaphor in the closing moments, but it works (and at the same time drives home the juxtaposition between poverty and expensive fantasy that runs under the whole story).

Maybe most movies could be described in these terms—as Octavia Butler said, “all struggles are, essentially, power struggles.” But I think it brings a lot to The Florida Project in particular to think of areas of control and autonomy. The characters shown in the movie are living precarious existences, and seek that kind of control where they can get it. One message from the film is that, where these kinds of spaces aren’t really available, people will find a way to exert control nonetheless. The empathy in this movie is showing the decisions of people who have been rendered powerless in society.

Policies that perpetuate wealth inequality or pervasive surveillance make communities feel that powerlessness. When people talk about those communities “voting against their interests,” it’s worth considering that interest in exercising some kind of control.

Pulling free and open weather data

When I decided to add realtime weather effects to @choochoobot, I knew there were a few qualities I wanted to find in a data source. Ideally I would find something free and reliable that didn’t require me to agree to many developer terms or sign up for an API token. Google shuttered its undocumented Weather API in 2012, and Yahoo’s offering, which has changed a few times over the years, now requires an account and a consumer key and secret.

It took some poking around but I was eventually successful, and now @choochoobot should correctly show clouds, rain, snow, or thunderstorms, depending on whether observations in New York at the moment it’s tweeting.

Current observed weather conditions seems to me like something that should be provided by the government as open data. Fortunately, that intuition was correct: free realtime weather data is openly available, if you know where to look.

The National Weather Service, an agency within NOAA, provides weather observations from stations all over the US in RSS and parseable XML formats. And while parsing XML in Python isn’t exactly pleasant, it’s straightforward enough and I am now able to get qualitative descriptions of the current weather that I can translate into emoji. Here’s the relevant code, and here’s how it works:

  • Each time @choochoobot tweets, it checks to see whether it’s daytime or nighttime. If it’s nighttime, I skip the weather check and instead calculate the phase and placement of the moon in the sky.
  • If it’s during the day, I make download the XML file provided by the KNYC weather station in Central Park. You can load the same file in your browser at any point, but you probably have to view-source to see it in a reasonable human-readable format. That’s one of about 1,800 locations in US states and territories that the NWS provides information for.
  • @choochoobot then parses the XML file using Python’s built-in ElementTree XML API. The relevant field for my purposes is labeled "weather", which contains a text description of the observed conditions.
  • At least in theory, that phrase will always be one of the 250 or so pre-set descriptions provided by the the NWS. These are sort of grouped into categories—there’s a pretty clear thunderstorm grouping, and one for hail—but it seems a bit ad hoc. My use requires classifying the observed weather into just four or five buckets with matching emoji; I just made a big list of terms that I’d take to mean "cloudy," for example, and checked to see whether the observed weather phrase was on that list.
  • Then I pick emoji for the sky, and put the whole tweet together. If the weather is cloudy, I replace the sun emoji with a sun-behind-clouds emoji. Real scientific stuff.

In case it’s useful, I’ve converted the NWS list of weather conditions to JSON and submitted it to Darius Kazemi’s corpora project. Once that gets merged in, those weather conditions will all be available that way.