Stuck at home with shingles

I came down with shingles a week and a half ago. It’s in a stripe around the left side of my torso. It’s been a weird adventure. The skin where the rash is burns and has allodynia (sensitivity to touching anything, and even to air). The muscles ache and spasm and are weak. It is physically intense. I am dizzy and groggy from the nerve pain medication, and feel strange from the burst of prednisone. It is quite odd to have pain and dysfunction in a new spot on my body. I got antivirals very very quickly using a local doctor housecall service.

I am already disabled and deal with chronic pain; there are good and bad sides to that. The good side is that I have many coping strategies to deal with pain and impairment, practical skills and emotional skills. The bad side is I am often right on the edge of overloaded, and this pushed me over it. The other thing is that I have to remember firmly this is 95% likely to be temporary. It isn’t something I have to adapt to forever and learn how to live with. I just have to rest and get better! This book, The Pain Survival Guide, is very helpful and pragmatic.

I will lie here like a sort of cosily beached flannel coated manatee, gently hallucinating in and out of dreams. Clothes and blankets hurt. I have a large silk scarf toga, a light gauze sundress, and a flannel tank top that work ok as clothing. Any motion hurts, and any weight or something touching my left side hurts extra. It is hard to use the computer, or to sit upright for long. I can balance the laptop on blankets and pillows across my hips while lying down. But the phone is easier. I have laid here swiping through twitter and now Facebook (which I’ve never had on my phone before this), and idly reading news and the few blogs still active in my RSS feeds. I very much miss the feeling of blogging being outside of particular platforms! It is so good to see friends and chat with them and be distracted by the Internet and by books.

Books: the Bloody Jacky series (trashy fun, with Napoleonic era naval adventures and girls’ boarding school, combined!), and lined up for when I feel a bit better, Shadowshaper by Daniel José Older, and Marguerite Reed’s Archangel.

One thing that comforts me a lot in this state is to have a nicely arranged bedside table. It gives me a feeling of control over my environment. It is pretty to look at, satisfying somehow, and I can get many things I need without asking for help or getting up. I have flowers on it, my touch lamp torchiere (pointing up) which i really love being able to adjust to 3 levels of light, shea butter, coffee/tea mug, a giant chunk of green glass, my crystal cube holographic print of the entire universe, and my wooden letter rack that holdes all my devices sideways for recharging. It holds my 11 inch Macbook Air, a kindle, an external hard drive, my phone, and an external battery and sometimes also Danny’s mini iPad. That’s a lot of devices in a very neat, compact space!

Nightstand

Two big power strips are hung on the side of the nightstand. Over the power strips in the space between the bed and the nightstand, I now have a thing I bought off Amazon, called an “Urban Shelf”, an idea for a thing covering this space which I have tried to construct from junk several times and failed to implement. the Urban Shelf works very decently. Its slots for power cords have been helpful and now my million tangly cords are less in the way. Right now the urban shelf holds a kleenex box but it has also been good for my entire laptop, plates, etc.

I like being able to look over at the nicely arranged nightstand at the flowers and polished wooden surface. I polish it with lotion or oil. I like to turn on the lamp which glows gently through its own glass, the red glass of my bud vase and the green and universe glass. Past the flowers on the side of the narrow bookshelf I can see my little trading card that has Oracle on it at her computer. Secretly corny shrine to Oracle….. Maybe I will get an Instapainting oil on canvas version of Oracle surrounded by screens in her wheelchair. I find it so heartening – I can’t experess how it chirks me up to connect anything about my situation with a badass superhero mastermind.

Oracle screens

Here is my amazing instapainting of a scene from Journey to Babel that Danny got me for my birthday last month! I like to think it stands for my love of translation (and science fiction). Maybe I’ll move it from the living room to the bedroom, so I can gaze upon it from bed and laugh.

Journeytobabel

