Thanking things for their service

Personal organizer Marie Kondo has some unique organizing advice, as summarized by Penelope Green for the New York Times:Discard everything that does not ‘spark joy,’ after thanking the objects that are getting the heave-ho for their service.” One of the symptoms of hoarding disorder is a stronger than usual emotional attachment to inanimate objects, which makes it painful to throw them out. Most people have emotional attachments to objects at some level, but instead of mocking or denigrating them as irrational, Marie Kondo acknowledges and values your emotional relationships to objects, in a way that helps you let them go instead of keeping them.

As anyone who has ever visited my apartment knows, I don’t have difficulty getting rid of things. This time I went through my closets with “thanking objects for their service” in mind and caught myself several times denigrating a formerly useful object – and my own judgement by extension – and stopped myself. I ended with 5 bags of garbage (including a dozen old bras), a cart full of things for Goodwill, and a lot of happiness about the decisions I made in 2014.

I have always been good at ending things, as even the most cursory glance at my résumé (or my love life) will tell you. What I’m getting better at now is ending things well: passing them on to new people, or winding them down gracefully if no one wants to continue them. That connects strongly to the idea of thanking objects – or your past self – for their service. I’m ending things not because they are useless or ugly or a bad idea in the first place, but because I’m ready for something new. So, here is a list of things I am ending or passing on right now:

Leading the Ada Initiative: My typical job tenure is on the order of 18 months, so it was with a sense of wonder that I realized I’m approaching 4 years in one job: Executive Director of the Ada Initiative. At the same time, I am thrilled that we are searching for a new executive director. I have really enjoyed these 4 years, especially getting to work so closely with my co-founder and friend Mary Gardiner. (If you really like someone but you live on opposite sides of an ocean, I can recommend co-founding a business with them as a way to make sure you get to spend lots of time with each other. ALL THE HEARTS to you, Mary.)

I really enjoyed building a business from the ground up, and working with people I genuinely like and respect. I’m proud of myself for working with my excellent career counselor to find out for sure that I don’t want to lead the Ada Initiative forever. By giving up the head spot, I’m giving myself time to develop new training programs in 2015 – teaching and designing the Ally Skills Workshop and Impostor Syndrome Training are my favorite parts of my job right now. In the past, I’d have had to justify quitting the ED spot by deciding that the Ada Initiative was a bad idea and I wanted nothing to do with it; now I can say it is still awesome, someone else will want this job, and I can do something slightly different and keep working with the same people and organization.

File systems consulting: I shut down my file systems consulting business at the end of 2014, after 7 years of freelance work and some really sweet file system debugging problems (my favorites: root causing bad flash by the pattern of data corruption, tracking down and fixing a deadlock in the VFS freeze/thaw code, and parallelizing fsck for ext3). I continued to consult even while I had a full-time job because (a) it pays really well, (b) I didn’t want my expertise to “go to waste,” (c) almost no other file system consultants exist because we tend to prefer steady full-time jobs that let us code happily away in a corner. In some way, it felt like I was being ungrateful to everything my file systems career had given me if I stopped consulting, but I really didn’t have the time or the interest any more. (Also, Miklos Szeredi’s overlayfs finally got integrated into mainline, so I feel like I can lay unioning file systems to rest.) So I took Marie Kondo’s advice, thanked my file systems career for what it gave me, shut down my consulting web site, and updated my LinkedIn profile. Yay!

Treasurer of Double Union: I served as treasurer of Double Union from mid-2013 to December 2014, and happily handed it over to Sally Maki last month. The job of treasurer is never “done” but it is well-documented, mostly automated, and a great thing for people to do as preparation for starting their own business. I am really happy to have been a key part of growing Double Union from a twinkle in our eyes to a 130+ member makerspace with a comfortable environment for women and a working 3D printer. I’m still on the board of directors, but hope to step down at the end of 2015 in favor of people with fresh ideas and new energy. I always envisioned Double Union as a thing I wanted to help start but not run for very long, which is maybe why stepping down as treasurer was the easiest and simplest thing to end (emotionally – in terms of work, it was hours and hours of writing documentation and setting up software and meetings with various people over more than a year).

