Older blog entries for Erbo (starting at number 33)


Important information for everyone that uses the GNU Pth library, and has just upgraded from 1.2.x to 1.3.x, and whose code uses PTH_EVENT_FUNC event types: There is now a third parameter for that event type, which is a pth_time() value telling the scheduler how frequently to call the function (such as pth_time(0,100000) for 10 times/second). Omit it and your code may die in subtle and frightening ways when you least expect it. Since I just spent most of the day groveling through the inner workings of the scheduler to discover this fact, I thought I'd share it with everybody, in the hopes that nobody else will have to go through this agony.

And I haven't even mahaged to fix the problem I was working on yesterday: midway through the afternoon, I had to drop everything and go take Pamela to the ER because she'd had one of her migraines. Now I wonder if I'm going to get anywhere close to done on that one before I have to leave...

And I'm not missin' a thing,
Watchin' the full moon crossin' the range,
I'm ridin' the storm out, ridin' the storm out
(REO Speedwagon)

For now, it looks like I've ridden my own particular storms out. icq-t is behaving now, and should no longer be leaking memory now that Jer has fixed etherx. No buzzes have recurred recently. Also, I have further improved the autoconfiguration system, and I'm now using temas's standard macros for Jabber and Etherx configuration. Mucho better!

Webb's stock price is showing signs of life. Of course, I'm in mid-blackout again...not that it would matter, as I need to sell for enough to pay off enough debts that someone will give us a car loan for a Subaru Forester...

Steve's got a meeting in here in a bit. I'll take that opportunity to go over to Costco and get Pamela's scrips, then go home and pick up a bill to be mailed.

Later: The buzz appears to be back. I'm now using fgrep to split up the logfile that resulted, trying to locate where the buzz began and what happened when it did. In the meantime, now two people have reported that bizarro error that kills the transport on startup with a PTH "scheduler internal error," and I haven't the first [REDACTED] idea why it's doing that, because I've never seen it happen myself. Not once. AAARRRGGGHHHH!!!!!!

Slightly later: OK, I have a pretty good idea of why the buzz is happening. PTH_EVENT_SELECT is apparently a pile of crap. Time to rewrite the guts of libicq-erbo so it can export PTH events for each socket it uses. But that's for tomorrow. Still no clue on the other thing, though. Why the [REDACTED] does this have to be so [REDACTED] complicated?!?

Yeah yeah and all that.

The ICQ transport is progressing nicely. I just figured out the format of "authentication denied" messages coming from ICQ, and also just gave the ICQ library (libicq-erbo) its own autoconfiguration scripts. Guess the Gnu Autoconf documents don't quite look like they're written in Minbari anymore...

And now if I could only find the latest buzz. I may have located what may be the place, and it may have to do with the funky need to do two "selects" on the ICQ connection because the PTH_SELECT_EVENT doesn't seem to modify the selected filesets properly. If that's it, I should just put some code into libicq-erbo to use PTH events for multiple-socket management instead of using the PTH_SELECT_EVENT.

I also spent some time today explaining the guts of the transport mechanism to Catherine, one of our technical writers. She's a nice person to work with, and I know from long experience that good tech writers are worth their weight in iridium, so feed them well.

Oy gevalt...so many things upcoming for Jabber Inc...so little time...

I'm also looking at this piece of code called NanoXML; if I can figure out how it works, perhaps I'll wind up using it in JECI.

Just read that article about naming projects...that reminds me, if we ever do some sort of Jabber-to-Apache integration project, I think Jer wants to call it "Arapahoe." It's also the name of an Indian tribe, and is fairly similar to "Apache," and it's also a fairly common name in and around Denver, because the Arapahoe (actually "Arapaho") Indians were the first settlers of this region. So we have Arapahoe County, for instance, and Arapahoe Street downtown, and Arapahoe Road down south by the Tech Center. Besides which, I think he just likes the sound of the name :-).

OK, I know, I'm being lax in my diary entries. But I've been very busy with the ICQ transport and other things; only now (since everything's crashing anyway, and it's jer's and temas' fault) do I have time to break away and write again.

This is now "Hell Week," the week before the 1.0 release, and the ICQ transport still has some odd issues with it. I've remedied some of them, but others are tough to remedy without getting someone to make it happen...and others I simply can't do anything about without knowing more about the ICQ protocol. Meanwhile, Dave and other people are having JECI issues, which I can't do anything else because that transport is sucking the life out of me!

I had to reconfigure my Linux workstation so that it could run Gabber today. Since it was an old Beta 1 release of Corel Linux, it needed a LOT of work. I pretty much wound up upgrading the whole system...and now it's a fairly vanilla Debian-frozen box with GNOME and Enlightenment. Oh well, it now looks a little more like my box at home...

Looks like TSBandit will be coming out here later this month. Well, I'm sure I'll enjoy meeting him...

