Category: all

Catchall for posts.

Trust Process

This is the first in a series of blog posts that will summarize my experience and takeaways from the Mozilla Summit 2013 Planning Assembly that took place in our Paris, France office on June 14-17, 2013.

✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈✈

We are a group of very smart people. Don’t ever doubt that for a second. We are a hit-the-ground-running bunch of doers who really like actionable items and clear instructions as well as accountability and deliverables. Oh and throw in some metrics and a post-mortem so we can iterate, please. This makes us very challenging for outsiders to work with, especially when trying to engage a sizable group in open process activities. Turns out we’ll ask a lot of questions to clarify instructions, search high and low for actionable items, and demand deliverables. We’ll interrupt process, we’ll doubt the value of the process, and we’ll assume even before attempting that it is too open-ended to be of value or to generate the tangible items we’re craving as the proof our time was well spent.

If we go too far down that path in this unconference style of meetup, we will lose out tremendously on letting ourselves be changed and engaged by each other.

Love it or hate it, asking each other “is this making sense to you?” or “are we doing it right?”,  that uncertainty IS a big part of process. Asking each other questions, being confused together, not knowing what’s coming next together is a form of bonding.

Bonding – which I shall refer to from now on as friendship – typically strengthens over equal parts of time spent together + common interests + shared experience. Sometimes you can fast forward a friendship by just overloading one of those areas. Having a particularly intense experience with someone (eg: riding a roller coaster), spending a lot of consecutive time (eg: traveling together), and connecting intensely on a common interest (eg: hacking) are all examples of ways to ramp up the development of a strong bond with another human. When attending a Summit we are provided a multitude of opportunities to have many of those three with a variety of Mozillians we normally might not interact with, and sometimes with ones we do – deepening connections is the ‘bonus’ to the work we get done when we assemble en masse. My most remembered experiences at Summits, All-Hands’, Moz Camp, and other larger gatherings with Mozillians have always been about the micro interactions which are not  part of the schedule. Walking to dinner, sitting on the bus, playing Rock Band – those are opportunities to look at the person or people around you and to try to make sure you’re getting to know even a little bit about them.

In the very earliest part of our process for the weekend of discovery and digging into the meat of what should drive our Summit planning a question came up about whether we could affect the decision to have the Summit in 3 different geo-locations.  Just that one little detail was something many people were tripping over and wanted to discuss and it was clear our dive into the weekend’s process would be held up until there were answers. What ended up happening was Mardi explained how logistically they had looked at previous Summits & large gatherings and had determined that 600 people seemed to be the largest number of Mozillians in one place where there still could be a ‘cozy’ feeling that allows for the kind of bonding previously mentioned.  Once Mardi said this, I was changed.  I, too, had wondered about the dispersal but now it made sense to me that the importance of connection between Mozillians had been placed before the need to put us all in one location and  I appreciated getting this new perspective on what the process had accomplished already.

Mitchell then spoke about how sometimes we get hung up on comparing one thing to another and are quite vocal if we find it wanting.  It’s important for us to have this gathering, this alignment exercise for the project as a whole, and if we don’t want to call it a ‘Summit’ because it’s not everyone in one physical space then call it something else in your head.  I found her point to be very inspiring and concluded that it’s important to go to this 2013 gathering – at whichever location – and BE there.  Do not waste time comparing it to other events, attend the event you’re at and reflect later. For me, this was when I knew I could trust the weekend’s activities would lead to great things and more changes of my tightly held beliefs I came into the weekend with.  There will be more about this in future posts.

Thanks, Process.

 

 

Creating a Mozilla workshop for beginner Hacking of Mobile HTML5 Games

Participants in the Mozilla Hacking HTML5 Mobile Games workshop at the 2013 Dare 2B Digital conference.

Dare 2B Digital is an annual South Bay conference that brings 300 young women ages 12-16 together to encourage them to consider STEM fields in college by coming together for a full day of inspiring talks and workshops showcasing women’s work and relevance in technology.  For the past three conferences I have signed Mozilla up as a sponsor and created a workshop that is run 3 times that day and reaches about 80-100 attendees.  Last year I created kits for participants to learn about soft circuit hacking and lighting up felt foxes, the year before I taught Universal Subtitles and Popcorn before it was even a 1.0 product yet. I’m always trying to keep our workshops current and, if possible, on the bleeding edge of whatever Mozilla is working on. The participants get a taste of one exciting aspect of what is happening RIGHT NOW in open technology.

In the past year I’ve been really inspired by Mozilla’s outreach around web literacy and at the same time there’s been all this work done around our upcoming Firefox OS for mobile devices that will allow apps to be built entirely of the web and installed/sold/shared outside of the silo-structures such as Apple’s App Store and Google Play.  At MozCamp Asia in November of 2012 I watched the Mozilla Taiwan reps showcase a fairly simple card matching game they had made of browser icons and they turned it into a Firefox OS installable app in only a couple of hours.  All of these snippets and ideas led to my proposed workshop for the girls being about hacking their own version of the browser-pairs game and installing/playing it on a Firefox OS device.

Now this was all before the Firefox OS phones even existed, and it was also before I went away on a 3 week vacation to Vietnam over the holidays.  I mentioned it to my co-worker Margaret before leaving and she said she’d be up for working on it with me but when I returned from vacation I lost about a week just on jetlag & minor flu-like symptoms then another on my birthday and having my family in from out of town.  Next thing I knew it was February 1st, the workshop was on February 9th, and I had NOTHING ready and there was no public Firefox OS device yet, either.

So I called up Ruth who organizes the conference and tried to beg off this year.  Would it be so bad if Mozilla didn’t do a workshop this one time?  Thankfully Ruth very calmly returned my panicked email with a phone call and asked me what I needed to get this workshop on track.  What did I need? Mostly just to buck up and finish what I started, me with my big mouth. The pieces were all out there.  I had code (thank you Mozilla Taiwan!), Chris Heilmann had recently posted some inspiring slides about HTML5 and mobile for Firefox OS App Days, and Hackasaurus has plenty of youth-focused resources.

Hastily, I organized a couple of lunch time meetings during the week leading up to the workshop with Margaret and we hashed out who would do what.  We made an exciting discovery in our first meeting, which was that we could host the game from a github page and this meant every girl in the workshop could hack on her own customizations of the game in github’s web interface code editor and see their changes reflected on a mobile device immediately.  No need to deal with the minutia of web hosting, no server-side code, and minimal development setup – the freshly imaged laptops we borrowed from Mozilla IT would be good to go in minutes!

I drove to Redwood City on the day of the conference with: 20 laptops, 15 Firefox OS test driver devices (thanks to my co-workers who let me borrow their phones!), and some slides about why hacking HTML5 is the future of mobile apps. One thing we realized as we were setting up was that there would be some delay between when the participants created their GitHub accounts and when they would see their github pages live with our demo code.  We ended up front-loading that and having them start right away as they arrived at the top of each time slot then going into the presentation after they had forked the repo which had the gh-pages branch set to default.  We later learned (through Margaret’s chatting with GitHub support) that it was likely the delay could be caused by not having edited anything yet on the gh-pages branch so in later workshops we had the girls follow along with Margaret and change the <title> of their index.html and commit the change.

Getting paired up, creating GitHub accounts and FORKING!

The presentation portion was about 10-15 minutes and started out with asking the girls to shout out what comes to mind when I say the word “HACK”.  Answers included “death row” and things along the lines of breaking or sneaking into someone’s computer, mostly things associated with dark or criminal activities.  A few did mention things like ‘nerd’ or ‘creative’ too.  When I showed them my examples for the talk we had a brief discussion about not asking for permission, being curious, creative, and taking ownership. After that we talked about Apple/iPhone and Google/Android.  Most of the girls had one or the other we explored how non-interchangeable they are, how much it might cost to be a developer for one or the other, the need to play by someone else’s rules in order to get your ideas out there.  My favourite part of this talk is repeating over and over how using open web technologies and the web itself is all about NOT ASKING PERMISSION.  You put your stuff up, tell people where it is, and they can go use it.  It can (and should) be that easy.

After the talking was done the young women had about 45 minutes to hack on their github sandboxes and test out making customizations to their matching game. We modeled it after Mozilla’s Thimble project which uses comments in the code to explain various areas of the code and gives ideas on what to change. Our take was to suggest they try (in increasing levels of difficulty):

  1. changing the background color/images (of the page, game box, card backs)
  2. changing the images on the cards when flipped
  3. change the music (few got to this part in the allotted time)

We saved 15 minutes at the end to do demos of what people did to their code and to come up and tell us what they did to achieve their end results.  Some of the customizations led to a newly themed game like pigs, magic, twilight, book covers, and other things the designers liked. A few girls went further and took snapshots of themselves on the laptop camera and used their own action shots in the match game, one girl had her own laptop and drawing tablet so she drew her own card faces and intro screen background, and another girl removed the card backs to make it look like the game box was all black – when I started to click during her demo and cards flipped I was surprised since I had thought the game was broken but she laughed and said it was on purpose.  It’s hilarious to me that she made a simple match game into a much harder challenge by hiding the discover-ability of the game.

LOTS of hacking going on here. Margaret and Larissa help out with question.

All in all the three workshops went smoothly, everyone got to do some hacking and see their results during the time we had allotted, and all the girls left with a new github account and code they can keep hacking and learning on over time.  During the course of the workshop we went around helping and answering questions and taught them about commit history, rolling back changes, and also using “Inspect Element” to figure out where to look in the code to make changes.  I should mention that at the beginning of every workshop I asked “Who here has touched HTML/CSS before?” and there were never more than half the hands in the room raised.  This comes up every year in the workshops I run. Some girls are getting this knowledge from parents, friends, self-teaching, and now things like CoderDojo (as one participant bragged) but there’s no indication that any of them are learning this in school where they spend a majority of their time. The thought that some girls are being left behind on this is sad to me, and I want to do all I can to help change that. Every single one of these young women left our workshop with a new spark in their eyes having now had first-hand experience with the power of creating web apps that can run on ANY WEB-ENABLED DEVICE. It was powerful to see.

So many new hackers of open source, mobile games.

So, what’s next?  I think this workshop should become another Webmaker and/or Hackasaurus project that can be taught anywhere, to anyone who wants to have a first-time experience with mobile app development.  We’re 80% of the way there, I’d say what’s left to do is:

* Code clean up (especially CSS) so that everything in the repo is clearly marked for its purpose and with comments on how to mess around with it. Specifically comments in the Javascript and exploration of that code – we didn’t touch this at all in our 1:15 hr workshops.

* Spend a bit more time, if you have it on basic HTML/CSS editing, using Inspect Element, and having cheat sheets printed up for participants.

* Have options for what to do next – getting off of github pages and hosting your own app, possibly with some server-side code.

It won’t take much to turn this into something more generic and useful for introducing people to the power of Firefox OS and HTML5 app creation and I look forward to continuing to develop this sort of material whenever I can. Thanks to the Desktop Support staff who prepped laptops for the conference, SF co-workers who lent their phones, and most of all to my coworkers who lent their time and their expertise: Margaret, Larissa, and Amy*.  Without all of you this would not have gone smoothly and because of you it was the best day of 2013 so far.

 

* At lunch we had a little Q&A with the 30 or so girls from the first workshop. They got to ask all of us questions about what we do and how we got there.  The four of us had such different paths & connections to technology. I love that we got to show these young women a variety of ways to engage with tech and to be in open source.

App Marketplace Ratings

Woot!  Our recently release re-vamp of Firefox for Android is climbing the Top Free chart over on the Google Play Store (as it should, it’s frickin’ awesome).  We’ve gone from #96 to #81 in the past 3 days and I have no doubt we will continue to climb as we gain users and get a chance to impress them with the Native UI which is responsive, beautiful, and support Flash.  Our rating in the store is also slowly climbing, but that’s going to be a much harder slog because our current rating still reflects the total collected in the entire life of this product being on the store.  We can’t remove ratings from our previous Firefox for Android and so even though we’ve had 5,000 5-star reviews in the first 10 days of the re-written version being online, our average rating is a 3.7. The only way to get a fresh start would have been to put up a ‘new’ product and call it something else and I’m sure you can understand that Firefox can’t go by any other name.

I spend a lot of time thinking about the Google Play store and how it could be better because I interact with its administrative backend regularly, uploading new builds of the mobile products release after release.  I was just sitting through a presentation by Dees at ReMo Camp 2012 in Berlin and he was sharing with us the strategies behind the Mozilla Marketplace. This will be our open-source contribution to mobile/desktop app distribution and seeing the mockups started me thinking about how we could improve the rating system and not just repeat what Google and Apple do with user feedback.

I’d like to see the following:

  1. User leaves rating, gives stars + writes text feedback
  2. App developer can select reviews to flag as ‘bug report/feedback’ which requires them to write text that will be presented to the user.  The developer can write a message either letting the reporter know that a bug is on file now for the issue or provide help with the issues/questions raised by the user.
  3. User gets a notification when the review is flagged and that there is a response ready for them. They can check out the bug report that got filed as a result of their feedback and perhaps they will cc themselves to know when it gets fixed or they might get a chance to try out the suggested solutions from the dev to deal with issues or questions they raised in their original review.
  4. User, now that they have gotten feedback, gets prompted to revise their review.
  5. Repeat 1-4 as needed

This would be beneficial for many reasons:

  • Users get to be a part of helping improve the product
  • Users get support from the developer without needing a different forum or login
  • Users get visibility into software development process, awareness of upcoming features & improvements, and they become participants in open source community
  • App developers have a channel to communicate with users about upcoming dev plans, feature requests, and bug tracking
  • App developers get a collected feedback average that is more accurate and representative
  • App developers have a channel to communicate with users about upcoming dev plans, feature requests, and bug tracking

I’m used to Mozilla’s collaborative environment, the values of open source, and I’m accustomed to getting feedback in our open bug tracker, Bugzilla.  There are so many companies whose products I use who do not have public bug trackers and this causes me a lot of frustration when I find bugs with their software.  I want to tell their devs about the bugs I find.  Software has bugs!  Have a bug tracker! Let people see and understand that software is a continuous improvement process so we get less reviews like this:

firefox feedback in google play store, lamenting the lack of tablet support

I’d love to let Brian know that we are sooooo close to having our tablet support ready, that we have a few outstanding bugs but it’s on-track to ship with Firefox 15 in a mere 7 weeks. We’re a tiny team compared to the Gopplesoft mobile dev teams, give us a chance to prioritize and push each goal to the finish line. With only 20% of our Firefox mobile users on tablets, we had to focus on the 80% small device folks first and then – remember, only 8 weeks later – we got our tablet ducks in a row and ready for our fabulous tablet users.

Alex should get to see a bug filed on the pinch zoom (if there’s not already one) and as one of the admins of the Firefox product, I should get a chance to interact with the folks who leave 1 or 2 star reviews since they are often based on one or two issues that are real but fixable.  I want our rating to be reflective of the work we do as we do it, incrementally improving over time. Of course, our marketplace code is open source so I suppose I should do what Paul Rouget suggested earlier today and make up some prototypes :)

Release-Mgmt: My First Beta from the ‘other’ side

Hello and welcome to my continued documentation off my learning curve in Release Management, something I’ve now been working at for 6 weeks.  Last time I was reeling from the new-to-me meeting/email/bugmail firehose.  Now I’ve got that more under control, having created many more filters and folders in Thunderbird as well as having a chance to do more work on the automated tracking emails script.

To continue to spread out the knowledge and tasks for release managers across more than just one Alex, last week I ran my first beta (Firefox 12 beta 4) and now I’m going to tell you what that involved because the bugzilla API is down.

Monday

Monday is about getting the queries down as much as possible.  This means making sure anything with Tracking?, approval-mozilla{beta,aurora,esr10}? is triaged and nudged further towards its final destination on the trains. We’re also needing to watch out at this point for riskier fixes, things that really need some bake time with actual users need to be landed for a beta4 since beta5 is more for low-risk regression back-outs and security fixes that need to land just in time for beta 6 (what is usually re-built as the appropriately branded final release).  At this point in the week there might be about 80-90 bugs we need to get sorted and at the end of the day only about 6 bugs were in the ‘really want this in beta 4′ list.

Tuesday

For this particular beta, we had been asked if it would be possible to give the ‘go’ to build earlier than usual because there was a fairly popular holiday weekend coming up (Easter) and our QA lead for this release was in Canada where Good Friday is a statutory holiday. The QA lead asked if we could go to build earlier so that a Thursday release of the beta would be possible. We confirmed with RelEng that this was do-able and agreed to do our best to get the ‘go’ out at an earlier time.  The plan was for everything to be landed by 2:30pm (Pacific) in order to have a changeset ready to fire off to Release Engineering by 5pm.

Going through the ‘burn list’ from Monday (6 bugs) mostly entailed tracking down people to land patches. There has to be a cutoff time for landings since it takes about 4 hours to get all the builds and tests for a push to the hg repo to report back completely. Note that improvements to build times are being worked on, case in point: faster Mac builds (newer hardware and using OS X 10.7)  take ~2.5hours off the normal Mac build times.

For one of the bugs we weren’t able to reach the dev and a volunteer committer found that the patch didn’t apply cleanly so that bug had to miss the train.  The others got in and I sent the ‘go’ to build Firefox 12 beta 4 at approximately 5:45pm (45 minutes later than desired).  All the results weren’t in yet for this changeset but I wanted to get a shot at making the request for earlier builds to QA so I took the risk that the builds/tests would be OK and we’d be already building when we confirmed that.  Had the builds/tests *not* turned out we’d have to scrap the chance at moving up the release window and one of our QA leads would have worked on a holiday to meet our ‘normal’ Friday release window.  So I took the leap (and this ended up being fine, though I wouldn’t do this again without good reason as it was a stressful call to make and it’s not a good practice to get into).

Right after the ‘go’ email was sent hg.mozilla.org went down and we lost 3 hours of build time.  This is not a normal result of giving the ‘go’ to build.  It was probably just because Hal was new to doing releases and I was new to running a beta so at least one thing had to come along and shake our confidence.

Wednesday

There’s not much (beta-running) to do on Wednesday except wait for Desktop & Mobile QA to do their thing.

Thursday

Mobile & Desktop QA send their results out – either signing off on the builds/updates or calling out issues. At this point QA signed off so at that point I could request the Release Engineer to push the updates to the beta channel (and upload a new beta apk to the Google Play Store). An hour or so later both QA leads signed off on the updates for the release that’s now live to our beta users.  After that, there’s just some product details to change for our websites to include beta 4.  We don’t do release notes per-beta which is good to know for when I run a beta 1.

Friday

Normally we’d be doing the push to beta channel on a Friday, so what would have been different was:

  • getting everything landed to mozilla-beta could have gone until later in the day
  • the ‘go’ to build email wouldn’t have resulted in immediate builds, they could start on Wednesday at the beginning of the Release Engineer’s day
  • QA needs two full nights of testing, so we’d get sign offs from QA on Friday morning instead – hence the push to beta channel (and store) on Friday afternoon

Nothing too crazy for my first beta.  I think beta 4 is a good one to start on – it’s not the “OMG last call!!1!” beta before a release and it’s not beta 1 where any fallout from our merge of mozilla-aurora -> mozilla-beta shake loose. Having done a beta release now,  I have a much more complete mental map of how the 6 week release cycle plays out for Release Management:

Multiply by the above by 6, sprinkle extra bug & meeting communication cycles to weeks 1 and 6, throw in twelve channel meetings, approx 30 more iterations of various queries triage to keep our tracking lists up to date and to know what’s really needing attention vs. what’s taking care of itself.

A ton of email/irc/automated notifications all with the goal of keeping tracked bugs moving forward and you’ve got your 6 week result: A fabulous new Firefox release.

Thanks for reading, more about automatic emails & wiki updates soon.

Trying to Resist

Table with trays of cookies and a large chocolate cake on it.

Today at Confident Coding (women learning JavaScript) I am having to work really hard to stay true to my SuperBetter Challenge to only eat sugar on Sundays.  Tomorrow seems really far away when I’m faced with trays of chocolate chip cookies and a large chocolate cake.  This is practically torture.

Except that it’s not.  It’s the privilege of being in the San Francisco tech community where weekend events come with free food, wi-fi, and great opportunities to learn and network – and there happen to be free cookies a lot of the time. This is one of the ways I try to stick to my self-prescribed challenge to only consume sugar on Sundays.

Distract. Delay. Drink Water.

The D’s above were in some tips for quitting smoking and let me tell you, they work now too.  I walk away from the tray of cookies.  I tell myself that I get to have whatever I want tomorrow, and I have a drink of water.  I’ll get through this day. It’s not the last day there will ever be cookies on this planet.  Usually avoiding something for 10 minutes is enough to get a good few hours free of temptation.  I’m almost there.

SuperBetter: Travel and keeping up with my challenge

This is the first in what I hope will be several blog posts about my SuperBetter challenge, to cut sugar out for 30 days (month of March) and then to switch to only having sugar on Sundays for the next two months (at least).

Most of my sugar-free March went really smoothly.  I have gotten a lot of practice at doing my ’30 days without sugar’ exercise so I have developed plenty of coping mechanisms.  This time around I hardly needed them.  I mostly got through with sticking to mealtimes, being vigilant about preparing ahead for meals, and drinking lots of water.  I think that this is because since my last attempt, I have actually reduced the amount of sugar I keep around me significantly.  However, there’s a big glaring spot in my life where sugar is ALWAYS present – at the office.  Our office has a wall-o-snacks for the taking (this is some Silicon Valley thing I have never experienced before).  I’d wager at least 60% of the snacks are high in sugar, another 20% medium sweet and then there’s a handful of savory things like pretzels, cheese sticks, and V8 — that’s my triad of workplace snack right there :)

The snacks aside, no-sugar March was cruising along and then Jenny and I went to Mexico for her spring break.  We went to Tulum, which is down at the bottom of the Carribean side of Mexico, a place of Mayan ruins and lots of snorkeling.  Mexico (the parts I’ve been to anyway) is a great place to avoid sugar because they don’t seem to do much in the way of deserts.  Sure, if I wanted to I could have bought candy at the store before we headed to our out-of-the-way palapa on the beach but since I didn’t, there wasn’t any temptation at all.  When you have a meal there it’s just the meal – no desert is offered.

The first four nights of the trip were excellent and full of rest and adventure in equal amounts.  I think I really pushed my record for how much time I spent reading in various hammocks.  On the fifth night though, I woke up to an unpleasant illness that wiped me out and left me hollow and dehydrated the next day.  Unable to eat (or really want to try eating) any more of the food provided at our resort, I really had no choice but to have a bit of Fanta orange soda so that I’d at least get a little energy.  This was a bit of a bummer to me because not drinking soda is something I’ve really conquered in my life.  I’m not going to be too hard on myself though, I was sick and in a strange land.  If I could have been at home I could have made myself dry toast that wasn’t WonderBread or I could have had some chicken broth for energy instead of a soda.  The next couple of days were a little bit loose with sugar too because I like to be nice to myself when I’m sick so when we went to the Mayan ruins the next day and the parking lot craziness included a Dairy Queen…well, I’m not the kind of person who easily ignores ice cream :)

In the end, I made it to March 29th without having sugar and then when we got home I re-committed to my epic win where I now only have sugar on Sundays.  It’s Wednesday now and I’ve got a Canadian chocolate bar in the cupboard waiting for me on Sunday.

If anyone is interested, here are a couple of my tips for traveling when I’m trying to work on my eating:

  • Bring snacks you like and can eat.  I bring dried fruits, jerky, and if I’m eating sugar I bring Clif bars as a breakfast option in case there’s nothing good where I’m staying.  They are also useful if I’ll be in hotel with a gym so I can eat something right away after working out and avoid impulse purchases of breakfast pastries.
  • Have a reusable water bottle with you. Fill & drink it empty often, especially on the plane. First of all, it keeps you hydrated (and flying is super dry) but also it helps you feel full and less likely to impulse-shop in the airport gift shop or duty free both of which taunt you with massive amounts of chocolate and candy.
  • Buy a salad (or a sandwich if no salads are appealing) in the airport to take on the plane. Most of the airline food will have sugar in it or sugary parts to the snacks included.  It’s incredibly hard to resist eating while bored/full on a plane because it’s already such an altered state and planes don’t really sell salad.

That’s  all for this post, thanks for reading.

 

 

PyCon 2012 and a second wind for PyStar

Pystar flaming 160 150px

Yesterday when PyCon concluded (and I sadly did not win a NAO robot), I drove home with a sense of renewed energy for continuing to work on building the python community I want to be a part of.  I had a tremendously good time at this year’s PyCon. It continues to become a more diverse space and a place where I feel connected with people who inspire and motivate me.

I was happy to (finally) meet Dana face to face, and thrilled to see several women who had attended PyStar events also now attending PyCon. It’s one of the reasons we left last year’s PyCon with the dream  of PyStar in our hearts.  After the talk about the Boston Python Workshop (which was wonderful and thanks to Asheesh for the shout-out) I was thinking about what makes PyStar unique and whether there is a need for PyStar now that many other alternatives exist.  Hard to believe that only a year ago it felt like there was nothing for women in Python and now there’s shirts stating “Python is for Girls” for sale at the expo hall.

So, with all these groups springing up (and the BPW continuing to grow) do we need PyStar? My gut says immediately “yes” because the more groups focusing on bringing women into geek/programming space and having it be safer and comfortable the better.  There’s more to it than that though.  The groups are all doing great with their various organizers and events.  PyLadies, Ladies Learning Code, and Women Who Code are all holding sold-out events, getting lots of attention, and we’re all working hard to get more women connected to a community of programmers where they can learn and develop skills in a ‘safer’ space than historically has been available to women. The Boston Python Workshop is doing a great job of promoting Boston (as well as Python and Workshops) but I realized that for me, the reason I got excited (and am excited again) about PyStar was exactly because it was non-geographically named and because the name itself is for “all”.  I’m very happy to be in the mix with all those groups and yet I recognize that I still want to try to nurture and shape PyStar into its own thing.

I am interested in continuing to explore how to work on this project with a distributed team and to have PyStar events spring up in various communities and be customized to specific needs. Just because SF is heavy into startups and web apps doesn’t mean that San Antonio, Texas will be – maybe they’ll be more into big data and hardware hacking.  I like the idea of PyStar developing and hosting a wide variety of curriculum for python-driven projects in a central repo that can be cherry-picked as needed by anyone in any city who wants to lead a workshop day/weekend/afternoon. I especially want to figure out how to repeat what I did in Paris last summer, where I managed to organize a PyStar for when I was going to be there visiting. That certainly required some existing connection to the town (Mozilla/WoMoz) but the idea of traveling and setting up shop anywhere a hacker group/women’s community/library can host – that’s exciting to me and carries forward the DIY/punkrock way I’ve always known how to get things done.

In the talk at PyCon, one of the BPW’s stated goals is to try to build up within existing user groups. I see their logic, and it’s sound, but I was not a member of the BayPiggies (the Bay Area PUG) when I first was inspired to start running PyStar events in the Bay Area and I still don’t see the need to be. There are several places where I can announce upcoming workshops, Baypiggies have a mailing list I’m on, and I can promote PyStar events and make sure other groups are in the loop about what we’re doing.  I think this more than satisfies being eligible to be part of the larger Python community, and yet there’s room for more than one Python-loving group in any community. I’m not always looking to insert myself into an existing group – there is something to be said for creating new things and building them with a certain tone/mission in place at inception. That’s what I get out of PyStar, it doesn’t have a legacy or a way things have always been done – the spirit of PyStar is one of distributed organization, shared responsibility, and communal education.

Here are my specific goals for this upcoming year of PyStar:

1. More curriculum on the PyStar site – workshop material that is discoverable by level (beginner, intermediate, pro) and by time commitment (half day workshop? full day? multi-week?). A new person  interested in organizing a PyStar event should be able to see an easy-to-follow list of what to do to set up their own event based on time and level. This can be accomplished through more research on finding existing curriculum and adapting it, more events where we can test and fine tune those curriculum, and also having curriculum hack nights with PyStar organizers and volunteers (multi-city) where we focus on developing material to fill gaps in our topics

2. Have PyStar SingPath tournaments both locally and with other PyStar outposts. While the one I did at PyCon 2012 was a nerve-wracking experience, it was ultimately a confidence-boosting event for me. I encouraged a few women to come try it and it seems to be a pretty fun way to maintain the energy as well as test your new skills between workshops. We can tailor the tournament to be _very_ friendly (prize/badge for all, just for participating). I read/heard something recently about how leaderboard style of competition is not that motivating for women and that beating your own previous results is much more fulfilling.  We can definitely work that into our tournament styles by awarding prizes for most improved and other metrics that a person can get by just doing better than they did in previous tournaments.

3. Incorporate Open Badges into the PyStar curriculum so there is measurable outcome for completing projects and implementing the handing out of badges through the PyStar site. Gregg and I are already talking with Mozilla about their Open Badges project and will continue to keep an ear to the ground on how to implement this into the PyStar site. It would be nice to have a meeting with all interested PyStar organizers to brainstorm on what our badges could be.

4. Find non-profits who need small projects (simple website, automation) done and have no budget – match them with PyStars who would like to learn. Possibly have a connection section on the PyStar site?  Have PyStar leaders be ‘project managers’ and bring a project to fruition through regular PyStar meetups? This is a longer term goal, but one I like to keep floating out there and gauging people’s reactions to. Usually the reaction is “great idea! lots of work!” :(  My vision here is something along the lines of a a template for ‘how to build a (info, fundraising, blogging) site for a small non-profit with a newbie webdev team’ curriculum.

5. A stronger focus on intermediate level programmers. Not to the exclusion of beginners, but to be sure there is room to grow within PyStar This comes up a lot in SF/Bay Area and I know it’s different in each city.  In SF/BayArea it seems really important because there needs to be something to hook in the women who have programmed in other languages or who are CS majors who seem to lack the confidence in themselves now that they are out in the workforce – with many of these participants, it doesn’t take much to remind them how far they are from a newbie – I would like to focus on them a bit more because a) no one else seems to do so b) it provides more volunteer potential and alum/badges c) mentoring opportunities for newbies and job networking for the intermediate level programmers among each other

6. Continue to develop strong connections with PSF, BPW, PyLadies, and __insert_group_here__ organizers. – I should have proposed a BOF at PyCon for organizers to get together and share plans — I would really like to work alongside these other groups in a sustainable way, we all have admirable goals and could share some resources and people-power.

7. PyStar gear & promo materials, fundraising. Set up a cafepress store to sell some PyStar goods and also try to get a few donations to set up an account for PyStar that would allow us to a) pay for the domain name I just renewed b) potentially buy other domain names for side projects we come up with when we work with non-profits  c) cover the costs for creation of handouts, cards, other promo materials to give out at events promoting PyStar

Get involved!  The project currently lives in github and organizers/contributors can reach each other through our mailing list.  If you want to host an event, help with curriculum, or otherwise work on making safer spaces for learning Python happen in your own community, get in touch.

Dare 2B Digital 2012 – Wrap up post

Fox with firefox logo

Better late than never, I will recount Mozilla’s participation in the 2012 Dare 2B Digital conference back in February down in San Jose.  This year we were hosted at the eBay campus and instead of being out in a hallway demoing and playing with open video and universal subtitles (2011) this year Mozilla was all about making, in a large space shared with Microsoft, encouraging the girls to work with a variety of hardware, circuitry, robotics, and creating 3D printer designs for a MakerBot.

Before I go into the details of the kits and the day of the event, there are some very important people to thank:

Tremendous amounts of props must be first given to Emily Lovell whose soft circuits teaching guide I discovered at the 2011 Grace Hopper Celebration of Women in Computing.  Her exercises, diagrams, and lists of resources were at the core the kit I designed to teach the girls about parallel circuits through assembling a felt fox and attaching LEDs to the eyes that are powered by conductive thread and a watch battery.  Thank you to Mozilla for sponsoring the Dare 2B Digital conference again this year, it is such an important space for us to be in as it gives us a chance to promote open source to a young audience that is still undecided about college majors and it’s our chance to encourage them to at least consider a technical career path. I hope that having an early, positive, creative experience with Mozilla and open source technologies provides the girls with an awareness of alternative ways of engaging with technology. Mozilla Reps provided the budget for these kits to be made – not only for the workshop attendees, but also enough kits to put one in every take-home bag for all conference participants.  It is certainly my hope that many girls who couldn’t make it to the workshop due to lack of space will still attempt to make their foxes at home with a parent or sibling.  Finally, I cannot thank enough the various Mozilla employees and other friends who helped me assemble 350 kits for the actual event – my vision for this event could NOT have been done without their generous donations of time and their assistance on the day of the event helping the girls complete their kits. Thank you especially to day-of volunteers: Kate, Vicky, Alex, Christina, the Super Awesome Sylvia and her parents James and Christina,  and the add-hoc assembling factory workers: Mariko, Heather, William, and the entire UX team at Mozilla.  My girlfriend Jenny also helped me assemble some of the first kits at home while I cut all the felt sheets into smaller sizes for the foxes. My most sincere gratitude to you all, it went off without a hitch…except for the handful of batteries that exploded…but that was my fault :)

Now for some detail about what was involved in this project in case you want to replicate or improve on it.

A lot of felt foxes

The idea was pretty simple. The kit would be a takeout food box that contained everything needed to make a parallel circuit on a felt fox.  I ended up designing the felt fox myself after attempting to make something work with Lisa Higuchi who does amazing work but as I found myself running out of time I just created a simple pattern that could be held together with felt glue and then sewn/wired up in about an hour – which was the length of the workshop.  The soft circuit guide had the information needed for ordering supplies so in the end the kit’s component list looked like this:

  • 100 9×12 sheets of copper brown felt (400 fox faces)
  • 100 9×12 sheets of white felt (400 fox eye areas)
  • 30 9×12 sheets of black felt (450 nose/eye/inner ears)
  • 10 spools of conductive thread from Adafruit
  • 400 3v batteries
  • 400 battery holders
  • 800 yellow LEDs
  • 400 red takeout boxes
  • 5 bottles of felt glue
  • 400 small ziploc bags
  • 400 needles
  • 1200 pins (intended for holding the felt pieces together for sewing, they ended up being superfluous because of the glue)
  • 400 manual/pattern sheets

 

Shot of the pattern and instructionsThe felt firefox kit contents

I literally threw together a manual and a pattern at the 11th hour, as the UX team was coming to help me assemble the kits one night after work.  The manual leaves out a lot of the detail as to HOW to make the felt fox. Fortunately it includes a picture of a completed fox, so hopefully a resourceful teen at home can determine how to make her fox kit work. I have definitely learned from this experience to make creating the instructional materials a much higher priority next time.  The pattern was done in haste with a sharpie, me tracing around the parts of my prototype fox, I’m actually pretty OK with how that part turned out. When we assembled the kits we put all the small components into a ziploc bag and put said bag, one square each of white/brown/black felt, and a folded up instruction sheet into each takeout box.  The takeout box was a really robust container for kits and yet kept things light. I had no trouble carrying the 350 kits, in various bags and boxes, to my car to take down to SJ on the day of the conference.

The kits are in the bag stuffing lineEarly in the morning on Saturday February 12th, 2012 I drove the 350 kits down to the eBay campus and kept ~70 kits in our Maker room, leaving the rest with the D2BD volunteers who were stuffing bags with swag for the girls: Make magazines, usb bracelet, stickers, notebooks, a water bottle, and (among other things) a Mozilla felt fox circuits kit.  Then back in our room I had two of the Mozilla volunteers for the day make their own foxes so they’d be ready to help the girls when the first round arrived a few hours in.  Kate and Christina did a wonderful job of creating their first parallel circuits and spent the rest of the day being professional felt fox makers :)

Helpers make their foxes

As with last year, I found that out of the three workshops we did that day the first was a bit rough, the second quite smooth and the third was a cakewalk.  We can learn so much in one day about how to improve the process and the set up.  The first thing learned was that we had a bottleneck situation on scissors and glue.  5 bottles seemed like a lot to me but when split between two tables with at least 10 girls at each that was no longer the case.  I had brought in all my scissors from home, which turned out to be a lot (6) for a home, but not enough for the workshop.  We did scare up a few more pairs and optimized for workshop two by keeping the pre-cut paper pattern pieces for the next group of girls to minimize scissor time needed.  Another surprise: some girls did not know how to sew.   This was something I hadn’t thought of ahead of time since I learned to sew at a pretty young age.  This fact leads me thinking that because of time constraints, 1.25 hrs per workshop, using ‘squishy’ circuits might have been a stronger learning experience here.  The sewing is probably more appropriate for a half-day workshop or even full day if possible.

Customization of the fox pattern

Customizations happened.  I loved that girls immediately took to hacking the fox pattern as designed by me; adding bows, crowns, and eyelashes to their foxes.  It made me glad I hadn’t found time to pre-cut the fox parts.  The back of the fox head is easy to draw a circuit path on and see/experience polarity – using sharpies on felt was a great way of going over the concept of a circuit, right on the material about to be used.  I am really happy with the overall teaching experience here.  Several girls showed incredible tenacity in the face of adversity.  One young woman in particular, having a very hard time with the sewing, went out and got her lunch and then brought it back to the table to continue her work – she re-did the sewing and managed to get it working.  The whole time she was silent and focused and I really wish I had pointed out to her that her attitude was the most impressive, hire-able skill I can think of.  I’m sure she’s going to do well in whatever field of study she pursues.  One young woman cracked me up when she became frustrated with threading her needle, exclaiming “This is why women revolted!”.

In conclusion – the event was a tremendous success – both the conference as a whole and the Mozilla workshop flourished this year. The conference does a great job of pulling feedback from participants, as they must hand in a form to get their swag bag at the end of the day.  We see in the feedback that we did a wonderful job of getting the young women excited about and considering career paths in technology. In the summary from the feedback forms “87% thought the robotics workshop (Mozilla/Microsoft) was great or good”. Also 100% of respondents would recommend this conference to a friend or another parent.

I really look forward to dreaming up something next year to top this.  I have no fixed idea yet because part of the fun of doing this conference/workshop is waiting and seeing what exciting new open technology would be a good fit at the time. I’m definitely going to keep the issues from this year in mind when formulating a plan for next year, and pay attention to minimizing participant wait times in order to increase overall satisfaction with the project.  When I initially came up with this idea, I was worried that it didn’t have a strong tie to Mozilla’s mission, but as I continued to develop and finally executing it I felt more and more like the way we work on projects like this is such a product of how we work on keeping things open on the web.  It was thanks to the web that I found the guide which helped me with planning, it was thanks to the spirit of the open web that people I work with (and some with whom I don’t) came out and volunteered to help make this happen. Getting your hands on a building block of technology, modifying it to make it your own, sharing the results – that too is the open web, and it’s what the day provided for all the young women in our workshops. I look forward to seeing what the future holds with these potential hackers in it.

Group shot with completed foxes

Lukas helping with fox making

 

 

 

 

Try results to the bug(s) of your choice upon completion

The TrySyntax helper and TryChooser wiki docs have both been updated to reflect the new option when pushing to try where you can now ask to have your complete summary of results (and a link to the tbpl page for your revision) posted as a comment to the bug on completion.  Here’s a live example to check out:

Sample comment in a bug when using –post-to-bugzilla in your syntax.

Now you have more control over how you get your try results and how noisy a try push is.

Please send comments and issues to the bug tracking this work.  Thanks for trying it out!

A quick morning rant about “gender” and data collection

This morning I read that Google+ is going to make your name and “gender” required to be public if you want to participate.  This bothers me for several reasons:

Web sites and forms notoriously say “gender” when they mean “sex” and only put M/F or Male/Female as options. When this type of choice is required but called “gender” it erases many people who do not feel that those options cover their gender since that is actually something way more mutable than your assigned sex at birth.  Solutions: Call it “sex” which is really what those two categories are or don’t make something that is not in fact binary into a required choice of two options.

Google are so proud of being all scientific and data driven and I’m frustrated that they would not take the opportunity on their new potentially game-changing social platform to re-vamp data collection. Don’t they have the processing power to allow people to put in whatever they like as “gender” and let the power of the search sort things out in the end?  If a small number of people want to put “jedi” or “dog” let those people find each other!  Who cares if there are some people who don’t feel like Male/Female defines them?  Why Google? Why do you want to act like two boxes can cover the breadth of human experience as it relates to gender in this world?  Why can’t you innovate on the small things as well as the big things that affect human interactions?

I’d really like to see a shift in how we collect data where there is more trust that the user knows who and what they are and that they want to share this information at their comfort level and that those on the other side, let’s call them advertisers (cause isn’t that what it all comes down to?), be the ones to deal with the outliers and uniqueness of human experience instead of trying to bash everyone into a two-party system.

Sidenote: When I have collected data recently for PyStar and allowed the gender field to be a text box I have found that the expected percentage (98%) of people entered “typical” information like woman, girl, female and that those who needed to express a different response appreciated the ability to do so by entering something else.  Leaving this field to user input choice did not result in a messy, chaotic list of random words or unidentifiable descriptors.  I fear not that most people will suddenly start to be something else when given more autonomy on forms.