Inside the nightstand drawer I have many conveniences like earplugs, nail clippers, lidocaine cream and other lotions, usb sticks, clips, headphones, lip balm, bookmarks, hair ties, toothpicks, some medicine, pens, scissors, asthma inhaler. I would be so lost without this magic drawer full of junk! The cubby below the drawer in theory should have a selection of good books but right now it needs to be cleaned out since it’s so stuffed full of books you can’t really get use out of it.

Maybe if I have a limber and non dizzy moment I’ll clean out that cubby and stock it with only a few books good for bedside comfort, a drawing pad, crossword puzzle book, and maybe a couple of “to read” books lined up (instead of an enormous jumble).

Of other things to appreciate about my situation, once again the steroid burst means that I have almost ZERO allergies. This never happens except while traveling to new places or when I’m on steroids and for a few weeks after the steroid burst. It’s a small luxury to have my sinuses feel so light and not swollen and to not have to blow my nose all the time. Yesterday I sat on the front porch and pinched leaves off several potted plants (could only use my right hand, ugh) and did not get a giant sneeze attack or have to take actifed or benadryl.

It it comforting that I can get anything or help with nearly anything at whim from Instacart, Amazon, or Taskrabbit. (And I have been doing that.) Money and these sorts of services replace what otherwise would be me asking for a lot of help from family and friends and community and really, public services. (Which I am also getting at least the family/friends, but it’s lovely to have the money to just hire people, somehow). If I want flowers, or chocolate, or food, or someone to fix the dripping sink or whatever, I have only to fill out some forms and stick in my credit card. It is a great luxury. (That most disabled people do not have.)

It’s sketchy to react by always playing the “glad game” like Pollyanna or being a patient cheerful invalid like Katy in What Katy Did, but it also helps. Like, every time I get up to get myself some tea, I think how much I appreciate being able to do that and I take pleasure (and pride to some extent) in all of it, in the entire process of simply getting myself some tea. Walking across the house, maybe I can look outside on the front porch for a moment and have a look at the world. Whatever level of ability or function I’m at there is something to appreciate. This sounds a bit nauseating I know. But it is sincere.

I miss work a lot. For a few days earlier in the week I was reading and responding to urgent work email. Right now I feel too drugged, stunned and distracted by pain, and messed up in general. I am exhausted. If I can adapt to the drugs over the next few days maybe I can start working. But it seems more likely (depressingly) that I need more time out.

Some other coping strategies: Doing very short sets of easy physical therapy exercises, then setting a 5 minute alarm on my phone for a “power nap” where I close my eyes and breathe deeply. If that leads to a real nap, great. If not, I have rested and put down my books and phone or computer.

I have not found a good video game for distraction. I need something turn based or not-twitchy, and not stupid or full of ads. May play through Monument Valley for the 3rd time. I was going to try the new Master of Orion (since I remember loving the original one), and it looks nifty, but it was so much like actual work and has so much “executive function” that I lack right now, that I am not doing it. I still play Threes. (top score in the low 30K range) Nethack is nice but it’s too hard to hold up the computer. I play clash of clans (with my family in a clan) and dominations but am a little bored with both. I can recharge things for Ingress from bed, but am running out of power cubes. Not so fun when I can’t get out.

One bad thing which I will complain about, besides the skin pain and “shocks” and burning and allodynia, is that my left side feels wrong and strange. The muscles don’t work right along with the deep ache, and they spasm. I think that is maybe straining my other back muscles on that side. Sitting upright and walking and bending over feels hard and wrong. What if it stays that way…. If it does I will adapt. My ribs hurt and my guts in that stripe on the left around front and back, feel all wrong. It feels hard to use my left arm to reach or do anything since it uses some of those side muscles, I guess. Especially reaching upward or outward. The muscles in my low back just underneath the “stripe” are very sore and messed up. It is probably temporary as part of the shingles inflammation or infection of the nerve.

From looking at charts I think it may be T8 or T9. Hard to tell… Just below or at the edge of my ribs. To me, it seems wider than just one stripe, because it goes from my lower rib to my navel. Maybe it’s T9. Interesting to look at the nerve/dermatome charts, anyway!

