I am a feminist hacker: Reflections on the first AdaCamp

I had a wonderful time at the first AdaCamp, held in Melbourne, Australia on January 14, 2012.

I didn’t take notes during most of the sessions, and spent a lot of time listening and thinking.

The two important things I took away from the first AdaCamp were about context – my context, and the camp itself.

My context

I’ve been part of free and open source community since 1994, when I started reading the linux kernel mailing list and compiling my own kernels to support experimental features and drivers. I was welcomed into my mostly male offline community of developers, sysadmins and hackers. I had a male psuedonym when I was online in technical forums. I used a female psuedonym on mailing lists and collaborative writing projects I was invited to back in the early days of alt.* threads that spilled over into specialty LISTSERV mailing lists.

I’d grown up in a very small town, where your reputation is everything. It was incredible, strange and liberating to be able to represent all the parts of me, separately and freely, online.

So, when I got to AdaCamp I felt apprehensive. I’ve had the option of separating out the parts of me online and in free and open source community for so long, and I was struggling with what part of me exactly should be at the forefront here. Being a woman is a pretty important aspect of myself. Addressing it in parts felt wrong, but integrating it all seemed like an oversimplification.

So, I tried to make myself useful by making coffee and sorting out our wireless situation. Then we all got together in a room. I made a few jokes with the people at my table and then fell silent.

Mary and Val opened the day with a short introduction and an explanation of why they thought it was important to have conversations about open tech and culture in a feminist context. And then we started going through the introductions.

I was so terrified to introduce myself that I ran out to work on the wireless network and missed out on most of the introductions. At least we had wireless working after that. :)

It seems so silly to me now that I chose to walk out of the intros. Val didn’t let me off the hook when I got back, and I had to briefly introduce myself to everyone. And the reason why I’m spilling so many words on this point is that I want to let you all know how difficult it is to change your context.

I have identified as a feminist for as long as I can remember. But I’ve nearly always been a feminist in the company of men. If I were to introduce myself again, I would say:

I am a feminist hacker. Right now, my hacking is mostly on people and systems. I believe women and men should be treated equally, but I know they are not. And I want to help solve problems of inequality faced by women, primarily through my work in free and open source software, but also in the workplaces where many of our fellow hackers end up.

Context of the camp

There were too many fantastic conversations to count. I met so many new friends, and came away with new respect for the work Mary and Val are tackling.

Two big sessions for me were a frank conversation about hiring, and an expansive brainstorm about the things women have in common between free and open source, open culture, open hardware, creative commons, remix culture and other “open stuff”. I’m looking forward to future conversations about both things!

During the closing session, many thoughts were shared about what made a day spent talking about so many difficult problems still feel inspiring.

One comment stuck with me – we all shared a context of feminism. With that point settled, it made getting into the depths of many other conversations much easier and interesting. We got to skip over many feminism 101 topics, and have spirited debates and exchanges of ideas in a feminist context.

I hope I can attend the next event!

And you can support the Ada Initiative by donating here.

Support the Ada Initiative

I support the Ada Initiative because biology doesn’t explain: why there aren’t more women in computer science, why I don’t have more women colleagues who hack on databases, or why we don’t have more women contributing to open source projects.

You can support the Ada Initiative, too.

I wrote a few years ago about how I thought we might best get more women involved. Four years later, my tl;dr version is: make friends with women. Imagine if every male developer could name 10 women that they considered friends among their colleagues. People they trusted, hacked with and built new companies with.

But grassroots efforts alone can’t solve the lack of women’s involvement.

My story of involvement with open source and computing starts with friends who shared the fun with me in college. They invited me to Marathon parties, late night hacking sessions with new processors, pranking coworkers whose system images weren’t quite as secure as they’d advertised…

I love free and open source culture, IT security culture and all the people that I’ve met over the past 13 years. My life is so incredibly enriched and joyful as a result of the people who share what they learn with me.

Despite my love, there’s trouble in paradise. We could be better. And one thing I wish for is more women in my open source communities.

Over the years, I’ve been part of efforts to increase the number of women involved in the projects I’ve founded – Open Source Bridge (more than 50% managed by women, >30% speakers women), Legion of Tech (1/3 of the original board members were women), and Code-N-Splode (all women’s programming and speaker development group).

