Mozilla Summit 2013: bugs, crafts, and fun

The Mozilla Summit in Toronto was a lot of fun. I met so many intense, idealistic, motivated open source contributors, it made me feel renewed energy for my own contribution.

On the first day I heard some of the keynotes but missed Mitchell Baker’s keynote on the Nature of Mozilla, which I’m going to watch today. People were talking about it through the rest of the conference, so I’m curious.

The talk I did was called Awesome Bugzilla Tricks and was a fairly short presentation of some tips for using Bugzilla.

As we went through these tips, the talk turned often into a good discussion of how people use these features of Bugzilla. We thought of a new way to implement Bugzilla tags to look more like browser bookmarks.

People talked about their own workflow as we went around the room describing what we do with! That is usually my favorite part of a workshop level technical discussion. It is like a series of sharing mini-demonstrations about actual working process, what we use and what we do and why. That is very illuminating. I realized in our discussion that I was talking with Kohei who made bzdeck, a tool that makes reading bug reports more like an email inbox. I had particularly wanted to meet him so was very happy he came to the talk and the discussion! 😀

Durng the talk I said something a little weird and abstract that was not in my slides, inspired by the discussion. Here it is…

As a literary critic I find it fascinating that it is a huge collection of textual information which we engage with as authors and readers. It is like the ultimate “difficult work”, like reading James Joyce except 900,000 times better and with a more interesting result. There is no way to make it easy to understand, even if you can make little pieces of it easier to use and learn, the underlying information and tasks are beautifully complex and demanding for anyone who engages with it, which means you can’t fail to learn something if you try.

Then, luckily, we went back to talking about practical things, features, dashboards, and workflow.

The other main activity I did at the Summit was to set up a big table with craft supplies. Based on an idea of Lukas Blakk’s, I set up beads, string, and charms shaped like ladybugs, dragonflies, bees, and beetles so that people could make necklaces, bracelets, and other wearable souvenirs. The beads had numbers and letters so that you could spell out the number of your favorite bug.

People did just that!

I loved seeing people think about what bug was their favorite or most important to them personally. Sometimes a first bug, or one that people were proud of fixing, or one with an important, complicated discussion. Several people told me that during the Summit, they looked up other people’s favorite bugs from the bug bracelets, and learned something interesting.

Bug 356038 was represented by number and by its Bugzilla alias, BCP47:


Rust and Github bug #5677, ‘Rustpkg “ready for use” metabug’ got some love:

Tim with Rust bracelet

Vu gave a shout out to bug 780076,

bug bracelets

And here is another bracelet featuring bug 808964,

Bug 808964 bracelet

For my own favorites I made three objects, one a wire necklace for bug 923590, “Pledge never to implement HTML5 DRM”, and a bracelet and a barette with my first patch because I was proud of submitting a patch. The EME or DRM issue was discussed very intensely on Sunday by many engineers. Feelings definitely ran high and people were determined to continue discussion. I was glad it got an official slot in the schedule for discussion and that there was widespread interest.

Favorite bug maker party

Bug 298619 was put onto a cell phone charm along with a blue and orange glass bead shaped like a beetle!


Many other people made Mozilla or MozReps necklaces, spelled out their names or their loved one’s names, with bug charms, or with wire, like this beautiful and creative copper wire creation:

copper wire necklace

And this Maker Party necklace!

Maker Party!

This resulted in “conference swag” was personal and made on the spot, worn and also given as presents! Many people commented that they felt soothed and comforted by hands-on activity in the middle of intense social interaction. I observed that people discussed what bugs or words to spell, how to design their objects, and what techniques to use, very collaboratively, so it was a nice physical representation of work and process.

Mozilla Summit crafts

After the first day, I left the craft station open 24 hours in the lounge, replenishing it with beads from West Queen Street on day 2 becasue we ran out of the letters Z and A, popular in spelling out “Bugzilla” and “Mozilla”. Of course this was because we were in Canada, where they use a lot of “eh”!

I would do this again at a conference, and now I know from experience what supplies are needed and which things are likely to be popular.

The other silly and fun part of the conference for me was wearing (and lending to people) the brainwave controlled robot fox ears! The looks on people’s faces, so priceless, as they realized the ears were really moving. Everyone who tried it laughed very hard!


robot ears

Thanks for a great and inspiring Summit, everybody!

Related posts:

Walking through early bug triage

Here is a good example of a bug that went through several stages of triaging:
Scrolling a page up leaves residue in GTK slider
. I would like to walk through what happens in triaging this bug. Blow by blow report!

The bug reporter, Przemek, was new to Bugzilla, so their report was automatically put into the UNCONFIRMED status. The bug summary (the title) was originally “artifacts on scrollbar in seamonkey 2.15” and it was put into the product Seamonkey and component General. (Here is a list of Seamonkey components, if you’re curious.) Przemek attached a screenshot of the problem. At the bottom right corner of the screenshot you can see the scrollbar has some weird stripes on it.

Scrollbar bug screenshot

Matti suggested a possible duplicate bug. That shows us a related problem and which product and component it might belong to. It also can reveal some people who work on this type of issue.

Another commenter, Slim, relatively new to Bugzilla, chimes in to say they have exactly the same issue, in Linux and that it may be a GTK problem. They include the information from about:buildconfig .

