Paying It Forward

This was originally posted on the Local Fourth blog as part of my participation in a community media innovation project at the Medill School of Journalism.

I’m finding the word community increasingly confusing, especially when navigating the world of hyperlocal publishing.  When someone says community, do they mean community like the city of Evanston, or the city’s West Side neighborhood, or a block club or church. Or, do they mean the community of users of a particular site? When do these groups intersect, when are they too disparate?  The 2010 Knight News Challenge goes as far as defining a specific Community category for entries:

Community: Seeks groundbreaking technologies that support news and
information specifically within defined geographic areas. This is designed to
jump-start work on technologies and approaches that haven’t arrived yet.
Unlike the first three categories, sub-
missions in this area must be tested in a geographically designated community.

But, in a Sept. 20 post announcing the 2010 challenge, the poster wrote “I think of this as our io9 category,” referring to a Gawker Media-run science-fiction and popular culture site.  Perhaps the poster was referring to the future-focused voice of the site, but it also surfaces the possibility that people may increasingly identify with communities and person-to-person interactions that aren’t geographically bound.

In looking at strong, geographically disparate online communities, groups of people engaging around free/libre/opensource software, or FLOSS projects are one of the most compelling. While they can exhibit the same segregation or bickering of physical communities, they can also be a model for people coming together to build something that serves a clear need. The way in which many projects are firmly grounded in utility and the way in which similar projects seem to sustain themselves not by competing but by understanding how their project does a job that’s different than other software is a lesson that media organizations, particularly in the hyperlocal space, would do well to learn.

FLOSS projects also complicate traditional notions of sustainability. While many projects have found ways to sustain themselves financially, either through donations, sponsorship or by incredible use of volunteer time coding, documenting and providing help and training for the project, FLOSS projects tend to put utility ahead of commercial viability. Making technology that serves a need and remains relevant and responsive to changing needs and to feedback from users is as important to the sustainability of the project as the dollars and cents.

We make use of a lot of FLOSS for implementing the technological part of the innovation project. While there are lots of ways that we could give back for this technology that is so useful us as developers (Palintir, a Chicago-based web development shop that specializes in sites based on the Drupal content management system, for instance, contributes code that they use to develop new features for their clients back to the larger Drupal community), the tight time constraints of graduate school and a rapid project mean that dollars are the best way that I can give back to these projects.

Even though most of the tools that I use to make technology are available free of cost, paying something for them helps me think of how I value the tools for this project. I’ve decided to donate the amount of money that I spend each week on a common indulgence during this project, going out for lunch with other team members, to some of the FLOSS tools that I’ve used the most in the last few weeks.

Python – most of the code in this project is written in this language. It’s flexible, easy to learn, has a large number of useful contributed libraries and is very readable making it easy to understand someone else’s code. Donate to the Python Software Foundation.

jQuery – If the back end of the project is written in Python, the front end is highly dependent on the jQuery javascript framework. JQuery makes it easier to implement some of the rich user interactions that people have come to expect on the web. Donate to the jQuery project.

Django – Django is a Python web framework that has its roots in the newsroom. . The first time I used the framework, I was amazed at how it streamlined the most tedious aspects of web development. When I’m curious about how to do something in the framework, I often discover that there’s an elegant approach provided in the framework along with clear documentation. Donate to the Django Software Foundation.

Vim – I was compelled to learn to use this editor when I started at my first tech job at a regional Internet service provider. The network administrator said that it was important to learn vi (Vim, an enhanced version of the classic UNIX editor, stands for vi improved) because you could be assured that it would be available on any UNIX system that you found yourself poking around. While the navigation of the program, which is keystroke heavy, seemed unintuitive at first, once I got used to it, the lightweight but highly customizable and extensible editor felt like it was designed just for me. Rather than asking for donations to sustain the project, Vim’s lead developer solicits donations for a charity that supports children in Uganda.

Firebug – I don’t know how I wrote programs for the web before Firebug. This Firefox extension helps me understand and tweak the HTML and CSS of a design and also see what is going on behind the scenes with Javascript errors and AJAX requests. Donate to the Firebug project.

craft, code, gender, and computing

Embroidery is constructed (mostly by women) in hundreds of tiny stitches which are visible on the front of the fabric. The system of the stitches is revealed on the back of the material. Some embrioderers seal the back of the fabric, preventing others from seeing the underlying structure of the pattern. Others leave the back open for those who want to take a peek. A few integrate the backend process into the front of the fabric. The patterns are shared amongst friends in knitting and embroidery ‘ciricles’.

