Accessibility at the beach in Tulum and Akumal

I just got back from a fabulous vacation in Quintana Roo. We stayed in Tulum, in a small, funky, beachfront hotel zone, and then in Akumal. There is a lot to say about the trip but first of all, here are my notes on access, since that’s what I was looking for when I was planning the trip. This will be a Very Long Post!

My hopes were for warm water, beach access to calm water for easy snorkeling, small hotel right on the beach, and some scope for scooting around that wasn’t just in a single hotel. Both hotels I contacted in Tulum and Akumal were happy to explain the accessibility. Neither hotel was completely wheelchair accessible; what I wanted was just reasonable possibility that I could walk a few steps and be on the beach, and also that I should be able to leave the hotel on my own with a wheelchair or scooter. Akumal was my main goal, because I read online on some forums that a wheelchair user lives and works there and that the town has some curb cuts and ramps to accommodate them. That sounded promising!

For the flight to Cancun and back to San Francisco, United flight attendants let me put my TravelScoot (disassembled, not in a bag) in overhead bins. My partner and son took care of that. Without help, I would most likely have had to check the scooter at the gate. It was so nice to know that my scooter was going to be OK, not break or freeze in the cargo hold or be lost and was under my control. What a huge relief!!

(I do not know how anyone uses the TravelScoot duffel bag. I tried it… once… in my garage. It was like trying to stuff a floppy-jointed tyrannosaurus skeleton into a sausage casing. Not gonna happen, ever!)

Cancun airport was nicely accessible. It was extremely easy to get cabs. I had booked a shuttle ride beforehand with DiscoveryMundo. They were just outside the terminal building exit with a sign for me in a crowd of other drivers. It was a giant van we could have fit 10 people into, and probably twice as expensive as it had to be. I will just get a regular taxi when I go back. I appreciated having things arranged, though, and our driver Julian was extremely nice.