I hope to be able to leave the house and go to my sister’s house this Sunday. If I can make it into a cab and up her stairs, I can lie on a splendid couch and Danny and I can see my son, my sister and my mom and nephew and brother in law and 3 cats and 9 chickens and Laura’s beautiful chaotic experimental garden. It’s Danny’s birthday today and my sister’s birthday tomorrow so I expect someone will be making cake and probably knowing my sister and brother in law, some sort of special fancy amazing hipster cake.

Trip to Whistler for Mozilla's work week

Our work week hasn’t started yet, but since I got to Whistler early I have had lots of adventures.

First the obligatory nostril-flaring over what it is like to travel with a wheelchair. As we started the trip to Vancouver I had an interesting experience with United Airlines as I tried to persuade them that it was OK for me to fold up my mobility scooter and put it into the overhead bin on the plane. Several gate agents and other people got involved telling me many reasons why this could not, should not, and never has or would happen:

* It would not fit
* It is illegal
* The United Airlines handbook says no
* The battery has to go into the cargo hold
* Electric wheelchairs must go in the cargo hold
* The scooter might fall out and people might be injured
* People need room for their luggage in the overhead bins
* Panic!!

The Air Carrier Access Act of 1986 says,

Assistive devices do not count against any limit on the number of pieces of carry-on baggage. Wheelchairs and other assistive devices have priority for in-cabin storage space over other passengers’ items brought on board at the same airport, if the disabled passenger chooses to preboard.

In short I boarded the airplane, and my partner Danny folded up the scooter and put it in the overhead bin. Then, the pilot came out and told me that he could not allow my battery on board. One of the gate agents had told him that I have a wet cell battery (like a car battery). It is not… it is a lithium ion battery. In fact, airlines do not allow lithium batteries in the cargo hold! The pilot, nicely, did not demand proof it is a lithium battery. He believed me, and everyone backed down.

The reason I am stubborn about this is that I specially have a very portable, foldable electric wheelchair so that I can fold it up and take it with me. Two times in the past few years, I have had my mobility scooters break in the cargo hold of a plane. That made my traveling very difficult! The airlines never reimbursed me for the damage. Another reason is that the baggage handlers may lose the scooter, or bring it to the baggage pickup area rather than to the gate of the plane.

Onward to Whistler! We took a shuttle and I was pleasantly (and in a way, sadly) surprised that the shuttle liason, and the driver, both just treated me like any other human being. What a relief! It is not so hard! This experience is so rare for me that I am going to email the shuttle company to compliment them and their employees.

The driver, Ivan, took us through Vancouver, across a bridge that is a beautiful turquoise color with stone lions at its entrance, and through Stanley Park. I particularly noticed the tiny beautiful harbor or lagoon full of boats as we got off the bridge. Then, we went up Highway 99, or the Sea to Sky Highway, to Squamish and then Whistler.

Sea to sky highway

When I travel to new places I get very excited about the geology and history and all the geography! I love to read about it beforehand or during a trip.

The Sea to Sky Highway was improved in preparation for the Winter Olympics and Paralympics in 2010. Before it was rebuilt it was much twistier with more steeply graded hills and had many bottlenecks where the road was only 2 lanes. I believe it must also have been vulnerable to landslides or flooding or falling rocks in places. As part of this deal the road signs are bilingual in English and Squamish. I read a bit on the way about the ongoing work to revitalize the Squamish language.

The highway goes past Howe Sound, on your left driving up to Squamish. It is a fjord, created by retreated glaciers around 11,000 years ago. Take my geological knowledge with a grain of salt (or a cube of ice) but here is a basic narrative of the history. AT some point it was a shallow sea here but a quite muddy one, not one with much of a coral reef system, and the mountains were an archipelago of island volcanoes. So there are ocean floor sediments around, somewhat metamorphosed; a lot of shale.

