Older blog entries for snorp (starting at number 13)


I've modified the nautilus properties dialog so that you can add mime-specific pages to it, using the existing NautilusView stuff. It seems to work pretty well. I created a quick and dirty hack for testing it which shows mp3 and ogg metadata (title, artist, album, etc.). I think I'll try to get jorn to put it in monkey-media when I'm finished with it. I made a very small modification to the notes sidebar, which makes it also work as a property page. Also, Alex has already started on an image properties page (sweet!).

I saw that there was a story about this on gnomedesktop.org. I expected to see constructive comments about it, but sadly, it seemed like most people felt like flaming instead. Why can't people just say "thanks"? It's so much better to hear that instead of "konqueror already has this", or some such nonsense. I was especially saddened to read the stuff people posted in response to the excellent interview Dave and Alex gave. These guys really do work very hard, and they have always been helpful to people like me. Sigh.


I sign up for spring classes next week. Wow, my very last semester . I have to take 3 CS classes to graduate, but I want one of them to be independent study. This will be great, since I could conceivably do some project for GNOME and school at the same time! I have no idea what I want to do, though. I have to decide before Tuesday, so I'd better hurry up. Suggestions?


The egg-recent patches have now been committed to nautilus and gnome-panel, which is pretty cool :) Also, it seems that file-roller is now using it. So far, most of the feedback has been positive, however, people who don't have FAM installed aren't seeing the panel menu update properly. I expected this to some degree, but apparently I've underestimated the number of people who don't have FAM (the recent-files code uses gnome-vfs to monitor the XML document that the list is stored in (gnome-vfs uses FAM for this), and when it changes it updates the menu). I thought an easy way to fix this would be to just make FAM a non-optional dependency, so I suggested this to some mailing lists. This didn't go over very well. In fact, some people had nearly violent reactions to the idea. Sigh.

So, in light of this, I've begun implementing a different monitoring backend for the file method in gnome-vfs that will use polling instead of FAM. Right now, it only works for files. This sucks, since I think the primary consumer of the gnome-vfs monitoring stuff is nautilus, and it uses it to monitor directories. I probably need to make that work if it's going to be useful.

Did some more hacking on the emblem sidebar. Now you can remove and rename emblems through a context menu. This is nice, since I don't think you can do these operations with any of the other emblem browsers. I should probably add it to them too.

So, I've switched from Debian unstable to RedHat 8.0. I am pretty happy with it. I think the availability of apt for RH is what eventually pushed me over the edge.


Mark reviewed my recent-files code, and gave me some good comments/criticism. He even did some cleanup/optimization work for me. So now, hopefully, he will accept my panel patch adding the recent docs menu. I'm starting to get a little nervous now about the recent-files stuff actually making it in to 2.2. It still hasn't been moved to a stable library yet, and also the feature freeze for 2.2 is coming up rapidly. AFAIK, only 2 apps are using this code, and that's only because I patched them myself. If it doesn't make it, it's only my fault, but I've been working on this for like 6 months so it's kind of pathetic. :/

I implemented a sidebar for nautilus that displays the available emblems, and lets you drag them to files/folders. You can also drag random images from the file manager to the sidebar to add those images as an emblem. Alex helped out a lot with this....he is so cool. Today, I made it work with web browsers (so you can dnd an image or a link to one to add it as an emblem). This limited amount of nautilus hacking was really fun. I want to do more, something less trivial, but haven't really thought of much yet.


I've added some cool stuff to the recent-files code. alex has converted nautilus to use the icon theme spec, and has also written some code that lets you get the properly themed nautilus icon for a given mime type. This kicks ass, since now I am able to have icons in the recently-used menus. I have to wait to commit this, though, since there is a pending GEP to get Alex's code moved into libgnomeui (sigh). Also, I've moved a bunch of stuff from eel-vfs-extensions into gnome-vfs, so now I'm able to use all the nifty string URI manipulation functions to (hopefully) fix the nasty UTF-8/unescaping issues I was having.

15 Sep 2002 (updated 15 Sep 2002 at 07:22 UTC) »