Our small Tulum hotel, Piedra Escondida, had about 10 feet of deep sand in the walkway up to the main entrance and lobby. Danny had to carry it and I walked with my cane. Once I was in the lobby, access to the indoor restaurant was flat but there was a step to get outside or to the registration area. We had to get across another 100 feet or so of sand to get to our little beach cottage, which had a tile paved porch and another small step to get into the room. I was able to bring my scooter inside and charge it with no problem. Our cottage (#6) was nicely positioned for me to get across short, maybe 10 foot stretch of deep sand to a grassy area I could more or less scoot over to the street out a back gate. It was rough but I could do it on my own (just barely).

porch with hammock and beach

This hotel would be reasonable for someone who, like me, can walk a little bit. And only for the most daring of manual chair or TravelScoot users or someone who does not mind getting help across the pockets of deep sand. The porch was nice enough, with a hammock, two adirondack chairs and a view of the beach and ocean and coconut trees, that I would not have minded staying on the porch quite a lot, which is what I did! The lobby was nice to hang out in, shady and relaxing. There was wireless, at least from the restaurant and lobby, and we could also get wireless pretty well from the porch but not the room. The bathroom was not wheelchair accessible and there was a shower with no bath. A nice shower though! The running water is all salt water. You get bottled water from the hotel or the mini mart to drink and brush your teeth with.

The restaurant for the hotel was good, a bit expensive, but very nice food, lovely people, right on the beach and outside, with wind screens up.

There was a constant warm breeze, more intense at night, which seems normal for this part of the coast for April. I am always cold where I live in San Francisco, despite wooly socks and long underwear. It was nice to hang out all day long in nothing but a bathing suit and sun dress or skirt.

liz in sundress at beach

My forays into the street were fun but of fairly limited scope. There was a short stretch of hotels, restaurants, small shops with textiles and beach towels and souvenirs, and a very nice minimart. I bought a rainbow flowered iipil (the kind of pretty white embroidered thing that in Texas, if dress length, was colloquially called “a Mexican dress”) and some flip flops in the kiosk next to the minimart. There were ATMs and a couple of kiosks where you could book tours or get advice, maps, and so on. They were both helpful. There was a very short and not very well ramped stretch of sidewalk in front of two restaurants but other than that I was scooting in the street along with a lot of bicycles and some cars and trucks. It was easy to get a taxi any time of day or night. South of our tiny strip of businesses and beach and tall trees, there was a rocky sea wall or pile of riprap along the little road, no trees, hot and dusty. I did not go past this sunny stretch of road to the main beach of Tulum’s hotel zone where I think there are a LOT more small boutiquey hotels including some gay nude ones and a lot of people who do yoga and more restaurants. None of the hotels in the “north” bit of the hotel zone, where I was, had good access to the street for a wheelchair user, but again, they all seemed vaguely doable for someone who can either walk a tiny bit or who can power through some gravel in a manual chair.

I walked onto the beach I think three times. It was a little bit steep for this to be easy for me. In short it was difficult. The water was rough. I am a skilled swimmer still (if not strong any more) and very good in ocean waves from a lifetime of enjoying bodysurfing and boogie boarding. But the deal breaker for me was uneven footing and shifting sand underfoot and also, rocks. I had short dips into the water but could not swim around as I would have liked. It was still relaxing and awesome to be there. There were iguanas! I also spent a lot of time watching the magnificent frigatebirds and brown pelicans glide overhead. Danny practices his ukelele a lot, and we all read constantly on our Kindles.

Tulum Pueblo itself looked interesting. It was maybe a half hour (or a bit more) walk away from our hotel, with a very nice sidewalk and bus stops along the way. I did not get to explore the town. Many people in the Hotel Zone (or, as I thought of it, the Gringo Zoo) rented bikes to get to the town and its reportedly great restaurants. It was just too hot for me to want to go that far and a bit too much bother to get a taxi to town with the scooter. And so easy to eat at our hotel and the Mateo’s Gringolandia Grill or whatever it was, across the street (which was very nice, relaxing, had good food and live music; possible to get into without a step if you went through the gravel parking lot; with one step if you went from the tiny stretch of sidewalk).

We had two day trips out in taxis. One day we went to the Tulum archeological site, aka the ruins of Tulum. I read up on Tulum’s history, online and in several books, and was excited to go there because it was one of the places I had read about and seen in engravings a long time ago from my dad’s books by John L. Stephens with the engravings by Catherwood. (Alternate universe Liz, I think, would have hopped on the translating Mayan glyphs train at University of Texas in the 80s, when they were starting to make major progress. I had that dream!)

engraving of tulum ruins from 1844

I read Friar Diego de Landa’s “Yucatan: Before and After the Conquest” in the Dover edition with an interestingly socialist introduction from the 1930s. I have read the Michael Coe Maya book several times in the past but did not re-read. (I will do that now, though.) Other books — Tulum: Everything You Need To Know Before You Go To the Ruins, which I would say delivers well on its promise. It has some of the history of the area ancient & recent, including explanations of the recent development of the area. I really liked this book a lot, enough to want a paper copy of it. Another excellent book: Maya for Travelers and Students: A Guide to Language and Culture in Yucatan. I went through it and wrote out all the Mayan words and phrases, eventually making a set of flash cards as I hung out in the hammock gazing at the ocean. I may continue learning Mayan. More on the history of Tulum, and on language, later in another post. This is supposed to be about access!

So, the Tulum ruins. After a 10 minute ride we got dropped off by a taxi driver at a quiet entrance on the coastal road side of the ruins. From there we went down maybe a quarter mile or less of flat, not too gravelly, path. The entry ticket booth is accessible and so were the truly palatial bathrooms at the entrance. Past the ticket line you can get a coke in the gift shop provided that you can walk up a step, or can fly. There was a cool diorama just past the entry, then some hard limestone paths, a little gravel but not a problem, to the world’s scariest steepest ramps ever. I appreciated that there were ramps, as otherwise it would have been a lot of stairs. The TravelScoot took the steep, corrugated slope like a champion. As it only has one motor in the hub of the left wheel (one wheel drive) it helped, going up, to lean heavily to the left. If you cannot do this, or are in a manual chair without someone to push and you are not a Paralympic athlete, you will be toast. Toast!

Once up the scary-ass ramps there were some signs and then a flight of many steep stairs to the Cenote Tower. I did not try that. Instead I went through the Northwest Gate in Tulum’s walls. Much of the paths in the central area were pretty flat and lightly graveled with a hard limestone surface underneath. I think my butt is still bruised from this foray into Bumpy Road land. I went up to the beach view of the main “castle” building and the Temple of the Descending God but it was steep and gravely and lumpy and sandy. At some point I stubbornly plowed into deep sand, and Danny had to carry my scooter out while I hobbled (a scene we were to repeat several times over our week long trip as I am often imprudent). The beach was closed off since turtles nest there. There was no way I could go up the hill to the Castillo. Oh well! Plenty of other ruins to sweatily look at and Ingress portals to hack. Danny scouted the exit at the Southwest door, or gate, which had stairs. Beyond it were some more sand and stairs and a bridge and more stairs to the real exit. We opted to go back the way we came. I zoomed down the scary corrugated steep ramps past wide eyed other tourists poking each other and gasping out things about the lady with the “moto”.

So: Tulum ruins. Doable, barely, for a wheelchair user if you have a powerful motor, big tires, or are very strong, or have someone to push you who is quite strong and heatstroke-proof. There is not a lot of shade in the central ruins. There is a lot of cool stuff to see in the bits where the path isn’t hilly or sandy. It helps to have a guidebook or just look stuff up on your phone if you have a good data plan (which is what I did, as well as playing Ingress like a total fool). Without the background you might just be like, OK there are some big ruined buildings here, pretty cool. With some of the history I think it is much better. Tulum was a sort of trade port and was founded in a sort of Warring States period around 1200 AD. The walls were because of that situation persisting over hundreds of years, with nobility living within the walls and most people living all over the surrounding area.

From the exit there was a little (free) motorized open bus shaped like a train, not accessible. As usual, we climbed onto it and Danny and Milo carried my scooter up. No one objected. The train decanted us into a giant parking lot area with booths of crafts, textiles, onyx chess sets, coconuts, a Starbucks, and little restaurant-cafes. It also had a very tall, maybe 70 foot, metal pole with guys on it doing something ritual and very acrobatic and amazing to the sound of drums and flutes. They turned out to be Los Voladores de Papantla. I donated some money to the guy who explained it to me. My Spanish is rusty but was really not too bad, the whole trip, and I could communicate complicated things well — just a bit ungrammatically. Anyway, respect to the Voladores and their ritual. If you read through some info on them you will see some of their history and controversies like whether women are allowed to become Voladores (yes in some areas, no in others). I bought a black sundress with cut lace inserts to wear on the beach, a mayan calendar tshirt for Milo, bow and arrows set with stone tips for my stepdaughter and nephew, a small, gorgeously woven bag and a beach sarong thing with turtles on it, and god knows, I cannot remember what else, but I bought a hundred dollars worth of it. This artesanal courtyard / flea market/ parking lot was hot and there were some vendors with hustle all around; I cruised around saying hello but remaining non committal until I had looked at everything. As usual there were some sidewalks but also lots of areas with light gravel, bumpiness, or a step (like to get into the starbucks). I found it very pleasant sitting in a little cafe where the trains stop (no step!) drinking from a coconut and eating fish tacos with Milo and Danny. We hung out there feeling like insiders as we watched several cycles of the trains pull up at which all the cafe guys would pop out with coconuts to entice the thirsty tourists from the ruins. I picked that cafe because it was playing Celia Cruz oldies. The food was great and not expensive. I asked to eat the inside of the coconut expecting they would just break it open and I would scoop out the inside. Instead they brought me the insides already cut up in a giant martini glass with a lime and hot sauce. So delicious!!

We went the next day to Xel-Ha. Despite reading about it online I could not picture what it would be like. It is a giant eco-theme park which reminded me in size and scope and some of the trappings, of the San Diego Wildlife Park. It is huge! But not as constantly scripted feeling as, say, Sea World. I got a discounted entry for being disabled. Entry is expensive, about 90 bucks per person. But that is including food and drink and the snorkeling equipment rental. This whole park was nicely accessible in many ways and very well organized. Entrances to things were level. There were accessible lockers and bathrooms everywhere. The lady at the ticket booth gave me a really really nice access map of the park, with paths of level access, slightly difficult access (i.e. bumpy path) and really not gonna be accessible paths, marked in green, yellow, and red. So nice! It was like a dream map!

It took Milo and I a bit of time to figure out how things worked. We left Danny (not a swimmer) in one of the many palapa-shaded restaurants where he hung out (he later got a massage at the aromatherapy spa). There are various locker rooms in the park which are color coded. We picked the purple station. You check in with your wristband, pick up swim fins, a mask, and snorkel, and get a locker key with a color coded lanyard. We left most everything in the locker but I had a beach bag for towels and stuff. They also give you towels and I think a bag, if you ask. But I had them already. Lifejackets are at the water’s edge. The park stretches around a huge, shallow, calm lagoon, and all the way around, there are many places where you can get into the water, usually by a couple of steps with handrail. I did not check to see if and where the level water entrances were.

We got in the water in several places over the day. I preferred the areas nearer to the ocean, where the water was salty and clear. We saw a zillion fish including a barracuda (omg). I did not have to swim any distance at all to see fish and most of the time didn’t wear the fins (which kind of hurt my ankles) With a lifejacket I could float around and just watch fish go by. In the freshwater end of the lagoon the water was more murky, there were more fish, but also more floating weeds and you couldn’t always see the bottom, which I find irrationally scary. (Much of the time as we got in or out there were people having panic attacks on the steps, to be honest.) No one bothers you about anything, you are free to roam around, snorkel, get out, swim, whatever.

There are special photo spots set up throughout the park where you can push a button and your photos get taken automatically and I think uploaded to a usb drive which you take with you. I didn’t look at the details of how it worked. It seemed well thought out.

There were dolphin, manatee, and sting ray encounter areas which you had to pay extra for. If I went back, I would do the dolphin swim. There were a lot of buffet restaurants, stands where you could just grab a cup and quickly fill it up with soda, shops everywhere, bars, and shady seating areas, a “hammock jungle”, a giant playground (not accessible – it was over sand) with short slides into the lagoon and one of those wood and rope kiddie-habitrail systems up in the trees. There is a long path and also a shuttle bus to the head of the river mouth where you can float down into the lagoon in giant tubes.

Fun but very exhausting. The park is HUGE. We only saw maybe a quarter of its paths and things.

The next two days I laid on the porch in Tulum eating cookies from the Mini-Super Pipienza, writing out Mayan flash cards, looking at birds and the ocean and trees from my binoculars, and taking pain meds.

Onward to Akumal. Akumal was like 1000 times more awesome than Tulum for me. Our beach cottage was extremely nice, bigger than our actual house in San Francisco, had a kitchen, 2 bedrooms, a huge patio, a paved walkway that got me 3 steps from the beach and to another hard limestone walkway (the Akumal Trail). The cove is full of boats, people, the beach is also the public town beach, so is very lively. There were more birds. We had a little semi-private corner of the beach with lounge chairs, and interesting rocks to look at. The point had cannons from a Spanish shipwreck from the 1600s. It was very nice to wake up at 6am, make my own coffee and some toast, and scooter myself the 50 feet to the tiny beach. From the paved bath to the cottage, there was a single step…. there was a step inside the cottage as well. To get onto the beach there were 3 steps with handrails. The beach is nearly flat, and not wide, so from the steps (and the dry sand area – the tide doesn’t vary much) it was only maybe 20 feet to get into the water.

beach with pale blue water

From the path I could go on my scooter to the Centro Ecológico, many small shops and restaurants, dive shops for equipment rental, a whole other hotel (I didn’t go that far but it was clearly possible) and then out the little road, or on a public access path, to the Akumal beach archway (the “arco”). Outside the archway was my favorite haunt, the Super Chomak Minimart where the other wheelchair using lady in town supposedly worked, though I never did see her and I felt a little too shy to ask after her. You can buy staple groceries there like fruit, potatoes, bread, pastries, cookies, juice, butter, milk, and any sort of thing you would want for the beach including clothes. Sorry to go on about the corner store but I do love a corner store. The women who work there feed the stray cats (which are numerous and a bit mangy) and they are very nice.

Accessibility was not perfect, ramps steep or bumpy, paths a bit rocky. But navigable in a manual chair. I could have done the whole thing in my Quickie Ti (if I had a bit more stamina).

The path to the point, less than a city block away from our casita, had parts with deep sand. Danny carried my scooter across them and I hobbled. Then we went on a very bumpy rocky path around the point where there are tide pools. Tantalizing. I don’t have the stamina and should not have tried to go down this difficult, exhausting path just to see what was there! I am somewhat covered in bruises from the whole trip, I have to say.

The Lol-Ha restaurant was super nice. Part of it is a Thai restaurant and part is local cuisine. The access to the outdoor bit was very nearly flat but there was a tiny …. maybe inch and a half high …. bump into the restaurant. The indoor part had a steep ramp, too steep for me to get up on my own, I think. The food there was great. I also had very good fish at La Cueva del Pescador and nice but somewhat blander fare at the Turtle Bay Cafe, both wheel-able through some mildly gravelly paths. There were mariachis in the evening roaming about, including a group with an arpa who played joropos, which made me super happy.

The important thing was, I could get around the entire area without stalling out on gravel or sand!

With the scooter, also if I were more into sitting up and scooting around, I could have gotten across the highway into Akumal Pueblo itself, which is tiny but I think would be nice to have a look at. People recommended restaurants there but mentioned it is not particularly scenic.

Milo and I rented snorkeling equipment for 2 days. The water was calm, sand perfectly shallow and gently sloped, water clear. I really liked that we could just go in the water to snorkel any time with no fuss at all. We saw so many turtles! Fish! Sea urchins! Mostly green turtles, and one Hawksbill turtle.

This bit of Akumal beach has many tour groups coming through as well as being the public town beach (free to residents). So, people start arriving on buses around 10am and go into the water with guides in groups of 8 people. There is some limit on how many snorkeling groups they let into the water at once and I think a daily limit on the number total per day. It was a lot of people but it seemed well handled and there is an orientation video in the Centro Ecológico that explains the rules about not touching any coral and staying well back from the turtles.

I played with some local kids one day (mostly by giving them all the floaty rafts from the hotel) and had slightly wistful thoughts about how much I would like to really play, but it being better on all levels to stay back and just enjoy their lively energy and happiness. It was frustrating also not to get to snorkel as much as I would have liked, which would be ALL DAY. When I was a kid I would stay in the ocean for hours until my lips turned blue and my grandma would make me get out. I have nice memories of lying down in the warm sand and I still like to do that, just getting covered in sand and getting my face right up to it. I do not like to stop doing things when they’re fun and exciting, obviously. At Akumal I never felt cold at all (amazing) but even taking a ton of pain medication (for me, a ton, not really a lot on the big scale of things) I exhausted and hurt myself swimming around and trying to walk more than I should. With a longer stay I could swim short amounts several times a day and rest more with less excited (self imposed) pressure to scout around and “see everything”. So my plan is to try to go back there for a few weeks at a time, maybe this summer, work from there, and swim a lot. There was decently fast internet which seemed quite reliable. It would be ideal rehab for my ankles and general strength, if I managed the pacing correctly.

I noticed in driving through Playa del Carmen (a lively, large town south of Cancun) that a lot of the sidewalks had curb cuts. It would be fun to go there and cruise around.

One last problem I had was that snorkeling has the temptation, if not the requirement, to look ahead of you and my neck and upper back do not like to do that. I am too stiff to do it well. I got along ok by swimming a modified sidestroke, mostly floating in the life vest, or by going on my back, then flipping over to look straight down. My upper back and neck are still in bad pain from trying to do this.

No one gave me any hassle for the scooter or for having purple hair. Better than at home in San Francisco. Obviously people were eyeing me askance everywhere I went, but politeness or shyness prevailed. When I got to chatting at length with people I would explain: arthritis, pain, can walk a little. No one found that weird, prayed over me, acted like I was somehow too young to be disabled or wasn’t disabled enough or performing it correctly, or told me about the fish oil homeopathy their grandma’s friend does, or stuff like that, as I encounter almost daily…. People also were universally quick to explain the details of access or tell me good places to go that were relatively level. The dynamics of that very pleasant courtesy and thoughfulness may be also due to my being a rich tourist in a not very rich area that depends on tourism. I could not help but notice it though. Thank you nice people in Akumal and Tulum.

In general the whole trip was physically challenging for me (how not — I can barely do the laundry or get out of my house to get groceries in my own town!) and yet it all seems very possible now. I would feel confident going back on my own. My goal was to find a place where I can have a real vacation, not traveling by going to tech conferences or things for work, ie traveling while not only doing my regular job but also conference talks and attendance! I think that kind of travel is at least something I shouldn’t try to do for the next year or so. Or maybe ever or very rarely. Maybe that time has passed. I like traveling and I love conferences and the intensity of meeting tons of people quickly and also I love public speaking. But it has not gone well for me the last few years as my mobility is worse and pain levels through the roof. So, Real Vacation. What a concept!

Feel free to ask me questions about access in comments and I can try to answer! I hope this helps someone out when they are wondering what might be marginally accessible on the Quintana Roo coast.

Related posts:
Posted in disability, travel | Tagged , , , , | Leave a comment

And in undercurrents, violence against women

Some of the things I read today. Sometimes you look at the news and, damn.

Famous dude doxxes some trolls

* Former MLB pitcher, 38 Studios founder doxes his daughter’s online abusers
* Curt S.’s blog post about it all
* Daily mail article about the same thing

I would like to add to Gabby Schilling’s statement that ‘No one should be able to get away with saying those things to a father about his daughter.’ OK I can roll with that if I translate it 8 different ways in my head, but no one should get away with saying those things to anyone about anyone. And this should happen to exactly no one, nowhere, ever, in public or private.

Plenty more to say about how Curt Schilling handled this. Short version: Compare what happens when this dude doxxes people who say misogynist shit, to what happens when women report harassment against themselves. Extra bonus, all the framing of ownership and protectiveness and patriarchy and threats and jokes just makes it worse in some ways, even though I appreciate anyone fighting misogyny and harassment, it’s like, oh did the entire history of women defending themselves and each other just never happen? And I’m supposed to care more about this girl more than other girls because she has a dad and a boyfriend? Oh ok. OK whatever man.

Oh also noting that news article give the real names of two of the harassers, and it should not be hard at all to find the names of the rest of them. It isn’t like they tried to be anonymous or anything, it was just routine behavior for the lot of them.

University health records aren’t private

* University of Oregon doubles down on a rape survivor who sued them for mishandling her case. Educational institution medical records aren’t covered by HIPAA. I had no idea. Horrible on top of horribleness.

Students: Don’t go to your college counseling center to seek therapy. Go to an off-site counseling center. If, God forbid, you’ve been sexually assaulted, try to find a rape-crisis center.

So that pissed me off.

Ferguson Police Department are horrible

* Surprising no one, Ferguson Police dept. shows some very racist patterns of behavior and sends some stupid racist emails.

Smokin’ in the Girl’s Room

Some a-hole named Michael Rosner (who has not heard of the Streisand Effect) in Baltimore has apparently started a civil liberties complaint. Not sure what this means. An actual lawsuit? If so then I look forward to reading this ridiculousness in PACER and putting it straight into RECAP. He seems to be part of Baltimore Node, a local hackerspace, and is one of those people who are the self-appointed photographers of tech events. In a sadly now deleted post on some Baltimore tech group’s Facebook page, he compared himself to Rosa Parks. A+ drama and ludicrousness.

The repugnant thing of course is the chilling effect this kind of thing can have on other groups who want to hold events. I have certainly spent years hearing people say in meetings, “Oh but what if someone sues us for being reverse sexist/racist” etc. and not only can they fuck off, the people who actually get to the point of litigation can fuck right off and go start their own damn coding club.

First prize for douchebaggery goes to a poet

You would think that is enough for one day. And yet we have more!
* Poet Greg Frankson sues peers for more than $300,000 for libel and defamation
Dude, Ritallin, this isn’t how it works. You aren’t supposed to piss off the bard because the bard can write a scornful poem about you. Go write a scathing spoken word piece! Lawyers? Really?! Weak. Oh well! This is why the 21 women wanted to be anonymous in the first place. So that your punitive and extra harassing lawsuits wouldn’t screw up their emails with subpoenas from now till forever. So, apparently he was banned from some poetry organizations and events because 21 different women reported incidents of sexual harassment and assault. Frankson is now suing some of the people involved, and they’re now fundraising for their legal defense.

Politics and policy

I strongly think that reporting and witnessing harassment and sexual assault is political speech and should be protected as such. Anti-SLAPP law should protect us from these punitive defamation lawsuits. At the least it seems a reasonable defense. There is a long history, not over obviously, of violence against women and in particular sexualized violence against women, and backlash against reporting it. (Or prior restraint stops anyone from publishing it for fear of being sued, even when it’s true.)

It is extremely important that we fight on a legal and policy level against chilling effects to our free speech. I also see these lawsuits as having an effect on our ability and right to organize politically. If we can’t tell each other who raped us, how can we fight? In order to protect that right I think we also will need organizations and legal help that will keep our right to communicate privileged information to each other. But that is not all since we also need public disclosure for our activism. The legal definitions of harassment are centered around work environments and the responsibilities of employers to protect their employees.

While I am ranting, I see this as part of a horrible trend to privatize all the functions of a civil society. Having a job in a particular way should not be the precondition for having health care, a hope of a sustainable life in old age aka “retirement”, other basic needs of life, or, legal protection from abusive behavior. Our right to participate in public spaces should be protected. Not just in “workplaces”.

India’s Daughter

Let us look at one more spectacularly hideous example of pushing women out of the right to public life. All the content warnings or trigger warnings possible on this one….

I also read Leslee Udwin’s statement about interviewing some of the men from Delhi who raped and murdered a woman on a bus. There is heartening protest and activism against this sort of attitude as you can see in the many other articles about “India’s Daughter” but it is clearly also not just the rapists who think this way about their right to do whatever they want to women.

I am not trying to equate harassing people on twitter with rape and murder, I am saying that they are facets of the same oppressive attitude and power dynamic reflected. And that one underpins the other. We need to fight all of it.

A good book if you like books

On that note I have a book recommendation: Framing the Rape Victim: Gender and Agency Reconsidered by Carine M. Mardorossian. About the book:

Contesting the notion that rape is the result of deviant behaviors of victims or perpetrators, Mardorossian argues that rape saturates our culture and defines masculinity’s relation to femininity, both of which are structural positions rather than biologically derived ones.

And a bit I highlighted from the book:

We need to understand that the will to dominate is not an expression of free will or of a subject bound to gendered expectations that have turned the will to dominate into identity itself. Indeed, the failure to dominate produces a “terror machine” because it threatens the subject with complete annihilation: once one subscribes to the tenets of this identity-making machine, one is nothing if one does not dominate.

This book connects and clarifies sexualized violence and its role in many forms of oppression. “All violence is sexualized violence.” Food for thought.

Related posts:
Posted in activism, feminism | 1 Comment

A useful Bugzilla trick

At the beginning of February I changed teams within Mozilla and am now working as a release manager. It follows naturally from a lot of the work I’ve already been doing at Mozilla and I’m excited to join the team working with Lukas, Lawrence, and Sylvestre!

I just learned a cool trick for dealing with several bugzilla.mozilla.org bugs at once, on MacOS X.

1) Install Bugzilla Services.

