Tag Archives: bug fixes

I don’t get as much of a chance these days to do things like patches or other technical contribution. But I had some time free the other day and used it to stick my hands directly into a cool project, Pagure (pronounced roughly “pag-yOOR,” or listen here). You may have read about Pagure in this Fedora Magazine article a few months back.

It was tremendously easy to get Pagure, fix a bug, test the fix, and contribute it back (see my pull request here). I specifically looked for “easyfix” bugs, since I knew I didn’t have a lot of time to spend to help. So I decided to work on this issue, a button showing up when it shouldn’t.

First I forked the repo in Pagure. Then I cloned my new fork, and set it up as documented in the README. In the clone, I checked out a new branch using the issue number as a name, issue839.

To track down the fix, I ran the app locally and duplicated the error. I looked at the CSS style containers for the button and some of the surrounding elements. Using that information, I did a text search on the code to find the file that was generating the button. Then I simply applied some logic to find the fix for the problem, even though I wasn’t really familiar with the code involved.

Thankfully Pagure has a test suite, so I could also check that my fix didn’t break any of the tests. Then I committed and pushed my changes, and made a pull request using the button in Pagure’s web page.

I also learned something useful. Since I forked the repo to do my fix and make a pull request, if I force-pushed changes using git to my branch from which I made the pull request, the pull request was automatically updated with the changes! This is probably expected by people who do this all the time, but since I’m new at it, I was excited.

Bugs like this are something that just about anyone with a small amount of beginning programming skill could fix. Pagure even has other bugs like this waiting for people to handle. Maybe one of them is waiting for you! 😉

I was really happy to see that the latest round of Fedora 15 updates brought something for which I’ve been yearning. On my new ThinkPad x220, the Fn+F8 toggle for turning off the touchpad now works. YAY!

My right palm often hits the touchpad when I’m typing, causing the mouse to jump elsewhere and occasionally change the focus. Now that I can hit a simple keystroke to turn off the touchpad, my life will get that much better. I have a feeling this change came in with the update of libXi, but I’m not sure. So thanks to the developers for bringing this fix to Fedora 15, whether that was Peter Hutterer or someone else.

Came back and turned up a French trance station I got into recently (for some reason, monotonous, non-vocal electronica seems to help me work more efficiently… probably since there are few lyrics to listen to and digest mentally)

Went through some email to reduce backlog for Monday

Triaged a crummy gnome-system-monitor bug affecting people with more than 4 CPU cores (like me)

Had dinner with the family (Eleya made a fabulous corned beef, first timer but it was pretty much perfect!)

Came back to the desk to find that the superhuman Matthias Clasen had fixed the gnome-system-monitor bug in question, and built and pushed an update out

Installed said update with many thanks to Matthias, tested, and provided feedback

So of course, my definition of hacking is not nearly what some of my colleagues manage daily. But I feel like attacking some of this stuff on weekends and working on my own GNOME-ish projects are starting to give me a better fundamental understanding of some of the plumbing at work in the desktop. And of course, it gives me a wh0le new appreciation for it as well. I’m now rocking GNOME 3.0 pre-releases on both my main systems here at home, my laptop and my big workstation, and loving it.

I’ve contributed a few bug reports and to a small portion of the GNOME 3.0 user documentation for this release. It was lots of fun and made me feel connected with the release process for something I use every day that will be an intrinsic part of Fedora 15 when it arrives. It’s a great feeling to be just cranking on some little bits to help others, and just as much as ever, I know that if everyone does the same, free software has a future that is even brighter than the (already well-lit) present.

Even though I’m on vacation, I had some fun catching up with some geeky Fedora work, like handling bugs and package maintenance over the last few days. It only took me a few minutes at a time to do something useful for (hopefully) many other users. Along the way I was helped by other contributors, like Kevin Fenzi, who did a package review for me, or bug reporters who tested a package update. Among the things I got done:

Took over maintenance of the notify-python package, and fixed a missing documentation problem

Produced some testing updates for the stable 2.0 branch of blogtk

Fixed a missing icon problem in the nautilus-open-terminal package

