Saturday, July 21, 2018


After a longer than expected journey, I arrived in Almería in time for paella, beers, and catching up with friends on beaches of the lovely Mediterranean. Before I decided to come, I set some goals for the trip:
  • meeting with LAS GNOME team
  • sort out issues I've had with GNOME's build system(s) for applications
  • get automated testing working with the Jasmine-GJS testing framework and identify an area lower in GNOME's stack where I can contribute
  • attend some awesome talks and learn what my fellow GNOMErs have been up to lately
I met with Rosanna, Sri, and Louisa to strategize about talks for the upcoming LAS GNOME conference. The CfP and travel sponsorship applications are open (submit your talks now!) and the deadline is July 27th. We discussed the FOSS community in the US, and identified new potential audiences and areas to showcase. Keep an eye on the LAS GNOME Twitter account for updates on all the great stuff we have planned for the conference.

I was particularly interested in and disappointed by Michael Catanzaro's talk "Migrating from JHBuild to BuildStream". I appreciate all the time and effort the Release Team has put into maintaining and developing the build systems, so I'm including my experience here as an example, not as a criticism.
Over time I've gotten used to JHBuild and become adept at searching for and fixing its sometimes bizarre error messages. A few months ago, after running into some modules that failed on JHBuild, I read the announcement about GNOME's modulesets moving to BuildStream. I spent a couple days removing JHBuild and rebuilding everything in BuildStream. Except I ran out of disk space. So I removed as much as I could and started over. Except then PulseAudio wouldn't work. Luckily I'd occasionally run into the same errors caused by an unavailable PulseAudio daemon when I was using JHBuild. I tried restarting the daemon, etc, and looked for info on the subject. In the end it turned out that PulseAudio wasn't available within the sandbox, so I scrapped BuildStream and went back to JHBuild.
Going forward, I'm planning to move from JHBuild to using FlatPak, Builder, and GNOME's nightly runtime build. I'm happy that the community is providing solutions, and, while things are still in a confusing state, at least they are moving quickly in interesting and promising directions.

When I was working mostly with Python I got into the habit of using TDD. As is usual in startupland, we had a release every two weeks, and features were being sold before they were developed (maybe that part's not so normal). I love tests: they document the expected behavior of the code, they shorten the development cycle by integrating debugging and coding, and they catch it when you break something in code you think you haven't touched. You can just stick nice hook in your repo, and then you can't push till everything is working.
During my time on the Board I found that I had less time for development, and I really wanted automated testing so I wouldn't cut corners on testing and accidentally release broken code. The Sound Recorder is hastily written student code, and somewhat fragile. So I started writing tests with Dogtail and Behave, only to find that the framework had been deprecated. Hence my mission to get Jasmine GJS working.
Jasmine takes a very different approach to testing from Dogtail and Behave. Behave uses ATSPI to provide a context from the actual running application. Using that context you can manipulate the UI elements. Jasmine GJS provides a framework more adapted to API testing. I had a short discussion with Philip Chimento about how he is using mock objects, and got my tests working. I also got a chance to talk to Philip about some easy bugs in GJS. I've been using C++ at work, and I use Javascript to write application code for GNOME, so GJS seems like a great option.

Last but not least, I got to attend a bunch of great talks by my fellow GNOMErs! I particularly enjoyed Federico's talk on porting Librsvg to Rust (complete with awesome illustrations of fairies by his daughter), Christian Hergert and Corentin Noël's talk on Builder, and Benjamin Otte's talk on GTK+ and developing for GPUs. I'm looking forward to watching all the great talks I couldn't see during the conference!

Thanks again to the GUADEC organizers, and hope to see you all at LAS GNOME in September!

Monday, August 22, 2016


I arrived at GUADEC a few days early to participate in the Board and AdBoard meetings.
Incoming and outgoing board members
Incoming and Outgoing Board Members
On my first full day in Karlsruhe the board met to slog through a long list of agenda items. We started the meeting with some team-building exercises. In general I hate team building, but Nuritzi's exercises weren't too bad. As part of one of them I told a story about a carved table a sculptor friend recently gave me:
Table with Carving of Coelacanth by Christopher Tucker
After the ice breakers were done, we sat down and went through outstanding tasks on the Board's to-do list. Some of the outstanding items were re-assigned to new board members, some were closed, and some were discussed. Cosimo took the task of asking the community how we should use the Privacy funds. It's a priority for us to put the funds to use, so tomorrow during the weekly board meeting we are going to review the community's feedback and decide on next steps. Another item we discussed during the meeting was how to create a standard code of conduct for GNOME events, so we don't have to re-invent the wheel every time. Allan, Nuritzi, and I worked on first steps towards that during the second day of the Diversity BoF.

On the main conference days I attended talks and a few unconferences, and met with some of the other members of the LAS GNOME team to work out the conference schedule. The local team did a fantastic job organizing the conference, and there were a lot of nice touches (like ice cream and the pool). Many of the talks were interesting, and it was nice to catch up a bit on what is happening in GNOME, and where people are interested in taking it in the future. Kudos to the GUADEC team for getting the talks uploaded so quickly. Some of my favorite talks from the conference were:
Light show at the Karlsruhe Palace
After the main conference I attended the Diversity BoF. On the first day we formed a diversity working group and defined a mission statement. We spent the remaining time brainstorming around the first point of the mission statement, which is to attract newcomers from underrepresented and marginalized groups. Here is an etherpad with notes from the first day (thanks to Philip Chimento for taking notes and emailing them to participants). The second day of the BoF we focused on forming a working group for the code of conduct. Allan, Rosanna, Nuritzi, Marina, and I signed up as core members of the group, and Cosimo, Benjamin Berg, and Federico signed up as supporting members. As our first action we sent an email to the board outlining the process we want use to put together the code of conduct, including how we will solicit feedback and ideas from the community, review resources, and present drafts of the CoC to the board and to GNOME foundation members. If things go as planned, we will send an email soon to the foundation list, asking for more volunteers as well as feedback and resources from the community.

As always, it was great to see everyone! Hope to see you all next GUADEC.

Thursday, April 17, 2014

Open Source Comes to Campus NEIU Chicago, April 26th

On Saturday, April 26th, there is going to be an Open Source Comes to Campus event at Northeastern Illinois University. It's open to all students. I've been helping a bit with organizing it and I'll be mentoring at the event. If you'd like to learn the basics and make your first contribution to FOSS, please follow the link below and sign up :)

Hope to see you then, and happy hacking.

Friday, April 4, 2014

GNOME & LUG & Flourish!

I'm going to be running a GNOME and LUG booth tomorrow at Flourish! Other members of the LUG -- Jim Campbell, Lincoln Bryant, and eviljoel -- are also going to be stopping by to help out at various points during the day. One of our group's founding members, Chris Webber (MediaGoblin*) is speaking about The Road Ahead for Network Freedom at 2 pm so I'm skipping out on booth-tending for that. If you are around, be sure to come by and say hello to us :)

* I've helpfully linked to the MediaGoblin campaign page, in case you forgot to donate :)

Saturday, February 8, 2014

Hacking + Talks + February

LUG + Hack Saturday, February 22nd 
We'll be meeting on Saturday, February 22nd at Pumping Station: One (3519 N Elston, Chicago).  If you'd like to come by early and hack we should be there at around 12 pm.  
Formal talks will start at 2 pm. Lincoln Bryant of the University of Chicago will give a talk on how university sysadmins use Puppet to manage their servers. We may have an additional speaker lined-up within the next few days. You can RSVP on

Chipy Project Night
Chipy has their first monthly project night coming up on Thursday, February 27th from 6:30 pm to 9 pm at Braintree (111 N Canal St, Suite 455, Chicago). RSVP: meetup again :)

Thursday, February 6, 2014

Writing about FOSS Diversity for

Today published an article I wrote about my experiences as a FOSS contributor, the strategies I've learned to promote diversity, and why I feel diversity is important. If that kind of topic interests you you can read it :)

Happy reading, and happy hacking!

Monday, January 6, 2014

Chicago LUG Meeting Saturday, January 18th at 2 pm

We'll be having the monthly Chicago LUG meeting on Saturday, January 18th, at 2 pm, at Pumping Station: One (3517 N Elston Ave, Chicago, IL). Drew Fustini (Element 14) will be presenting on Beaglebone Black, a hackable development platform similar to the Raspberry Pi, but built using open hardware.

I'm planning to show up at noon to hack on GNOME stuff (you can show up too), and there will most likely be some hacking time after Drew's talk.

Videos from last month's talks are on the interwebz now: you can find Jeff Schroeder's talk "Twelve Days of Metrics: Graphite for the Masses" by simply clicking this enticing link disguised as a sentence fragment, and you can view Bonnie King's "(Red Hat) Software Collections" in basically the same way.

See you all on the 18th. Happy hacking :)