2) Add a keyboard shortcut as Alex Keybl describes in the blog post above. (I am using Control-Command-B)

3) Install the Tree Style Tab addon.

Now, from any text, whether in email, a desktop text file, or anywhere in the browser, I can highlight a bunch of text and bug number will be parsed out of the text. For example, from an email this morning:

Bug 1137050 - Startup up Crash - patch should land soon, potentially risky
David Major seems to think it is risky for the release.

Besides that, we are going to take:
Bug 1137469 - Loop exception - patch waiting for review
Bug 1136855 - print preferences - patch approved
Bug 1137141 - Fx account + hello - patch waiting for review
Bug 1136300 - Hello + share buttons - Mike  De Boer will work on a patch today

And maybe a fix for the ANY query (bug 1093983) if we have one...

I highlighted the entire email and hit the “open in bugzilla” keystroke. This resulted in a Bugzilla list view for the 6 bugs mentioned in the email.

Bugzilla list view example

With BugzillaJS installed, I have an extra option at the bottom of the page, “Open All in Tabs”, so if I wanted to triage these bugs, I can open them all at once. The tabs show up in my sidebar, indented from their parent tab. This is handy if I want to collapse this group of tabs, or close the parent tab and all its children at once (The original list view of these 6 bugs, and each of its individual tabs.) Tree Style Tab is my new favorite thing!