A fourth person, Philip, asks if someone who sees the problem (either the reporter or Slim) can try toggling a preference. Slim tries it but it doesn’t fix the issue. He speculates it is related to Bug 297508. Philip uses the NEEDINFO flag to ask Przemek a question (this emails Przemek with particular Bugzilla mail headers). Przemek replies, which
automatically clears the needinfo flag. Philip then decides to move the bug from the product Seamonkey to “Core”. component General to Widget: Gtk. That shows up as General -> Widget:Gtk in the comments.

Cotton Harlequin Bugs

One week later, Karl shows up in Comment 10. If we look at the list of module owners and peers for Mozilla, we can see that he is the owner for Core::Widget:GTK. I figure he was probably was looking at bugs in that area, or reading his bugmail backlog. There are 328 bugs UNCONFIRMED or NEW for Core::Widget:GTK, which you can see if you do an Advanced Search. Anyway, Karl reproduces the bug and moves its status from UNCONFIRMED to NEW. He added the keyword, “regressionwindow-wanted”. The next day he comes back and adds some info about the regression window and removes the “regressionwindow-wanted” keyword. narrows that window even further. He then moves the bug to
Core:: Layout
and adds the keyword “regression”. It is probably out of his hands now. But whose it it in?

There are over 2300 open bugs in Core::Layout, 1809 of them new and not assigned to any particular person. If I look to see how many of them have the keyword “regression” there are only 140, most of them assigned to “nobody”. So if I wanted to fix something in Core, that might be a good place to look for a bug that needs attention.

All the commenters described here were doing bug triage or what I am now calling bugmastering. Five people, two weeks. I think all their efforts and comments were useful in moving the bug along and adding new information to it. It is also instructive (and for me, reassuring) that not everything was “right”, right away. Actually, I think it’s beautiful to see how well everyone communicates, much of the time in Bugzilla.

At this point, if Bugzilla had the READY status implemented, I would call it READY. Not just to signal to developers that it is ready to be worked on, but to signal to other triagers that it may be done and they don’t need to keep looking at it. That is part of why having a clear demarcation point will be useful. Even though there is more than could be done, this is probably enough for someone knowledgeable to take it and work on it. I would consider its “early triage” life to be over and for it to be in the hands of engineering, QA, and rel-eng, who have their own models for triaging internally for their stages of handling the bug.

Now, that doesn’t mean that as your Mozilla Bugmaster, I can blithely ignore all bugs once they are done with early triage. Yet since this is a minor layout bug that does not seem to affect function I think I can let it go and hope that someday it is fixed.

It is possible that we could make some cruft-killer searches, reports, or other views that could pick up this sort of bug 6 months from its first reporting, and do anohter check to see if it still exists. If it’s been cleared up in the meantime, make a comment mark it RESOLVED WORKSFORME. Right now I’m sure some people have figured out good systems to do this, but I think most people stay focused on what’s incoming or what is especially brought to their attention. Re-assessing old bugs, or bugs within a particular time window (6 months to a year old, but not 10 years old) may be a good way for beginning bugmasters to start chipping away at some of the cruft in the system.

Related posts:

What it might mean to make maps

We have now mapped the tiny corner of our creek and given names to nameless places, extending human dominion to yet another junkyard and mudflat.

Chart of Pete's Harbor and Environs

As I kayaked around with my friend Adina she babbled to me charmingly of how we were in the same place but in a different place. Everything about the land and the water became different because we were on the water looking at the land. I agree! Distances open up hugely and pinch themselves up into almost nothing depending on the wind and current and tide. The parking lot of an office, a boring place, turns out to be the best fishing spot on the creek, full of families hanging off their truck tailgates.

Many of my names for the creek are jokes but they reflect the way we are using the creek as kayakers and what we think is important. The places where trash collects, the strength of the current, the mudflats, the sticks and pilings and pylons that are landmarks, the place where the grebes hang out, the wind shadow of Middle Bair Island.

We remap our minds by traversing the edge of the known map. I was thinking about frontiers, wastelands, and edges. At Open Source Bridge I said some stuff about wastelands. When you hear a place described as empty, reach for your gun. Just kidding. No, when you hear a place described as empty, you can be sure someone is exploiting it. The desert, the wasteland, and the frontier, are obfuscations.

So in my naming of these places I open up different possibilities of exploitation, but since no space is unnamed and unobserved — they are named and observed and mapped by governments and corporations — I would prefer that they be named and observed in a decentralized way by anyone at all. (Which is one reason I adore Open Street Map and Open Sea Map.)


As I look back on the history of Bair Island and Redwood Creek I keep finding ghost places – like “South Shores” which was an attempt by a developer to rename the slough as a suburban extension of “Redwood Shores”. Or like Deepwater Slough, which still has a faint track on the satellite photo – the C shaped trace that loops across Middle Bair, across from the Port – the dredged mud and pickleweed it encloses still privately owned and still named “Pacific Shores” probably for some totally screwed up future condo development scheme.

Bair Island EIR map

The Bair Island history, its battles, and its 2006 EIR are all deep background good for anyone interested in the proposed 12,000 household development of the wetlands-turned-salt-ponds owned by Cargill. On the maps they’re the pink rectangular areas that barely even look like bay anymore.

A neighbor of mine across the harbor is gearing up for that battle on another blog, Virtual Saltworks. The ponds are still part of the bay and still supposed to be open space and wetlands. We could use a little bit of digging into maps and history – what was First Slough like before it was diked? What would it take to restore it at least to the state that Bair Island and Corkscrew Slough are in now?

Soon the abandoned docks and the piers for electric company access to overhead cables will be decorated underneath by pirate mailboxes where Milo and I will leave secret messages for the world.

