My activity in Ubuntu has been mostly bug triaging, bug-solution hunting, and bug fixing. I am also on IRC with fluctuating consistency. I sometimes lurk on #ubuntu and #ubuntu+1 and give support when I can.
Bugs I've Worked on
Below are some of the major bugs I've worked on: triaging, reporting, solving. I've actually worked on triaging or supporting many bugs that are not listed below, but am not currently subscribed to, and have no direct way to find or query. For a full list of bugs related to me (which generally means that I've done something with them), you can check [https://bugs.launchpad.net/~micah-cowan/ my launchpad page]. I try to make it a current practice to subscribe to any bug I touch in a significant way, but this can lead to clutter, so I'm not certain whether I will maintain this practice.
[+] = I submitted this bug
[d] = I provided a patch for this bug
Helped LinuxProbie get his wireless card up and running.
LinuxProbie gave me shell access to his box (which was connected to net via Ethernet), and also admin access (though I strongly advised against it). I walked him through setting up a multiuser screen program, so he could watch me input commands and see what their output was. We also used screen to chat during the process, by using it in split-screen mode to view a terminal with just "cat > /dev/null" running (similar to old-style Unix talk program). He was attempting to use ndiswrapper to support his Brother wireless card (the model escapes me). He had a ubuntuforums.com page that described how to disable the Free driver and enable the Windows driver in ndiswrapper. It appeared that he had followed all the instructions; however, the device was not being recognized. Through a good deal of toying around, it was discovered that:
- ndiswrapper does not work together with the specific driver that he was attempting to use (his was a Dell laptop, so he was using Dell-provided drivers; ndiswrapper, however, desired ones provided by HP/Compaq).
- ndiswrapper may have been of a too-old version, so we upgraded to a different version of ndiswrapper.
The user was very happy to have his wireless card working properly, after we sorted these out.
[https://launchpad.net/distros/ubuntu/+source/joystick/+bug/45930 Bug 45930]
This was the first bug I dealt with. I was trying to run the jstest program on my USB joystick, but it wanted to segfault on a regular basis. My first response was to get a backtrace in gdb, but I noticed the backtrace happened during an attempt to print a string, obtained from an array. A little investigation revealed that an invalid index was being used into that array. I fixed the problem in the code and generated a debdiff. I'd found an already reported bug that fit my description, so I added some discussion, along with my patch, to the report. This patch went into the next version of the joystick package.
[https://launchpad.net/distros/ubuntu/+source/tuxpaint/+bug/49079 Bug 49079]
I happened across this bug by accident. I don't have access to the printer for which this bug was reported, and despite the fact that the guy who wrote the TuxPaint program is a friend of mine, I'm not a regular user of the program. I am, however, pretty proficient with the PostScript language, and since I was somewhat familiar with TuxPaint, my curiosity was piqued. I went ahead and looked into the code, and found a few points of interest that I thought might be contributing to the problems. I contacted the author of TuxPaint, and when I found out he didn't have much to do with the PostScript code in the program, I joined TuxPaint's development mailing list to discuss the problem and possible solutions. This resulted in a few possibilities, which I then submitted to the bug report for the reporting user to examine. Unfortunately, we haven't heard back from the user in order to verify whether the modifications have produced a solution. [http://sourceforge.net/mailarchive/forum.php?thread_id=30198556&forum_id=44504 Discussion on TuxPaint development list].
[https://launchpad.net/distros/ubuntu/+source/coreutils/+bug/38538 Bug 38538] This is a relatively minor problem, but it's liable to bite many users (man pages say to try, e.g., "info ls", but only "info coreutils ls" will work). There is a quick-and-easy, but wrong, fix (to fix the man pages to refer to "info coreutils ls"), and there is a right, but fairly involved, fix, which requires modifications to the dpkg package (which includes install-info, wherein lies the bug). I'm not yet ready to put the time involved into doing the thing proper and right, but apparently nobody else really is, either. I had some brief interaction with the dpkg folks about it, and at some point will probably get back to looking into what would need to be done
[https://launchpad.net/distros/ubuntu/+source/gawk/+bug/58256 Bug 58256]
Unaware that this had actually been addressed by this point in CVS (I didn't know where to find the current development version), I hunted down and found this multiple-free() bug over a weekend. When I pointed it out to the developers, along with a request for help as to approach for the fix, they responded that [http://www.nabble.com/multiple-frees-in-awk%2C-sometimes-leading-to-crash-tf3536179.html it had already been addressed in CVS]... :/ ...so I found the fix and submitted a debdiff to address the problem in the currently available package.
[https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/75574 Bug 75574] I worked with the GNU coreutils folks, and then the linux kernel developers, to determine the proper fix and wherein lay the responsibility to fix, reviewing material from relevant standards. I then crafted a patch, tested it, and submitted it to both the linux-kernel mailing list and the Ubuntu kernel team (not all of what I just said has been completed, will remove this remark when I have).
Skills and Interests
I am familiar with and tend to be drawn to attempting to solve bugs having to do with (so far): C, C++, gawk, PostScript, PDF, TeX, shells, terminal magic (escape sequences and the like), locale problems, character encodings, nasty things that dump core.
I feel fairly familiar with packaging, and have experience doing debdiffs on a few different frameworks (debhelper, DBS, etc); but have little experience packaging from start to finish (have done so, but it hasn't been reviewed, and likely won't, as the project looks to be merged soon with another).
Things I've written and more-or-less finished includes
an [http://micah.cowan.name/2007/02/13/computers/postscript-is-amazing/ automatic maze-generating program] written in PostScript];
[http://micah.cowan.name/svn/promptjobs/trunk/prompt-jobs.sh?view=markup automatic joblist] at the shell prompt (documentation not yet written);
a [http://micah.cowan.name/projects/checkmk preprocessor] for use with a unit testing framework;
an old crappy [http://micah.cowan.name/projects/ditty/ program that plays tunes on the built-in speaker], and was once debianized; and
a setting of [http://micah.cowan.name/cannibalism-in-the-cars/ my favorite Mark Twain short] using XeTeX (a TeX variant).
To Infinity... and BEYOND!
I'm committed to Ubuntu as my main Desktop. Because of this, I'd like to do what I can to continually improve it. At the moment I'm aiming at eventually becoming a ["MOTU"].