sugardeath

So I think that my next real.. project of sorts will be to write an MPD client. MPD is a pretty neat music manager I found a few days ago. A fair amount of Linux programs and services run on the client/server idea, most notably X the graphical display server (what draws the pretty graphics and frees you from the “horrors” of a command-line only interface). This seems like an odd idea for a music manager and player, but it’s a neat way of approaching it and I think it does a great job. The obvious connotations of “client/server” are a user connecting to a remote box from his home desktop or whatever. I do not know if this was the express purpose of MPD, but I assume that it would work very well if one had a multimedia computer hooked up to their stereo/TV (I do not have such a computer, so I do not know). Using another computer in the house, one more easily accessible, they could just connect to the server using one of the many clients available and change the music playing from the stereo in the other room. All fine and dandy, but fairly useless to me. Within the past few months, Amarok has started to shit out on me. I don’t know what it is. I got rid of all my user settings and ran it fresh and it still had terrible slowdown and hanging issues when doing things such as loading playlists (some of mine are huge, yeah) or switching tracks (that should NOT happen). I’ve tried Rhythm Box, Audacious (which seems to be a prettification of xmms, which is basically a winamp clone; a.k.a. amazing), Exaile, etc. None of them ever felt… right.

I have always been of the minimalistic point of view. This is evident in my no icons on the desktop belief as well as my attempt to use programs that take up the least amount of resources. Amarok did get a bit heavy at times, but it was really nice so I kept using it. That is until I just got fed up with its performance (it’s really a good piece of software, no one else seems to be having the same problems as me). Well, I haven’t really listened to music much on my computer in the past few months. Until I found MPD the other day. Because it’s server/client, it’s inherently light on resources. The server end runs as a daemon, it plays your music and manages your collection in the background. When I want to switch tasks or load a playlist, I can load up one of the quick-launching client programs (I currently switch between a nice command-line one and a Rhythm Boxish GUI one), load a new playlist/song, and close it and everything is great. This also frees up a spot in the system tray that would have an icon for the program (though I just installed an XFCE panel MPD controller that takes up like quadruple the visual space a system tray icon would). It really is a neat way to implement a music manager. There’s also a webclient that I am interested in trying that will stream my music to another computer over the internet. That’ll be nice when I’m back at the reg office next semester.

So, basically, with the little bit of python I have done for extending the Mumbles Pidgin plugin, I decided that I should learn more about the language ad use it to develop a client for MPD. I could then stick in what features I want and make it exactly how I want it; I could even make it send dbus messages and intercept them with Mumbles! I bet the hardest part will be figuring out GUI stuff. It’ll be interesting getting used to Python’s method of Object Oriented programming, I’m sure, but once you’ve done that stuff once, you’ve really done it a million times (I’ll probably end up eating these words).

So, with the recent discovery that my graphics card no longer displays low resolutions (boot screen, Linux TTYs, etc.), the possibility of my computer failing has suddenly become very real. While I really do not have the money for a replacement (nor should I spend the money on one in the near future), I should at least ready a list of parts so that I can make a sudden order just incase AndrAIa decides to call it poops. What? Yeah, I could just buy a new video card, but I’d essentially be wasting money. Why should I buy a graphics card for a deprecated interface? AGP cards are no longer the standard. It’s all about PCI-X. But to get PCI-X, I’d have to upgrade my motherboard and with a new motherboard comes a new everything else. I wanna go something midrange, sorta like David’s which was a total cost of $450 while reusing as much as possible from his old machine. Mine’ll probably cost maybe $100-$300 more than his due to the fact that I will be reusing VERY little from AndrAIa. Andy originally cost $850 when I bought her four or five years ago. I’d say she was fairly high-end at the time. She’s served me well, and I hope she would continue to do so even after I build Ophiuchus (which I hope you’ll remember is the thirteenth zodiac, because I’m an asshole like that). Maybe she could be that media centered machine hooked up to a TV and stereo. Maybe. She’ll serve some purpose, I just don’t know what yet. Anyway. Back to Ophiuchus. I’m thinking he’ll (yeah, Ophi is a he) look good in either this case or this one. Neither seem to have all too powerful power supplies, but I haven’t done my research yet. The problem with whitey there, despite how sexy it is, is that the power supply is of an incredibly ODD shape and quite weak to boot. The only other similar power supply that newegg sells is… well… the same one. So, whitey is out of the question. Blackey seems to be using a regular power supply, but even at 400W, it seems a bit… weak. But again I must first do my research and confirm that I should actually buy another power supply. At least blackey is still pretty cool looking.

But wait Tony! I know computers and that case looks kinda small!

Yeah, it is. It’s a Micro ATX case. Brian got a Micro ATX machine last summer and, while his case is a normal ATX Mid-Tower case, it’s a fair bit smaller than a normal ATX motherboard and… I could do with a size reduction. As stated earlier, I am not going for a high end machine here, it’s not going to need everything a full ATX motherboard will offer (namely PCI slots). Plus, you know, size.

