Delete your free Slack backlogs!

Why delete Slack backlogs?

Slack and other chat software tend to retain conversation history so that you can see and search what was said in the past. This can be very helpful for historical context and avoiding repeat conversations, but there’s all kinds of reasons why you don’t want to retain backlogs indefinitely:

  • people who join some time after the Slack is formed may find themselves being discussed in backlogs in terms that are uncomfortable now they can see it
  • the relationships of people in the Slack may change over time and previously friendly conversations may be weaponised by members
  • any malicious person who gains access to your Slack (whether by hacking or by being invited) gets the entire history of everything said there to bully or blackmail people with
  • the contents of the Slack might be subject to legal discovery at some point in the future and be used to win a lawsuit against members or owners of the Slack, or else simply dumped into the public record

Learn more in the Electronic Frontier Foundation’s Slack privacy campaign: What if All Your Slack Chats Were Leaked?, Slack should give free accounts control over retention.

How to delete Slack backlogs.

If you pay for Slack, you should use their message and file retention feature.

Update September 2024: as of 2022, Slack allows free workspaces to configure deletion after 90 days (otherwise it will hide the messages/files), and as of 2024 all data from free workspaces is deleted after a year and cannot be retained without paying. The below script is now mainly useful if you wish to retain data for less than 90 days in a free Slack workspace.

If you have a free Slack, you can do it yourself. If you are using the free plan, you can delete messages through the API. Here’s a really simple sample Python script any admin of your Slack can use, which will delete most messages posted more than 6 weeks ago. (Instructions.)

Alternatively, slack_cleaner2 is nicely flexible if you want to develop your own script. Or members could delete at least their own messages with eg the Message deleter for Slack 2.0 Chrome extension.

Script caveats

You will need owner or administrator access to your Slack instance (or else you cannot delete messages other users wrote).

The script operates with the credentials of the admin who runs it, and will not be able to delete other people’s messages in 1:1 DMs, or any messages in any private channel that admin is not in.

The script will not delete messages older than the 10,000 recent messages that free Slacks have access to (even deleting the newer messages doesn’t restore access to these). Yet these older messages are retained by the company and could be accessed if, eg, someone pays for the Slack in future or if a discovery motion is granted. Unfortunately, you will need to pay for Slack, at least briefly, to access these older messages for deletion.

Creative Commons License
Delete your free Slack backlogs! by Mary Gardiner is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Use python-flickrapi 1.2 even after the Flickr SSL transition

On June 27 2014, Flickr changed their API to be SSL-only. The Python flickrapi library was one of many pieces of software that used HTTP to connect to Flickr’s API, and that therefore broke for some users on June 27.

flickrapi supports HTTPS connections as of version 1.4.4, released on June 18 2014. If you are able to upgrade to a new version of flickrapi, you can get the latest flickrapi version from PyPI and ignore the rest of this post.

However, as of mid-2014, many Linux distros, including Ubuntu 14.04 (supported until 2019), still package flickrapi version 1.2, which cannot connect to Flickr’s API over HTTPS and is therefore now non-functional. Since developers may for various reasons choose to use their distro’s version of python-flickrapi, I’ve written a very very small Python class that overrides flickrapi’s FlickrAPI class to connect to Flickr over HTTPS rather than HTTP, and allows continued use of the Flickr API.

You can download my Python module that allows this: flickrapissl. See the README for usage.

Girly geekdom for girls… only?

This article originally appeared on Geek Feminism.

Several of the front page posters here are participating in discussions on the Python diversity email list, a list created by Python community member Aahz to discuss diversity problems in the Python programming language community. The initial aim of the list is creating a diversity statement like that of the Dreamwidth community.

Some of the more problematic discussions on the list come down to “this stuff is hard, and hard to talk about, and people get angry and defensive when things are hard.” I don’t want to discuss the tenor or direction of the discussions there in general in this post though, I want to talk about a specific incident. A poster to the list made reference to being “beaten up by a girl” (in a metaphorical sense, what had actually happened was off-list criticism from a woman, not physical violence). A 101 discussion followed, and while it was pretty clear to most people posting that the framing played right into the idea that being beaten by women, physically or in argument, is emasculating, it took a surprisingly long time until it was pointed out, originally by me, eventually also by Aahz in a separate thread, that “girls” is a problematic term. It seems this was a new idea even to some of the more pro-feminist posters.

Now despite the Python diversity list’s innocence, calling women “girls” even in conversations where men are just “men” is not a new problem. As I pointed out to someone on identi.ca, Wikipedia has a prominently placed discussion of how there are few neutral terms for women, especially more informal ones. And the geek feminism groups have run into it ourselves. We have LinuxChix and Girl Geek Dinners. One syllable terms make for snappy names and the “girl geek” alliteration has zing. Reclaiming problematic terminology has a long history, but one of the appeals is that it’s just plain fun, and it’s happened to some extent with the term “geek” as well.

But how much are we playing into the idea that geek feminism is for young women, that once first year CS is gender balanced we’re done here? I’ve seen concerning things. LinuxChix’s name has on occasion drawn young women who explicitly say they only want to interact with other young women. LinuxChix and Girl Geek meetups are often just as inconveniently timed and placed for primary carers as LUGs and gaming groups. When Julie Gibson interviewed me for Ada Lovelace day, she talked about how LinuxChix turned out not to be for her, she’s too far removed in time from having enough geek hours in her life to learn Linux. An older woman””in her late forties, perhaps, well outside the Australian LinuxChix demographic””at our LinuxChix miniconf in 2008 said that she’s careful to avoid becoming a “face” for women in IT: she thinks no teenage girl wants to grow up to be her. It reminded me of Lauredhel’s post at Hoyden About Town, Monica Dux thinks I’m bad for feminism’s image, about the trend to say it’s great to be a proud feminist, as long as you aren’t a marketing problem for the feminism brand. Is it only great to be a woman geek if you’re exactly what the guys on Slashdot are asking for, 18 and single and heterosexual and able to fix your own computers, thus making time for everyone’s two favourite leisure activities, gaming and sex? Of course not. But I’m worried that we’re talking about ourselves as though it is.

This is hard for me. I’m in my twenties. It’s a lot easier for me to think about what my fifteen year old girl geek self would have wanted from geek feminism than what the sixty year old woman I hope to be will want. But we should. What does geek feminism look like, for women who aren’t girls any more and don’t want to be?

Suppressing Python 2.6 DeprecationWarning

Since Python 3.0+ is backwards incompatible (or, if you like, a new Python-esque language), Python 2.6 is enormously grouchy about announcing that everything under the sun has been deprecated. For example:

 $ python Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import md5 __main__:1: DeprecationWarning: the md5 module is deprecated; use hashlib instead >>> 

While this is very helpful for one’s own code, my email is now filling with warnings about how Twisted, Venus and several other libraries have deprecated elements (import md5 being a particularly common offender). There’s nothing I can do about that, and being warned hourly about some of them is therefore unhelpful. Here’s how you turn it off: call python with -Wignore::DeprecationWarning.

 $ python -Wignore::DeprecationWarning Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import md5 >>> 

As you can probably guess, by doing this you run the risk of your code failing to work with some future version of Python and you not getting much warning about it. But your inbox or error logs may thank you.