I have some great ideas for Community Kayaks. They’d be like the civic projects for free bicycles anyone can use without fuss. It would be very easy and cheap to start and maintain a simple flotilla of boats free for anyone to use. More local people would use Redwood Creek, would see the edge of our town, the cultivated-wild places that exist right next to the industrial port where oceangoing cargo vessels offload their gypsum, sand, and gravel and load up clanking waterfalls of scrap metal. People barely care about the Creek because they don’t know it’s there. If they paddled around on it they might get fond of it.

I got a little obsessed with the Alviso boat ramp opening. If you live in Redwood City – do you know where the public boat launch ramps are? There are two that I know of!

What is the Bay for? Who gets to go on it? You shouldn’t have to be rich – or go on a giant ferryboat – or treat it like a sort of horrible wet golf course –

Where are my beautiful floating islands made of trash and full of ecological minded Burning Man hippies cultivating flats of pickleweed and nesting habitats for Caspian Terns? I also imagine a beautiful anarchosocialist cooperative marina with art projects and rogue marine science. It would be easy for us here in the harbor to be monitoring water quality, observing the plants and birds and fish, and so on. Decentralized maps and some kind of visionary open data project could make for some great open source science – I’m sure someone’s doing this already.

Related posts:

WordPress security checkup

If you aren’t using the latest version of WordPress, your blog might have been hacked. There’s an attack going on right now that creates and then hides administrator accounts.

You can see if this has happened on your blog by going to the Dashboard and then the Users panel. The number listed in parentheses after Administrators should match the number of actual admins that you have for the blog!

WP users panel

If that number is higher than the amount of admins for the blog, you probably have hidden users. You could try turning Javascript off in your browser to see those hidden users.

Then, delete them (if you can) from the panel. I didn’t try this myself, but I think it will work.

Or, you can use mysql or phpmyadmin to delete those users from your database. If you don’t remember how to connect to your database, look at the files in your wordpress folder and read the contents of wp-config.php. That will have the username and password and database host name. You might also need to look at the help or FAQ files for your web host.

In phpMyAdmin, you can find and delete the hidden users by connecting to your database, then browsing the users table. Check the boxes by the wp_users and the email fields (or just check all of them) and then click Browse again. This should show you a list of all the users on your blog.

This is what a row of user data should look like in phpMyAdmin:


This is what a “hidden user” account will look like. It’ll be a name that doesn’t show up in your WordPress Dashboard, and it won’t have an email address in that 5th field. Might be a good idea to delete these users right away.


I followed Lorelle’s instructions for how to recover from my WordPress blog being hacked. That worked fine:

* I did an xml export from the Dashboard and made sure I knew what that file was named and where I saved it.
* I did an sql dump of the whole blog (from the mysql command line, but you could do one from phpMyAdmin too) Just to make sure I would have everything, and so that I could do some forensics later on the contaminated db.
* Then I deleted that db, made a new db, and saved the information on how to log into it. You could also drop all the tables in the old one, I guess, and keep using it. While you could leave the old db there, it seems unwise.
* I deleted all the stuff in my wordpress folder on my server. If I’d thought, I would have saved a few custom banners and images first.
* I downloaded WordPress latest version, 2.8.4 and unzipped it, along with some themes and plugins.
* I then went to the url for my blog and told the install screen a blog name and my email address, and got a new admin password. Voila, new empty blog.
* Then, from the WordPress Dashboard, went to Manage and then Import. I imported the xml file as a WordPress import, with its attachments. This brought me all my pages, posts, comments, and so on.

A little tweaking and my blog was as good as new.

Total Crisis Panic Street Sign (While Danger is Eminent sometimes, I don’t think that’s what the signmaker meant!)

I think for your average user, who finds upgrading and installing a bit scary, this will seem even more scary. But it’s not bad at all. It just requires you to follow the steps, write down or cut and paste all the information you will need to keep track of:

– one set of info for your web host account
– one set for your sql database account and phpmyadmin
– the information for your blog itself, for the WordPress install
– where you’re saving the export file with your blog posts and comments!

In a pinch, if you really mess up in this process, you can get a backup and restore from your web host.

Now, even though I went through this process, I think that someone might potentially write a plugin or script to reveal and delete those hidden users. It might not catch all the modified data touched by those users, though. Spam may already have been inserted into your old posts, or some other havoc wreaked, which you could catch with Exploit Scanner or some other useful tool. The problem with this approach might be that there are multiple versions or exploits based on this security flaw and no one is sure yet if it’s modified core WordPress code or created some other exploitable security hole. So at this point, I think it’s best to do a clean install if you think you can manage it.

If you’re not sure, turn off Javascript in the browser, go to the Users panel, and delete the people who shouldn’t be admins — at least. And maybe there will be an easier fix in a few days — keep checking the WordPress development blog to see if it says something more useful than “OMG, you dumbass, why didn’t you upgrade right away, never, never, never do that again!” (Thanks… I know… thanks for the lecture, grumpy sysadmin…)

When I did this — and I had to, because “upgrade WordPress to latest version” was not #1 on my to do list, and a blog of mine got messed with — I had to re-install my plugins and go through the steps to re-create my blog. This goes to show that it’s a good idea to keep a worklog of all the things you’ve done to a blog, or a wiki or any sort of installation, so that you can recreate it from scratch! You can do this on your blog itself, by creating a section in your About page or somewhere else, listing the plugins you use, and when you’ve upgraded, and so on. It is especially useful to share this information a group blog where you might have more than one administrator. If you haven’t done this you could just be sure to do it next time and then write a really cranky blog post about how you don’t understand how anyone in the world could be so clueless. HA.