Did some more panel hacking, and came up with some patches that add recent item menus for both applications and documents. I think it looks pretty good. Also, removed the libuuid dependency, so that should make things go down a little smoother.


Added IR remote support to Rhythmbox and Totem. I used lirc for rhythmbox, and it was a _bitch_ to set up. Sadly, even though having the IR stuff is cool, hackers are probably the only people that will be able to make it work. Also, squeezed my recent-file code into totem, so hopefully it will get some more exposure that way. While doing this, I discovered that the gtk view is totally borked if you have GtkImageMenuItemS in the menu. I definitely need to fix it, but I am apparently too lazy....


I implemented monitoring for EggFileSystem, and did some gedit hacking. Paolo has managed to recruit some more developers on gnome-love, and I've talked to some interested parties on IRC. This is good, since I am starting school again next week and won't have much time. Plus, it seems to be increasingly more difficult for me to be productive at all anymore, so maybe some others can help pick up the slack.


Ok, so using a property on the root window for notification was a bad idea. I switched it back to file monitoring. It works ok, I guess (found a workaround for the multiple notification thing). I have updated the spec finally, and also committed my current code to libegg. I suppose the next step is to get people to use it so we can see what kind of API problems and bugs they run into.

One thing I would like to add to the recent-files stuff is the ability to have the icon associated with the mime-type of the file appear in menus. What I really want is to be able to get the themed icon that nautilus uses, but that doesn't look to be possible without copy/pasting a large portion of nautilus. Supposedly, Seth has some metadata API to add to gnome-vfs that will include this stuff. So, I guess I will have to wait.

Sadly, no gedit hacking lately. I should do some tonight. I have some bugs to fix in the BonoboObject interfaces.

While I was poking around in libegg, I looked at andersca's fileselector/filesystem stuff. Most of it seemed pretty straight-forward to me. I quickly banged out a gnome-vfs filesystem object and it seemed to work well. The new file selector is going to kick ass.

Oh yeah, I also hacked together a patch to add a "Recent Documents" menu into the panel. Of course, the test apps are the only thing that put stuff in there now, so it is not terribly useful.

More progress in gnome-recent, albeit slow. I implemented a semi-non-broken notification mechanism. Previously, it was just monitoring the file with gnome-vfs, but that sucked since I was getting two notifications per single change (truncate, write). Not good if you have a big list. Now, I just use a PropertyChange X event on the root window for notification. It works well, but the bad part is, GnomeRecentModel now requires an X connection, and depends on gdk. Sigh. Maybe it will end up being ok though. Also, I thought about adding some API that allows filtering the list based on URI scheme. This would allow you to see only the recent mails sent, or only the recently used ftp servers, etc. Maybe that would be useful.


I am finished with school for this summer session. I am pretty happy, since for once I got decent grades. Only a brief respite though until the 18 credit hour marathon I have coming up in september.........I can't wait to graduate.


I've added a semi-cool feature to gedit that's similar (if not identical) to the "bookmark" feature in TextPad (I think kate also has it). I developed a healthy hatred for the GtkTextView API for drawing stuff in the borders in the process. I am not totally sure what I would do to improve it, but if you want to have any flexibility in the stuff you draw in the border, the current API is difficult to use. I need to find a way to make it better so plugins can put stuff in the border too. I had a mega-crack idea for a feature in gedit: vi key bindings. I'm not sure how far I would take it though (probably just the very basic editing features), and I'm not even sure I would use it. I actually don't use gedit that much at all, since it doesn't do syntax highlighting or auto-indent yet (but it will soon!!)

My gnome-recent stuff is coming along well lately too. I've updated the recent-file spec to use an XML document for storage, so I'll be submitting that to the freedesktop.org guys again soon. Hopefully some more people will comment on it this time. One of my key concerns right now is performance. If the list gets to be really large (like > 1000 items), it takes a while (almost 0.5 secs) to do inserts. Reading the list is almost as bad. I would like to use a separate thread for this part of it to avoid blocking the GUI, but I haven't yet found a way to use threads in GTK without totally horking things. I am obviously doing something wrong.

4 older entries...

New Advogato Features

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!