Ugh, I wish I were in Windows so I could whip this up really quickly in Fireworks… I haven’t quite gotten used to The Gimp yet..

It’s not a whole lot, but is definitely enough. Considering that, at the moment, I lay Andy on her side so that I can place a fan on her graphics card to account for the fact that the card’s fan died almost a year ago. It actually keeps it pretty cool, I’m surprised. But yeah, imagine skinny little Ophi taking up no space on my desk. I would have so much room to.. do things with, maybe. It’d be nice.

This was probably a pretty boring post to you not-so technically inclined/interested. I’ve been writing a lot of stuff down while at work lately. Maybe I’ll post that eventually?

And seems very unconventional when compared to C or Java or even Perl.

I downloaded a notification program called Mumbles that takes advantage of dbus messages to display things. Mumbles requires that plugins be written to catch these dbus messages so that they can be interpreted and displayed. It came with a pretty crappy Pidgin plugin that only showed notifications for messages received, and it only showed the generic Pidgin icon. So far I’ve got it displaying typing, idle, status change, and log on/off messages. It also displays icons based on whether the buddy is from AIM, Jabber, or Facebook. I might add the other protocols, shouldn’t be hard (though some may have some oddities like AIM*), I just need accounts on said protocols to make sure I’m getting everything right.

*Pidgin likes to some stupid things regarding its dbus messages: Every sort of message except for the typing one return a PurpleBuddy object, a “name” string, and other various variables, which I can get a whole ton of information from. BuddyTyping(), however, returns a PurpleAccount object and a “name” string. PurpleAccount has “alias” and “name” attributes like PurpleBuddy, which works fine for Facebook. But for some reason pidgin_interface.PurpleBuddyGetAlias(PurpleAccount buddy) returns a blank string, and “name” is their screenname, not the alias I gave them in my buddylist. What makes things worse is that PurpleAccount is a child of PurpleBuddy, and so it seems nigh impossible to get the alias from the mere account object. So I get things like “Sellers signed onto AIM” and “$PAULS_SCREENNAME_HERE is typing…”

Kinda dumb.

Also the Pidgin devs, in their infinite wisdom, decided to throw BuddyStatusChanged() twice, but only when a buddy goes away and only for buddies on AIM. Thankfully! the function returns not only the current status, but the previous status as well. And the “duplicate” throw has both the statuses (statii?) the same, which made for an easy, albeit somewhat frustrating, fix.

Anyway, yeah. I’d say I’ve been doing good with dbus and Python having only started getting my hands dirty a mere eleven hours ago.

6/30/08
11:31
Disabled all Facebook notifcations save for the messages (easy to reenable). The way the pidgin plugin works is that it polls Facebook every so many minutes and updates everything at that time. This would lead to a flood of notifications about people who had signed on/off, become idle or were now available, etc. It added up very quick.
 
 

I think I just got hit with the biggest wave of apathy ever. Here I am up at 4AM, class in eight hours, and I don’t feel the need to go to sleep anytime soon. Just finished the new Futurama movie (The Beast With a Billion Backs, out Tuesday), and I have to say that it’s pretty good. Definitely some sort of message thing going on there, will have to rewatch to pick up on it all. S’all about love. With a tentacle. Who’s a polygamist. Also the League of Robots.

I’ve been having some troubles with Sovereign (formally Frank(enstein)). I copy over the console only debian live install to a USB drive, boot from it, but I am unable to find an install script. OK, fine, we’ll do it the easy way: copy a gnome version to the USB. “Failed to load kernel: linux.” What a jerk, eh?

It’s definitely my graphics card, as Sovereign displayed low resolutions perfectly on my monitor. Well poop.

Did some math while talking to Jason earlier: At twenty-four hours a week, ten dollars an hour, I should be pulling in four hundred-eighty dollars every two weeks pre-tax. That’s nine hundred-sixty a month pretax. That’s… maybe I can finally start thinking about replacing my ailing computer.

Wordpress is saying “Draft saved at 2:05:05 am” even though the timezone is set to UTC-5 and it displays 4:05 am just fine there. Weird. I wonder what it’ll say on the main page when I finally post.

Caught the last forty minutes of the program on National Geographic about Lakshmi, the girl with eight limbs. Neat stuff. Apparently the other limbs belonged to a partially developed, parasitic twin. And right after that? The Science of Dwarfism. This kind of stuff intrigues me immensely. I am so glad we get NatGeo. I don’t think we did last semester, or maybe fall semester.. I remember there being commercials for stuff that I was sad I couldn’t watch because we didn’t get the channel. The Science channel has also had some cool stuff on it, specifically How It’s Made. The glove making process was especially badass: they had a hand glove inverting machine!

I FINALLY found an mp3 of the american Pokemon theme. Kinda lame quality, though. Now to find the japanese opening. Actually, I just found a better quality one. It’s itunes m4a, though. Conversion time!

Done. Much better.

Played some Audiosurf the other night because Casey’s playing it really made me want to. Good stuff. It’s really neat, I’m rediscovering some of the songs I have in my collection.

