Older blog entries for noda (starting at number 17)

I got fed up with the suckiness of my Link Checker Epiphany extension, so I fixed it. I hope. Well, at least if it makes any mistakes it'll still print semi-sane messages and it won't leave the busy cursor going on forever. Before it was at the point where I was considering removing the code altogether. Now I think it can stay :).

This person is currently certified at Journeyer level.

Wow. I feel like I'm growing up in the Free Software World. Master level, here I come! ...Except I suppose I have to learn how to program well first. Minor setback.

After exploring just about every possible UI design for my New and Improved Epiphany Popup Blocker Extension, I finally found The Perfect UI. It took dozens of hours of coding, elaborate mock-ups and countless discussions, but the final UI seems too simple for words.

It's simple and yet... deep. "View -> [ ] Popup Windows" is a per-site preference -- pretty much like my popup blocker already has been for ages. However, the COOL part is that selecting it brings up all the site's popups, and de-selecting it makes them all disappear. I think this is The Best Way To Do This, and it sure is intuitive. Do I want to see popup windows? Yes? Then I'll enable it. Otherwise, I'll disable it. Simple, and it Just Works.

Also, there's a little icon in the statusbar which represents all the poor popups which were blocked. It's got a tooltip saying how many there are.

At this point, with GNOME 2.6 right around the corner, I'm very keen to get Epiphany extensions more widely recognized and used. I think since their primary dependency (epiphany 1.2) will be widely installed there'll be a much lower barrier to entry for most people. Beyond that, though, I want to set up Debian packages. It's easy to do, but I'm not a Debian maintainer and it doesn't seem easy to become one.

Anyway, if you've got some minutes spare, check out my Popup Blocker extension. Oh, and of course, my Error Viewer extension, which is a killer app for web development. They're in epiphany-extensions on GNOME CVS. You'll need Epiphany >= 1.1.12 to compile them.

And if you like or dislike these extensions, please let me know! Besides fellow Epiphany/Galeon developers, I haven't heard from anyone who's used them.

Even the simplest UI decisions are incredibly difficult to make. Sometimes I wish I had a boss to tell me what to do. Of course, if that were the case I'd end up doing things I didn't want....

Anyway, my popup-blocker Epiphany Extension can open individual popups now, which is cool. It's buggy, which is uncool, and it needs slight restructuring, which takes thought. Thinking is hard :). Anyway, all in all, the coolness prevails.

If I didn't have to do so much schoolwork, I'd have more time to spend coding Epiphany extensions. And it seems to me it would be incredibly easy to bloat my extensions beyond all hope.

I'm considering adding a statusbar (complete with progressbar) to my Error Viewer and putting an icon into every Epiphany window for my popup blocker.... What next? Change the Popup Blocker to handle images and cookies, and give a GUI to remove sites.... These are all cool features, but do they really add value?

So I'm cultivating a lot of respect for those coders who refuse to get carried away. Every day I use GNOME I marvel just a little bit more at how simple it is.

Bugfixing can be a mixed bag. It's terribly annoying when a bug just keeps on biting. But when you finally see the problem, and you know exactly how to solve it, it's like everything is right in the world. And that's a good feeling.

I've gotten rid of all the bugs I found in my Error Viewer (and one I didn't find). It's extremely cool now.

I bought an EPOX 8KHA+ when the motherboard model was new. It lasted until now. Then it decided not to turn on this morning. I feel like smashing it into teeny weeny bits.

Now I have a Gigabyte GA-... okay, I don't know the model number. It ends in "L" and it's got an nForce2 chipset. Works very well, I only need nVidia's proprietery video card drivers. I hate using these things, but I've got to get my UT2003 fix, otherwise I might end up bringing a rocket launcher with me to school some day.

I put an error check into my validator that w3 doesn't do: if XHTML is sent as text/html, the error viewer shows an error message. Now I only have to fix every single site I've written in the past two years....

Who needs the W3C validator?

If your answer is "everybody," you're wrong. It's now "everybody but Epiphany users who've installed OpenSP development headers (and libraries) and a CVS (today or newer) checkout of Epiphany Extensions."

Yes, I've coded what everybody needed but didn't realize: HTML validation built into the web browser. Not only does it display the same output as w3 would, but it validates locally -- which means it's much faster and it works on all pages you can browse to (no problems with cookies, https or localhost; no saving to file and uploading; no privacy concerns). It's like... your very own w3 validator. And it looks pretty.

Temporary problem: it only works on XHTML... or something along those lines. Now I've got to make it work for all the pages w3 does, which shouldn't be hard because the w3 validator is open-source.

"But wait," you say. "I use W3 because I can trust it's correct. How could your extension ever be as accurate as W3?" And there's a simple answer: because it uses the same backend as w3 (OpenSP). As soon as I make its frontend set the same parameters, it will have exactly the same output. For now, UTF-8 XHTML is validated identically. When I'm less lazy, I'll finish the job.

In short, I've coded something very Cool and Original. And that makes me Proud.

I caught a nasty fit of coding recently. It made me write a sweet "Error Viewer" extension for the Epiphany Web Browser. It's very loosely based on Galeon's Javascript Console code, but the cruft and memory leaks are gone and have been replaced by good looks and HIG-ness! (At least, as close as I can manage to HIG-ness....)

The weirdest thing: I don't know if I'll ever actually *use* the extension. I only wrote it to check out Mozilla interaction from within an extension. It works great: the extension even registers a nsIConsoleListener, before Epiphany itself begins any Mozilla interaction.

I only had to submit one tiny patch to Epiphany to let it load .glade files from outside the Epiphany share directory. Oh yeah, this is the first extension to use Glade, too -- any extra dialogs, for that matter.

Eventually, this will be merged into a "Web Development" extension I (or someone else?) will code. It'll have CSS editing, maybe inline HTML editing... tons of great stuff. It might end up evolving into a sort of IDE, with Epiphany's rendering pane becoming split and a bonobo-vim (okay, fine, GtkSourceView) component at the bottom using GnomeVFS to save files if it's a file:/// url.

All in all, the extension is great. I managed to keep code clean (except one stupid hack I'm too lazy to fix) and the extension demonstrates all sorts of things Epiphany extensions can do.

Epiphany is great.

Oh, and thanks to marco for finding the answers to all my questions in under 5 seconds. Marco is a programming God.

Not to mention, thanks to chpe for setting up the Mozilla build framework -- it almost worked, too! :)

8 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!