Programming as an activist skill

Long before there was LabourStart, long before unions were using the Internet, I was a computer programmer. I worked in a worker-owned and democratically-run wire and cable factory, and my job was to maintain the computerized information systems. I learned to program in a language called RPG which was used on IBM computers.
The skills I learned then have proven to be of great use to me now, as an Internet activist working with unions around the world. I think the time has come for unions to begin to understand that programmers can play a vital role in our organizing and communications strategies.
These days I no longer program in RPG and haven’t seen an IBM mini-computer for years. Most of my programming these days is done in a language called Perl, which is one of the two or three most popular languages for writing Web-based applications.
Many trade union webmasters have learned HTML, which is the language that web pages are written in, and many have learned how to use tools like DreamWeaver or FrontPage to write the HTML for them, but very few have learned a proper programming language.
Why should they?


Because these languages — and the most popular would probably be Perl, PHP and Python — allow you to do things that ordinary web page design doesn’t allow.
By using such languages, you can tremendously expand the effectiveness of your website.
Let me explain by example.
I was working on a website of an international organization that has affiliates in many countries. It wants to list on its website all the affiliates, by country, in alphabetical order, with their website addresses and email addresses. The last two have to be links, so that you can just click on the name of the affiliate and visit their website, or click on their email address to automatically send a message to them. And the list changes every few weeks.
Using Perl, I was able to write a very simple script to read through a text file with all the information, sorting it and formatting it as web page. No one on the organization’s staff needs to know any HTML at all — my Perl script handles all that. All they need to do is to keep their text list up to date.
That’s a very small and simple example, but I think you get the idea.
If you look at LabourStart, you’ll see an increasing number of interactive components to the website. There are the labour newswires, which generate syndicated content automatically, every few minutes, in different formats (JavaScript and RSS). All that is done using Perl scripts.
There’s a directory of all the websites using those newswires, and a sub-directory of those which use only the new health and safety newswire. That too was written entirely in Perl.
Of course the entire back-end of the website, the giant news links database with its thousands of records in 19 languages, submitted by over 300 volunteer corresponents, is entirely coded in Perl.
So is the whole campaigning system — the generation of HTML web pages with online forms, the sending of protest messages, the counter tracking the success of a campaign — all of these are interactive scripts, written in Perl.
Okay, so I’ve got you convinced. Unions can make great use of languages like Perl, PHP or Python to get their websites to do a lot more than simply display some web pages. But there is a downside.
A few years ago, I suggested to a union that they make some changes to their site, which was using Perl scripts. They asked their web design company, and were told that it would cost $1,500 a day to get a Perl programmer to work on the project. I was later told that this was the going market rate in Britain.
But Perl isn’t rocket science; if you have a programming background, or if you just take the time and effort, you can teach yourself. I taught myself, mostly using Elizabeth Castro’s terrific little book, “Perl and CGI for the World Wide Web”. (A dog-eared copy is always within reach of my computer.) And you learn by example; you download Perl scripts that are readily available and you modify them to suit your union’s needs. One good source is here.
Perl, PHP and Python should be taught at union education centers to those webmasters who’ve already learned HTML and want to know more. Those of us who program in these languages should make some of our better scripts available to other unions. For example, LabourStart uses a lovely little script to count visitors to our various home pages, to show them visiting in real time, and even to show which websites they came from. A script like that could be a great alternative to the counters we often see on the bottom of union websites.
Now that unions have been using the web for a decade or more, it is time to upgrade the skills of union webmasters, to become less reliant on outside contractors (especially at the rate of $1,500 a day), and to learn to use the very best tools ourselves.