Looking at the above list, it’s clear that a full-time job as Director of Training at the Ada Initiative won’t be enough to keep me busy for 2015. I don’t know what else I will start or take on, and I’m excited! I love learning new things, solving new problems, and growing sustainable organizations.

Operating systems war story: How feminism helped me solve one of file systems’ oldest conundrums

A smiling woman with pink hair wearing a t shirt with the word "O_PONIES" in Courier font
Valerie Aurora in 2009 (keep reading to find out why my shirt says “O_PONIES”)
CC BY NC-SA Robert Kaye
Hi, my name is Valerie Aurora, and I am the inventor of a software feature that has prevented billions of unnecessary writes to hard drives, saving energy and making our computers faster. My invention is called “relative atime,” and this is the story of how my feminist approach to computing helped me invent it – and what you can do to support women in open source software. (If you’re already convinced we need more women in open source, here’s a link to donate now to the Ada Initiative’s 2014 fundraising drive. My operating systems war story will still be here when you’re finished!)

Donate now

First, a little background for those of you who don’t live and breathe UNIX file systems performance. Ingo Molnar once called the access time, or “atime” feature of UNIX file systems “perhaps the most stupid Unix design idea of all times.” That’s harsh but fair. See, every time you read a file on a UNIX operating system – which includes OS X, Linux, and Android[1] – it is supposed to update the file to record the last time it was read, or accessed. This is called the access time or atime. Cool, right? You can imagine why it’s helpful to know when was the last time anything read a particular file – you can tell if you have new mail, for example, or figure out which files you haven’t used in a while and can throw away.

The problem with the atime feature is that updating atime requires writing to the disk. So every read to a file creates a tiny disk write – and writes are expensive and slow. (SSDs don’t get rid of this problem; you still don’t want to do unnecessary writes and most of the world’s data is still on spinning disks.) Here’s what Ingo said about this in 2006: “Atime updates are by far the biggest IO performance deficiency that Linux has today. Getting rid of atime updates would give us more everyday Linux performance than all the pagecache speedups of the past 10 years, _combined_.

So, atime is terrible idea – why don’t we just turn it off? That’s what many people did, using the “noatime” option that many file systems provide. The problem was that many programs did need to know the atime of a file to work properly. So most Linux distributions shipped with atime on, and it was up to the user to remember to turn it off (if they could). It was a bad situation.

A cartoon of a woman driving a robot penguin
LinuxChix logo
In 2006, I was a Linux file systems developer and also an active member of LinuxChix, a group for women who used Linux. LinuxChix existed in part because it was impossible to have technical discussions about Linux on most mailing lists without people insulting and flaming you for asking the simplest questions – and it was ten times worse for people with feminine usernames. Tell a cautionary story about installing RAM correctly, and the response might be a sneering, “Oh, you didn’t let out the magic smoke, did you?” On LinuxChix, that kind of obnoxiousness wasn’t allowed (though we still got a lot of what is now called mansplaining.)

So when I advised several people in LinuxChix to turn off atime, a friend felt safe telling me that hey, performance on her laptop was better, but now Mutt, the email reader we both used, thought she always had new email. This is because in her configuration, Mutt would look at an email file and compared its atime with the file’s last written time to figure out if any new email had arrived since the last time it read the file.

Now, the typical answer to “Mutt doesn’t work with noatime” was “Switch to a slower directory-based method,” or “Use a file size hack that had bugs,” or any number of other unhelpful things. Mostly, people just wouldn’t bother reporting things that broke with noatime. But I was part of a culture – a feminist culture – in which I respected people like my friend and programmers that attempted to use fully defined, useful features of UNIX in order to implement features efficiently.

I decided to look at the problem from a human point of view. What my friend and the Mutt programmers really wanted to know was this: Has this file been written since the last time I read it? They didn’t particularly care about the exact time of the last read, they just wanted to know if it had been read before or after the last write. I had an idea: What if we only updated a file’s atime if it would change the answer to the question, “Has this file been read since the last time it was written?” I called it “relative atime.”[2]