Now, I’m an advisor to the Ada Initiative. I’ve watched over the last year as Mary and Val have worked to focus their mission and identify exactly what they think will encourage women. They have to balance their experiences and the resistance to cultural change endemic to businesses, organizations and the loose organizations around open source.

It’s fucking hard work. And they’re doing a great job.

Ada Initiative is the organization I wish would have existed 13 years ago. It’s the voice of experience and a catalyst for change that we need inside our communities. It’s a place for women to go for advice and help when things go right — or when things go wrong.

So, what can you do?

The Ada Initiative needs money. They need corporate support. They need individual contributions.

If you, or your company, can contribute and keep the Ada Initiative going for another year, contribute today. Mary and Val have done the hard work of getting started. Now they need your help to keep going.

Day 2 at PgConf.EU: hallway track and the marketing of Postgres

The hallway track is always my favorite part of the conference. I had to give a full-length and a lightning talk today, so much of my time was spent making sure I was really prepared and then giving the talks!

But between talks, I got to chat with Heroku, 2ndQuadrant and EnterpriseDB folks about what they think is coming next in the world of enterprise development and Postgres.

One topic that I touched on in those conversations and my lightning talk (Postgres needs an aircraft carrier) was that our plan for world domination needs to get quite a bit more specific and actionable.

For the open source community, the right question is not “are we ready to tackle the enterprise?” — the right question is: Which market segment and customer group are we going to target for complete market domination?

One area that we definitely already dominate is online poker. We have had a few blog posts about it, but not a whole lot else. Another is GIS through PostGIS.

I created a survey to try and capture some scenarios from the developers who work with customers every day solving problems. We need to know more about the people using Postgres and the way that they use the database.

If we can get 30 responses, I’ll publish the results. It’s a bit long, and requires some thought, so I imagine it will take some time to get them all.

If you have a customer that you think represents a good target market for Postgres, take 10 minutes and fill out the survey for us!

PDXPUG Day 2010: 9.0 and all sorts of good stuff

I’m nearly ready for PDXPUG Day 2010.

We’ve got some fun talks lined up from leaders in the Postgres community in town for OSCON. It’s free to attend. We’ll at the Oregon Convention Center, room D131.

Stop by sometime during the day if you’re in town!

Here’s our schedule:

10am: What’s new in 9.0 – Selena Deckelmann
11am: ORMs and Their Discontents – Christophe Pettus
1:30pm: Mining Your Logs For Fun and Profit – Josh Berkus
2:30pm: PORTAL – Dan Colish
3:30pm: An Introduction to Managing and Troubleshooting PostgreSQL on Windows – Tim Bruce
4:30pm: PostgreSQL in Brazilian Army and Air Force – Luis Dosso

6pm-10pm: Party at the Gotham Tavern!

My thoughts about community management

David Eaves wrote about open source contributions recently, and how community managers fit into the picture.

He remixed a graph from Angie Byron, and I wasn’t completely happy with the results. A fairly long twitter thread ensued, between myself, Jeffrey McManus, Emma Jane Hogbin and Peter Krenesky. In the end, David piped up and asked if I’d comment on his blog. So I did. :)

Hi!

I commented via a long twitter thread that I “disagree with putting comm mgmt between user/dev. like @webchick’s ideas better.:)

To flesh that out a bit — my gut reaction to the ultimate diagram you created is that it puts community managers *between* users and developers.. This is a convenient way to demonstrate a process, but ultimately, I have to disagree with the premise behind it.

I work to break down barriers between “users” and “developers”. My ideal world is one where the two overlap to a very large extent. I dislike models of open source community development which seem to promote the idea that there needs to be an intermediary.

I agree that most communities require an interface — it is rarely self-evident how one goes about joining a community if you were on the outside. Many times it is an organic process — your friends invite you, or you run into someone at a conference or bar, or you have to use or work on a piece of software for work. For those who, for whatever reason, are not already on the inside, having a single point of contact (a “community manager”, or in the amusing case of the open source developer group I primarily work with – a “liaison”) can be an invaluable tool.

However, I do not see that role as one that ultimately should belong to just one person. If I do my job right, eventually, people won’t even come to me any more. They will go directly to the individuals inside the community they most want to connect with — because I have managed to open up our community interfaces to the point that they are self-documenting, or easily found with a few clicks on our website.

Possibly, this vision is a bit unrealistic in the near term. But I’ll paraphrase my friend Audrey — it’s way more fun to craft your reality, than it is to passively experience it.

