Archive for tag "Masters thesis"

Huzzah! I’ve defended, and I’ve been given a fairly minor set of revisions to make before the thesis can be accepted. Which is fantastic. I was worried that the defense committee would want to see much more explanation of parsing algorithms, complexity, or some other area that I hadn’t written about in great depth.

All that remains to be done is minor edits on the document, some code cleanup, and then prep for the OCLUG presentation. It sounds like there is some interest from my external on the defense committe in using qcap, which may also result in some nifty work. w00t!

In 19 hours time, I’ll be in my thesis defense. Close to a year’s worth of work on qcap will be on the line, as well as the 122 pages of thesis-y goodness. I’m currently cleaning up my results, trying to get a concise idea of what I can parse, and what I can’t, and how long it takes. Digging back through the data (and having fixed an itty bitty bug), I can safely say that I’m feeling confident. qcap may not be the fastest or most error-free software gracing magnetic media, but it works, and it does pretty much as it’s told.

Of course, the thing I’m having a hard time remembering is that it isn’t about the software: it’s about what I’ve learned, and the itty bitty little addition I’m making to the body of knowledge.

I’ve been weirdly depressed since finishing my thesis. Okay, not since finishing my thesis, since getting the first round of results from qcap. qcap is supposed to be a slick little library to parse network data. It’s supposed to chow down on packets captured from the network card, voraciously chewing through the billions of bytes flying across your average small gateway. It’s the proof of concept from my thesis. And it’s slow.

qcap doesn’t really “chow”. It more nibbles. Delicately. With one pinky held high, it takes delicate little bites from network captures. It takes the time to enjoy the flavour of whatever network stack sent each packet. I had hoped that I had built the parsing equivalent of a fat little kid who would gobble down anything you sat in front of it. Instead, I appear to have built an aristocratic epicurean sloth. I was hoping that the parser would be able to parse a few megs of network data per second, but it looks like it can only handle a few kilobytes at best.

So, with only two weeks until my defense, the wheels are starting to spin up again. I’m looking at the parser design, and I’m trying to see what I could do better. I took a generalized approach, that causes the parser clone itself every time it hits an ambiguous region. I think that I can replace that with an LL(k) parser that will only drop into generalized mode when it absolutely has to; which should dramitically reduce the cost of processing each byte. Grammars in my original parser were interpreted, existing as a structure in memory that was used as an input to the parser function along with each fresh byte; I’m pretty sure that I know how to generate code instead.

I would love to implement the new parser, but there’s no chance I can do that before my defense. After my defense, I don’t know if I will have time.

I’ve finally submitted my thesis. The defense is probably going to occur in late August. Huzzah! After that, I “just” have to make corrections, and then I’ll be able to call myself Master E.

Page count: 121
Word count: 32073

I’d written an additional 23023 words, meaning that I’ve actually used about 58.2% of what I’ve written.

Yup, even though I have a thesis to submit tomorrow, I still have time to procrastinate. I have time to argue with hawks about extending war, tell other people how to date, and read about the math class I wish I had.

I’ve just submitted the (last) revision of my thesis to my advisor. Stats de jour:

Pages: 119
Total used words: 31524
Total deleted words: 22887

57.9% of the text I wrote is in use.

I should have thought of this before. I could auction off words in my thesis for vast sums of money, like the dude and his Million Dollar Homepage. I’d offer n spots, and bidders could offer me money for including some word in the thesis. Since I’m dealing with network traffic, I could even allow naughty words, and just convert them to hex in examples.

Damn. Another opportunity missed!

Anyone following the ongoing saga of the thesis will be glad to know that I’ve moved one step closer to finishing it. I now have a thesis committee, and I’ve applied to graduate. I’m more or less on track to defend in late August, and graduate in the fall. w00t!

Current word count on my thesis:
Visible lines of text: 5066
Visible words: 29772

Deleted lines: 2833
Deleted words: 20906.

And I’m currently at 116 pages. I pity the poor folks who have to read this behemoth.

I think I’ve been spending too much time in front of a computer. I woke up this morning convinced that I had spent the last half hour helping some guy debug his file sharing app. The guy had an oiled beard, and strong, Disney-esque chin, reminiscent of the original movie Captain Hook. I distinctly remember helping the Cap’n replace polling a file handle every n seconds with a select(). I think reading The Pig and the Box before going to bed may have had something to do with it.

Ugh. Only two more weeks, and the thesis should be done. One way or another. =P