Sovereign won’t see my second 120GB for some reason. That’s the one with the backup of all my movies and such. This is bothersome. I’ll have to whip out my ide->usb controller card and see if I can’t read it on AndrAIa. Problem is that the USB cable is on my printer currently and that’s an awful lot of work (not really, I just don’t feel like unhooking it because my printer is under my desk).

POKEMON OHHHH YOU’RE MY BEST FRIEND
IN A WORLD WE MUST DEFEND

Perl script worked perfectly once I figured out how the XML libraries were parsing Microsoft’s shittastic XML.

Seriously, what is this?:

<media src="C:\Music\The World Ends With You OST\01 It's So Wonderful.mp3" albumTitle="The World Ends With You OST" albumArtist="Square Enix" trackTitle="It's So Wonderful" trackArtist="Square Enix" duration="99082" />

Shouldn’t it be more like:

<media>
  <src>C:\Music\The World Ends With You OST\01 It's So Wonderful.mp3</src>
  <albumTitle>The World Ends With You OST</albumTitle>
  <albumArtist>Square Enix</albumArtist>
  <trackTitle>It's So Wonderful</trackTitle>
  <trackArtist>Square Enix</trackArtist>
  <duration>99082</duration>
</media>

It’s almost like they’re trying to embed the song in a webpage or something.

Nevermind that the time is soooooo ridiculously wrong. Is it in milliseconds or something? I’m pretty sure m3u uses plain old seconds.

But yeah, the perl script worked perfectly on all my Zune playlists. The only problem is that I now have two music libraries (one in Windows and one in Linux) and changing “C:\Music” to “/home/satoshi/Music” ended up with a couple of missing songs… enough so that I edited the script to “/WINDOWS/Music.” Kinda lame… I really need to consolidate my music libraries, but putting it on one drive or the other… Actually, why do I even have them separate? I remember there being some trouble with colons and that the Zune didn’t read all of my linux directories? But I could be making that second one up, and the colon thing affected a whopping three directories (perl scripts are fun). What I really need is a third harddrive formatted FAT32 dedicated soley to my music. Good thing WinXP allows one to mount drives as directories (though the process is sort of contrived), so there’s no need to change anything in either OS. Huzzah. Now to find another drive :/

Ugh, the sky is lighting up: the first rays of day. Time to hit the hay.

Last edited by Tony on June 23, 2008 at 04:29
Draft Saved at 2:38:33 am.

What could that possibly mean?

I’m debating whether to go to sleep or just pull an all-nighter and go to sleep at a normal time for work on Tuesday. I’ve had a terrible sleep schedule this weekend and this would be a good way to right it out.

Probably going on a trip to the Apple Store today! Not to buy anything, just to look around. Should be fun. Went to Best Buy the other day, those new Apple keyboards are damn nice.

Though I should probably sleep just a bit, my tonsils started hurting more around 1AM or so. They had been fine all weekend too. I highly doubt it will develop into GRAY GOOP COVERING EVERYTHING this time, or even just ew little yellow guys like the first time.

Yeah, sleep it is. I am getting tired.

Casey had a friend over Friday and Saturday. Margie, I believe. Tall, about Casey’s height, I’d say. Totally didn’t expect her to sound and basically act just like Alyssa. Like, personality and everything. It was the weirdest thing. Cool gal (well, she’d have to be if she’s basically Alyssa’s clone).

Things are kinda sad socially. Two breakups last weekend, one this.

Yay Xbox Live! demos. Armored Core 4 is a must purchase, even though we don’t even own the Xbox :razz: I had so much fun with AC3 on the PS2, and from watching Casey play the AC4 demo it looks to be even better.

Microsoft aren’t total douchebags! The playlist format they use for the Zune aren’t m3us, which they should be (why wouldn’t they be? M3us are easy), but whatever. What they ARE is XML. Probably some bastardized form thereof, but just the same Firefox recognizes them as XML and I’m sure the perl XML libraries won’t have a problem with them. Time to write me a perl script to convert zune playlists to something I can use in Audacious (Amarok is still being a bitch and I really don’t need the full-on features of a music _manager_. That’s what the zune player is for, and only with the zune itself.

So Joe wrote practically all of the client-side GUI and server-side backend stuff for the project. We were trying to figure out how to embed the JFrame stuff in a webpage. Eventually we got around the unable to cast as JApplet errors, but it wouldn’t load what it was supposed to display. So I dicked around with JApplet and created a small little applet that shows off JLabels, a JButton, an ActionListener, and even getting a parameter from the HTML applet tag (which will actually be supplied by an HTML form that passes the username/password combo to a PHP script that checks it against a MySQL database to make sure the user exists). Looky there, my first applet. Hurrah.

I sent it to Joe and hopefully he can use it to help him out with the client GUI. It looks like he might have to rewrite the entire GUI. I dunno, I haven’t researched much into JFrame to JApplet conversion.

I absolutely love the layout of the fifth floor SSV South apartments. Well, Joe’s at least. I dunno if all of the apartments are laid out like that, but his was nice.