The amazing thing is: it worked! Matthew Garrett (also a known feminist), Ingo Molnar, and Andrew Morton made some changes to patch, including updating the atime if the current atime was more than 24 hours ago. Other than that, this incredibly simple algorithm worked well enough that in 2009, relative atime became the default in the mainline Linux kernel tree. Now, by default, people’s computers were fast and their programs worked.

I came up with this idea and the original patch in 2006, when the atime problem had been known for many years. Previous solutions had taken a very file-system-centric point of view, mainly along the lines of buffering up atime updates in memory and writing them out when we ran out of memory. What led me to a creative, simple, and extremely fast solution was being part of a feminist community in which people felt comfortable sharing their technical problems, wanted to help each other, and respected each other’s intelligence. Those are all feminist principles, and they make file systems development better.

I try to take that human-centered, feminist approach with other topics in file systems, including the great fsync()/rename() debate of 2009 (a.k.a “O_PONIES”) in which I argued that file systems developers should strive to make life easier for developers and users, not harder. As recently as 2013, a leading file systems developer was still arguing that file systems didn’t have to save file data reliably by mocking users for playing computer games.

I was working on another human-centered file system feature, union mounts, when I heard that a friend of mine had been groped at an open source conference for the third time in one year. While I loved my file systems work, I felt like stopping sexual harassment and assault of women in open source was more urgent, and that I was uniquely qualified to work on it. (I myself had been groped by another Linux storage developer.) So I quit my job as a Linux kernel developer and co-founded the Ada Initiative, whose mission is supporting women in open technology and culture. Unfortunately, as a result of my work, several more Linux storage developers came out publicly in favor of harassment and assault.

That’s one reason why I’m so excited that Ceph developer Sage Weil challenged the open storage community to raise $8192 for the Ada Initiative by Wednesday, Oct. 8 – and he’ll personally match that amount if we reach the goal! UPDATED: Sage and Mike Perez raised this to $16,384!!! The number of Linux file systems and storage developers who both donated to Sage’s challenge and wanted to be listed publicly as supporters is reminding me that the vast majority of the people I worked with in Linux want women to feel safe and comfortable in their community. I love file systems development, I love writing kernel code, and I miss working with and seeing my Linux friends. And as you can tell by the lack of something like union mounts in the mainline kernel 21 years after the first implementation, Linux file systems and storage does not have enough developers, and can’t afford to keep driving off women developers.

A woman sitting at a table explaining soemthing with her hands
Me teaching the Ally Skills Workshop
The Ada Initiative is capable of changing this situation. In August 2014, I taught the first Ally Skills Workshop at a Linux Foundation-run conference, LinuxCon North America. The Ally Skills Workshop teaches men simple everyday ways to support women in their workplaces in communities, and teaching it is my favorite part of my work. I was happy to see several Linux file systems and storage developers at the workshop. I was still nervous about running into the developers who support harassment and assault, but seeing how excited people were after the Ally Skills Workshop made it all worthwhile.

If you’d like to see more people working on Linux storage and file systems, and especially more women, please join Sage Weil and more than 30 other open storage developers in supporting the Ada Initiative. Donate now:

Donate now

Edited to add 10/6/2014: Sage made his goal, hurray! And here’s my favorite comment from the HN thread about this story, the only one actually flagged into non-existence (plenty of other creepy misogyny elsewhere though):

Screen Shot 2014-10-05 at 10.18.37 PM

Also, I had no idea Lennart Poettering planned to post this detailed description of the abuse, harassment, and death threats he’s suffered as an open source developer.

We’re still raising money for Ada Initiative to fight this kind of harassment, so feel free to donate:

Donate now

[1] Yes, Android is Linux too, I’m just naming the brands that non-operating systems experts would recognize.

[2] “Relative atime” isn’t so bad, but the name of the option that you pass to the kernel, “relatime”, showed my usual infelicity with naming things as it looks like a misspelling of “realtime”.

Leaving Red Hat

I’m leaving Red Hat, effective January 7th. Here’s my self-interview on the topic…

Q: Why are you leaving Red Hat?