PgCon 2009: Lighning Talks! Call for participation

Ottawa is almost as pretty as Portland this time of year.

Ottawa is almost as pretty as Portland this time of year.

Can you believe it? PgCon 2009 is nearly here!

We need lightning talks for our Lightning Talks session at PgCon in Ottawa, Ontario next week!

I have a few talks lined up (there’s really only time for about 10 of them!), but we need MORE! Lightning talks are FIVE MINUTE presentations. If you’ve never given a talk before, this is a great way to get your feet wet. If you have a last minute awesome thing to share, now is your time to do it!

Anything PostgreSQL related – code, stories, announcements — just send your topics to me! Comment below or email me: selena -at- postgresql -dot- org.

I’ll post talks as they are confirmed here: http://wiki.postgresql.org/wiki/PgCon_2009_Lightning_talks

Hope to see you at PgCon!

Manufacturing Participation

I want to talk about a couple things today during my unfortunately named “architecting participation” session at BarCampPortland. My goals for participation are to get people to an event or be part of an open source group and then to get them to keep coming back.

The three things I’m going to touch on are: inviting in and making people feel welcome, making people feel useful, and making things fun.

With the ultimate goal being world domination of free and open source software.

We’ll see how it goes :)

What’s changed? Portland as an example of increasing women’s participation.

Code from @christiekoehler's presentation. #cns

At Code-n-Splode last night, we first heard Christie Koehler give a great talk on CodeIgniter, the one PHP web framework endorsed by Rasmus Lerdorf, original author of PHP. She went over the pros/cons, details of how you go about installing and then using CodeIgniter, and then showed a very detailed example from her recent work. I hope she posts the slides soon – they were great. (If you want to see our tweets – per Gabrielle’s suggestion, we’re tagging with #cns now.)

After the talk (nearly 9pm!) we all went over to the Green Dragon for our #afterhours chat. Audrey led off by explaining the recent controversy she’d written about, and the Ruby/Rails community response to her posts.

Some of the things she shared I was shocked by – specifically some very personal attacks in comments that she’d decided to save (in Skitch), but remove from her posts. Her standard was: “is this something that would cause my mom to stop reading.” And, if the comment met that standard, she archived and removed it.

I learned about threads in the local ruby community about the topic of women’s participation, and some very positive comments on Hacker News and Digg, and _why’s posts that seem to be expanding perceptions and opening people’s minds to ways that may ultimately be more inclusive of women and minorities.

All told, we had 15 people at the meeting, 13 of which were women. Our first Code-n-Splode meetings started with about five people. Our largest meeting (thanks to the clever, rocket-building Sarah Sharp) had somewhere around 30 people.

Among the many things that the Code-n-Splode crew discussed last night was “what made portland different”. And I thought I’d let you in on our secret.

We ask women to participate.

When we have code sprints for Calagator, Open Source Bridge or we have the Agile development meetups dedicated to coding – there are always women there. From what I understand, having women show up regularly to code sprints is unusual in other cities.

When I am responsible for these meetups, I contact the people that I want to attend directly – and I ask them to come. This is a mix of women and men (I no longer have to explicitly think about inviting women, because so many are already in the community). But when I was first asking people, I *did* have to contact women who were just dipping a toe into the community — to convince them that yes, joining us would be fun, educational and sometimes good for their careers.

When I first started attending user groups regularly about nine years ago, I often was the only woman. Now, it is extremely rare for me to be the only one. Particularly in groups that span multiple technologies (Web Innovators, Open Source Bridge, Extreme/Agile developers, Functional programming, and BarCampPortland come to mind) or are largely social opportunities for geeks to mix (Lunch 2.0, Beer and Blog). More geeky women (and women that I don’t already know) seem to attend these types of events.

I don’t think there is a single magic formula for transforming your city’s geek scene. But I think it is worth asking questions of the Portland tech community leaders, finding out how our groups work and trying out our techniques in your home town.

The future of free and open source support models

I attended the MySQL Conference all last week, and am feeling very excited about the future of open source databases. I had many interesting discussions and met a ton of Drizzle hackers I was lucky enough to spend Friday with, digging through code.

I was talking with Paul VallĂ©e of the Pythian Group Thursday about Postgres and the future of enterprise support. And he showed me this great graph from indeed.com. It’s acceleration here, not the raw numbers – but still, a neat graph :)

