Happy Y2K+4! Beware the computers that have been turned off the past four years.
Christmas, the Sequel
Rachael and I had our Christmas a few days ago. It was great. She bought me this Final Fantasy 8 necklace that I love and now wear 24/7. The reason for this is because she put the accompanying ring on a chain and is now wearing that as well. Kind of a couples thing, you know? Wearing metal around my neck is taking some getting used to, but I'm not complaining. Definitely a great present :)
She wasn't expecting anything from anybody but me, but my mom, little sister, and someone who wishes to remain nameless got her presents as well. She walked away with a bag full of stuff.
I bought her a sword that she's been wanting for several years, but has been unable to get ahold of. The look on her face when she saw it was worth it. I also got her the "I Love My Geek" shirt from ThinkGeek. It looks great on her :)
Angry Emu, my emulator game menu, now works really well. There are some other features I want to add, but for now, it's a working game menu that looks decent and lets me see all my games, along with screenshots and title screens and cabinets and what-not. Maybe I'll release a version soon, after I finish polishing the UI.
Desktop Integration, Presence, and Related Information Gathering
I've been interested lately in the concepts around full desktop integration, presence, and related information gathering (a la Dashboard. It's a cool area, and I think a lot of improvements can be made. I'm in the process of drafting a specification for a desktop-neutral system for the aforementioned concepts. This should really be something that any application could easily plug into to provide information, and also to request and display information.
I'll speak more about this when I have some solid ideas down, so I don't get ahead of myself and say something that I realize later isn't practical.
On a related topic, Mike Hearn and I are putting together a small site that is basically similar to the Gnome Bounties pages, where they list tasks they'd like to see done for desktop work. Of course, it wouldn't be a bounty system, as we don't have that kind of money. It's essentially an idea bank. We plan to feature desktop integration, application, and packaging tasks, for the time being.
I need to find myself a job. What would be perfect is something dealing with open source development, preferably in the areas I'm interested in. You know, the geek's dream job. Unfortunately, few ever get that dream job. The closest I can find are programming jobs locally for proprietary software, which I would take if they would hire me. Since I don't have a degree yet, they won't hire me as a programmer.
One company said they would if I could be full time and stop going to school, but school is a bit too important to just give up. Perhaps night school... Of course, I'd be working on Windows "dialing" software for custom wireless network connections. I don't know what they need dialing software. They use 802.11b, afterall.
Ah good, I got gnome-blog working again.
Christmas was great this year. I got some nice stuff. The main highlights that I'll mention at this point include Super Mario Bros 3 and Fire Emblem for the Game Boy Advance, a UPS for my PCs, a board game called Vampire Hunter, a power drill set, some books (Snow Crash, Cryptonomicon, Nimh), and some other goodies.
What I really liked about this Christmas is the stuff I got other people. I finally got my mom print-outs of the pictures I took of my little sister Jenna over the years. I gave my brothers a couple books I hoped they'd like and a pack of strategy games for their computers. I gave my grandparents some small things they'd like. Jenna got a Tigger bobble-head and a penguin to add to her wide collection.
Rachael and I are having our Christmas probably tomorrow. I can't wait for her to see what I got her. It's going to be fun.
I went to re-setup my old Visor Edge PDA today, and found it covered with black pixels. Now, to those who aren't familiar with PDAs, a screen full of black pixels where there should be white pixels is considered in the industry to be a Bad Thing (TM).
Being myself, I decided to grab a screwdriver and open it up. I fiddled around with it a bit, reset the screen, fiddled around more with cables, and observed the pixels slowly going away over the period of about 10 minutes. I put it all back together, waiting patiently, and all the pixels finally went back to normal while the PDA was in sleep mode.
However, the black pixels were there when the PDA was "on." Those eventually disappeared as I kept turning the device on and letting it sit. There's a couple faint lines near the bottom now, but that's about it. I'm satisfied I guess. Not that I use it too often.
I got fed up a couple of days before Christmas with my emulator front-end, AdvanceMenu. Don't get me wrong, it's a good program, but there are things I wanted. For instance, to setup screenshots for my games, I've had to press whatever button on the emulator to screenshot it, hand-rename it to the correct name and put it in the right directory, and often restart AdvanceMenu. That was just too much, and locating one file out of all the games in the list was too time-consuming, especially since they used their own widgets and didn't have a scroll bar.
I started work that night on Angry Emu (inspired by this picture). It's a GTK2-based emulator front-end, which currently works rather well, shows the screenshots, title images, etc. As of today, it even lets you play the games! Imagine that.
There's still a bit left to do before I'm satisfied, but I kind of wanted a break from my other projects, and didn't want to use AdvanceMenu much longer.
Before I offend anybody who may work on that project, let me say I love what they're doing over there, and if I had an arcade system setup, I'd use AdvanceMenu. It does the job it's designed for. It just doesn't do what I want right now :)
This is getting a bit long, so I'll save some of the thoughts I have on other things for another entry.
I have one last final today in History. The Animal Science final didn't go so well, and the Art Appreciation final didn't go as well as I had hoped (though still not horribly bad). This History final, though, is a toughie... I had 80 pages to study, and had the other finals to study for too. We'll see how I do, but I'll probably end up taking this again another semester.
Lord of the Rings
Rachael and I are most likely going to see Return of the King tomorrow. I'm really looking forward to it, partially because she and I haven't had much time together outside of school for awhile, and partially because it's Lord of the Rings.
I'm tempted to go on about how great she is right here, but I have to head to school and if I did that, I'd miss the bus :)
Galago - Top Secret Technology (TM)
Okay, well not top secret, but I have an idea for a nice little system to better integrate things in the GNOME desktop, and any others that wanted to participate. I need to speak with Nat Friedman about it, but it should be rather cool. More on this after we talk and I have some drafts of what it'll do up.
The API rewrite is going very nicely. Still doesn't do much, but the framework is nearly complete, and I'll soon be able to do the archive modules, and the local file system implementation. I'm giving it another month or two, since I don't know my upcoming schedule just yet.
Monday is the beginning of finals week. I have one final Monday, one Tuesday, and one Wednesday. Then I'm finally done (for the semester). Unfortunately, I've lost all motivation to even study, but since I'm building all of GNOME 2.6cvs right now, I may as well go do that.
I'm hoping to do some work on GNOME soon, though I'm not sure exactly where to start. I have a patch (untested, because I'm letting jhbuild build all of GNOME cvs right now) that adds support for the Actions in .desktop files. Basically, when right-clicking a launcher item with an Actions line, you'll get a menu entry for each action.
libcomprex in CVS is finally ready to begin building some modules against, though they won't do much yet. The new API is progressing nicely, and is far better than previous versions. It feels a lot cleaner to use, and should work better and do more, once finished. I still have a long road ahead of me, as I must convert all of the old archive modules over to the new API, as well as finish up the API. I'm hoping to have a development release before the month is up.
Another sad loss...
I came home from school to some really depressing news. Ettore had passed away. I'm sorry to say I never met him or talked to him one on one, but I knew about him, and would have been honored to know him better. I was planning on contacting him soon about one of his projects. Amazing how such tragedy can happen so fast...
I came home from school today a little surprised to see my bandwidth clogged and my screenshots of the Gaim/Evolution integration/synchronization plugin up on gnomedesktop.org. It was pretty cool :) Now I just hope it gets accepted into Gaim CVS, but I'm still not betting on it.
Work is going well on this. It'll be awhile before it's anywhere near what the old libcomprex was, but it's getting there, and is far easier to maintain and use. It's now GObject-based, replacing my own limited object framework. However, it's still a pain to write this library, due to its complexity.
The new filesystem abstraction framework will help replace the really ugly algorithms needed to open archives inside archives. Even the local filesystem is represented by CxLocalFileSystem, a subclass of CxFileSystem. CxArchive is also a type of CxFileSystem. Each CxFileSystem contains a list of all file pointers belonging to files in the filesystem, and all CxFileSystems existing underneath the filesystem.
Under the old design, all file/archive access functions would go through one evil file of code in a horrid file named io_internal.c. Depending on how you call the internal function, and what is contained in the path, you could get a CxArchive or a CxFile. However, when destroying the object you receive, there is no way to delete every other object somehow associated with that one for sure, without all these reference issues and memory leaks and such.
Now, under the new design, you always have, at minimum, a pointer to the top-most CxFileSystem that you're working with. When you destroy this, it destroys all node references under it, closes all file pointers, and then destroys all CxFileSystems under it as well. That in turn destroys those things under that. The reference problem goes away, and it's pretty clean. A lot cleaner than the CxContext I was about to implement for the old design.
Once I have most of the base written, I'll migrate all the archives and replace the old file scheme loading stuff (ftp, http, etc. access methods) with CxFileSystem implementations.
Things will change of course from the old API to the new one. In the old one, you could access a README.txt nested deep within an archive in an archive in an archive with one command. In the new API, you'll need to grab an instance of the local file system and then access it with a pointer to that. Not much harder, and far cleaner.
Well, tomorrow (actually, in just over an hour) is my birthday. I'll be turning 20. I'm not actually doing anything tomorrow, since I did stuff last weekend, so it's going to be a bit of a boring, miserable day. I'll probably either avoid home, or work a lot. That sounds fun. Maybe I'll buy myself something.
Once again with the lack of entries.. Ah well. I've been working on a few things lately. First, GNUpdate has been getting a rewrite. libcomprex's design was flawed, and is getting a new design, and a glib backend. This will prompt redesigns of the rest of the libraries, after libcomprex is done. I can finally get this project back on track.
I've been working on the GNOME bounty that syncs Evolution with Gaim's buddy list. It's rather cool, and works well. I finished it a few days ago, and am just waiting to hear back from The Powers That Be on the two projects.
I'm contemplating doing more work with GNOME code, and maybe contributing to a couple projects. I like the idea of integrating everything, and will probably work toward that.
Wednesday the 10th will be my 20th birthday. However, this weekend was my celebration of that. Saturday, I had a party with some of my friends. We went bowling, had some Mongolian BBQ, cake, and played games over here. It was a lot of fun. I wish it could have lasted longer, but then, all good things must come to an end :P
My girlfriend drew a picture of me, which I love. Her sisters also drew me some cool pics. I wish I could draw as well as them. Megan gave me an evil Pikachu money bank. It confused my sister a bit, but I thought it was funny.
Today, I had a family birthday. My girlfriend, unfortunately, wasn't able to come. We went to an Asian restaurant, and I got a replacement electric blanket (my sister somehow broke the old one), and an HP PSC 1210 scanner/copier/printer. No USB cable, though, so I'll have to pick one up.
I was supposed to see my dad tomorrow and have a birthday lunch and stuff. Howver, he just called a few minutes ago and told me he won't be able to make it this week.. Sucks.
I'm actively trying to find a way to make my actual birthday eventful in some way, since everything happened this weekend, but I'm currently not coming up with anything. Oh well..
Back to more code, I guess.
That'd be because we supply the Gaim win32 version upon release. We also supply the RPM, which you should be using instead of Fedora's. Yes, it's not in an apt feed, but downloading it once every couple weeks is easy :)
Nearing completion.. Only a couple more pages, and one more day to work on it. I'll sleep a lot easier when this is finished. I should probably sleep tonight so I won't feel so sick tomorrow.
Can't wait to see Rachael. One day, and I already miss her. At least I got to talk to her on IM for a bit. Sometimes I can't believe how lucky I am.
I haven't posted much lately. I really should work on that.
Things have become quite interesting lately. We have some news coming that I'm not sure if public yet or not, but I myself am working on a few Gaim-related projects.
First, Gaim for Qtopia v0.4 is about to be released, featuring message notification and beautiful support for 640x480. It makes me want to write a similar UI for my Linux box.
Second, I'm beginning work on a text-based UI toolkit called patui, which will be the base for a console gaim. Unfortunately, writing a UI toolkit takes a while, so I'm not sure when work on nc-gaim (ncurses-gaim) will start.
We're hopefully releasing gaim 0.73 soon. It was delayed due to some logging bugs we discovered, but the sooner we can get it out, the better.
Adium is using an experimental version of our libgaim in their Adium IM client for MacOS X. I'm really looking forward to trying that out :)
Things with my girlfriend have been great. We've now been together over two months, and I don't think either of us have any complaints :) We'll be having a kind of Christmas together sometime before or after Christmas. I'm looking forward to it. I think she'll like what I got her.
School, on the other hand, is nice and stressful, as always. I have a report due Friday, and a small one due tomorrow. I've been fighting the flu, but now it's kind of winning the fight for the moment. I didn't even attend school today, which is too bad because I really needed to. I'll probably continue with the bigger report in a few minutes.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!