Good luck and here’s some more links on the subject!

WordPress Codex FAQ: My site was hacked
Old WordPress Version attack warning: please upgrade
Checking your WordPress security

Related posts:

OSCON fashion, Ignite, and beyond

I had a fabulous time at OSCON! In the spirit of my notes on the geek dress code, here’s an OSCON fashion report.

Glasses were definitely IN. Me and Mario G. spaced out for a long time wearing these Trip Glasses! Maybe that’s why we got into such deep conversation later in the corner of the Open Source Politics session.



Ingy döt Net models his 5 pairs of sunglasses. I’m not sure if this was a particular message about redundancy in code or if it was just one of those Ingy things.


Librarian Avenger Erica had the best shoes:


But seriously, OSCON. I had a good time and talked to a lot of smart interesting people. I hung out with Denise and Mark from Dreamwidth, with Skud, with my former co-workers from Socialtext – Casey, Ingy, and Lyssa – and with Oblomovka, Yoz, Greg Elin, and a super old school Perl monger named Dave, Emma Jane, Val. I appreciated everyone’s advice on consulting and on situations where one is expected to sort of provide the diversity. (Argh.) I went to all the expo hall booths talking with people and gathering up stickers to pass out at BlogHer’s Geek Lab later in the week. The only full sessions I went to were Akkana Peck’s Bug Fixing talk, which was really clear and good, and the open source politics panel.

Skud’s keynote Standing Out in the Crowd was great. I’m still kind of absorbing some of the reactions to it from O’Reilly Radar and from Linux World News. Women in any tech field, don your best armor before wading into those threads. My feeling is that it could have been a lot worse though and maybe we’ve reached a tipping point where enough people understand there’s some problems and have a clue what might be helpful. For me, one of the more depressing things that happens in this field is when women with about 100 times the status and skill level I have end up giving the (private) advice that while they agree with all this and still feel it, they think it is bad for one’s career to mention sexism or feminism ever. In this case, hurrah, that just didn’t happen (at least that I’m aware of.) However, I think it’s still the case that the vast majority of women I know in my field do feel the effects of misogyny and sexism and are often enraged by it in ways difficult to express. I would like to go further out on a limb here and say that the intersections of geek fandom culture and open source/tech people combined with the ongoing discussions of race, class, gender etc, like Racefail ’09 for example, have upped the level of awareness and of discourse and have really changed some people’s perspectives. Not that that translated into anyone in this discussion going “Hey, how about the rather low number of African American and Latino/a folks represented in open source at this conference and others in the U.S.?”


I enjoyed speaking at Ignite OSCON and hearing the amazing lightning talks.Selena Deckelmann‘s talk on the election in Nigeria was pretty great. As a Postgres expert she went to connect with a few IT guys in Nigeria who were scanning and analyzing the fingerprints on a large sample of ballots. Some huge percentage of them were duplicate fingerprints. After a long legal battle, Olusegun Mimiko was declared the legal winner of the election and the governor of Ondo state.

My own talk was a short version of the DIY for PWD talk I gave at ETech.

Here’s what I said, more or less:

Hi, I’m Liz Henry. Would you like a flying jetpack? I really, really would! To get them, we’re going to need to apply DIY and open source ideas & organization to hack accessibility – and the idea of disability.

My wheelchair is a machine, a tool to get my body from one place to another. I’d like for it to be easy — and possible — for me to fix and hack. Like a bike, or a car. It’s no more complex. I want root on my own mobility.

You can easily find information on how to fix a car. even though a car is like a giant polluting killing machine. There are books, tools, manuals available. The barriers to entry are low, so lots of people start car-fixing businesses.

You can find out how to fix a bike. There’s tons of information freely circulated to the public. There are 20 million bike riders in the US. There’s little independent bike shops everywhere. It’s an industry.

But how to fix a wheelchair. 55 million disabled people are NOT feeling lucky. It’s very hard to find information on how to fix a wheelchair. Or build one. How to sew your own seat back, build lightweight interchangeable parts. Nope!

Oddly, rather than being just a tool like a bike or a car, a wheelchair, walker, even a cane, is considered a MEDICAL DEVICE. Its invention, distribution, maintenance are under the control of powerful elites.

Why should you care? Well, because YOU will likely be disabled or have significant physical impairment for around 8 years of your life. That’s the average in industrialized countries. No amount of individual power changes the systemic problems disabled people face.

How can you avoid this fate? Dick Cheney, one of the most powerful people on the planet, threw out his back and ended up in the worst vehicle ever. 50 pounds of cold steel, it might as well be a wheelbarrow. You can’t get around in that. Bang, he’s lost his independent agency.

It’s not all about wheelchairs. As coders you might think about hand functionality, dexterity. People invent stuff to help with that. Most of that info’s in out of print books, and on a couple of personal blogs. Can vanish into the mist … like a geocities page…

Why should you care now? Until you need it, you don’t care. When you do need it, you’re busy. you’re poor. and you’re in pain. No telomere-fixing nanobot is going to save you from age and impairment. Impossible utopian nanobots are why we don’t HAVE jetpacks.

Why isn’t disability hacking more popular? Two big reasons. Attitude, and socio-economic factors. Bad attitudes are: Fear of mortality. Medical experts. Expectation of charity. Isolation. Lack of information sharing.