Tree style tabs bugzilla

In this case, after I had read each bug from this morning and closed the tabs, my coworker Sylvestre asked me to make sure I cc-ed myself into all of them to keep an eye on them later today and over the weekend so that when fixes are checked in, I can approve them for release.

Here I did not want to open up every bug in its own tab but instead went for “Change Several Bugs at Once” which is also at the bottom of the page.

Bugzilla batch edit

This batch edit view of bugs is a bit scarily powerful since it will result in bugmail to many people for each bug’s changes. When you need it, it’s a great feature. I added myself to the cc: field all in one swoop instead of having to click each tab open, click around several times in each bug to add myself and save and close the tab again.

It was a busy day yesterday at work but I had a nice time working from the office rather than at home. Here is the view from the SF Mozilla office 7th floor deck where I was working and eating cake in the sun. Cannot complain about life, really.
Mozilla bridge view

Related posts:
Posted in mozilla, planetmozilla, work | Tagged , | Leave a comment

Like a warm pool

My new stomping grounds are at a physical rehab swimming pool in San Francisco. It’s called Herbst Pool and it’s at the Pomeroy Recreation and Rehabilitation Center. I used to go to the Betty Wright pool in Palo Alto (that then became C.A.R. and then Abilities United). This seems quite similar. The Center was started in 1952 as a rec center for people with disabilities. It seems to have a lot of day programs, gardens, playgrounds, a gym and art classrooms, and this awesome pool where the water is kept over 90 degrees. This is the important part to me. Cold is painful on my joints and I get stiff quickly. But it also is directly painful on my “bad” leg. Regular room temperature air on my leg feels like burning ice which is why I’m a huge fan of long underwear or at least secret leg warmers (under my jeans). So, warm water RULES.

Pomeroy herbstpool

Like the Betty Wright pool, Herbst Pool or Pomeroy Pool (whatever you want to call it) has a very wide sloping ramp to enter the water, and a variety of PVC wheelchairs useful for going down the ramp. There are also very shallow and broad steps with handrails. It is easy entry into the water. They have all sorts of adaptive equipment for the water. I don’t need that stuff but I appreciate the easy entry and not having to use one of those slow, free-show lift chairs into the water. The pool is a beautiful and relaxing space as there is a skylight, and one wall is entirely windows looking out at the trees bordering Lake Merced. The walls are covered with cheerful murals of cartoon whales.

The locker room and especially the main pool room are kept pretty warm. There are many heat lamps in the pool area. Really fantastic if you can’t tolerate the cold. Of course I always wish it were warmer and had a heated floor… and a sauna…. but it’s the best I’ve ever come across.

Once I am in things are pretty good at the moment. I can walk around slowly in collarbone-deep water, and do squats and other excercises hanging onto a kickboard. When I am not in a flare up, or, in some mythical past before my ankles went awry, I am a strong and good swimmer with good endurance and a long history of loving the surf. I feel super happy in the water, light and gravity-free (as long as it is warm). I’m going every week for physical therapy in a small group that’s run through Potrero Physical Therapy (note: they are awesome.) And I am trying to fit in at least one other pool visit per week, hoping to get to 3 hours total a week.

It is hard for me to get to Pomeroy. When I was gearing up to do this I didn’t find directions on their site for how to get there by bus, and it was really unclear on Google Maps from their address (on Skyline) where the entrance was on a rather large and confusing block of land between three streets. This matters to me because it can be non-trivial for me to get from point A to point B even in my scooter (because of pain, or nasty weather) and if I do’t know exactly where entrances are and what a building or “campus” is like, I’m not going to take my manual wheelchair for sure as it can easily be too difficult for me to go it alone. So here are the details of how to get there for anyone else who is thinking of rehab at this pool.

And, while taking the hour+ long journey from my house to the pool and during the somewhat boring hour of walking back and forth I often think how I should write up a post about the pool. Here it finally is.

Getting to the pool

There is parking and drop off that is level with the pool entrance, which is on Herbst Road and up a little hill. There are at least 5 blue parking spaces and some extra. Other parking is along Herbst and you will meet that “hill” along with a possibly significant walk. From the drop off point in the closest parking lot (where paratransit will drop you) It is a pretty short walk in to the pool. I haven’t measured it or tried it yet. It is too much walk for me to do with out a chair.

There are 2 buses that go nearby, the 23 and the 18. The 18 stops on Herbst Road just outside the Rec Center campus. To get to the pool you will have to cross a non-busy street and then go up a steep slope (a full story, not something I want to do in a manual chair but might in a pinch). There is a ramp for this but again it is at least one full building story high. At the top there is a little garden with benches, and a small (not accessible) playground and grassy area for toddlers. I like eating lunch there. (I think on the other side of the campus there may be an accessible playground.)

Pomeroy courtyard

To take the 23 (the bus I ride to get there) you have to get off at Sloat and Skyline just north east of the zoo. This street crossing is a complete nightmare. It is a 6 or 8 way stop, with cars coming very fast. There are 3 medians you will need to stop on to cross another section of the road. At least it has medians! This is a crossing I would not recommend to anyone blind. Instead get off the 23 at the zoo entrance stop and cross there where there is a light and only 1 median and traffic isn’t coming from 6 unpredictable directions. This will add another 15 minutes to your journey. The Hellish Intersection scares the crap out of me every time. But I still use it because I need to get back home so I can work. The 23rd itself is a pleasant bus, not crowded, bus drivers nice and not super stressed; they are the old style buses with an unfolding ramp instead of a lift. It comes about every 20-30 minutes depending on the time and day. Note, the bus stop going inbound is not marked well and is on one of the medians in the center of the Hellish Intersection.

Hellish intersection sloat skyline

It is half a mile from the Sloat and Skyline bus stop to the entrance to the pool, which takes me about 10 minutes to traverse. One minor problem I have is that the sidewalk along Herbst is often littered with eucalyptus nuts and branches, so I opt for going in the street. Not a big problem as the street isn’t too busy and it’s wide enough to have room.

cost of the pool; who goes there
The pool membership costs $50 a year and you have to have a doctor fill out the application. Then, the swim sessions or exercise classes are something like $8-10 each. There is not really a “drop in” mentality but instead you are expected to sign up for a 10-pack card at the least.

This high cost, and the difficult access, may explain why I have never seen any other wheelchair users at the pool. It is weird to feel like a damn unicorn at a place specifically meant for disabled people. The physical therapy class are mostly people with injuries or recovering from surgery who have PT for a short time covered by their insurance or Medicare and the arthritis exercise class seem to be retired people trying to keep fit. The other main users of the facility seem to be disabled people who have personal care attendants, or who have developmental disabilities and are there as a sort of day camp experience doing garden work, art classes, and basketball. Lots of wheelchair users around the grounds and buildings but none at the pool at the times that I go there. I can see the community that they serve. And I am an outlier in that community and yet this place is also *exactly* what I need (integrated into my life all the time). I do wish that the pool had some sort of option for low(er) cost access, not for me, but for people in the community who are living on disability benefits who would never be able to afford this and yet who are not “in the system” enough to get bused from a group home on paratransit (as I think many of the people hanging out at the Center are).

The other swimmers I have seen are all infant and toddlers with parents bringing them for swim lessons (with no relation to anyone being disabled). It is just a nice warm pool where they have baby swim lessons, like at Petit Baleen. It is lovely and cheerful to see all the kids coming out of the pool. They always seem happy and calm and sort of stimulated. And they make me happy as I think of the nice memories of when Milo and Ada were small.

Probably the kids’ swim lessons are basically a way for middle class non disabled people to financially support the rest of the facility. (Which also takes donations.) And, I think it may also get funding from places like Target that look for a place from which to hire disabled people for low pay and some sort of tax break; whatever happens there, I hope people are paid fairly.

Extra note on Janet Pomeroy who the Center is named after. Thank you wheelchair sports camp lady!

The facilities of the pool
The building itself has automatic doors. There is a station where you can check in and pay for your session. Also two vending machines with drinks and snacks.

The women’s locker room has a big heavy door quite difficult to open. They need a push button for the doors. Inside, there is a (wet) floored room lined with benches. There are a few hooks to hang coats or bags but no lockers at all and no curtained areas for changing. It is just one big room to change in. Probably that is to fit a maximum number of people (and wheelchairs?) into the room. The outcome of this is that many people lock themselves into the three bathroom stalls so I make sure to use the bathroom outside the locker room by the gym. Aside from this minor annoyance I do feel critical of the situation as the upshot is old ladies who have had hip replacements changing into bathing suits in a slippery tiled floor bathroom stall seems like a recipe for badness. (Add in an incoming and outgoing class of non-disabled toddlers to imagine this completely.) I think they are dealing with this by building a new (unisex) changing area for wheelchair users or people with attendants, in the main area of the pool. (The Abilities United pool also has this.) One last bitch about the locker room, it has no tampon machine. Come on folks. It’s a pool bathroom. What more important place are you going to be where you will need emergency tampons?! But I digress.