Packaged and issued push requests for the new package python-babel-BabelGladeExtractor

Went over my pending package reviews and pushed each one forward in some way

Some of these things had been on my “to-do” list for a few weeks, but I didn’t have time for them during busy workdays. Since my evenings and weekends have been pretty full this was a great opportunity to scratch some of these things off my list.

I also got to work more on my PulseCaster project, although I haven’t yet made the sweeping interface changes that I’d like for the next version. I also bought the pulsecaster.org domain for it, in the hopes that will spur me to work even more on it over the next few months. I fixed a couple workflow issues in the interface and was able to remove a little code with some “create on demand” dialogs rather than putting them in the Glade file.

I’m still hung up on needing some additional and more complicated Python pieces, like querying the volume level of a source or sink so I can introduce a VU-meter like control as part of the interface changes. But in the meantime, I’ve started to get much better and faster at implementing ideas in PyGTK. I’m not sure my coding style is as good as it should be, but my understanding of concepts has gotten fairly good, so I can translate PyGTK API docs into the ability to do something. I gave a couple conference speeches over the past year on PyGTK that I hoped would give other people in similar shoes — people who can write scripts but aren’t familiar with GUI programming — a primer that allows them to “cross the bridge” into exciting new territory.

Lest my family oriented friends think I’ve been shirking my domestic obligations, or failing to use my PTO to rest and rejuvenate, I also did a lot of relaxing personal and family things over the last few days. Some of these things were responsibilities even if they were fun, or a nice change from work or geeky stuff. The funny thing is, most days since I went on PTO I’ve been getting up at about 7:00 or 7:30am so as not to waste the whole morning. For me that’s at least somewhat a luxury, since I normally get up at 6:00am for work. Here’s some of the things that extra time allowed me to get done, even if I threw in an hour or two of work on geek stuff each day:

Attended piano recitals for both my kids

Went to the elementary school chorus performance for my daughter and the super-fun singalong that followed

Volunteered at the school library by shelving books with my wife

Handled the remainder of the Christmas shopping

Did some “Santa errands” like going to the skate rink to get some sweet, fast bearings installed on one of my daughter’s Christmas presents (new quad skates)

Went grocery shopping so my wife could be at the school to help as a classroom volunteer

Had a new door to our deck installed — a more energy efficient slider with low-E glass and integral blinds (OK, this mostly consisted of checking progress and signing paperwork)

Played some games with my kids

I also got to do some completely selfish leisure stuff, like trying the new Sam Adams Infinium (I give it a 90 on the beverage scale), playing our new piano and some guitar, and hanging out with our dog Dixie — the world’s greatest pound puppy!

Speaking of pound puppies, a quick step up onto the soapbox here: If you are looking for a pet this holiday season, or whenever, please adopt one from a local shelter. I’ll write more about this in another post later, but I wanted to throw that plug in here in case you’re one of the numerous people who might get a pet during or after the holidays.

We did a little share of unhappiness thrown into vacation, though. First, my ’00 Accord ended up needing a new transmission, which is going to be rather expensive. However, we’re very fortunate to be able to handle it without any real financial discomfort. Not everyone these days is as lucky, so I try not to take that for granted. My brilliant and dedicated colleagues and coworkers at Red Hat have made that sort of security possible, and I’m very thankful for all their hard work! This vacation time in part allows me to hit the ground running in 2011, so I can continue to do likewise by them. 🙂

The other disappointment is that my mom took ill yesterday, and is feeling really crummy today. That means she and her hubby won’t be coming to Christmas Eve dinner this year as they usually do. Eleya has put together a really scrumptious menu for us, and certainly we’ll still enjoy it, but it’s too bad it’ll just be us, with no company to share it with. But then again, we’re really fortunate to have each other and a bountiful meal to celebrate the holiday — and tomorrow we get to visit my sister where we’ll see the rest of the family.

Anyway, that’s a big update on all my doings of late. Wherever you are, and however you choose to celebrate the season, I hope you have a fantastic time and that you get to spend it with friends and loved ones.