The second factor is systemic and socioeconomic. Your impaired body makes you disabled, so you fall under the control of the medical industrial complex. Your wheelchair repair manual or voice control hack might get you sued. Might violate copyright or a patent, might ruin someone’s profit.

At some point YOU will need assistive technology. And you will want to hack it. You’ll need a DIY attitude about access. You’ll really need open source information structures and communities. Big projects, and the ability to customize things.

Here’s some cool DIY hacks. Bicycle crutch holders made from PVC pipe. I can ride a bike, I just can’t walk too well. Soda bottle prosthetic arm: a bottle, a plaster cast, and a blowdryer: cheap but it works. Crutch pockets to help carry things when your hands are full.

Here’s a great project you could join. Tactile maps, a brilliant mashup for people with visual impairments. Email them an address, they print and snail mail you a raised print map. Software and hardware people are collaborating on this.

And another,, a brilliant collection of hacks with step by step instructions on building one-switch interfaces to electronic devices. Control with a finger or by puffs of air. Others: Whirlwind Wheelchair international, open prosthetics project.

People with disabilities need open source culture. But existing open source culture needs the physical inventiveness and software adaptations driven by necessity, made by people with disabilities. Everyone disabled has a cool hack or two. They *have* to. Pay attention to them.

In the future… Will you be a sad lonely person fumbling to epoxy tennis balls onto the feet of your totally World War II looking hospital walker ? The recipient of charity, pity, mass produced help, at the mercy of what elite “experts” think is good for you?

Or will you be hacking your burning man jetpack as part of a vibrant community that supports serendipity, free access to information, non hierarchical peer relationships, and a culture of invention?

What will our future be? A DIY approach to hacking ABILITY… will help everyone. We’ll invent cool shit! We’ll open sourceily collaborate our way out of nursing home prisons run by the evil medical industrial complex AND… the future will be awesome!


For a bit more burbling about OSCON and BlogHer ’09, see my post on From OSCON to BlogHer.

Related posts:

She’s Geeky – Tour of WordPress template code

There were 20 or so people at this talk, including non-programmers and programmers wondering if they should install WordPress, and bloggers and admins already familiar with WordPress. We did a round of introductions:

* Graphic designer interested in what degree of control she could have over a WordPress blog.
* Benay, running a blog connecting seniors with caregivers.
* Collie, looking for help with a WordPress upgrade on a complicated blog. Where is community to find help or pay someone to help? (Collie and others: you might try Heather L. Sanders. Anyone else have recommendations?)
* Person who installed WP to force herself to learn more code. Curious about plugins. Which are most useful?
* Terri – uses WP at her job for blogging, thinking about running her own for personal use.
* Nadine – Installed WP for other people many times. Does a lot of troubleshooting.
* Laura – Has installed and messed with WP many times. Wants to create a template from scratch.
* Stephanie – has an HTML site. Might want a blog.
* Olya – is a blogger. sometimes has language barrier while troubleshooting.
* Estella – artist,
* Crystal Marie – adding a blog to her existing web site. Looking at WP and Drupal.
* Beth C – Loves WP. Would like to do more customization.
* Michelle – Is a coder
* Vee – Blogs for her company. Knows HTML.
* Min – Uses MoveableType, is curious
* Karen M. – Thinks there might be entrepenurial opportunities with WP
* StephanieBamBam – Personal blog

I’ve been using WordPress for several years and administer a group blog. As part of my job, I do tech support for bloggers who run into template problems and quite a few of them use WordPress, so I look at a lot of different templates and help people troubleshoot. (The other part of my job, I munge data, write back end tools and infrastructure-y scripts in Perl, Python, and PHP in an aspiring codemonkey way.)

I started out by saying that WordPress was blogging software that you can either use on, or can download for free and install on your own server or web host. You will need an account somewhere and need to have it clear in your mind that you’ve got a username and password for that server account. In that account you’ll be making a folder where you install WP, and then you’ll have an administrative username and password for the WP admin and blogging interface. You may need to pay attention to this in order to change file permissions and make your theme files writeable if you want to edit them from the Theme Editor web interface. This tends to confuse people who aren’t used to web hosting. Also, some people use web hosts which have one-click installs or who install WP for you and then charge to upgrade or maintain it.

We looked at the files and folders in a WP installation. There was some discussion of how you move files around and edit them. (Either from the command line on your server, from the admin interface for theme files, or with FTP; you can download the WP files, and extra themes and modules, to your computer, then upload them to your web host.) It’s a good idea to just look through all the folders, so you know what’s there. You may want to read through the wp-config file. But most of what people deal with is in wp-content, in the themes and plugins folders.

We then looked at the WP administrative dashboard, a bit at Widgets, and then at the Appearance menu and the Theme Editor. I said that editing code in the Theme Editor window sucks. While it’s great for making quick changes, I recommend you edit the files in a text editor that will color code the code and indent it nicely, like vim or Textmate. You can pass code back and forth with other people by putting it into, which will also color code and indent it nicely. Also, it’s amazingly helpful to print out all the template code, and mark it up with pen, and see which bits you can understand; or at least understand more or less what it does.

I explained briefly that anything that looks like a command with parentheses after it, like get_header, is a function and you may need to look for it in functions.php to figure out what’s happening. We looked at index.php for a little bit. It is helpful to read through it. You should be able to mark what is header, what is the content (including “The Loop” which will cycle through your posts), and what’s the footer.

The WordPress codex is your friend. Here’s some great starting points:


Take a look at your sidebar.php file, header.php, footer.php, and page.php for individual post pages.