There is a little cove near the beginning of the highway with some boats and tumble-down buildings, called Porteau Cove. Interesting history there. Then you will notice a giant building up the side of a hill, the Britannia Mining Museum. That was once the Britannia Mines, producing billions of dollars’ worth of copper, gold, and other metals. The entire hill behind the building is honeycombed with tunnels! While a lot of polluted groundwater has come out of this mine damaging the coast and the bay waters, it was recently plugged with concrete: the Millenium Plug, and that improved water quality a lot, so that shellfish, fish, and marine mammals are returning to the area. The creek also has trout and salmon returning. That’s encouraging!

Then you will see huge granite cliffs and Shannon Falls. The giant monolith made me think of El Capitan in Yosemite. And also of Enchanted Rock, a huge pink granite dome in central Texas. Granite weathers and erodes in very distinctive ways. Once you know them you can recognize a granite landform from far away! I haven’t had a chance to look close up at any rocks on this trip…. Anyway, there is a lot of granite and also basalt or some other igneous extrusive rock. Our shuttle driver told me that there is columnar basalt near by at a place called French Fry Hill.

The mountain is called Stawamus Chief Mountain. Squamish history tells us it was a longhouse turned to stone by the Transformer Brothers. I want to read more about that! Sounds like a good story! Rock climbers love this mountain.

There are some other good stories, I think one about two sisters turned to stone lions. Maybe that is why there are stone lions on the Vancouver bridge.

The rest of the drive brought us up into the snowy mountains! Whistler is only 2000 feet above sea level but the mountains around it are gorgeous!

The “village” where tourists stay is sort of a giant, upscale, outdoor shopping mall with fake streets in a dystopian labyrinth. It is very nice and pretty but it can also feel, well, weird and artificial! I have spent some time wandering around with maps, backtracking a lot when I come to dead ends and stairways. I am also playing Ingress (in the Resistance) so I have another geographical overlay on the map.

Whistler bridge lost lake

On Sunday I got some groceries and went down paved and then gravel trails to Lost Lake. It was about an hour long trip to get there. The lake was beautiful, cold, and full of people sunbathing, having picnics, and swimming. Lots of bikes and hikers. I ran out of battery (nearly), then realized that the lake is next to a parking lot. I got a taxi back to the Whistler Village hotel! Better for me anyway since the hour long scooter trip over gravel just about killed me (I took painkiller halfway there and then was just laid flat with pain anyway.) Too ambitious of an expedition, sadly. I had many thoughts about the things I enjoyed when I was younger (going down every trail, and the hardest trails, and swimming a lot) Now I can think of those memories, and I can look at beautiful things and also read all the information about an area which is enjoyable in a different way. This is just how life is and you will all come to it when you are old. I have this sneak preview…. at 46…. When I am actually old, I will have a lot of practice and will be really good at it. Have you thought about what kind of old person you would like to be, and how you will become that person?

Today I stayed closer to home just going out to Rebagliati Park. This was fabulous since it wasn’t far away, seriously 5 minutes away! It was very peaceful. I sat in a giant Adirondack chair in a flower garden overlooking the river and a covered bridge. Watching the clouds, butterflies, bees, birds, and a bear! And of course hacking the portals (Ingress again). How idyllic! I wish I had remembered to bring my binoculars. I have not found a shop in the Whistler Mall-Village that stocks binoculars. If I find some, I will buy them.

I also went through about 30 bugs tracked for Firefox 39, approved some for uplift, wontfixed others, emailed a lot of people for work, and started the RC build going. Releng was heroic in fixing some issues with the build infrastructure! But, we planned for coverage for all of us. Good planning! I was working Sunday and Monday while everyone else travelled to get here…. Because of our release schedule for Firefox it made good sense for me to get here early. It also helps that I am somewhat rested from the trip!

I went to the conference center, found the room that is the home base for the release management and other platform teams, and got help from a conference center setup guy to lay down blue tape on the floor of the room from the doorway to the back of the room. The tape marks off a corridor to be kept clear, not full of backpacks or people standing and talking in groups, so that everyone can freely get in and out of the room. I hope this works to make the space easy for me to get around in, in my wheelchair, and it will surely benefit other people as well.

Travel lane

