On preferences
Choice quote from a real world example:
The moral of this story is that “flexibility” is rarely desired in programming! The less a program will accept/the less a program will do/the less options and preferences it has, the more usable it is/the more understandable it is/the more stable it is.
When designing a program, you’ve got to make some tough decisions .. and when you really can’t decide if this is something your users will need someday, err on the side of leaving it out.
Follow up on my lyric display system
I mentioned in my previous post about the lyric display system that I've working on for the last couple nights. Currently it involves a QuodLibet plugin and a script.
The script monitors the currently playing song using DBus events emitted from the QuodLibet plugin, using the file name with ".lrc" appended to the end as the lyric file. It should be fairly easy to modify it for use with other music players.
It also executes my now playing script to set pidgin's tune status.
Christmas productivity
Spent most of the Christmas day capturing dumps from Windows Live Messenger 8.1.0178 using oSpy and analyzing them. Previously I "only" gave the VM 328MB RAM which apparently wasn't enough for oSpy, and I had to increase it to 400MB RAM which leaves < 600MB for the host. I ended up getting offline messaging working correctly with Elliott Sales de Andrade's MSNP15 patch, turns out we need to use the ticket token from messengersecure.live.com which is not the domain we use to send out the offline message. It sort of makes sense, except MSNPiki lists messengersecure.live.com as unknown... Also fixed couple other issues in Elliott's patch, and fixed couple other leaks and a double free along the way. The MSNP15 stuff is not pushed yet, hopefully I will find some time this weekend to test it more thoroughly.
Spent most of Christmas night and tonight writing a program that would display the lyric as a song is played. My setup is quite complicated at the moment, it involves a python QuodLibet plugin that fires appropriate DBus events and a perl script that listens for those DBus events, find and parse the lyric file (which is currently something like LRC), then display each line as the song is played. Pausing and seeking within a song complicates it further. I think I am mostly done, but the tedious work of writing out the LRC files remains. I will probably post the code later.
Thanksgiv^H^H^Hhacking weekend
Instead of digesting the turkey (which I didn't eat), I spent some time trying to come up with something that sets pidgin's "now playing" bit. Since the code is most likely called from a music player, I decided to do it over DBus instead of as a plugin. Fighting through the status API was not really a pleasant task, a couple patches and more than "some" time later, I was able to come up with this. It requires the unreleased pidgin 2.3.1, which likely will only support XMPP out of the box. MSNP14 also supports broadcasting current media, so it's an option for those of you who are brave enough to use it.
It's funny how many things broke in 2.3.0 because of a single patch that I applied.
/dev/urandom
Why do E-Trade even bother to send a text version of its email? If they don't then my mail client know to pick up the html version. It's not a problem if they actually include useful information in the text version, but all I get is this:
This is a graphic email message. If you are reading this message
then your email program does not support HTML format. We recommend
changing your Email Alert delivery format to plain text or
upgrading the program you use to read your email. To modify your
Alert format, log in to your account at www.etrade.com and update
your e-mail profile settings.
Hot or not? I think not. Their interview process is clearly not filtering out enough junk.
Last year, the company briefly considered offering a job to every graduate
from the University of California at Berkeley computer science program. It
decided not to but still wound up hiring most of the 59 grads. "We were
like: 'Hey, maybe we're hot again," says Schwartz.
Found out about EBuddy, wonder if it's LibPurple based.
Firefox 3 may not allow self-signed certs to work anymore. Here's the bug. There's a way to whitelist each host:port, but it's going to suck if you have lots of them.