At some point, I mentioned the site to look for and download WordPress Themes. You can specify whether you want fixed width or floating; one, two, or three columns; and other parameters such as the main color. It is often best to start with a fairly popular theme.

Keep track of customizations you make to the theme you pick, because at some point you will want to upgrade or change it. Make backups.

There was some discussion of plugins as well. All in One SEO Pack (which sounds a bit evil, but which is great since it makes your URLs a bit more human readable as well as search-engine-friendly) had good recommendations. Stats, Sitemaps, and various Flickr or photo plugins were mentioned by bloggers at the session. On the group blog I co-administer, we had written some code to pull in a list of all our plugins onto a static page called “What we use”, which has come in handy many times when we want to recommend useful plugins to other people. (Whoops; when I tried to show this off, I found that our recent upgrade to 2.7 had broken this code.)

The post template plugin was mentioned for its usefulness and for being able to pick a post or a page and “template-icize” it. This sounded intriguing!

Someone else mentioned that people should be aware that new plugins might break other ones and if you run into trouble, uninstall some plugins and see if that fixes the problem.

Someone else asked if there are good books for learning WordPress theme development or php. I don’t know about books, but is fantastic, and the WP Codex is quite good. The Codex is also editable by its users, so if you use it a lot, make an account, log in, and fix any documentation that’s wrong when you figure out a solution. I also recommended blogging your template or code problems or posting on forums, and then posting the solutions to those problems when you figure them out. This is hard to do sometimes, but the more of us who do it, the better.

When I mention IRC at this conference my general impression is that people aren’t using it that actively and many people don’t know what it is. People who were techy or coding at all or playing on MUDs or smoething before the web, or before about 1995 or 96, know what IRC is. People who learned their stuff or got involved with online worlds after that, it’s much more hit & miss. In any case, I continue recommending people try IRC and hang out in channels on freenode that have to do with the tools or languages they’re using. Here’s some explanation & guidance on IRC and WordPress. Lurk for a while, pick up the culture of the channel, and you might be surprised you can actually answer other people’s questions: when I do this I tend to feel better about asking questions myself.

At some other point I mentioned MAMP again. It’s very handy and easy to install, if you want to run a local web server off your Mac in order to develop and test. While I was doing this hour long talk, at least two people downloaded and installed MAMP and WordPress and got it running on their laptops.

I enjoyed this session! We didn’t go all that deep, but we covered a lot of ground and people seemed energized by the ideas and possibilities. If you were there, thanks for coming, and let me know how your project turns out!

She's Geeky

Related posts:

She’s Geeky – Install Drupal on your Mac

In this session we talked about Drupal in general, and a few people, including Margaret Rosas from Santa Cruz Geeks and CrystalMarie, got it installed and running. I have to apologize for being a bit incoherent; I was tired and unprepared. It was worth the session anyway to introduce the idea that you *can* run drupal on your laptop and use your laptop for development and testing! Margaret and others saved the day by having plenty to say about Drupal, Drupal 6 modules like Original Groups, what will be new in Drupal 7, and how interesting the process has been for re-organizing the Drupal web site.

If I had do-overs, here’s how I’d run this session:

– First of all, have already rewritten Installing Drupal on a local MAMP setup to improve its instructions.

– Quick description of what Drupal is. Show site.
– Quick introductions around the room.
– Pass around a few USB drives with zipped MAMP and Drupal files, with versions 5 and 6, for people to install and copy over to their laptops.
– Pass out a printout of Installing Drupal on a local MAMP setup.
– Ask people to team up in pairs.
– Give an overview of the install process, but without doing it.
– Then everyone is free to do the install.
– People who get it installed should then go around the room and help other people get it done.
– Mention IRC, #drupal-support, drupalchix, and documentation as good resources.

We ran into various difficulties. Some people had file permissions problems; it worked to make the entire drupal directory and all its files and directories readable and writeable, though that seems less than ideal. Also, we had some difficulty doing the first login, which I’m still going through with Laura from Indie Craft Gossip.

Thanks to everyone who participated! I didn’t take down your names, but if you want to comment and link back to your blog or Twitter or your company, I’d love it. Also, if you’re in the Bay Area and want to hang out messing around with Drupal, ping me and let’s have a Drupalchix meetup sometime in February.

Related posts:

SCALE conference: Women in Open Source

I heard about this conference, the Southern California Linux Expo, only because they have a Women in Open Source track. It showed up on my Google Alerts and on several of my mailing lists. Here’s their call for proposals to give talks.

Since I’ve never been to the conference I wondered what kind of talks they’ve had in the past. How can I know what to propose, otherwise? Or if what I might talk about would be useful (or hard core enough) to their participants?

I went looking to see what the past Women in Open Source tracks were like. Here’s the schedule for SCALE 2008, with links to the talks and participants. I would have gone to the Education panel, the long spam-fighting talk, community manager talk, open source mentoring talk, Building Websites with Drupal, and the women in open source panel discussion. The 2008 BOF schedule was posted too. I might have liked the EC2 and the MySQL groups! In 2007, there was a Women in Open Source mini-conference or track.

It is not so much that the topics are different in the years before there was a Women in Open sorce focus, but the fact they have bothered to take steps to show women’s participation makes me feel much more certain the conference will be interesting and I won’t feel out of place.

It’s nice to see someone doing it right.

If you miss OSCON because you’ll be at BlogHer in July, this looks like a good conference to go to!

Related posts:

Gadget love – Messing with my G1

Look, my G1 made friends with my Chumby!