At this work week I hope to learn more about what other teams are doing, any cool projects etc, especially in release engineering and in testing and automated tools and to catch up with the Bugzilla team too. And will be talking a bunch about the release process, how we plan and develop new Firefox features, and so on! Looking forward now to the reception and seeing everyone who I see so much online!

Armor a mile thick today

This story starts out boring but bear with me, it gets funny and there is a punchline. So, there’s construction in my neighborhood on Misson as they dig up the street and repair some sections of sidewalk. Over by the Big Lots there were a bunch of barriers and hastily constructed ramps to the street and back around some of the work. I went out around the giant orange barrier things and found an SUV blocking the ramp up. I could go back out into Mission or go even further out into Mission. Both not good choices.

Sidewalk construction barriers

I ducked half under the SUV’s bumper and got onto the ramp while holding onto the corner of of the car so I wouldn’t tip over. As I got onto the sidewalk clumsily an older lady with a little kid came up and I asked if it were her car. (Yes). I said, Well hey. You are blocking the ramp! There’s construction so it was hard to get up. She started yelling at me. I can’t remember what! But it was mean. “You should go on the other side of the street then!” At one point she said that I should read the sign — if I could even read! Because the date wasn’t for today and she was parked at a meter! Arrrrrgh. Thanks for the implication I can’t read!

I finally yelled back, “All you had to do is say, sorry for blocking the ramp, BUT NO, you had to be a huge screaming bitch!” And zoomed off filled with fury and sadness.

SUV blocking the ramp

Hahahah! So much for my composure and wisdom from yesterday! Some days no bullshit happens and some days it does. Some times I can handle shit and sometimes I fly off the handle. I got over it and laughed at the whole thing before I had gone another block.

So, I got to the notary office and hauled myself painfully over the non accessible threshold. The notary guy was helping someone else and kept giving me sort of dirty looks like I should not be there. The dude he was helping had to go get some extra documents from his car a few blocks away. As he left, the notary told me to wait till he finished with the first guy. I said something neutral like, it’s good to finish with one thing before you move onwards. All fine so far but I could feel that he didn’t want me there.

Half an hour later he filled out my form and got my thumbprint and everything. Another dude came up and …. unbelievable… he told me to wait until he helped Dude 2. I thought about calling him out on it. Calmly asking him, did you notice that you asked me to wait for you to finish with that first guy? But then, did not ask the next person after me to wait for you to finish with me? Why was that? I looked at him and thought about how his tension would then turn to outright anger. It wouldn’t matter how I asked him to discuss it, he would be hostile and would escalate, 99.9% certain.

Decided it wasn’t even worth it. People sometimes assholes, life not always fair, minor inconveniences happen, we all have annoying things. I just hope he did the form right, unlike notary #1 a week ago.

I headed home. (Negotiating the crumbling, soft, rutted ramp with no problem now that there wasn’t a car blocking it.) At the corner of my street, a tall white guy with very close shaved grey hair started yelling at me. “You almost hit me on that thing, it’s dangerous! You’re not even sick! If you are sick, you’re a waste of space! The problem with you people….” (That again!!!!!) “The problem with you people is you just don’t think.” I said that I was sorry I nearly hit him. And was glad I didn’t run into him. (Sincerely.) (Though he was rude and mean.)

He continued yelling. I then said (we were going the same direction, him next to me) Ah, you maybe didn’t hear me, I just apologized for not seeing you and nearly hitting you. I’m glad I didn’t run into you.

(More screaming)

“OK. Well. I hope your day gets better….”

“I hope your LIFE gets better!”

“My life is pretty great actually.”

He responded, “Well the problem with YOU is, you get all the pussy, and I don’t get any of it!”

I am sure I cracked up laughing at that point but I only remember staring at him incredulously.

“You know, you are right! That is completely true, man!” I couldn’t tell at this point if he was joking! What the fuck? But I’m laughing, maybe he’s joking?

“You steal everything. You stole all the pussy and that’s UNFORGIVEABLE. The rainbow is for everyone. YOU STOLE THE RAINBOW!”