Oh, and I still need to pay my taxes for 1999. This sucks, because that relocation allowance Webb gave me counted as income, and they didn't withhold anything from it. I may wind up having to call my brother and see if I can borrow some money so Pamela and I can eat for the rest of this month...

The CLIQ show (Colorado Linux Info Quest) was a great production. I spoke to many people, preaching the gospel of Jabber, and got to hand out many of my Goth business cards. I also raked in the swag (both freebies and stuff I bought from the LinuxMall booth); the take included:

  • Various brochures, flyers, and whitepapers
  • Three pens (two of which I gave to Pamela, including a Sybase one filled with purple ink)
  • A Maxtor pocket penlight (Pamela got that too)
  • A very nice solid metal Sybase keychain (also went to Pamela)
  • A Linux bumper sticker
  • A sheet of Penguin Power stickers
  • Two tins Penguin Caffeinated Peppermints
  • Five new distribution CDs
  • Three Tux dolls (one foam rubber one from SGI, one small stuffed one with a suction-cup hanger, and one larger one with a Linux Weekly News button)
  • A VA Linux poster
  • Three "LNX" oval stickers from LinuxCare
  • A few additional buttons
  • A Compaq Linux license plate (you know, the ones that say "LIVE FREE OR DIE" above "LINUX", done up in New Hampshire green and white)
  • One resume, to be placed on Steve's desk Monday morning

Aside from that, I got to see Jon "maddog" Hall's keynote (I know another guy nicknamed "maddog," this is confusing), sit in on a BoF session about OpenLDAP, and watch a speech about Linux businesses. And I got in an interesting discussion with an employee of the Defense Information Systems Agency over lunch. And I played some tank game at the Xi Graphics booth that looked like BattleZone on steroids. (Incidentally, that attracted the attention three potential prospects, two DU students and a conference staffer who thought I was Jer for a minute. I must remember this technique in future. :-) ) And I learned about the meetings of the local user group (Colorado Linux Users and Enthusiasts) as well as the local 2600 meeting (it's on a nonstandard day of the month, so the magazine doesn't list it).

Sadly, the "Email Garden" seemed to be out of order, so I couldn't ssh out to one of the webb.net bozes and get on the channel to give a live report. And one of the stupid Marriott payphones ate 70 cents of my money, then, when I did manage to get through to Pamela, it cut me off after 5 minutes. Whatta ripoff.

But I had fun today. Now sleep tonight, and then probably a lot of errand-running tomorrow.

Cool...I got Goth business cards :-). The temporary business cards are black, with the Jabber "little man light bulb" logo designed by Jenn and Deb, and all my contact info. Some of it is wrong. Oh well, more of it will be wrong in a couple of months when we move to Wynkoop, and there's enough info on there so someone can find me.

icq-t now seems to be holding up a little better. There's one more weird, not-as-serious buzz in it I can't quite track down yet, but at least it's not seriously sucking CPU now. Or not as much. And JECI needs vCard support still; supporting the full vCard DTD is gonna be a bitch and a half...

Well, my stock window is now closed for a month. Hopefully the price will recover by then. Pamela wants to have her Subaru Forester in time to drive it out to New Hampshire...

I need to turn in; gotta get to the show by 8 AM tomorrow. It's my turn in the barrel here, I guess...

Another buzz has cropped up in icq-t, but this one's not as serious, I think. It doesn't seriously peg the CPU; I came in this morning and the process showed a "time" of 0:54 instead of 874:23 or some ridiculous figure like that. The issue seems to be repeated calls to peer_read_init_packet in the libicq-erbo source, when establishing a peer connection. I better instrumented that function and am now waiting for the problem to recur.

Meanwhile, I partially finished moving JECI's InfoQueryPacket class away from depending on a <query> tag as its child. This is important to properly support vCards. I need to finish the 0.9 updates pronto, as Dave Scott will be needing JECI for what he's doing.

Meanwhile, genesis, our first jabber.com development server, should be up today; I'm waiting for Robert in NetOps to tell me it's wired up. It's a VA Linux FullOn 2x2 dual-P3 box; sweet! (The production server, hendrix, will be a quad-processor box, also from VA). Pamela also said to make sure we include the name "aerosmith" in our list of "future" machine names; she loves Steve Tyler. (Oh, in response to kelly's concern, who's going to sue us over machine names? I don't see Paramount going after outfits that have host names taken from Star Trek, for instance, and, given Paramount's track record in the legal department, they'd be the ones suing over host names, if anyone. Speaking of which, if we set up a Beowulf cluster, I want it to be named after Borg, with nodes named "locutus", "hugh", "seven", "crosis", and so forth...)

It's snowing outside. Two days ago we had sunny clear skies and temperatures pushing 70 (or 21 Celsius). That's Denver weather for you. The only thing you can do is expect the unexpected.

