Goodbye, server. I’ll miss you.

Yesterday at approximately 09:12 PST, my server died. This was bad timing, but wasn’t really unexpected. It’s about 8 years old, and has spent the last 5 or 6 years of its life running Linux. It has only been turned off 2 or 3 times a year, and those times were a result of power outages or hardware upgrades.

The timing was unfortunate, but I managed to get up and running again by the time I went to bed. Yeah, it took all day. I ended up turning my desktop into the server and just put the old drives in it. The server went from a 166MHz Pentium with 96MB of RAM to a 1GHz P3 with 512MB RAM. My new desktop is a 2.4GHz P4 with 512MB RAM. I went ahead and upgraded the video card and CD-RW while I was at it. It’s nice and fast so far.

I’ll have to give the old server a proper burial. It’s been good to me.

Updated: 5-May-2004, 14:40: That’s the last time I write a blog entry when I’ve been awake no more than 10 minutes, especially after getting almost no sleep. Hopefully now, some of the above will be more clear.

Gmail

Being an active user of Blogger.com when Google purchased it, my brother was offered a gmail.com account roughly a week ago. As part of this, after several days of use, he was given the ability to invite two people. One of the people he chose was me.

So far, I’m quite impressed with what Google has done here, though not surprised. When Google sets their mind to something, they seem to usually do it right. The interface is very clean, and nearly everything you see is something you will regularly use. That is quite different from the webmail interfaces I’ve used previously.

I use mutt for all my e-mail, as I can simply SSH in from school and send mail or check discussions. Another reason for using mutt is the keyboard shortcuts. I can get around pretty quickly without using the mouse. Those two reasons are why I currently do not use Evolution for all my e-mail, and the keyboard issue is why I’ve never used webmail systems.

Gmail solves the issue of using my e-mail remotely, which isn’t surprising. It is, after all, a webmail system. What did surprise me was the fact that it has keyboard shortcut support, and let me tell you, it works well. I can quickly jump to my inbox (g, i), read a message (enter) and all its threads (or in gmail terms, “conversations” — more on this in a second). If I hit r, it lets me reply to an e-mail. Hit c, and I can compose a new e-mail. There’s far more than that, and I would link to the list of shortcuts, but it appears you must be a gmail.com subscriber first.

E-mails are represented in an interesting fashion. Instead of threads, you have “conversations.” These look like stacked cards. You can see them below:

gmail.com conversation stacks

The first unread e-mail in a conversation is presented first. Each e-mail shows the name and e-mail address of the sender and the date/time sent, or how long ago it was sent. If the e-mail is partially covered, it will show a snippet of text from the e-mail. Multiple e-mails can be shown at once, or you can hide all but one, if you choose. It’s flexible, and it works. If you’d rather see the quoted text from the previous e-mail, click the little “Show quoted text” link and it’ll just unfold. No reloading or anything silly.

Conversations take up a single entry in the Inbox. You can see a list of the contributors in the conversation, how many unread messages it contains, and then the label (more on that in a sec), the subject, a snippet of text, and the date/time info. When a conversation has a new, unread e-mail, it will appear at the top of the Inbox. Clicking it will bring you back to the conversation view with the unread e-mails unfolded.

Gmail has a hidden frame or something that it reloads regularly. When it does this, it checks for new mail. If it finds new mail, it will update the interface. No more periodic reloading of the entire page, or manual reloading.

Labels are one of gmail’s ways of organizing e-mails. A label is like a folder, except that multiple labels can be assigned to an e-mail. You can quickly set labels on a per-e-mail/conversation basis, or through filters. Clicking the label in the Labels box on the left of gmail’s interface will display all e-mails with that label. For quick reference, each e-mail will have its attached labels prepended to the subject.

Stars are another method of organization. If there’s a particular thread you wish to follow, click the star next to it. It will automatically appear in your Starred mailbox (keyboard shortcut g-s).

The search features work wonderfully, and should be included in every e-mail client. You can put in a simple search for anything and get immediate results, or click “Show search options” to be more specific.

The overall interface for gmail is lightweight, and very responsive. I never find myself waiting for anything, and I can get around to any e-mail effortlessly. It doesn’t behave like a webpage, rather it’s more like an actual application.

Like other e-mail applications, gmail has a handy Check Spelling option when composing conversations. It doesn’t check on the fly, but rather when you wish to check, you click the little link. It’ll replace the textbox with some custom javascript control of some kind, and highlight all misspelled words. The traditional pop-up menu with suggested replacements and an option for editting the dictionary is available for all misspelled words. When finished, click “Resume editting” and you’re back in business.