So far I’m very happy with the G1. It has a great feel, it’s easy to type on, its phone and net coverage is great so far in the SF Bay Area, and every day people are posting new new apps for it. If you are a sanfransocial chronic fidgeter like me you’ll be snicking this thing open & shut all day, because of its pleasant slide-y feeling. And because you will be all like OMG I HAVE THE MOTHERF*CKING INTERNET IN THIS BORING ELEVATOR.

The first thing I did was to try out everything on the phone. My contact list, which is a giant mess, is in there from my old Razor’s sim card. Seriously, it’s a huge mess. The few people that I call all the time, I starred to move them over to the “Favorites” tab in the Dialer. The phone dialer is nice; I like dialing on the touch screen rather than with the numbers. The other thing about Contacts/Dialer that I like is the long, detailed call log. It took me a few minutes to figure out how to add new numbers from the call log to my contacts list: click and hold on a log entry, which pulls up a new menu including one to save to contacts.

I find it a little perturbing that I can’t tell if I’m closing an app, or just backgrounding it. Is that stuff all still running in the background?!

In the browser, I logged into my gmail account. Suddenly a wealth of data is there for me, since I’m a heavy Google user. The top bar slides down window-shade style to show new email, messages, calls, or other notifications.

Maps – Fabulous. Try street view, then the compass.
Market – Works great for me so far. Fun to browse. I like the comments/reviews on each app, especially how they are often frivolous and rude.
Amazon MP3 – addictive, good browsing, works beautifully. Buy mp3s, move them over to your computer or server with no problem at all. I already love Amazon MP3 for its lack of DRM and its great selection especially in Latin music.
Browser – Okay, but I have a little trouble zooming, clicking, entering data into tiny boxes. I think it takes practice with the tiny trackball.
Calendar – Scary good if you use Google Calendar already. I have 4 calendars going at once. So far I find week view the most useful – there’s no text on it but you can tap a colored block for a quick popup that gives details.
Gmail – okay, but I wish I could delete
Camera – still playing around with it. Works very well in low light! Seems a bit slow, but autofocus works well.
Music – Slick!
Pictures – Works just fine
Youtube- haven’t tried it yet
Voice Dialer – Works! neat! Will I actually use it? No.

I stuck some photos on it and changed my desktop to a photo from my Flickr account. Therer’s a Flickr group with 640 x 480 photos to use for wallpaper, and you can find more wallpaper on the various community forums. Moving from the left and rights sides of the desktop to the middle & back is strangely addictive and beautiful. I tried for a while to move apps by flinging them, or holding them and scrolling, but couldn’t get that to work. INstead, if I want to move something from the center screen to the left or right, I click and hold, drag it to the trash; then go to the side screen, click and hold on the background, and add the alias to that app or shortcut.

g1, so cute!

After a while I looked at App reviews and “tips and tricks” on some of the forums: Android Forums, Tmobile G1 forum,

When you plug in the G1 to a Mac with a USB cable, you will see just 3 folders: albumthumbs, dcim, and Music. Poke around in there and see what you can see. Drag some music over to the G1’s Music folder and it shows up in your Music app.

When you are browsing, click and hold on a photo to download it. Not sure if this works with pdfs, movies, or sound files – I haven’t tried yet. When you download something from the browser, a new folder is created that you can see when you poke around with a USB connection. Same for amazonmp3 and BlueBrush – they create folders you can access through a USB and your computer’s filesystem.

At some point I downloaded some apps and messed around with them. when I first got this beast early this week, there was barely anything except like 500 different tip calculators. Hello dorkwads, take the tax, double it and add a dollar or two, you don’t need to whip out your $300 phone to calculate the tip … OR DO YOU…

Amazed – a simple marble-in-a-maze game.
AnyCut – looks useful to make shortcuts.
Barcode Scanner – Interesting! But has way more potential
Bluebrush – I have not really explored it but it looks like a collaborative whiteboard drawing app. I would not call its menus or icons intuitive… Flailed a while then left.
Cab4me light – Great potential! I need this! Needs more cab companies, data, a button to turn the GPS on and off.
ConnectBot – YAY I can ssh from my phone! This makes me happy. If I could ssh into my phone as well, maybe use scp, wouldn’t that be nice?
Es Musica – Tried this for fun. Hey, bikini boxing!
iSkoot – Skype for the G1!
Langtolang dictionary. Simple translation dictionary for several languages.
Shazam – This is good. It listens & samples a few seconds of whatever music you’re listening to and identifies it. I tried it with a range of music. It had great accuracy.
Strobe Light – this is really great if you’re a total asshole. Of course I downloaded it.
WikiMobile – How handy. Will never have another restaurant argument again. Am already a know it all trivia-hole, and now I can prove it on the spot. I haven’t tried the other Wikipedia app yet. How do the different versions compare?

Here’s what I’d like to have on my G1:

* password/keychain manager. What a pain in the ass entering all this stuff.

* a plain old compass app, unrelated to Street View.

* Ecto, or some equivalent, so I can post quickly to any of my 24812469 blogs, which are not all on Google/Blogger/Blogspot.

* Photo uploaders. Better extensions to send photos out very quickly to Flickr, my various blogs, Twitpic, or whatever. Hot buttons, so that I can snap the photo, and hit a single on-screen button to go “send to X” rather than pull up a menu, connect with gmail, start typing, and send to my Flickr email. It should be seamless, so I can take another photo or act like a human being instead of a little gnome fiddling with my magic box all day long.

* G1-Thing, to hook up one of the barcode scanners with LibraryThing.