My business cards should be ready tomorrow sometime. Then I should go down to the hotel and pick up my badge, so I can be set to go at the CLIQ show right when it opens.

Later: I see that, when GnomeICU reads peer-to-peer packets, if it finds 0 bytes available, it just closes the connection. The original libicq does the same thing. I just modified the functions in peer_receive.c to do that. Hopefully this will perform a "buzzkill" once and for all.

Snowing harder now. Dave's not used to this :-).

I think I've found the icq-t buzz. It was in my ICQ_free function in libicq-erbo, which frees a connection handle. Part of the process is unlinking the connection handle from the master list of connections. Well, guess what? My loop for finding the predecessor node forgot the essential "p = p->next_conn;". D'OH! Can you say "infinite loop," boys and girls? I knew you could!

The server at jabber.webb.net is now handling ICQ traffic for the main jabber.org Web server. That's how I was able to spot the buzz, by getting lots of users. Now let's hope nothing else crops up...

We had an entertaining discussion this morning about naming servers for Jabber, Inc. (jabber.com, as opposed to jabber.org). We settled on the theme "70's rock bands." The first two servers will be "hendrix" and "genesis". We'll add "zeppelin" as a QA server later, and we've got another bunch of names waiting for more servers. I also sent the list to Pamela for more input.

With the advent of open-source Doom engine clones, I've been fiddling a bit with PWAD construction at home. I did this a while back, but now I can do it under Linux with open-source tools. I'm working on a level map containing a huge cave as its centerpiece, along with interesting things like teleporting monsters. It should also make for a good deathmatch level...

On Saturday I get to go to the Colorado Linux Info Quest show, down at the Marriott in the Denver Tech Center. Partly, it's to look for possible new prospects for Jabber, Inc. (They're printing me up some Jabber business cards in a hurry.) So if you're going to be there, and you want to work for Jabber, Inc., keep your eye out for me :-).

Now I need to get back to JECI, to update the Info/Query handler to the new standard and try and do something about vCard support. Maybe now I can finish that part.

I'm getting lazy. Must stop that.

icq-t is experiencing a random "buzz" every so often where it suddenly pegs the CPU. It should definitely not be doing that. I've tried a few times to locate it (and incidentally uncovered a couple of other bugs, including an issue with the ICQ peer-to-peer protocol versions), but I can't find it yet. (But I did make a couple of advances in the meantime; icq-t now speaks client-server protocol version 5, and it does "contact messages" back and forth (they're jabber:x:roster messages on the Jabber side).

Jer, temas, and DizzyD were all here yesterday and today for meetings regarding Jabber, Inc. Somehow, they all remind me of the gang I went to high school with. (Which is cool; I hung out with a pretty good bunch.) We've made some progress in determining what needs to happen on the open-source and commercial sides.

Yesterday was Steve Adams' retirement bash, at the Denver Chophouse, just across the street from where our new offices are going to be. Don't think he's entirely out of the picture, though; he's still the largest owner of Webb stock, and he's keeping an eye on things at Webb, including Jabber, Inc.

Oh, that Avs game last Saturday was cool. They lost to the Red Wings, 4-3, but it was a well-fought battle. And I got some goodies from the souvenir shop afterwards, including a beret for Pamela. She's always wanted one.

Last night was one of the longest nights I ever went through. I logged onto #jabber at around 11 PM, and it started out innocently enough, with Jer reporting a bug in icq-t. But it turns out implementing the solution required using some functions he hasn't adequately documented. Then came "oh, and it should be doing this," and "no, that behavior is wrong," and, pretty soon, I was going over some of my source files with a microscope, feverishly working to make sure I understood all this. At one point, my connection dropped, and that must have worried the people on the channel no end! Finally, at 2:00 AM, I committed the changes, saying, "I'm not doing another thing to this code tonight, not even to save my life. Glory be to God, I'm tired."

Today was less stressful. I spent it reworking some of the innards of libicq-erbo, as I'm beginning to understand some more of the way ICQ works. I'm hoping to get two features into icq-t soon: contact messages, and account creation. Andre would especially like the latter.

Another meeting at Wynkoop Brewing Company today. Except it's St. Patrick's Day today, so I had a helluva time getting out of the joint afterwards :-). Steve Adams is retiring as Webb Chairman; no surprises there. Guess it's all up to Perry now (I wonder if the Board will vote him as the new Chairman. I sure would.). Oh, and I won a ticket to tomorrow's Avs game (against Detroit) by playing Jim's twisted variant of "Who Wants To Be A Millionaire." I'm letting Pamela go if she wants to; she's wanted to see the Avalanche for awhile now, and this is a good seat. (Tom, Jim, and someone else from the office will be there with her, so she'll be OK.) I hope she enjoys the game. Maybe I'll check it out on TV while she's there.

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