We discussed the issues that enterprise customers with certain types of regulatory obligations encounter — such as contractual obligations for PCI-compliant credit card storage or outsourced management of sensitive data. The standard response developers might give for this is “read the spec, and make sure you implement it properly”. But the truth is, for larger companies, that may not be enough.

So, assuming for a moment that the Postgres community would even want to address this problem as a group — could it be possible for the Postgres community to provide the legal and financial assurances that an incredibly huge corporation (ahem – Sun/Oracle) can?

The short answer for Postgres right now is “no”.

Originally, I had thought just in term of liability, but Paul clarified:

The liability is just one component of what gives the guarantee meaning because there is a consequence to failed delivery. An SLA can also do this. As can a simple lucrative contract that can be lost, or canceled early if delivery does no take place. The key here is to ensure that the technology adopter can legitimately be confident that they are provably being responsible by adopting the platform. “I trusted” doesn’t cut it for many.

My view was that this type of agreement helps to determine who exactly is to blame (and who can be sued) in the event of a software failure. But, Paul said, “It’s more about assurance (with evidence) that obligations realistically will be met.”

I sometimes think that this system of liability and assurances is just ultimately broken. But it is a reality. So, would it be possible for us to come up with a new legal framework for community-driven software?

Paul brought up the idea of a cooperative, and that maybe such a legal entity could provide protection for individuals involved in supporting Postgres, and also shoulder some or all of the liability that a corporation using Postgres would want. I’m not sure that core developers of Postgres would join such a thing, or whether they would be allowed to given existing agreements they have with their own companies. But it is an interesting idea.

Creating a blueprint for this type of organization – hackers cooperatives – could be a way for truly community software to be developed across companies and among individuals in a sustainable, and “trustable” way. Maybe?

Continuing this train of thought – maybe these are non-governmental organizations, whose main purpose is to create and maintain infrastructure software for the good of the world.

Funding for mid-sized free and open source projects seems to be a consistent problem. Perhaps NGOs are a fair model for us.

I am curious about what effort may have already been made in this direction. My next step will be to contact Bradley Kuhn and see if there’s something out there that might address this.

FSM, visibility map and new VACUUM awesomeness


Heikki Linnakangas, listening as Simon Riggs sketches on the chalkboard.

Update: Heikki’s slides are here!

Heikki Linnakangas gave a presentation this past Sunday at FOSDEM about the improved free space map (FSM), which tracks unused space inside the database, and new visibility map, a bitmap which will indicate which data pages can be skipped during a partial VACUUM. This performance enhancement will affect all users of the upcoming 8.4 software release. You can see what the new FSM implementation looked like back in October from depesz’s blog.

Despite Heikki’s modest claim during the talk that the performance tests were inconclusive, the consensus among Postgres contributors is that this feature will result a substantial improvement in the performance of VACUUM for tables that are large, but have few UPDATEs.

The new free space map and Visibility map (in 8.4) and autovacuum (enabled by default starting in version 8.2) are huge administrative usability improvements to version 8 of Postgres. Prior to version 8.1, VACUUM had to be scheduled outside of database system. Autovacuum has been part of the core Postgres distribution for over two years, and is tunable via several global configuration parameters.

The visibility map enables partial VACUUMs — meaning that VACUUM no longer has to examine every tuple to update the FSM. The new FSM implementation eliminates two configuration parameters, effectively automating a formerly manual configuration process.

The new FSM is stored on disk in seperate files inside of $PGDATA/base/, and is cached in shared_buffers. The result is that the max_fsm_* configuration parameters are no longer in 8.4 — Postgres is able to track and adjust this data structure without user intervention.

A few critical features of the new FSM are:

* Now a binary tree structure
* Constructed using 1 byte per heap page
* The top level shows the maximum amount of contiguous space available
* The data structure is auto-repairing and can be reconstructed from the bottom

Previously, every time that VACUUM was run, the free space map had to be reconstructed from scratch. Now, individual nodes in the map may be updated (aka “retail” updates).

Visibility map is a bitmap of heap pages which tracks which tuples on pages are visible to transactions, and therefore not available for VACUUMing.

Previously, when VACUUM ran, it *had* to look at every tuple in a table, because there was no information about which pages may not have been updated since the last VACUUM. With the visibility map, VACUUM will now be able to perform partial scans of table data, skipping pages which are marked as fully visible. Partial scans means fewer I/O operations for VACUUM, and happier database administrators.