A: Good question! I’ve worked for a lot of companies as a Linux kernel developer (IBM, Intel, Red Hat, etc.). Now, jobs vary a lot within companies – one of my favorite sayings is, “You don’t work for a company, you work for a manager.” And different people like different corporate cultures.

All that being said, in my personal opinion, Red Hat is the best place to work as a kernel developer – or, if we’re talking managers, Ric Wheeler, and by extension, Tim Burke. If there’s any company that “gets” open source development, it’s Red Hat. I have my complaints, but I’ll put it this way: I haven’t appreciated Dilbert nearly as much since I started working for Red Hat.

So why in the world would I leave Red Hat? In short, because I no longer want kernel development to be my full-time job. I wrote back in June that I wanted to “move out of programming into something more meaningful – feminist activism? science writing? zero-carbon energy?” The answer appears to be (a) feminist activism, in the form of working on behalf of women in open source (as should surprise no one).

Q: Why can’t you work on women in open source at Red Hat?

A: While Red Hat is supportive of community outreach and my work in particular (I wrote the conference anti-harassment policy on company time), I feel that Red Hat already contributes more to the open source community than most companies and should not bear the sole cost of a full-time advocate for women in open source. A Red Hat employee would also have both apparent and real conflicts of interest doing the work I’m interested in – for example, would it be ethical for a Red Hat employee to spend time helping another distro improve their track record for sexist speech?

Q: Why are you leaving now?

A: I have been working on union mounts for the last year and a half and wanted to get it merged into mainline before I quit Red Hat. But then a friend was groped at an open source conference – and then attacked for blogging about it. Within three days, I realized that I had to start working on women in open source now, not later. Fortunately, my manager, Ric Wheeler, supported my work on the conference anti-harassment policy, but as I said, I don’t think Red Hat is the right place for this kind of work long-term.

Q: What are you doing next?

A: I don’t have my next job lined up yet but I’m ready to start talking to potential employers. I’m fully prepared to self-fund for a few months while I work on women in open source projects. This is very much in the open source tradition: Do the work you think needs doing and if it’s useful, perhaps someone will notice and pay you to do it for them. Also, I’m still open to very short-term kernel consulting jobs but don’t intend to go back to consulting full-time.

The worst case is that I will spend three months doing something I really care about, and then get another kernel dev job – a prospect that perturbs me not at all.

Q: What does this mean for union mounts?

A: I will continue to work on union mounts but only part-time – think of it as my personal version of a Google 20% time project. Al Viro understands the union mounts code base better than I do in some places, and I’m certain Christoph Hellwig would have no trouble with it either, so I’m not the only developer capable of maintaining it. Expect one more union mounts release before I leave Red Hat.

Q: Blah blah, bogus in-closing “question” to end the interview neatly?

A: In closing, thanks to Red Hat and all my co-workers for a great two and a half years! And, as usual, I do not speak for Red Hat in any official way.

Red Hat support for XFS

It’s a royal pain to actually get it, but Red Hat officially started supporting XFS as a “layered product” in RHEL 5.4 (about a year ago).

Why might you want to use XFS? Well, take a look at the benchmarks released this week from Eric Whitney at HP. Short version: XFS is the fastest, scales to multiple threads the best, and uses the least CPU (for this workload).

I used to be ambivalent about recommending XFS, in part because SGI imploded and many of the XFS developers scattered to the winds. But now several of the top XFS developers are working for Red Hat, including:

Between the three of them, they have written:

  • 77% of commits in the last year to fs/xfs/
  • 58% of commits in the last 5 years to fs/xfs/
  • 62% of commits in the last year to xfsprogs
  • 17% of all commits to xfsprogs

So I personally feel pretty confident that Red Hat has the in-house talent to support our customers who want to use XFS.


Counts include merge commits. The date ranges are approximate since I just looked for a commit around the date I wanted and included all the commits in a straight line since that commit, but due to merges, commits aren’t in strict chronological order. The mainline Linux kernel only has accurate commit info back to April 2005. Finally, the git history may be in error; this is part of why it’s so important to get commit attribution correct.

As always, I don’t speak officially for Red Hat in this or any other blog post.