Older blog entries for noda (starting at number 9)

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! :)

... is simply the best GNU/Linux distribution in the world.

I converted one of my software projects over to Subversion (instead of CVS) last week. I haven't had an opportunity to move directories yet, but I already love it.

On a similar note, I adore Debian. "apt-get install subversion" -- how much easier can it get! And everything works great right away. The Subversion manual is big and easy to read. I was converted in a whole 15 minutes, and the "cvs2svn" script that comes with Subversion made sure I didn't lose any of my previous revisions. The whole procedure was more painless than lying in a big pile of feather mattresses.

Go Subversion! I can't wait for a 1.0 release. Here's hoping CVS will be replaced entirely, all across the Internet.

Yesterday I noticed when I rebooted into my newly-compiled kernel 2.6, that my memory count only went up to 384 megs. I was a bit surprised -- I thought I had 512. "Well," I thought, "I guess I should buy a bit more."

Today my system crashed. I rebooted... and it crashed again. I began to read error messages... but there were too many to know where to begin. Next reboot, my memory count was 512 megs... so obviously, my memory was defective. Problem solved, right?

Wrong. On that same boot, grub wouldn't even start! It turns out my /dev/hda1 (/) was quite damaged. So... e2fsck.

Well. I remember something about a root inode being damaged. It wanted me to clear it. There was nothing else left to try, so I went ahead. It started asking more and more questions -- too many -- so I started over with e2fsck -y /dev/hda1. Yeeeee-haw. My computer must've spent about 2 hours going through every single inode on the disk... thrice.

I ended up with the most enormous lost+found/ directory I've ever seen. The rest of my root partition was gone.

So here I am 5 hours later, in my newly-installed Debian system. I'm hoping most things work, because I really need to have all this stuff ready in time for school. What a pain in the neck.

Who designed the AMD socket and heat sink combination?

These people should have a special Hell, where they have to install their own heat sinks for all of eternity.

Actually, to save on heat sinks, the Hell could just have a single heat sink. It would take them just about the same amount of time to install.

I had an epiphany a couple of days ago, so to speak: instead of just me and chpe writing every Epiphany extension thinkable, why not make extension-writing such an attractive proposition that nobody can resist?

So I wrote a HOWTO. It's already linked from Epiphany's Project Page and hopefully it'll be hosted there in a few days, too :).

Already, at least one person (lwillis) has used it to start off an extension (a Dashboard hint-finder for Epiphany 1.1). He and chpe helped me iron out all the bugs, so it's a perfect HOWTO now!

Epiphany Extensions has moved to GNOME CVS now. Exciting -- that means I have to get a GNOME CVS account! I'm quickly making my way up the ranks to uberhackerdom.

I always save all my mail in a huge pile and then open all of it only when I'm afraid evil people with big sticks will invade my apartment if I don't.

Today the theme was... money. Lots of money. I got a bill for the Winter semester's tuition. It was evil. Luckily, I also got a check from an education savings plan, a GST refund from the government and an early christmas gift of cash. All very pleasant surprises, they paid half my tuition. But then I paid my VISA bill. And I'm still not done Christmas shopping.

I'm a bit concerned since I made a grand total of $60 during the entire semester. Oh, that reminds me, I have to make an invoice for that. And pay the GST on it.

It all makes me wish for the days when my allowance was $1, and on Friday nights we'd buy $1 worth of candy and be broke and not have to worry about it.

Ick. My Intro to Computers I exam is in less than 2 hours. I'd say that after this exam I'll never look at Java again... but I've got Intro to Computers II next semester.

I'm trying out Seth's Gnome Blog right now. Simple and sweet program.

With help from marco and chpe on #epiphany, I managed to build an entire Epiphany extension, the first one built by somebody who didn't actually write the extensions system :).

It's called "Popup blocker" and lets you allow or deny popups from the specific site you're visiting. It clutters the UI as little as possible: just a small entry at the top of the View menu.

Savannah is down now, so the Main Epiphany Extensions page is down, but I've made a temporary page with the latest source and binaries. Since putting it up, two people have downloaded it in the past two days. World domination is near!

I have grand plans for some web development features in another extension. I wonder if I'll have the time to pull off some of the ideas:

  • Use HTMLTidy's TidyLib to validate the document, maybe highlight the errors with CSS
  • Open the CSS documents linked to this page in a GtkSourceView window, edit and apply new CSS rules on the fly: possibly even save the results using gnome-vfs (which would work for file:/// urls)
  • A rip-off of Galeon's Javascript console
  • A "cell phone display" which shows what the page would look like on a cell phone.

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!