“Oh, wow. You are 100% right. The rainbow IS for everybody! I mean, rainbows! They’re great.” Now I’m just resigned that he’s not at all joking, and I’ve incorrectly started fucking with him and he’s going to punch me in front of my own house. And yet my mouth runs off. And his saying that I stole the pussy and the rainbow also weirdly made me crack up while it was also super sad.

“Yes it is. The rainbow means something. It’s from God. It’s got a purpose to exist. And you don’t. You shouldn’t exist.”

It is funny that you can’t tell if people are going to hate you more if they think you’re not “really” disabled, or if you are! Sometimes, a stranger’s gaydar, lavender hair, and maybe wearing your kid’s My Little Pony Rainbow Dash t-shirt trumps disability completely! Jeez, first they came for our curb cuts but they couldn’t stop there, they had to steal the pussy from the men and the rainbows from God!!!!

Somewhat spooked and really, I thought I could defuse his anger with a little conversation, right up until the point of no return. Now he knows where I live!

Deep breaths, carry on, blogging it because I feel the impulse to share — though now it’s like I’m horrible for making fun of this poor messed up dude. I’m so tired! How can all those things happen in just going 3 blocks from my house and back?

Rainbow power!!!!!!!!!

Rainbow butterfly unicorn kitten

On a ramble in the city in the sun

Up betimes and to the office, where I had a lively time in various conference rooms and having lunch. Milo brought Minecraft and a book; we hung out talking about role playing games and science fiction with my co-worker Marc and my team’s intern Kate; then had a strangely nice time (for a day when a lot of technical infrastructure broke and we had to flail around to get things to work). I remarked to Ritu and Kate in our free form working-on-things meeting that I was so happy they are both interrupters. If only one of us was, it would be awkward. But with three rapidly thinking juggernaut talkers we jostled ideas and work around them, getting a lot done and building a group understanding of how we’re reading bugs and documentation, looking at metrics, and making decisions. My other team members are also like this. We can listen too — it is a comfortable mosh pit.

As usual I am wildly impressed by the deep knowledge of so many engineers at work. Stuff breaks or we have conflict and yet so much happens. My goal in going after a job at Mozilla was to be in a huge collaboration to make things bigger than I would ever know how to make on my own (after years of mostly lone projects, from zines to book editing to being a lone developer grubbing away in a dark corner). I am still obsessed with what collaboration can be and how it can be structured, and see interesting traces of generations of idealism echoed in our tools. (insert imaginary digression into c2 and meatball wiki history and LambdaMOO…. ) The answer to “why can’t you delete your bugzilla comments?” is actually this giant wild ride into epistemology and communication and truth but you would not necessarily suspect that if you weren’t there. So many things are like this. You look at a bridge, and if you know what ideals inspired the engineers of the time you understand why it is the way it is. Looking at every object, you have to assume that may be the case, just as every person has a deep background from which they have constructed themselves and been constructed. I was feeling this a lot today. This engineering perspective is why I love reading Henry Petroski….

I did promise a ramble! Milo and I went out along the Embarcadero, playing Ingress. I wanted to go down to the end of the pier near the Ferry Building, on this rare warm day when I had the (faked) energy to be out of the house. The sun baked us, we looked at the painted tiles and poetry quotes along the pier, talked to fishermen (who were catching two foot long sharks) and watched a giant cargo ship (in real life and on MarineTraffic.com) go under the Bay Bridge. Oil tanker, Maltese flag, coming from Benicia. Without even trying, we spent an hour loafing around the pier. Pelicans were diving. People asked me about my mobility scooter. Water sparkling, ferries zooming around, someone in a bathing cap swimming around in the freezing ocean! I love waterfronts because they make me feel like I’m in a Richard Scarry Busy Busy World page!

San Francisco waterfront

My plan was then to adventurously take a MUNI train from underground instead of doubling back to get on the F, then transfer to the J to go home Instead, we braved the confusion of underground. The plan: go to the Castro for comic book shopping and dinner. Everything worked out. The train was crowded, but no one was awful. The smellavators, I mean elevators, all worked. We speculated on what it would be like if they just made the lifts into actual toilet stalls. Milo now unfazed by all this chaos while 5 years ago he would have been miserable to be dragged around, needing to check out and daydream or read in order to tolerate it.

I had never been in the Castro underground MUNI station. Weird huh? I knew abstractly that’s what those stairs must be for. But why would I ever go down them? I also have no clue how to get to the underground bit of the Church muni stop. Someday will pop out of it like a gopher and stitch those geographic manifolds.

Everything today was suffused with contentment. I could not stop just quietly enjoying the sunny warmness, the city, thinking on how we were in a place that other people around the world come to on purpose to enjoy.

Pain was terrible today honestly but I was in a state where I could ride it — And enjoy everything.

Liz on a pier in the sun

Cannot do that more than one day in a row. Tomorrow is for working from bed, ice packs on the ankles, and doing nothing more difficult than hobbling out to water the plants on the front porch.

I reminisced a bit to Milo about memories of past SF Pride parades and the Dyke March, and how I feel a little surge of the happiness of coming to SF every time I see the rainbow flags on Market Street. I said how the fact that I roller skated half naked down Market and the next year was in my manual wheelchair hanging onto the back of some strange guy’s motorcycle with my sister pulled along behind me, gives me this weird feeling of strength and history. And how I have been going since 1991, a long time now. We used to take Milo to the playground at Civic Center with my ex Nadine and her family and the kids would just be like, Mom… there is a guy dressed only in balloons. (Yes dear! He’s celebrating! How amusing! Many of the rules of life get broken today!) While I don’t often tell stories about my life to the kids I try to mention at least some of the facts or things that will make them think of their own experiences as existing in a story or history as well and to appreciate everyone around them has experiences as interesting to know as reading a good book. And, I think it would be weird to think of your parent as just your parent, and then 20 years later go, Oh, and by the way surprise she was flouncing around naked in the streets back in the day. Better to know up front so as to get used to the mildly scandalous facts. There is no need to go into details.

So our wandering around today was like my substitute pride weekend. I’ll be out of town this year for work, and anyway, have difficulty keeping up with the crowds. How much nicer to sit in Harvey’s on a mellow day like today — mediocre food but a nice spot to have a drink and gaze out at the rainbow crosswalks – people passing by in their shorts and tank tops. We read the little flyer about Harvey Milk while pondering injustice. Alas, the comic book store was closed on Monday.

Then to avoid the horrors of the 24 at rush hour (always full, passes me up regularly from that direction, rage-inducing) we flaneured down 18th to look out over the park and take the J train. I felt happy thinking of the excellent punk band J Church. Lovely view over Dolores Park. Pointed at our history pet, the Golden Hydrant. (Also, it is a portal, so, hacked it.)

I feel lucky my son can enjoy my quiet pace of wandering around the city and that he is such a good companion for observing and talking, chilling out and reading books in random places. Not for the first or last time I thought of that kind of cheesy sentimental Juana de Ibarbourou prose poem Diary of a Young Mother.

I will be old when my son becomes a man. And when we go out to walk together, I will pretend to be hunchbacked, so that he will seem, at my side, to be more gallant. I will be a little old woman full of crafty tricks. I will learn to stumble once in a while, so that he can support me. I’ll have to feign exhaustion, so that he’ll give me his arm, saying:
          “You’re tired, Mom?”
          And the girls, who surely will all fall in love with him like fools, will say:
          “That crippled old lady on the arm of this handsome elegant man — it’s his mother.”
          And I’ll walk on secretly swelled with pride!

Unlike Juana I don’t have to pretend! And yet am more likely to be the support, open the door, carry his books (since I have this handy sturdy exoskeleton).

