Older blog entries for stevej (starting at number 26)

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:
http://chomsky.sieve.net/hash?sha1-160=big_fat_hex_hash
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.

17 Sep 2001 (updated 17 Sep 2001 at 23:14 UTC) »

I woke up to a nice present this morning. A new version of E!

Expect much whisper progress between now and when I find a new job.

15 Sep 2001 (updated 15 Sep 2001 at 08:12 UTC) »

Sometimes it takes drawing a picture to make certain things painfully obvious. For instance, I thought that having a peer of networks who only talked to two other peers was a good idea until I realized, after drawing a picture in Dia, that when sending a message to your two other peers, you would only have a network of depth 1... duh! You end up with a circle. Not good. Not at all. Here's the picture.

I've been watching a lot of TeeVee lately. Ms. Stacy noticed that Jeri Ryan on Star Trek Voyager has big jugs. I pulled my amazing skills of knowing stupid TV trivia tricks out of my bag. My pal Rosco noted when I lived back in Oregon that I could always place somebody in a TV show as having been on another show somewhere else at sometime. He used to laugh at me but I could consistently pull it off. Tonight I noticed Scott Thompson from Kids in the Hall and the guy who played Elaine's boss in Seinfeld. No alien foreheads could fool me!

And now we know why I don't watch TV anymore... I'd rather sic my obsessive-compulsive disorder on programming langauges and punk bands.

Even me, in my great media blackout, know every little detail about Tuesday terrorist attacks.

My uncle was in a meeting at the Pentagon on Tuesday, luckily he's fine.

In other news, I wrote a Python script to work as an introducer for Whisper

I'll post it tomorrow.

Enterprise JavaBeans are the muddiest, half-assed architecutre I've experienced in a long time. If I was one of the Sun engineers who built this crap, I'd be ashamed.

Going to finish my brainbench certification in it next week.

shoot me.

It dawned on me that the E promise architecture is basically multicast asynchronous callbacks masquerading as immediate return calls. It's the second kind of obvious, where it's obvious after you figure it out or somebody tells you.

I'll have to ask the list about their opinion on that.

They say that there are no dumb questions.

only stupid questioners.

Boy, ignatz has some teen angst left in him. Off to Fight Club for him. ;-)

In non-geek news, I saw Apocolypse Now Redux the other night. huzzah! Fuck the critics, I thought it was great. Yes, it was 3 1/2 hours. No, it didn't feel long or bloated.

Played with Process Algebra, made some breakthrough progress on my parser, playing with some MOM b2b tasty treats.

Oh, and I moved my desktop (again) to linux. Running redhate 7.0 with the nVidia binary drivers, (and locked up my machine good a few times overclocking my video card with nvclock). kernel 2.4.9 is on here. The documentation lies, my full gig of RAM is not seen without the BIGMEM patch.

fuckers.

more tomorrow (today) after sleep (coma).

You know what's weird? I installed Scheme on my desktop before I even installed a JDK and E. No, it means nothing.

Spent the weekend with my girl. Forgot my Go book with her today. :-( Just when I learning the intracacies of Kageme and Two Me.

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