Thank you very much to numerodix's latest blog entry, which caused me to pay extra attention when upgrading system packages this week. I do read my elogs, but I don't read it as carefully as I should. I know I would have missed the warning about
expat1 -> 2 necessitating a
revdep-rebuild. I am going to
tail them onto my desktop from now on.
expat really does affect a huge number of packages. Every GUI app on my system is affected. Possibly because GTK and QT are affected. But I don't know. urxvt and conky are also affected. Thankfully I had a Firefox window already open, along with a few urxvt terminals, when I did my expat upgrade. So as long as I don't close them I should be OK to keep using them for a while.
Looking at these issues, I realized today how little I know about the specifics of how linking works in Linux. I had a few days about it in a class on OS design in college, but it was a few years ago after all and we didn't go into much detail back then. This all inspired me to read up again on how linking works. I am reading this article on linux.org to start with. It looks like a good article, keeping in mind that someone who actually needs the article (e.g. me) is probably the worst person to judge whether it's a good article or not.
In other non-news, I recently ordered Design Patterns: Elements of Reusable Object-Oriented Software. I have a design patterns book already, namely Head First Design Patterns, but it's geared very specifically toward Java, and the whole book is written in a fairly unorthodox and sometimes extremely annoying way. It also doesn't cover ALL the design patterns, only a few. I'd like to read the original source, and read something that isn't polluted with Java ugliness.