Part of a plan! Teen fantasy/sf book and comic book club at Borderlands. I will help Milo make it happen this summer. Isn’t it odd that the libraries, despite having a gazillionty kid/teen events, don’t have just like… a get together for kids who love to read? Not an improving aspirational reading list for the summer or a workshop on origami but … talk with people who love to read for fun, who are your age. Milo remarked how it took him until very recently to realize that most other people don’t read for fun but see it as this special educational activity. It’s good to find your people. It boggles his mind that people would consider one form of culture or art or writing to be somehow elite and high and others, not, when obviously that changes over time anyway and with every new art form! The apple doesn’t fall far from the tree in this case! But it’s like he gets to avoid my horrible childhood snobbery!

I thought of my nice day yesterday going out with Danny to eat oysters and weird candy cap mushroom creme brulee. We had just a day to catch up between two of his work trips and a ton of ideas to talk about, his talk at PDF, the general odd zeitgeist, what will happen with the elections and disinformation and astroturfing (my code for this is just muttering “venezuela” which if you followed the last 10 years of politics there and online arguments you will know means, you can’t tell what the hell is going on and everything is fucked). (Obviously that political situation is not special to VZ; it’s just that I was paying attention to it at the time.) We talked about writing projects. Gossip — ranging far afield — the psychology of everyone — ourselves — etc.

So, meanwhile, I complain about spending a lot of time just being in bed or on the couch. And sometimes resent that going to the drugstore 3 blocks away is my outside of the house activity for the week. How pathetic that little bit of happiness seems when I feel down or when I’m wishing to travel all over the world. But it isn’t really a bad thing and I think never will be. When I’m 90 I’ll sit on a bench feeling the sun, taking pleasure in that. It will be just fine.

A small but determined ambition: have periodic short writing times, with many different people, including Milo and Danny…. Some sporadic instances of Writing Together but separately time and talking over projects, rather than a regular habit which none of us can stick to because of the structures of our lives. How will I model sustainable feminist activism? This question my therapist posed has been a fine mantra over the past 8 months or so.

This last week I thought a lot about my friends and people in my life, thinking of them with huge affection. I want to write letters to everyone. What if I just write nice letters to people over this next year? But not “just”. The idea I was ticking over at this time last year was to do an anthology that is exactly to my taste of memoir and essay. I want to pull people together to represent this moment as intensely as possible. I am picturing this process and this artifact and will make it happen. I want to get out a lot of my books and stuff about diaries, and memoir, and feminist ethics, and jump from thought to thought to see what gets thrown into the mix before this project coalesces. Last year’s events made it hard for me to settle. Now I think I know what to do here. Think on history and activism. Riot grrrl slips into the realm of the mythical past. Moments flame up like comets. Collisions are bright shining. You know the Combahee River Collective didn’t last forever. But the people carried on their work in different trajectories. What they built still stands. The effort to collaborate that intensely is not failure because it’s ephemeral – Like all relationships.

Anyway, back to the day.

I felt content and good today. The good wishes of hundreds of people casually on Facebook (that exploitable butterfly) made me think fondly of everyone and I felt loved and appreciated for whatever it is I’m doing now, though it isn’t splashy or what I had planned. People are cynical about that “shallow” social interaction but I do love it. What could be wrong about thinking of another person for a moment, even if you don’t have them in mind all the time, or even for years?

Going across town is still a big deal for me that makes me happy. I do miss being able to get in my car and drive around exploring waterfronts and going all the places possible from the map. Instead: this is the time I’m in this city, in this way, and I’m going to enjoy it.

Small ambition!! Friday I am thinking to get a tres leches cake with pineapple whipped cream from Lelenita’s and invite a few people over. Cake time! Maybe… cake and poetry? Salon time; small private spaces. My feeling of not being ready to write a new different (poetry) book solidified oddly while Danny and I talked at our fancy Sunday lunch. I begin to see the problem there. It is our view of the failures of our collectives. Returning to our romantic idea of the End of Greatness. To get there I need to look further somehow.

Obligatory mention of books: Cixin Liu – just read everything of his that you can lay your hands. The novellas and short stories are beautiful. Read many of them in a row! You won’t be sorry.

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.

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.

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

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!

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

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.