There are nice showers in the locker room, one with a curtain but all the rest open. The water is hot. Yay. The locker room has a heavy difficult door to get into the pool area.

From there it is cake; there is another shower for rinsing off near the pool and there are some open cubbyholes to put your stuff in if you don’t want to leave it in the (non-lockered) locker room. I notice that getting into the pool many people have both flip flops and walking canes. Some thought to this common situation would be good and it coudl be solved with another set of cubbies and some sort of cane holder that would take twenty-eleven canes. There is always a pile of flip flops and canes right at the point where the handrail begins! Plus, my scooter unless I am confident about the walk from the shower area to the pool and back.

Herbstpool window

emotions and memories of physical therapy
I can’t imagine how many of the ladies in PT with me manage the trip there or even the walk from the parking lot. It is always hard to remember how that works until I get back into that territory of ablilty. Driving + hobbling. I was there for years.

I remember so many times of “rehabbing” in pools over the last 20 years. At Valley Medical Center in the 90s it was depressing and squalid and yet the warm water was so freeing. I could move freely and learned some good exercises. It was hard to talk with the other people there who were all older women while I was in my 20s with a mohawk and two septum rings. These days at least I am middle aged looking and not unacceptable as a possible conversation partner to ladies who have hip replacements.

It was always an ordeal to get to a hospital and navigate it and also inherently depressing. I have swum at YMCAs, JCCs, many city pools, and so on which I far prefer to going to hospital therapy pools. The public pools are way too cold for me to tolerate. I worked up from 15 minutes to 45 minutes in a “normal” temperature pool where athletic people swim laps, but it’s never a good experience. The SF JCC has the second warmest pool in town, plus a hot tub and a sauna, by the way, but it is extremely pricey as well as being ultra clean, pretty, and posh. The CPMC hospital has a warm pool, and you can get PT from it, so that is an option, but last I checked it was not only out of service but you couldn’t “drop in” extra at all; you have to get on a waiting list for a weekly arthritis class and if you miss two classes they boot you to the end of the waiting list. That will not work well for me. So I am very glad that places like the Pomeroy Pool and Abilities United exist.

I thought over my times at the Betty Wright Center which had really good cameraderie and where I got a lot stronger. I remember starting out at Betty Wright crying uncontrollably and feeling that I could not take it but grimly slogging through. That always happens both physically and emotionally. In fact at Pomeroy I know we all cry in there sometimes. Even if not from pain, it is because it is easy to go about our lives somewhat disconnected from our bodies. Being in the water and having nothing else to do but gently move around, it can be an emotional experience. I am thinking directly about what I can and can’t do, and comparing it with other times in the water, often ones where I was hitting rock bottom physically. I notice consistently my problem is not, “not trying hard enough” it is pushing myself way too hard and re-injuring myself or making everything worse. This is the new era of caution for me. Some of this holding back is possible because of working with a behavioral therapist who is very knowledgeable about pain, disability, and chronic illness. Thanks Dr. C.

(There is also the aspect that doing this 3.5 hour journey means I have to put on a lot of psychic armor to deal with strangers, bus drivers, buses with broken lifts, the Hellish Intersection, people cursing at me for being in the way, people staring, people (nicely or otherwise) inquiring about my scooter or wheelchair, people angry with me for not accepting their “help” properly, and all the other things that make leaving the house an Epic Journey. I armor up and am prepared for it all but it is not without emotional effort and cost. It is never simple. For me to get anywhere, I have gone through this process already and have likely had many challenges to basic equanimity.)

Last fall I could not go into the water without soft ankle braces. It hurt too much to have the tiny currents of the water, wiggling my ankles around unpredictably. Right now I can do a lot of squats and toe-raises and walk back and forth for the whole hour. It’s great. I am not swimming yet as my knees and ankles (and i think back) aren’t strengthened enough. I cannot do things I used to be able to do in pool rehab, like write the alphabet with my foot in cursive. Nope nope nope nope nope nope! But, I have improved my gait (again) to be more even and to weight shift instead of limping or shuffling.

My goal right now is to get my ankles strong enough that I can drive to the pool, park there, and use my manual chair. That would be less physically grueling for me than the 2 hours of bus ride and scootering. It usually takes 3 and a half hours out of my day to get there by bus. By driving, I could be gone from work 2 hours instead. That means I could swim more often. My real goal though is simply to maintain this level of water-walking and aerobic exercise for health, flexibility, and strength without injuring myself. This is already the longest stretch of time I have consistently made it to PT or exercise without messing myself up, and also doing daily PT at home. Huzzah!

A last note, huge props to Pomeroy staff for letting me use a conference room in their office one day last fall as I wanted to be at a crucial team meeting but didn’t want to skip my PT appointment. They let me walk in out of the blue and use their office and their wifi and close the door for privacy. Super nice of them. I was able to give one of their staff all the details about TravelScoots and other lightweight scooters in return. I still feel I owe them some free computer advice or help! But, I thanked them for supporting a person “in the community” (me) in their job and also for helping make Firefox better (ha!) by getting me to my meeting on time!

Related posts:
Posted in disability, san francisco | Tagged , , , | 1 Comment

Automated test harnesses for Firefox, zooming out a bit

In December I was going through some of the steps to be able to change, fix, and interpret the results of a small subset of the gazillion automated tests that Mozilla runs on Firefox builds. My last post arrived at the point of being able to run mochitests locally on my laptop on the latest Firefox code. Over the holidays I dug further into the underlying situation and broaded my perspective. I wanted to make sure that I didn’t end up grubbing away at something that no one cared about or wasn’t missing the big picture.

My question was, how can I, or QA in general, understand where Firefox is with e10s (Electrolysis, the code name for the multiprocess Firefox project). Can I answer the question, are we ready to have e10s turned on by default in Firefox — for the Developer Edition (formerly known as Aurora), for Beta, and for a new release? What criteria are we judging by? Complicated. And given those things, how can we help move the project along and ensure good quality; Firefox that works as well as or, we hope, better than, Firefox with e10s not enabled? My coworker Juan and I boiled it down to basically, stability (lowering the crash rate) and automated test coverage. To answer my bigger questions about how to improve automated test coverage I had to kind of zoom out, and look from another angle. For Firefox developers a lot of what I am about to describe is basic knowledge. It seems worth explaining, since it took me significant time to figure out.

First of all let’s look at treeherder. Treeherder is kind of the new TBPL, which is the old new Tinderbox. It lets us monitor the current state of the code repositories and the tests that run against them. It is a window into Mozilla’s continuous integration setup. A battery of tests are poised to run against Firefox builds on many different platforms. Have a look!

Current view of mozilla-central on treeherder

Treeherder2

Edward Tufte would have a cow. Luckily, this is not for Tufte to enjoy. And I love it. You can just keep digging around in there, and it will keep telling you things. What a weird, complicated gold mine.

Digression! When I first started working for Mozilla I went to the Automation and Tools team work week where they all came up with Treeherder. We wanted to name it something about Ents, because it is about the Tree(s) of the code repos. I explained the whole thing to my son, I think from the work week, which awesomely was in London. He was 11 or 12 at the time and he suggested the name “Yggdrazilla” keeping the -zilla theme and in reference to Yggdrasil, the World-Tree from Norse mythology. My son is pretty awesome. We had to reject that name because we can’t have more -zilla names and also no one would be able to spell Yggdrasil. Alas! So, anyway, treeherder.

The left side of the screen describes the latest batch of commits that were merged into mozilla-central. (The “tree” of code that is used to build Nightly.) On the right, there are a lot of operating systems/platforms listed. Linux opt (optimized version of Firefox for release) is at the top, along with a string of letters and numbers which we hope are green. Those letter and numbers represent batches of tests. You can hover over them to see a description. The tests marked M (1 2 3 etc) are mochitests, bc1 is mochitest-browser-chrome, dt are developer tools tests, and so on. For linux-opt you can see that there are some batches of tests with e10s in the name. We need the mochitest-plain tests to run on Firefox if it has e10s not enabled, or enabled. So the tests are duplicated, possibly changed to work under e10s, and renamed. We have M(1 2 3 . . .) tests, and also M-e10s(1 2 3 . . . ). Tests that are green are all passing. Orange means they aren’t passing. I am not quite sure what red (busted) means (bustage in the tree! red alert!) but let’s just worry about orange. (If you want to read more about the war on orange and what all this means, read Let’s have more green trees from Vaibhav’s blog. )

I kept asking, in order to figure out what needed doing that I could usefully do within the scope of As Soon As Possible, “So, what controls what tests are in which buckets? How do I know how many there are and what they are? Where are they in the codebase? How can I turn them on and off in a way that doesn’t break everything, or breaks it productively?” Good questions. Therefore the answers are long.

There are many other branches of the code other than mozilla-central. Holly is a branch where the builds for all the platforms have e10s enabled. (Many of these repos or branches or twigs or whatever, are named after different kinds of tree.) The tests are the standard set of tests, not particularly tweaked to allow for e10s. We can see what is succeeded and failing on treeherder’s view of holly. A lot of tests are orange on holly! Have a look at holly by clicking through on the link above. Here is a picture of the current state of holly.

Treeherder holly1

If you click a batch of tests where there are some failures — an orange one — then a new panel will open up in treeherder! I will pick a juicy looking one. Right now, for MacOS 10.6 opt, M(2) is orange. Clicking it gives me a ton of info. Scrolling down a bit in the bottom left panel tells me this:

mochitest-plain-chunked 164546/12/14136