Software is constructed (mostly by men) in hundreds of tiny pieces of code, which form the hidden structure of the programme or interface. Open Source software allows you to look at the back of the fabric, and understand the structure of your software, modify it and distribute it. The code is shared amongst friends through online networks. However the stitches or code only make sense to those who are familiar with the language or patterns.

-Else Carpenter

I’ve been reading a book about gender and computing that looks to point to gender as a feature of the digital divide.  What is more interesting is that the authors, psychologists, seem to look at how computers are presented in an educational setting as a contributing factor to why boys and girls have different levels of comfort with computers and end up using them differently.

So, it was interesting to come across the blog post Open Source Embroidery: an interview with Ele Carpenter today because it seems to talk about the idea of technology at a very meta-level, drawing parallels between disciplines (craft and engineering) and media (embroidery and code).  I started knitting, and I guess part of the interest was that it was this gender-transgressive activity, but I also quickly saw the parallels to computer programming.  You can build things from scratch or from patterns (even the language is paralleled with pattern in software engineering referring to an algorithm for a reusable approach to a commonly repeated task in code) or a combination of the two.  Similarly, coming from an interest in FLOSS and the approaches that underly that kind of software and computing environments, I saw parallels in knitting in the multiple approaches that can be taken to reach a similar result.  Though there are many more parallels that can be drawn, the final one that was apparent to me was the vast amount of online documentation that I found for knitting and how it ranged from educational howto sites, to sparser patterns designed for an audience of similarly advanced skill level, to sites showing off the knitter’s prowess.

For better and worse, I think that I approach knitting in a very gendered way as I have a bag full of half-finished knitting projects in my closet.  This reminds me of the trainer who taught the secure programming class that I took earlier this week talking about his tendency to stop projects half-way through and how that had lead him to pursue consulting rather than development.  He ended this anecdote by saying, “for the ladies in the audience, I’m sure that you know what I’m talking about”, referring to the idea that their husbands also frequently started projects that they wouldn’t finish (which assumed that the women in the class were both straight and married which is a a whole ‘nother deal).

Ultimately,  I think that this discussion of software and craft is important because they show how similar skills, analysis, and culture has been constructed across a pretty vast gender divide.  To me, this is evidence that technical (or craft) ability is not tied to a particular gender and that the overall absence of women from computing (and in particular FLOSS) or men from crafting has less to do with the way their brains work and more to do with social construction.

notes for the week of 2007-09-24

Tim says to check out Kaati rolls while I’m traveling.

This wiki page has info on how to configure e-mail integration in eventum which Boxcar uses to handle tech trouble tickets. I wanted to turn off auto issue creation because we get a lot of e-mails that don’t neccessarily want to become issues and then there’s the overhead of closing the issue.

The Allied Media Conference is taking proposals for some web development. Josh asked me about Drupal vs. Joomla, and I’m not that familiar with Joomla. This thread seemed to offer some insight.

kdenlive is the software I started using to play around with video editing on linux.

I’ve long wanted to be able to do a substitution or other command on a visual block. It turns out that there is a vim script called vis.vim to help you do this.

I read mail using a lot of different clients. So, I wanted to seperate my mail filtering rules from my mail client. Imapfilter does the trick and though it’s configuration language is daunting at first glance, it’s not too bad.

I was wondering how to drop all tables in a MySQL DB from the command line:

mysqldump -u username -ppassword –add-drop-table –no-data database | grep ^DROP | mysql -u username -ppassword database

worked fine.

making a 4up PDF

This is the command that I used to make a 4up (that would be four equally sized images on one page) layout on letter sized paper of a tabloid sized poster. I used the excellent Multivalent tool’s Impose feature.

C:\Documents and Settings\surplus\Desktop>java -Xms32m -Xmx256m -classpath “C:\Documents and Settings\surplus\Desktop\Multivalent20060102.jar” tool.pdf.Impose -nup 4 -dim 2×2 -paper letter -page 1,1,1,1 promposter.pdf


This is the command that I use on my notebook running Ubuntu Gutsy Gibbon:

/usr/lib/jvm/java-6-sun/bin/java -classpath /home/ghing/java/Multivalent.jar tool.pdf.Impose -nup 4 -dim 2x2 -paper letter -page 1,1,1,1 describe_yourself.pdf

backing up my mail with isync

In the event that I switch mail providers, its good to have a backup. I found the isync program that seems like it will do a good job with this. Here is the command line I used to do the backup:

isync -1 -M mail_backup/ -L -s -u imap_username -a