gmail.com conversation stacks

For those who keep address book entries (Gmail automatically helps with this a bit), Gmail also provides auto-complete in the To: box.

gmail.com conversation stacks

Finally, I’d like to comment on the ads that struck so much controversy. For those who don’t know, when you read an e-mail, “Sponsored Links” appear on the right of the e-mail box. These are often related to the e-mail in some way. For example, a conversation on gaim-devel talking about various IM and networking protocols produces ads for “Tcp/ip Protocols” and “Network Protocol Poster.” I haven’t found them to be annoying, and at least right now, Google doesn’t put any ads in the e-mails you write.

Underneath the Sponsored Links is a list of Related Pages. Sometimes. These don’t always show up, but when they do, they’re usually relevant in some way. However, I think that they may need some work.

Overall, I’m very impressed with Gmail. I will be using it for some time, though it probably won’t be my primary e-mail interface. I figure I’ll subscribe some of my listservs to it and use its powerful search capabilities. And you’ve got to love that “You are currently using 0MB (0%) of your 1000MB.”

Don’t drink the Icees.

As I walked past AM/PM toward the bus stop to head to school this morning, I noticed a HazMat truck outside of AM/PM. I quickly decided against grabbing donuts from there for breakfast, and proceeded walking to school.

Forgetting this morning’s incident, I went into AM/PM just a short while ago with my little sister. As I walked in, I noticed that the far side of the building was covered in a giant tarp. I asked the guy what was up with the tarp.

“We’re getting a new Icee machine,” he said.

“Oh, okay. Why was there a HazMat truck outside?” I asked.

“I don’t know why it said HazMat on it, but they’re giving us a new Icee machine,” he replied.

Projects picking up speed

I’ve been making some rather good progress with both Galago and the Gaim status rewrite as of late. Galago is becoming a lot more stable, and the structure is being more fine-tuned. Interest in the project has picked up as well. I have a guy working on some patches for Galago, and possibly working on GnomeMeeting integration. The Adium, Gnumail (so I’m told), and Proteus projects are interested in using it, so we’ll be getting a MacOS X port soon.

I’m in the process now of integrating Galago into Evolution. Very little work has been done on that yet, as I started tonight, but the results so far please me.

The Gaim status rewrite is coming together, and is forcing me to remove a lot of the old cruft still in Gaim. I don’t plan to finish this before 0.80, but we’ll see.

I’ve been spending a bit too much time on these projects lately, so I decided to learn to draw. I’m rather happy with the first drawing (shaded) I attempted, although I realize it has a lot wrong with it. I can only improve, and I’m striving to do as well as my “Harem” girls (which is what my friends are calling themselves lately).

Speaking of which, at some point soon, I’m heading over to one of their houses so they can use me as a model while they draw. That should be.. interesting.

Finally, a robot slave of my own

The property notification stuff in Galago now works (more or less :). The test program’s status icons update instantly when a buddy in Gaim changes status. Of course, that’s not Gaim-specific. I have small test utilities for manipulating statuses that also work quite nicely.

So, now the next step (aside from cleaning up some code and adding a few more features) is Evolution support! Woo.

On a related note, I just created #galago on Freenode, and have a few people hanging out there now. Hopefully I’ll get a couple contributors. But for now, bed.

Galago Status Update

It’s been awhile since I posted anything regarding Galago, so I’m about due for a status update.

SourceForge handed over the galago project to me, so I’ll be getting a site up in the next couple of days, as well as listservs.

Much of the daemon and libgalago library have been fleshed out. I still have some of the querying and signal stuff to do, and automatic merging of people, but it’s getting there fast.

I recently added a couple of new widgets to libgalago-gtk. One displays a list of services that Galago currently knows about, and the other displays a list of accounts that Galago knows about. An account list can be linked to the service list with one API call, and the account list will automatically be updated when the service is changed.

Galago presence test screenshot
Galago presence test and widgets

I’m in the process of writing the signal/property watch code now. When that’s done, programs will receive new presences and such as soon as they’re known, instead of querying. I haven’t had this functionality since before the rewrite, so it should be neat to see. As soon as that’s done, work on Evolution integration begins.

Ants: God’s little worker

Ah, the ant. They may be tiny, but they’re certainly productive! These small little creatures traverse long distances in order to seek out food for their colony. Working together, they’re able to pin-point where food is and set to work efficiently breaking it down and carrying it back home. What a sight to see. We could all learn a thing or two from them.

But now they’re in my vacuum cleaner.