* Inventory functions. More “barcode scanning a list of objects” functions. When I scan a bar code I don’t necessarily want to look it up on google or amazon or ShopWhatever. I might want to just add it to a list of Junk in my Trunk. I could see people scanning their CDs or books or DVDs here. Or hooking in the list of stuff in their pantry to somewhere like FoodProof, to figure out what they could cook without having to shop.

AAAAAA! Did I just mention computers and recipes in the same breath? Maybe I should go back in time and buy a Honeywell Kitchen Computer!

Honeywell Kitchen Computer

Honeywell Kitchen Computer

* GPS. I would really, really love some cool GPS functions. I love the satellite tracker/detector screen on my old (borrowed) Garmin eTrex. I would just turn that thing on and stare at it for 10 minutes to see how many satellites would pop up. I’d like to know what satellites so I can look them up online. Better yet pop me up some info and tell me all about it. Holy crap! SATELLITES are flying around over us in SPACE. That never ceases to be cool.

Some geocaching apps that hook in to would rock.

* Tide tables. I have no reason to care, except that when I’m driving up to the city, if it happens to be low tide or a super low neap tide I might swing by the beach to poke some anemones and harass a hermit crab or two. If I were still surfing, a surf report app might be nice.

* Nethack. The real kind not the graphic version please!

* Auto rotate. Last but not least. I wish that the screen view would rotate when I turn the phone, not just when I open the keyboard! Or is that a setting already, and I’ve missed it?

Related posts:

Installing Eeebuntu on an Asus Eeepc 900

Last night I installed eeebuntu on my Eeepc 900. You see how I love this little beast!

The instructions and forums on were helpful. I realized while I was doing the install that there’s Ubuntu Eee as well and that eeebuntu is basically just this one guy, Steve or “bezdomny”. Since he is super responsive on the forums and people report good experiences with the install, I figured it is a good bet as an OS. Ubuntu Eee also looks good!

I didn’t take good notes but here is my memory of what I had to do. I first tried to create a bootable USB stick from my Mac, but was missing syslinux so I used Oblomovka’s MacBook running Ubuntu to reformat it with parted (set 1 boot on). Then put the eeebuntu iso file on the USB stick with bezdomny’s script.

Then my eeepc booted from the USB stick. I hit “escape” during bootup and got a screen with 4 choices; the 4GB and 16GB drives on the eee, and two partitions on the USB stick. I chose a USB partition at random (wrong one) and then the other, which worked beautifully! It took a few minutes to boot. Wireless didn’t work, but when I plugged an ethernet cable into my Eee, I was on the net within about 15 seconds without having to configure anything.

So, I tried to follow this advice to get wireless working,

But then got a little bit confused because I wasn’t sure where I should install madwifi and if it would work if I rebooted from the USB. At that point I decided I’d just take a chance and install over the totally working, but annoying and ugly and Windows-like, Xandros linux install that came with my eee. (Seriously, look at this, even their web site gives me hives.) It occurred to me that I might keep Xandros on the 4GB drive and install eeebuntu on the 16GB drive, and be able to boot either one. Which, if I couldn’t get wireless working on eeebuntu, would spare me scrambling around trying to re-install Xandros. I went on IRC at and asked on #ubuntu-eeepc if anyone knew if that would work. No one answered. I got on #ubuntu-women just to feel braver but didn’t ask anything. After some more poking around forums I decided to hell with it, blow away Xandros and if I have to reinstall it, comprendo bastante este video guía para instalearlo.

So I installed on the 4GB drive. It went completely smoothly, quickly, I rebooted, hey presto magic huzzah, I had working ubuntu on my eeepc. Plugging into ethernet worked smoothly again. I got the madwifi fix with wget and installed it. It didn’t work… I re-read the thread on the forums for the millionth time. They kept saying “turn on the wireless” and finally Oblomovka and I got it that we had to turn on wireless in the BIOS. So, reboot, hit F2, looked at “Advanced” and “Devices” or something like that, it was pretty intuitive, and got a list of stuff enabled and disabled. I enabled wireless and the webcam. Rebooted, and wireless worked SO beautifully. (Not like Xandros which was incredibly clunky and failed to get me onto my own home network half the time.)

More wireless links:

Next problem to fix. The mousing was crazy. Or, really, the touchpad. I don’t have a mouse, but I still think of it as “mousing”. There was a system preferences panel for mouse and display, but nothing for the touchpad. A bit more reading and I was lost… but then a bit MORE reading and google-fu and I found that going to Applications, then Add/Remove, then searching All Available applications for “touchpad” or “synaptic” would get me the control panel that I needed. That worked but during install I got a warning to change a setting in xorg.conf which I will tell you is in /etc/X11. It’s helpful to look at some examples of xorg.conf options. Then, while in vi putting in the setting, I realized my keyboard is messed up and thinks that the ” key is actually an @ sign. So I’ll have to go figure that out and fix it — I know I chose US keyboard layout — what could it be?

What I need to be able to work off this machine on my trip:

Firefox, Greasemonkey
A good chat client
vim, perl (python would be nice)
the touchpad not to be freaking crazy. Tap-to-click OFF. Who uses that! Omg! Sucks!
Not sure if I will just suck it up with email and go back to Pine, or install Thunderbird and migrate my mailboxes, or use webmail of some stripe (ugh) Currently am favoring Pine because I’m lazy; Thunderbird only if I have time to install it.

Oh also, I’m resolving to document this more formally and contribute docs-writing to eeebuntu.

** further updates later today **

Related posts: