Sunday, September 1, 2019


I arrived for GUADEC on the 22nd and rushed from the hostel to the 10th annual Womens' Dinner. The dinner was held at a local restaurant and we had balloons, lots of shared appetizers, and vanilla fondant spoon sweets  :) Perhaps because the dinner was held before GUADEC, it was very small this year. As always, though, there was a lively conversation and it was great to catch up with old friends and meet new women in the community.

On the first day of GUADEC Manuel Quiñones and I gave a talk on the work that we did on the Hack Computer. It was nice to share the process  of preparing and practicing the talk with one of my old teammates. We introduced the Hack system, and then we each covered the components we had worked on in more depth. I gave a basic outline of the responsibilities of the toolbox. I also discussed some of the thornier issues in the ToolBox component of Hack, like type checking and post-condition validation in JavaScript. When we were putting together the talk I was struck by how the design (both technical and visual) made the Hack project more than the sum of its parts -- it created an imaginative, engaging space where disparate parts of the system worked seamlessly in concert.

When I booked my travel I was still working at Hack, so I had expected to spend time hacking with my co-workers. However, since I am now at a different company that is not related to GNOME I had time to relax and enjoy the conference and the beautiful (and incredibly warm) city of Thessaloniki. The keynote on GNU Health was very thought-provoking, but I was left with some unanswered questions about patient privacy. During the BoF days, I spent some time working on a custom Django app for the Travel Committee. Luckily, though, we spoke with Neil during our meeting on the afternoon of the first day and he told us that some customizations can be added to GNOME's Odoo instance and it will provide us with all the functionality we need. So hopefully before next GUADEC we will have a new, easier system for submitting, processing, and tracking travel sponsorship requests! Since I didn't have to work on the Travel Committee app, that freed up some of my time and I spent a bit of it getting JHBuild set up so I could start on a GJS bug with the help of Philip Chimento.

Thanks to Endless for paying for my plane tickets and the GNOME Foundation for funding my accommodations. Hope to see you all at the next GUADEC!

Sunday, September 23, 2018


The 2018 edition of the LAS GNOME conference happened two weeks ago. I arrived in time for the second day of talks, and left early Sunday.

The conference was small but the group was energized and the talks were engaging. The group was made up of local GNOMErs, developers and designers from the US free software community, developers from KDE, and local students, among others. I was very impressed by the hard work of the volunteers. The weather in Denver was very nice. The venue was a beautiful old mansion situated close to downtown.

 A few of my favorite talks:

It was interesting to hear Aleix Pol's presentation on KDE's approach to integrating Flatpak, Snap, and Packagekit backends into their software center.

Britt Yazel's talk on Research Science and Libre Computing was very thought provoking. He talked about the enormous cost of using proprietary software and the lack of reproducibility of research outcomes due to bugs in software and unknown testing environments. It was fascinating to see the parallels between challenges software engineers themselves face in setting up production and test environments, and those faced by research scientists.

Heidi Ellis and Gregory Hislop's talk, "How Can You Make Your Open Source Project Attractive to Students?" outlined the challenges university professors face in trying to teach open source in the classroom, and how projects can make it easier. It was nice to see that GNOME's newcomers' initiatives already provides many of the necessary things: contact information for mentors, places for newcomers to ask questions, documentation on how to get started, etc.

Amisha Singla's talk on "Guarding the Maps from Vandals" explored the evolution of MapBox's approaches to detecting vandalism. They started with a rules-based approach and human review, and eventually re-wrote their system to use natural language processing and machine learning approaches.

Thanks to all the volunteers whose hard work made the event possible! Hope to see you all again next year.

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 :)