Some may think living on an ant hill is a wise choice, and though it’s certainly more fun than living in a black widow-infested cave, the vanity eventually wears off.

Tip, ladies and gentlemen. Vacuum cleaners and Windex are not considered friends to the ants, as this colony is now figuring out.

I think I’ll take another shower. It feels like they’re all over me.

Nearing presence goodness

Although I took most of spring break off to attempt to relax (something that didn’t end up happening much at all), I’ve managed to make some really good progress with Galago. The library’s API is for the most part stable, and my work as of late has been with the daemon. Most of the functionality is there as well, though some stability issues need solving. I expect to have those issues fixed within a week. Then work begins on Evolution integration, as well as other applications.

The galago project name on SourceForge has been in use for some time, but the project is dead. I filed an abandoned project takeover request earlier this month, and today (well, yesterday now) was the deadline for the maintainers to respond, so we’ll see how that goes.

If all goes well this month with the Galago work, I should have a release out soon. I’ll get a page up before that, with example code, the details behind Galago, a FAQ, etc. Hopefully it’ll clear up some confusion that a few people still have.

Break Time

I’m on Spring Break as of this week, and it’s a much needed break. Unfortunately, it seems the only thing I’ve done with it so far is try to fix this computer. I decided to put the 2.6 kernel on here, and though it mainly worked, the changes in the keyboard driver and a few other things did nothing but upset me. I tried working around the Linux keycode to X keycode mappings, but I have no clue how the conversion is being done.

Figuring it had to be better than nothing, I grabbed the 2.6.4-mm2 patch and tried that out. The MS Office Keyboard scroll wheel support did nothing to support my scroll wheel, and instead prevented my “6” key and spacebar from working. So, I booted back into vanilla 2.6.4, and was met with minor but still annoying filesystem corruption.

A couple more days of hacking on things, and I’m now back to the 2.4 kernel. I’ll try 2.6.4 in a few more releases. I know my main problem is really XFree86’s fault, but it seems most distros don’t want to upgrade to the new versions due to licensing issues, and I don’t see any obvious fixes.

I decided I wouldn’t code until Spring Break is over, so I could actually have some fun for a change, and have parted most IRC channels and such. Monday, I went with some friends to a budget cut protest in Sacramento, which was a lot of fun. I took some pictures of that, but the memory stick became corrupted. So, I spent my entire Tuesday working off an image of the stick, trying to rebuild the partition tables. Last night, just before bed, I managed to get the images off. I’m not trusting that stick again.

Ah well, BBQ tomorrow, and a get-together with some of the girls Friday. Should be fun.. Just, now I feel like writing code, since I’ve been forced to do that all week anyway 🙂

Adventures with the MS Office Keyboard

For the past few years, I’ve been using the Microsoft Office Keyboard. It was a gift from my mom, as my previous keyboard stopped working one day. Now, I’m sure a lot of people’s first thought is that this keyboard sucks because it’s from Microsoft, but so far, I’ve really enjoyed it. I have the Application Left/Right buttons mapped to switch desktops quickly and easily, and the Cut, Copy, and Paste buttons for making a window sticky, shading it, and launching a terminal. Works well enough.

Until just the other day, I had this all configured through .xmodmap and my window manager settings. However, in GNOME 2.5.x, the keyboard settings are apparently supposed to be controlled by the Keyboard control center applet, and my xmodmap settings are now ignored. My latest build of gnome-control-center CVS even shows a dialog saying that the xmodmap settings will be ignored.

So, I launched the keyboard control center applet and selected my MS Office Keyboard from the list. Perfect, I thought. That is, until I learned that my End key no longer worked, and none of the shortcut keys on the keyboard did what they were supposed to. I put it away for awhile and started manually using xmodmap and resetting the shortcuts every time I launched GNOME, until I had time to actually fix it.

The other day, I decided to fix this. The problem was actually in XFree86’s inet keyboard symbols file, in the Microsoft Office Keyboard definition. After poking around and learning how these files were constructed and what the <I#> and <E#> codes meant, I finally patched up my definition. It was an almost 100% change, so I’m assuming that either the guy who wrote this entry was on crack, or that it was for an older version of this keyboard (unless it’s a newer one, but I kind of doubt that).

I’m mostly writing this so that if any Linux users with this keyboard want it set up properly, they’ll have the information available. I have a replacement inet file available that works with my keyboard. I’d be curious to know if there are MS Office Keyboard users out there that have their xkb settings set to use this keyboard who aren’t experiencing problems.

Scroll to Top