Older blog entries for stevej (starting at number 31)

22 Oct 2001 (updated 22 Oct 2001 at 23:56 UTC) »

I finally saw Delicatessen this weekend and when I get a preliminary version of geekbooks running, I'll write a review and paste the link.

Speaking of geekbooks, I acheived the following this weekend:

  • I have an intermediate schema for Books, Music, Film.
  • I have some of the relationships for people, ratings, and the above three tables.
  • Some ideas for where hotspots will lie. (Of course, this never works out the way anybody thinks it will, I won't know where the hotspots are until after I profile)
  • brandon wiley and I spent some time arguing about the rating metrics with useful output.
  • The beginnings of an RDF dump of implicit metadata [1]
  • Moved from Tomcat to Jetty.

[1]: implicit metadata means metadata not for it's own sake. It's a psychological issue really. Tell people they're creating metadata, and Cory Doctorow's paper on the straw-man of metadata comes to life, but allow people to give their opinion wherever they choose and you suddenly have a much better pool of not-quite-but-can-be-translated-into metadata.

Spent a few hours fighting with the runhprof profiler under Java 1.3 before bondolo reminded me that 1.3 was foobar. Luckily I had a 1.3.1 tarball in CVS and my HotSpot VM Exceptions went away.

Spent some time today writing my schema for geekbooks, as well as playing with Postgres 7.1 on OpenBSD. It's surprisingly fast on a celeron 366, which is the only spare database machine I have laying around after since my first postgres/oracle box died and my second one is holding a production database.

I've been re-reading some chapters from Doug Lea's masterful 'Concurrent Programming in Java' If you've never read it, drop everyhing; sell your house, your kids, your wife and buy this book.

I forgot what a good song 'I am the owl' is. Plastic Surgery Disasters is easily my favorite DK album.

13 Oct 2001 (updated 13 Oct 2001 at 23:16 UTC) »

mod_hash is flying along now that I figured out some of mod_python's less than documented features. Luckily I've done enough with Apache modules that it wasn't too difficult to figure out what was up. Woe be the newbie who attempt to hack at the gates of mod_python... Well, woe be to any newbie who attempts to write an apache module in any language..

I saw Mulholland Dr. last night. I hated it when I left the theater until parts of the movie started to unravel in my head, now I'm not sure if I hate it or not. Lynch needs some new techniques.

gah, I hate being woken up early on a Saturday.

Update: Wow, I actually deleted josh@mreeefs's email to the bluesky list from my mailbox. I so rarely delete any email (even spam) that this warrants mention. MREEEEEEEEE josh, you ignorant jack-off.

Recent events with TinyBlog have reminded me of why I like XP so much. I didn't use it on this project, thinking my project was too small to need any methodology besides good sense. But even projects of less than a thousand lines of code have a real use for certain XP processes, mostly Unit Testing. Luckily Python 2.1 has a unit testing framework built-in (import unittest), which I stupidly didn't use.

I have some big ideas for v2.0, and so I think I'll spend a few days rewriting TB to use unit testing.

Thanks to _azure for helping me clean up the codebase.

Geesh, freshmeat has been super slow on putting my release post up on their front-page.

I released TinyBlog-1.0 today. I also announced it on freshmeat. Hopefully they'll be quick about it. I already have somebody using it.

Things are slow-going on the job front today. I made a few calls. Hopefully I'll hear back sometime in the near future.

Back to mod_hash in mod_python.

I was working on this Apache module in C and have actually had a lot of progress until I had to do some hardcore string manipulation. I'm a total wuss for strings as first-class objects in a language (I'm not spouting OO, I'm refering to linker/loader theory) and C was really sticking it's fist up my patootie. So I put it aside in order to work on a quick program that would boost my morale.

My problem with the Apache module is that I don't know how it's supposed to look when I'm done and C is not the language for rapid prototyping. Therefore, I think I'll give mod_python a whirl. It looks close enough to mod_perl in architecture that I won't get lost.

Also, I wrote my fourth weblogging program today after spending the evening with my wonderwoman. We've been dating for one year this weekend. It's pretty crazy how far our lives have changed in that one year...

Also, I see 30 job postings a day now for the south bay. It was a wasteland 6 months ago. And to think I moved to the East Bay. The south bay is a morgue for the living to quote somebody. Same person, different quote: "you can only get drunk at Sizzlers so many times"

oh yeah. the weblogging program. I wrote it in Python as a CGI and I refactored the shit out of it, so it's actually three seperate scripts now: a reader, a writer, and a script to create a new blog. I started out using the PygreSQL bindings but ended up refactorted SQL out of it entirely! Now I'm just using BerekelyDB files and the anydbm module. Hooray for the power of thinking light! After I put the finishing touches on it tomorrow night, I'll start using it instead of [blogger|livejournal|advogato|flat files].

Here's how I know I'm a real weblogging groupie. Besides having used the abovely enumberated weblogging techniques, I've written my own weblogging cruft in 4 different languages now. Here are the languages followed the reason I stopped using that particular script:

  • Perl - I became sick of it
  • PHP - blah.. who wants to be associated with PHP?
  • Java - Servlets are a terrible architecture
  • Python - Fourth times a charm
Languages I'll probably never write a weblogging program in: Assembly (mod_asm anyone?), REBOL (actually I half wrote one), C++ (blech), CSPm, Objective-C (no reason not to, I suppose)

Languages I'm not writing out as being future blog-whoring tools: C, Smalltalk, Scheme, E, or whatever language zooko or dnm end up writing.

This isn't my best week.

Monday night, a lightning storm took out my DSL, it was finally repaired late yesterday afternoon.

And now I'm sicker than a dog. Some funky lung crud that kept me from sleeping hardly at all last night. I think I passed out between coughing spams because the clock was incrementing by hours instead of minutes.

On the other side of things, 3 days sans internet helped me read (or re-read) the following books:

  • Expert C Programming by Peter van der Linden
  • POSIX Programmer's Guide from O'Reilly
  • Using and Porting Gnu CC by rms
  • Practical C++ Programming (don't ask why...)

But I didn't get very much code written. I watched a lot of Perry Mason, though.

I guess Nyquil and I will be intimate friends this weekend. Hopefully it's gone by Monday.

cruddy human beings and their illnesses.

22 Sep 2001 (updated 22 Sep 2001 at 08:09 UTC) »

While waiting for E's persistence issues to be cleaned up (which will be soon, I'm sure.) I've been working on an apache module to handle hashing of content in a variety of formats: sha1-160, sha1-256, md5 (even though Apache has built-in md5 hashing), and aeshash-256 (originally written in Python by my pal and yours; Bram Cohen).

The idea is that you can also request a file, or a valid HTTP Range of bytes corresponding to the hash of a file.

IOW, let's say you have my hash-handler listening at hash, and you request:
And you would get back a file corresponding to that hash in it's original filename.

I should get Chapweske on the horn about his ideas for what might make this more useful. He's a big fan of content hashing.

It's slow going, I'm brushing off the C books.

I have code which does compile and run cleanly as a dynamic apache module.

No, you can't see it yet. Well, except for this

I (again) realized that just because I'm your peer doesn't mean that you are my peer. Therefore my commentary on circular paths of message distribution is bunk. I wish I had somebody to argue this stuff out with. I end up arguing myself from one corner to another.

Let me clarify; You are in my list of people to forward messages to. If I also happen to be on your list of people to forward messages to, then that's great. But it's merely coincidence if I am.

I'm starting to think that a static list of 5 peers is enough to scale me to a medium-sized network. I spent several hours tonight theorizing about self-growing lists based on various criteria, including fields in the wire protocol that tell you how many peers the person who forwarded you a message has. Unfortunately, everyone I could come up with would eventually force the user into a position of being peers with at least half the network on an elongated time-scale. That's no good.

Please mail me if this doesn't make sense.

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