The Big Update (Linux, Vinyl Siding, Math, Pyblosxom)
In order:<p>
<h2>Linux</h2><p>
On Friday, I burned and installed Fedora Core 3 on my laptop, replacing Core 2. Installation went smoothly, as it almost always had with Red Hat for me. The only snag came when I selected a 1280x800 LCD as my monitor, but Fedora insisted on choosing either 1280x960 or 800x600 resolutions. This silly bug cost me an hour searching for a functional <a href=http://www.bryan-gillen.pwp.blueyonder.co.uk/linux/i8600.html">xorg.conf</a> file.<p>
With installation complete, though, there was something I noticed: my new OS is FAST! On deeper reflection, I decided that it is merely in fact <em>more responsive</em>, but it makes a tremendous difference. It was suggested to me that the low-latency patches for the 2.6 kernel are responsible; if they are, then kudos to whoever wrote that code.<p>
Unfortunately, with my return to Linux, I've revisited the endless configurability problem. There is just <em>so much</em> that you can do with Linux, that it's tempting to sit there and try to set it all up. Instead of the work you want to do. Instead of eating. Instead of breathing. Once I get DVD playing to work, I swear that I'm done setting up my system. Really.<p>
Ok, and then I need to make CGIs work in Apache. And probably install mod_python. And maybe install the new <a href="http://www.pythonweb.org/">Python web modules</a>...<p>
<h2>Vinyl Siding</h2><p>
My dad and I have built a new room onto his house. It sounds really cool to say that - we built a room - and this weekend we finally finished the exterior. It took us 3 weeks to get a carpenter to come in and move our old exterior door to the new exterior and replace it with a new door.<p>
While there was no door on the last side of the room, we couldn't vinyl side it, and we weren't able to do any more work on it until there was a door. Since the door was installed on Thursday, my dad and I spent Saturday and Sunday finishing up the vinyl siding.<p>
It feels good to have worked on something for so long. Most of my computer work has involved picking up a project for a week or two, playing with it, and then forgetting about it. However, we started working on this room around July, and it's only coming together now. Successes feel much sweeter when this much sweat has been invested in the project.<p>
<h2>Math</h2><p>
<a href="http://javelina.cet.middlebury.edu/lsa/out/lsa_definition.htm">Latent Semantic Indexing</a> is a technique for searching a body of documents for a series of terms. The user of LSI creates a <a href="http://javelina.cet.middlebury.edu/lsa/out/tdm.htm">term-document matrix</a>, performs <a href="http://mathworld.wolfram.com/SingularValueDecomposition.html">SVD</a> on it, and comes up with a new term-document matrix (hopefully more useful) with which to search.<p>
However, the technique can be twisted to create a matrix of term-term similarity values. In this matrix, the value of the (m, n) cell may be interpreted as the similarity of term <em>m</em> to term <em>n</em>.<p>
I am trying to use this term-term matrix to determine what artists are similar to what other artists. <a href="http://audioscrobbler.com">Audioscrobbler</a>, which I've mentioned before, has produced a large body of data showing relating users to the artists they listen to. Theoretically, if user A listens to band 1 and band 2, and user B listens to band 2 and band 3, then band 1 and band 3 are probably related.<p>
I want to test whether LSI term-term matrices can reveal this information in an interesting way. Supposedly, they can, and this provides an interesting subjective training ground for the algorithm.<p>
I've coded up an LSI module in Python, as well as used <a href="http://tedlab.mit.edu/~dr/SVDLIBC/">SVDLIBC</a> through Python, as I begin to test my hypothesis. Hopefully, soon, I should have pretty graphs and charts to put up here, but I'm not yet confident in my results.<p>
<h2>Pyblosxom</h2><p>
I worked on fixing Windows path bugs in pyblosxom. After a bit of work, the change ended up being a one-liner, so as soon as I test it thoroughly, I'll pass a patch forward to the devel list.<p>
I also began to work on pyblosxom's static generation, since I've become convinced that this is how I want to do my site in the future, but the bugs were too deep for me to get to during my busy weekend. Hopefully this week, but trying to get a job and Thanksgiving are likely to interfere.<p>
I also realized that I likely need to lock the files that I use as a database in my meta plugin. I will investigate this more thoroughly in the future too; the tasks are really piling up on this project.
<!-- keywords: construction, math, lsi, pyblosxom, python, linux, fedora -->
<!-- time: 11-23-04 01:39 -->