The first number is how many tests ran. Scary. Really? 164546 tests ran? Kind of. This is counting assertions, in other words, “is” statements from SimpleTest. The first number lists how many assertions passed. The second number is for assertion failures and the third is for “todo” statements.

The batches of tests running on holly are all running against an e10s build of Firefox. Anything that’s consistently green on holly, we can move over to mozilla-central by making some changes in mozharness. I asked a few people how to do this, and Jim Matthies helpfully pointed me at a past example in Bug 1061014. I figured I could make a stab at adding some of the newly passing tests in Bug 1122901.

As I looked at how to do this, I realized I needed commit access level 2 so I filed a bug to ask for that. And, I also tried merging mozilla-central to holly. That was ridiculously exciting though I hadn’t fixed anything yet. I was just bringing the branch up to date. On my first try doing this, I immediately got a ping on IRC from one of the sheriffs (who do merges and watch the state of the “tree” or code repository) asking me why I had done something irritating and wrong. It took us a bit to figure out what had happened. When I set up mercurial, the setup process and docs told me to install a bunch of Mozilla specific hg extensions. So, I had an extension set up to post to bugzilla every time I updated something. Since I was merging several weeks of one branch to another this touched hundreds of bugs, sending bugmail to untold numbers of people. Mercifully, Bugzilla cut this off after some limit was reached. It was so embarrassing I could feel myself turning beet red as I thought of how many people just saw my mistake and wondered what the heck I was doing. And yet just had to forge onwards, fix my config file, and try it again. Super nicely, Clint Talbert told me that the first time he tried pushing some change he broke all branches of every product and had no idea what had happened. Little did he know I would blog about his sad story to make myself feel less silly….. That was years ago and I think Mozilla was still using cvs at that point! I merged mozilla-central to holly again, did not break anything this time, and watched the tests run and gradually appear across the screen. Very cool.

I also ended up realizing that the changes to mozharness to turn these batches of tests on again were not super obvious and to figure it out I needed to read a 2000-line configuration file which has somewhat byzantine logic. I’m not judging it, it is clearly something that has grown organically over time and someone else probably in release engineering is an expert on it and can tweak it casually to do whatever is needed.

Back to our story. For a batch of tests on holly that have failures and thus are showing up on treeherder as orange, it should be possible to go through the logs for the failing tests, figure out how to turn them off with some skip-if statements, filing bugs for each skipped failing test. Then, keep doing that till a batch of tests is green and it is ready to be moved over.

That seems like a reasonable plan for improving the automated test landscape, which should help developers to know that their code works in Firefox whether e10s is enabled or not. In effect, having the tests should mean that many problems are prevented from ever becoming bugs. The effect of this test coverage is hard to measure. How do you prove something didn’t happen? Perhaps by looking at which e10s tests fail on pushes to the try server. Another issue here is that there are quite a lot of tests that have been around for many years. It is hard too know how many of them are useful, whether there are a lot of redundant tests, in short whether there is a lot of cruft and there probably is. With a bit more experience in the code and fixing and writing tests it would be easier to judge the usefulness of these tests.

I can also see that, despite this taking a while to figure out (and to even begin to explain) it is a good entry point to contributing to Firefox. It has more or less finite boundaries. If you can follow what I just described in this post and my last post, and you can read and follow a little python and javascript, then you can do this. And, if you were to go through many of the tests, over time you would end up understanding more about how the codebase is structured.

As usual when I dive into anything technical at Mozilla, I think it’s pretty cool that most of this work happens in the open. It is a great body of data for academics to study, it’s an example of how this work actually happens for anyone interested in the field, and it’s something that anyone can contribute to if they have the time and interest to put in some effort.

This post seems very plain with only some screenshots of Treeherder for illustration. Here, have a photo of me making friends with a chicken.

Liz with chicken

Related posts:
Posted in mozilla, open source, planetmozilla, work | Tagged , , , | 3 Comments

Running mochitests for Firefox

I’m experimenting with automated testing for Firefox and figured it may be useful to record what I learned. I had a look at the Mochitest page on MDN as well as the main page on Automated testing at Mozilla. It is hard to know how to even begin to explain this. Mochitests are a huge ball of tests for Firefox. They run every time a change is pushed to mozilla-central, which is the sort of tip of the current state of our code and is used every day to build the Nightly version of Firefox. They’re run automatically for changes on other code repositories too. And, you can run them locally on your own version of Firefox.

This is going to have ridiculous levels of detail and jargon. Warning!

The first thing to do is to download the current code from mozilla-central and build it on my laptop. Here are the Firefox build instructions!

As usual I need to do several other things before I can do those things. This means hours of twiddling around on the command line, installing things, trying different configurations, fixing directory permissions and so on. Here are a few of the sometimes non-trivial things I ended up doing:

* updated Xcode and command line tools
* ran brew doctor and brew update, fixed all errors with much help from Stack Overflow, ended up doing a hard reset of brew
* Also, if you need to install a specific version of a utility, for example, autoconf: brew tap homebrew/versions; brew install autoconf213
* re-installed mercurial and git since they were screwed up somehow from a move from one Mac to another
* tried two different sample .mozconfig files, read through other Mac build config files, several layers deep (very confusing)
* updating my Firefox mozilla-central directory (hg pull -u)
* filed a bug for a build error and fixed some minor points on MDN

The build takes around an hour the first time. After that, pulling the changes from mozilla-central and reticulating the splines takes much less time.

Firefox build

Now I’m to the point where I can have a little routine every morning:
* brew doctor
* brew upgrade
* cd mozilla-central, hg pull -u
* ./mach build

Then I’m set up to run tests. Running all the mochitest-plain tests takes a long time. Running a single test may fail because it has dependencies on other tests it expects to have run first. You can also run all the tests in a particular directory, which may work out better than single tests.

Here is an example of running a single test.

./mach mochitest-browser browser/base/content/test/general/browser_aboutHome.js

Your Nightly or Nightly-debug browser will open and run through some tests. There will be a ton of output. Nifty.

Here is that same test, run with e10s enabled.

./mach mochitest-browser —e10s browser/base/content/test/general/browser_aboutHome.js

BTW if you add “2>&1 | tee -a test.log” to those commands they will pipe the output into a log file.

Back to testing. I poked around to see if I could find a super easy to understand test. The first few, I read through the test code, the associated bugs, and some other stuff. A bit overwhelming. My coworker Juan and I then talked to Joel Maher who walked us through some of the details of how mochitests work and are organized. The tests are scattered throughout the “tree” of directories in the code repository. It is useful generally to use DXR to search but I also ended up just bouncing around and getting familiar with some of the structure of where things are. For example, scarily, I now know my way to testing/mochitest/tests/SimpleTest/. Just by trying different things and looking around you start to get familiar.

Meanwhile, my goal was still to find something easy enough to grasp in an afternoon and run through as much of the process to fix a simple bug as I could manage. I looked around for tests that are known not to work under e10s, and are marked in manifest files that they should be skipped if you’re testing with e10s on. I tried turning some of these tests on and off and reading through their bugs.

Also meanwhile I asked for commit access level 1 (for the try server) so when I start changing and fixing things I can at least throw them at a remote test server as well as my own local environment’s tests.

Then, hurray, Joel lobbed me a very easy test bug.

From reading his description and looking at the html file it links to, I got that I could try this test, but it might not fail. The failure was caused by god knows what other test. Here is how to try it on its own:

./mach mochitest-chrome browser/devtools/webide/test/test_zoom.html

I could see the test open up Nightly-debug and then try to zoom in and out. Joel had also described how the test opens a window, zooms, closes the window, then opens another window, zooms, but doesn’t close. I have not really looked at any JavaScript for several years and it was never my bag. But I can fake it. Hurray, this really is the simplest possible example. Not like the 600-line things I was ending up in at random. Danny looked at the test with me and walked through the JavaScript a bit. If you look at the test file, it is first loading up the SimpleTest harness and some other stuff. I did not really read through the other stuff. *handwave* Then in the main script, it says that when the window is loaded, first off wait till we really know SimpleTest is done because the script tells us so (Maybe in opposition to something like timing out.) Then a function opens the WebIDE interface, and (this is the main bit Danny explained) the viewer= winQuerInterface etc. bit is an object that shows you the state of the viewer. *more handwaving, I do not need to know* More handwaving about “yield” but I get the idea it is giving control over partly to the test window and partly keeping it. Then it zooms in a few times, then this bit is actually the meat of the test:

 is(roundZoom, 0.6, "Reach min zoom");

Which is calling the “is” function in SimpleTest.js, Which I had already been reading, and so going back to it to think about what “is” was doing was useful. Way back several paragraphs ago I mentioned looking in testing/mochitest/tests/SimpleTest/. That is where this function lives. I also felt I did not entirely need to know the details of what the min and max zoom should be. Then, we close the window. Then open a new one. Now we see the other point of this test. We are checking to see that when you open a WebIDE window, then zoom to some zoomy state, then close the window, then re-open it, it should stay zoomed in or out to the state you left it in.

OK, now at this point I need to generate a patch with my tiny one line change. I went back to MDN to check how to do this in whatever way is Mozilla style. Ended up at How to Submit a Patch, then at How can I generate a patch for somebody else to check in for me?, and then messing about with mq which is I guess like Quilt. (Quilt is a nice name, but, welcome to hell.) I ended up feeling somewhat unnerved by mq and unsure of what it was doing. mq, or qnew, did not offer me a way to put a commit message onto my patch. After a lot of googling… not sure where I even found the answer to this, but after popping and then re-pushing and flailing some more, and my boyfriend watching over my shoulder and screeching “You’re going to RUIN IT ALL” (and desperately quoting Kent Beck at me) as I threatened to hand-edit the patch file, here is how I added a commit message:

hg qrefresh -m "Bug 1116802: closes the WebIDE a second time"

Should I keep using mq? Why add another layer into mercurial? Worth it?

To make sure my patch didn’t cause something shocking to happen (It was just one line and very simple, but, famous last words….) I ran the chrome tests that were in the same directory as my buggy test. (Piping the output into a log file and then looked for anything that mentioned test_zoom. ) The test output is a study in itself but not my focus right now as long as nothing says FAIL.

./mach mochitest-chrome browser/devtools/webide/test/

Then I exported the patch still using mq commands which I cannot feel entirely sure of.

 hg export qtip > ~/bug-1116802-fix.patch

That looked fine and, yay, had my commit message. I attached it to the bug and asked Joel to have a look.

I still don’t have a way to make the test fail but it seems logical you would want to close the window.

That is a lot of setup to get to the point where I could make a useful one line change in a file! I feel very satisfied that I got to that point.

Only 30,000 more tests to go, many of which are probably out of date. As I contemplate the giant mass of tests I wonder how many of them are useful and what the maintenance cost is and how to ever keep up or straighten them out. It’s very interesting!

You can have a look at the complicated nature of the automated tests that run constantly to test Firefox at treeherder. For any batch of commits merged into mozilla-central, huge numbers of tests run on many different platforms. If you look at treeherder you can see a little (hopefully green) “dt” among the tests. I think that the zooming in WebIDE test that I just described is in the dt batch of tests (but I am not sure yet).

I hope describing the process of learning about this small part of Firefox’s test framework is useful to someone! I have always felt that I missed out by not having a college level background in CS or deep expertise in any particular language. And yet I have still been a developer on and off for the last 20 years and can jump back into the pool and figure stuff out. No genius badge necessary. I hope you can see that actually writing code is only one part of working in this kind of huge, collaborative environment. The main skill you need (like I keep saying) is the ability not to freak out about what you don’t know, and keep on playing around, while reading and learning and talking with people.

Related posts:
Posted in planetmozilla, Uncategorized | Tagged , , | 6 Comments

Happy Year Everyone!

Happy Earth’s orbit time unit demarcation point! Here is a sort of mass holiday letter, via blog, to ceremoniously open the year. Starting with a picture of me looking like a happy Time Lord, wrapped in a silk scarf with the Puppis Nebula on it and with a giant bow on my head, grinning like a fool.

Happytimelord

It’s been a good year. I met many new fabulous people mostly through Double Union and conferences, read a lot, worked on a new zine, published some articles including some in Model View Culture and a year-end review of books and culture at the Aqueduct Press blog worked super hard at Mozilla, had my ups and downs physically and with mobility, visited Portland a couple of times for Open Source Bridge, AdaCamp, and for work, went to Montreal for PyCon, went to WisCon, played a ton of Ingress, worked with Ada Initiative and a little on geekfeminism.org (as usual). Got to hang out really a lot with my friends. So many lovely, warm, interesting people!! I adore them. Had a fabulous, sweet, talented roommate for a month. Made a tiny zine, Heterodoxy to Marie. I got to see Sandra while I was in Montreal and found out at the end of the year that her and Sophie’s film, The Amina Profile, will be at the Sundance Film Festival (I am in this movie, somewhere, interviewed.)

Feminst hacker lounge (year 2) from PyCon:

Feministhackerloungepycon2014

Zine Workshop at Double Union:

Zineworkshop

Movie poster for The Amina Profile:

Amina profile poster

I have admired this is the movement and #ThisTweetCalledMyBack this year. Solid.

In the fall, I missed a trip I had planned with Danny, to Mexico City and Bogotá hackerspaces, but I felt good about the decision not to go especially once I saw the many flights of stairs I would have had to negotiate somehow. (!) Sad about it though. Spent a month and a half in CAM walking boots (the ankle moon boots) which was a nasty wake-up call. And which freaked me out and upset me greatly. Re-focused my life around physical therapy, kind of (in that it is my top priority to go to the Very Warm Pool (92°F) to exercise and strengthen my legs, any time I can make time).

I lost a friend to sudden unexpected death this year. I miss her every day. Another part of my feelings of refocusing on health and drawing inwards a little. What a privilege I have had to reach this age without very much of this kind of loss. Had a bracing-myself feeling like, “And so it begins”. Our lives just fly by. I dearly wish she were here to appreciate #ThisTweetCalledMyBack. Surely she knows or knew how deeply she would be missed by so many of us. Please hold your friends and compañeras close, everyone.

Here’s what I keep saying to myself. How will I try to model sustainable feminist activism for others and for myself? (Is it possible? Maybe not.) What if I get off that mustang? Can I? What would life be like if I “gave” 60%, not 110%? Will I ever feel that I do “enough” or experience “enough”? (No. Must CHILL.) (Thanks for these pointers, awesome new behavioral pain/disability/insomnia therapist.)

Life generally fabulous with Danny. Yesterday afternoon we were there just doing our thing, alternating between domestic things, editing and writing (sometimes together), half working and half not, and zoning out playing our current video games (Elite Dangerous and Clash of Clans). A few friends were about to come over. He went, “wait, this is what people THINK we do all the time” (writing together on the couch) Well, we do….. just not every moment obviously since the garbage needs to go out and we are often both ill and exhausted and just slumped around the house. But then we have this great synergy and can communicate and understand each other better than anything. *hearts*

Over all, I settled more and more into living in this little rented earthquake shack in San Francisco with Danny and our kids, who are beyond awesome.

Kids effparty

Many horrible, sad, annoying things happened this year as well and to all of that I call BULLSHIT. Enough said!

Bullshitbutton

Here is the most frivolous milestone for the year I can think of (demonstrated last night) After many years of patiently lap-training Danny’s cat, I can now turn her upside down. She purrs and stays upside down on my lap. TRIUMPH.

"Hey, hey sister it don't matter
Whether I do labor fast or slow,
There's always more labor after." 
Related posts:
Posted in Uncategorized | Tagged , | Leave a comment

Thoughts on working at Mozilla and the Firefox release process

Some thoughts on my life at Mozilla as I head into our company-wide work week here in Portland! My first year at Mozilla I spent managing the huge volume of bugs, updating docs on how to triage incoming bugs and helping out with Bugzilla itself. For my second year I’ve been more closely tied into the Firefox release process, and I switched from being on the A-Team (Automation and Tools) to desktop Firefox QA, following Firefox 31 and then Firefox 34 through their beginning to release.

picard saying if it's not in bugzilla it doesn't exist

I also spent countless hours fooling around with Socorro, filing bugs on the highest volume crash signatures for Firefox, and then updating the bugs and verifying fixes, especially for startup crashes or crashes associated with “my” releases.

Over this process I’ve really enjoyed working with everyone I’ve met online and in person. The constant change of Mozilla environments and the somewhat anarchic processes are completely fascinating. Though sometimes unnerving. I have spent these two years becoming more of a generalist. I have to talk with end users, developers on every Mozilla engineering team, project or product managers if they exist, other QA teams, my own Firefox/Desktop QA team, the people maintaining all the tools that all of us use, release management, and release engineering. Much of the actual QA has been done by our Romanian team so I have coordinated a lot with them and hope to meet them all some day. When I need to dig into a bug or feature and figure out how it works, it means poking around in documentation or in the code or talking with people, then documenting whatever it is.

This is a job (and a workplace) suited for people who can cope with rapid change and shifting ground. Without a very specific focus, expertise is difficult. People complain a lot about this. But I kind of like it! And I’m constantly impressed by how well our processes work and what we produce. There are specific people who I think of as total rock stars of knowing things. Long time experts like bz or dbaron. Or dmajor who does amazing crash investigations. I am in their secret fan club. If there were bugzilla “likes” I would be liking up a storm on there! It’s really amazing how well the various engineering teams work together. As we scramble around to improve things and as we nitpick I want to keep that firmly in mind. And, as we are all a bit burned out from dealing with the issues from the 33 Firefox release and many point releases, then the 10th anniversary release, then last minute scrambling to incorporate surprise/secret changes to Firefox 34 because of our new deal with Yahoo.

I was in a position to see some of the hard work of the execs, product and design people, and engineers as well as going through some rounds of iterating very quickly with them these last 2 weeks (and seeing gavin and lmandel keep track of that rapid pace) Then seeing just part of what the release team needed to do, and knowing that from their perspective they also could see what IT and infrastructure teams had to do in response. So many ripples of teamwork and people thinking things through, discussing, building an ever-changing consensus reality.

I find that for every moment I feel low for not knowing something, or making a mistake (in public no less) there are more moments when I know something no one else knows in a particular context or am able to add something productive because I’m bringing a generalist perspective that includes my years of background as a developer.

As an author and editor I am reminded of what it takes to edit an anthology. My usual role is as a general editor with a vision: putting out a call, inviting people to contribute, working back and forth with authors, tracking all the things necessary (quite a lot to track, more than you’d imagine!) and shifting back and forth from the details of different versions of a story or author bios, to how the different pieces of the book fit together. And in that equation you also, if you’re lucky, have a brilliant and meticulous copy editor. At Aqueduct Press I worked twice with Kath Wilham. I would have gone 10 rounds of nitpick and Kath would still find things wrong. My personal feeling for my past year’s work is that my job as test plan lead on a release has been 75% “editor” and 25% copy editor.