12 Comments on "Programming as an activist skill"

  1. Rosemary | 10/02/2005 at 11:39 |

    Dear Eric,
    This sounds great but,unfortunately, your obvious enthusiasm and competency (not to mention committment to excellence) is a rare thing so i would be surprised if anyone else cares (as much anyway)about their website’s efficiency.
    Rosemary

  2. Eric – I am completly with you on this one.
    can I add – we should be encouraging unions and mebers to use adn advocate open source software – it is key to democratising access to resources – and also trying to get more union members to keep web logs – and also collective web logs.. Anyone who would like a group or individual web log can email me and we will host this for free.
    Graham

  3. Comment to Rosemary and Eric:
    The care for abilities like this depends on your goals, understanding of the roads and amount of hope to get there.
    If we are not only applying for longer bread but want to take over the bakery, we have to master flour, yeast and whatever else goes into baking.
    If we want to organize effectively, we have to master communication effectively. The Internet is the best news so far, and if some hours of concentrated reading and experimenting with program code can enable us to do much with relatively small resources, it’s worth it.
    But the necessary number of hours (and your hope of getting there) will of course vary with what concepts you already have about telling computers what to do.
    I think Eric does a great job feeding our curiousness in this field…

  4. Dear Eric
    I’ve been doing something rather less, using an ancient dos database program (paradox).
    All paradox will do is write text files, but as you know web pages are just text files so I can have a static web site generated at least in part by paradox. This saves me lots of time sorting and coding, fixing errors I’d inevitably make doing it manually. But it really is a dog, 8+3 filenames, 255 char database fields and so on.
    I’d dearly love to upskill but I’m a volunteer and work for a small union with limited funds. Server side scripting is not an option at present. The software you mention, can I work with it in a similar way to how I’m working now? Do you have any other suggestions?
    Thanks
    John Potter
    (the email link below won’t work, I’m spam averse, please reply here)

  5. Dear Eric and All,
    I agree here as well. One thing I’d like to point out to less tech-savy peeps is that democracy is a big issue with websites. The perl script above Eric speaks of would help that issue normally. I don’t know a programming language, but I do know that most in my unions don’t even know html. The problem becomes that you could either have one person entering all information into a website, and thereby have a great deal of work and control, or you could make a website simple to update and expand for those who lack much computer skill. This is the key. If we can make a simple system for people to put information up on the web, the web pages of unions will become more active and dynamic. If Eric says perl can do that, maybe I should look into it 🙂

  6. Ian Allinson | 10/02/2005 at 19:24 |

    Todd,
    the point about using server-side software to run a web site (like Eric is suggesting) is that it REDUCES the skill required to run the web site on a day-to-day basis. Contributors typically create their content by filling in forms, using menus etc, not even needing HTML.
    As you say – getting MORE PEOPLE to provide content is the key. It means more up-to-date content that covers more issues from more points of view.
    Where I’d slightly differ from Eric is the need for programming skill. I agree that a little bit of skill is necessary at the moment in order to set up dynamic web sites that can be updated by the unskilled.
    I think the way forward is to use more of the ready-made tools that do a lot of the things union activists want – many of them free (cost) and open-source. A web site I help run makes heavy use of Blogs for news – dead easy.
    Why don’t the TUC put together a good set of free tools and persuade an ISP to offer a hosting package with them pre-installed so that only a bit of config is required?
    I’ve been trying to start thinking this through here:
    http://moinmoin.riters.com/ITforUnionOrganising
    Add your own thoughts…

  7. Sounds great! Unfortunately, I think a good class at the local UAW/GM Skill Center (or any other union sponsored class) is a long way off, but what about a help forum like they have on some websites? Where people can go with their tech questions and problems and get help from people like you, Eric? I know I’d be there both to help and to be helped.
    I have been able to teach myself enough HTML and PHP to almost completely automate a website for my husband (http://www.GmGypsy.com) and am considered web “steward” of Gregg Shotwell’s website (http://www.GreggShotwell.net)…But I still need help.
    I could help with some HTML or basic PHP. I need help learning Perl, and implementing PHP script ideas I have but can’t quite get right.
    I think a good technical help forum for activists would be a more realistic goal for now.

  8. Eric Odell | 11/02/2005 at 16:39 |

    Todd writes:
    “If we can make a simple system for people to put information up on the web, the web pages of unions will become more active and dynamic.”
    There are a bunch of systems that have been and are being developed to do precisely that, without the person setting it up needing to know much (or any) programming, and without contributors of content needing to know much (or any) HTML. These systems are called “content management systems (CMS).
    The whole point of a CMS is that once it’s set up, web content can be added, changed, rearranged, etc. with very little difficulty through a built-in interface. The look of your site is set up in a template, and the CMS stores the content in a database on the web server and then serves it up through the template when the viewer’s browser requests a particular page.
    I am developing a site using a CMS called Mambo (http://www.mamboserver.com/). There are plenty of others, such as Xoops (http://www.xoops.org/), Drupal (http://www.drupal.org/), Plone (http://plone.org/), etc. A good site for checking them all out is CMS Matrix (http://www.cmsmatrix.org/). The best ones to look at, of course, are open source/free software.
    I think for a union’s purposes, a CMS that’s more community-oriented rather than static content-oriented is the most appropriate. (From what I’ve read, Drupal, Xoops and Plone are particularly good ones to look at in that regard.)
    They all have lots of options for what to include on a site, such as newsfeeds, discussion boards, feedback forms, etc. It’s basically up to the site developer to decide what to include and how to arrange it all.
    -Eric Odell

  9. Eric, I completely agree with you on this issue! And also with Graham Attwell’s point about advocating the use of Open Source programs and systems.
    I personally use PHP for my local union website (http://www.pkf107.no/). It is mostly based on a great, Open Source content management system called Mambo (http://www.mamboserver.com/) that really makes it easy to create and maintain a dynamic website. And most people without any knowledge of HTML and PHP could install it and have the start of a website with this system in a very short time!
    And with a little knowledge in PHP, it is fairly easy to expand the system with custom made components and modules. There is also a thriving user community that both makes additional components, modules and templates and is very willing to give support.

  10. It helped me a lot to know more about the perl as
    i am a beginner using the same

  11. Another reason it is good for activists to learn programming is because most programmers (even progressive ones who will do tech stuff for unions and community organizations for free or cheaply) rarely have any kind of organizing background. Before teaching myself web design programming, I spent too much time trying to communicate with web design and programming people who knew how to do all kinds of neat things with websites, but didn’t really understand the organizational reasons why we would want X rather than Y on our site. Now I can custom-design mini content management systems for parts of the site which are geared towards the particular kinds of information we need to communicate to our members.
    Also, for my 2 cents, php is *much* easier to learn and integrate into an existing site for people who just know html – I taught myself from tutorials on the web.

  12. Remove Bush | 14/05/2005 at 23:35 |

    Wed 1 June 2005

Comments are closed.