If I had a choice I would always go with the editor and “glue” work rather than the final gatekeeper work. That last moment of signing off on any of the stages of a release freak me out. I’m not enough of a nitpicker and in fact, have zero background in QA — instead, 20 years as a lone wolf (or nearly so) developer, a noisy, somewhat half-assed one who has never *had* QA to work with much less *doing* QA. It’s been extremely interesting, and it has also been part of my goal for working in big teams. The other thing I note from this stressful last 6 weeks is that, consistent with other situations for me, in a temporary intense “crisis” mode my skills shine out. Like with the shifting-every-30-minutes disaster relief landscape, where I had great tactical and logistical skills and ended up as a good leader. My problem is that I can’t sustain that level of awareness, productivity, or activeness, both physically and mentally, for all that long. I go till I drop, crash & burn. The trick is knowing that’s going to happen, communicating it beforehand, and having other people to back you up. The real trick which I hope to improve at is knowing my limits and not crashing and burning at all. On the other hand, I like knowing that in a hard situation I have this ability to tap into. It just isn’t something I can expect to do all the time, and isn’t sustainable. One thing I miss about my “old” life is building actual tools. These last 2 years have been times of building human and institutional infrastructure for me much more than making something more obvious and concrete. I would like to write another book and to build a useful open source tool of some sort. Either for Mozilla, for an anti-harassment tool suite, or for Ingress…. :) Alternatively I have a long term idea about open source hardware project for mobility scooters and powerchairs. That may never happen, so at the least, I’m resolving to write up my outline of what should happen, in case someone else has the energy and time to do it.

In 2013 and 2014 I mentored three interns for the GNOME-OPW project at Mozilla. Thanks so much to Tiziana Selitto, Maja Frydrychowicz, and Francesca Ciceri for being awesome to work with! As well as the entire GNOME-OPW team at Mozilla and beyond. I spoke about the OPW projects this summer at Open Source Bridge and look forward to more work as a mentor and guide in the future.

Meanwhile! I started a nonprofit in my “spare time”! It’s Double Union, a feminist, women-only hacker and maker space in San Francisco and it has around 150 members. I’m so proud of everything that DU has become. And I continue my work on the advisory boards of two other feminist organizations, Ada Initiative and GimpGirl as well as work in the backchannels of Geekfeminism.org. I wrote several articles for Model View Culture this year and advised WisCon on security issues and threat modeling. I read hundreds of books, mostly science fiction, fantasy, and history. I followed the awesome work my partner Danny does with EFF, as well. These things are not just an important part of my life, they also make my work at Mozilla more valuable because I am bringing perspectives from these communities to the table in all my work.

The other day I thought of another analogy for my last year’s work at Mozilla that made me laugh pretty hard. I feel personally like the messy “glue” Perl scripts it used to be my job to write to connect tools and data. Part of that coding landscape was because we didn’t have very good practices or design patterns but part of it I see as inevitable in our field. We need human judgement and routing and communication to make complicated systems work, as well as good processes.

I think for 2015 I will be working more closely with the e10s team as well as keeping on with crash analysis and keeping an eye on the release train.

Mad respect and appreciation to everyone at Mozilla!!

Firefox launch party liz larissa in fox ears

Related posts:
Posted in mozilla, planetmozilla, work | Tagged , | Leave a comment

NIght at the Opera with teenagers

On dress rehearsal nights the San Francisco Opera lets school groups in free. Milo’s high school choir class came up to see La Cenerentola, armed beforehand with scripts and analysis and background about opera. I was super excited to get to go along because I can’t make it very often to Redwood City to his school events, which is sad….. I miss out on a lot. But I can’t drive — and it takes 5-6 hours of cab/bus/train to get there and back even though it would be 40 minutes one way by car. So, I can’t show up as a parent at his school very often. Bah.

It was a fabulous night out. A bit hard to try to keep up with everyone and manage wheelchair, crowds, elevator, stairs — winging it all the way, and it worked out well. Milo and Danny and I sat together with the kids and the choir teacher. I could tell Milo and I were both enjoying the music and you can see our excitement from the picture…. We were feeling inspired!

Milo and Liz at the opera

It’s been a while since I was at the opera house. We saw Nixon in China (which I loved a LOT). And some years ago a friend of mine took me to various operas because she had a box and season tickets. I can hardly remember which ones but do remember the fun of dressing up, the box itself being awesome, and thinking about all the books I’ve ever read where people go to the opera and have a box and a complicated social scene. Very fancy. I also have a lot of thoughts about how rare and splendid this kind of music must have been a couple of hundred years ago, and how amazing it is that there were beautifully designed music halls before there was electronic amplification. Imagining what the experience would have been like back then makes me feel like I’m traveling in time or am seeing eveything on more than one level at once.

Opera house curtains

The entire night was extra fun because of the energy of the whole audience, all the kids very excited to be there and commenting to each other on the theater, the show, their unusual formality (many kids were dressed up) and their commentary on the songs. I liked hearing from the cheers and appplause which characters and songs appealed to them. Basically anything that was comic. They were more fun to be in an audience with than the usual rather uptight overly quiet and suppressed/suppressive classical music audience!

Opera with class

My own favorite bits of the opera were the arias where there are 4 or 5 characters singing at once and the notes and lyrics interweave in a complicated way. This is one of my favorite things in any kind of music. I go into a trance trying to pick out separate parts and then add them all together, hearing them separately and together at the same time. I get very excited and want to bounce around in my seat. I may have done this and punched Danny and Milo in the arm a bit or squeaked with excitement.

A nice break to end my month and a half of arthritis flare-up, not going out except for doctor appointments or physical therapy. Could not tell if I was going out foolishly or if it was going to be ok. It was more or less ok!! With lots of painkiller though. It was physically gruelling but didn’t set me back any in my ankle rehab.

Just blogging a bit frivolously to break my trend of not writing anything because I feel like I have to say something super meaningful or well thought out. Screw that, right?

Related posts:
Posted in Uncategorized | Tagged , , , | 2 Comments

Make hackerspaces better – support Ada initiative

Hello! I love hackerspaces! And I’m asking hackerspaces around the world to donate to the Ada Initiative in support of making hackerspaces welcoming and safe places for women. My goal is to raise $4096 and if we do, I’ll match the first $1028 donated. **UPDATE** extending the deadline to next Friday, Oct. 3.

Adacamp liz and heidi in tiara

My home base is Double Union, a feminist hackerspace in San Francisco and it’s going strong. It has lively events every week and over 150 members.

A group of us at AdaCamp SF last year decided we could start a maker and hacker space for women. AdaCamp SF is an unconference run by the Ada Initiative for feminist women in open tech and culture. There were so many of us all together at once. So powerful feeling! With months of hard work, it happened — we opened Double Union.

We get to hack there without sexist bullshit or constantly fending off creepy dudes!

The thing is, I believe that any hackerspace can potentially be that way. You, too, could have a hackerspace where many women feel comfortable, welcome, valued, in their creative, coding, and entrepreneurial and activist endeavors, in a space full of allies and comrades of all genders. This can’t happen overnight. It will take work and education and above all, listening to women, not just the few women who have stuck around, but also the ones who left because they were uncomfortable.

I want to persuade hacker and maker spaces around the world that they are missing out on infinite potential. Hackerspaces.org has some good advice on adding anti-harassment policies to the design patterns for running a space. This is exactly the sort of work that Ada Initiative is good at; their Example anti-harassment policy has been used as a template by many events and organizations.

I’d like to challenge all hackerspace members to do two things in support of my campaign:

* Donate to Ada Initiative! I will match up to $1028 donated when we reach the $4096 goal!

* Add your anti-harassment policy to your organization’s page at hackerspace.org, and link to it from the list on the Geek Feminism wiki. (And if your space doesn’t have a code of conduct or policy, start the ball rolling to implement one!)

I love Double Union. We have set aside a permanent physical space, equipment, organization, and time that is focused on making and creating things together. We have the keys in our hands and the tools to do whatever we like in a safe, supportive environment free from harassment. We agreed to a basic code of conduct and some assumptions we share about behavior in the space, which helps establish trust for us to share knowledge, time, and tools. We try to follow Community anti-harassment standards. We have members who are also part of, or supporters of, Noisebridge, sudo room, LOLspace, Mothership Hackermoms, Ace Monster Toys, and other San Francsico Bay Area spaces.

Double union shopbot

We’re having writers’ groups, book groups, readings, zine workshops, open source software coding, cryptography meetups, circuit hacking, making stuff with our CNC routers, 3D printer, vinyl cutter, drawing and art supplies, and sewing machines — in short, doing whatever we like and learning a lot from each others’ expertise. We celebrate other women’s work and cultural diversity. Our hackerspace is against putting others down for what they do or don’t know. Once we don’t have to fight to prove we are ‘hacker enough’, great things happen.

Double Union’s founding group had the vision to make this space happen because of the pioneering work of the Ada Initiative. Ada Initiative’s demands for policy changes for events and companies, its fierce uncompromising voice, and especially its empowering and inspiring events, are having a good and useful effect to shift our culture.

More AdaCamps, like the ones this year in Berlin, Bangalore, and Portland, will help improve women’s participation in hackerspaces. With your donation, we could potentially host MORE of these fabulous unconferences for women in open tech and culture.

Please join me in donating to Ada Initiative so they can keep on being a positive force for change in the world!

Liz and Cristin smiling at DU


Related posts:
Posted in feminism, open source, women | Tagged , , , , | 2 Comments