Older blog entries for dancer (starting at number 45)


bernhard: Actually I'm kind of suprised at how many kids there are about. Nonetheless, there are a reasonable few fossils like me lurking around. (Heh. I'm only 35. Or 34. Or something. I keep losing track) It wasn't that long ago that I was the oldest person at work. (Oh, happy birthday, btw)

nymia: Now, lacking a DOS shell of any description, just how do you propose to (for example) upgrade your BIOS? Still got some old legacy floppies, I hope.

pjf: It happens in lots of forms of negotiation. Not just offers on houses.


Another job offer. This one via Skud. Will talk with her about it at the local pub over scotch on Thursday.

Slept through the alarm today. As I type this, it's time that I should have arrived at work, and I'm still in the middle of the trek to the bottom of my coffee cup. Still sick, as I have been for almost two weeks now.

Before I can leave the house I have to make assorted arrangements for the cat. Reminder to self: Must also take her to the vet for a checkup tomorrow. Further reminder to self: The vet didn't give a time for it. Call and ask.

Just realised that the 12th of august was the first anniversary of my first cardiac arrest. Amazing what you remember sometimes.

Hmm? Oh..Six or so over the year, I think. Hard to keep track. There's a nurse in ER I've been tempted to ask out, but she never sees me at my best, anyway.

(To clarify, no not a heart-attack. That's a very specialised kind of heart-stoppage. Mine is just an arrest - no actual damage to the heart)


Sick, sick, sick. Sick for two days, and still sick, but back to work anyway. It's not quite dawn yet, and today sick seems to involve: Being emotionally volatile (so there's always the risk that I'll say something really unfortunate to someone today), not being able to get back to sleep (my sleep centre has been shutting down about an hour or two before dawn the last couple days), feeling weak (but hey, no biggie, right?), and leaving a trail of evil yellow mucous everywhere (I can pretend I'm some sort of slug, I guess).

Must drop feline off at vet (bad tooth) this-morning, and pick feline up from vet this-evening. This puts careful constraints on my hours today. On reflection, this is probably a good thing.


HR never got back to me with a date. Did Igor's performance review and wrote it up (this is before I got sick..well, before I started taking time off because of it). Wrote the necessary pay-adjustment authorisation. Took them to HR who gave me a blank 'What's all this then?' look and disclaimed all knowledge of the meeting we'd had two weeks before and that I had been waiting for them to get back to me. Is anyone else encountering a rash of HR amnesia at the moment?

HR then took them to Dan, which undermined my authority. A little respect thanks, guys.

Not much else happening. Sick, as I said.


Welcome to Dancer's Vortex'O'Shite(tm): Diving through 50 pages of legalese that changes by the hour..AKA the new shareholders' agreement. There are some clauses I took objection to. Word is they are now fixed. Waiting and seeing, tomorrow.

Tomorrow all must be signed. If it's not DancerHappyMaking(tm) by then, I'll sell rather than sign.

Staggered out of the office this-evening, with 0 sanity points and no energy.

Whatever you may have heard about John Rex Milton Stuckey...I assure you: He's a changed plant. He's earned my respect, and that's not easy for someone from his background to do. He's doing a damn fine job under the circumstances (which are tough).

HR was supposed to schedule a personnel review for my Igor. They haven't got back to me, and the due week has passed. I'll do it myself tomorrow, and send them the results.

Beautiful sunsets off the office balcony.

...that's more than I've said about work for some time. Interesting.

Anything other than work

What, like I've done anything other than work? The Mummy on DVD. Worth it. Picked up Aliens (special edition) on DVD today. Will watch tomorrow.

C++ and pthreads

Nymia: A member function in C++ requires an implicit other argument, which is this. Without that, the member has no sense of which class instance it belongs to. Passing of this to member functions is an implicit departure from the C calling structure, and the threading system relies (more or less) on that structure. You can however call a regular C-convention function, that knows what member function you want to call, and pass it the pointer to the instance as an argument (which will have to be cast appropriately).

This is off the top of my head. Errors may be present:

extern	"C" void *call_member_foo(void *);

void *call_member_foo(void *instance) { // Icky cast TheClassType *i=(TheClassType *)instance;

// Call the foo member function on that. (i)->foo(); return 0; }

You can then start a thread on call_member_foo() passing it a pointer to the object whose member you want to call.

A cleaner method would be to pass a pointer to a struct that contains a pointer to the class to avoid messy casting.

There are all sorts of ways around this...studying how many OO libraries deal with non OO GUI's (like Windows) will show you many similar solutions. Or look at (I think) the ACE(?) signal handling library, which has similar limitations.


Contemplating leaving it. Seems like the job I have is the worst of the available choices open to me. Hmmm. Well, we shall see.


Inadequate chronometricity, damnit.


Well, I periodically attract bundles of attention here. Seems my method for rating people does, anyway.

jschauma: Just knowing people is insufficient. What I intended to convey is that I need to know that they are who I think they are...that's an additional requirement. It's an AND not an OR.


More opinionated opining:

  • Looking forward to Nautilus. I gotta get me some of that
  • Still no Terminus in stores, and patches for it are still appearing. Am I advantaged that it will be well patched before it hits Oz? Dunno.
  • Branden's going through phase 1 debian packaging of Xfree86 4.0.1. I want to use and feed-back. Problem is, that updating via the modem link more or less sucks (or doesn't suck, depending on your definition of the word in context), and doing it at work would require Work Time (which seems to already own too much of Everything Else Time). Decisions. Hmmm.
  • It's late and I'm tired, but I've had much to do, and I'm not yet able to sleep. Nevertheless, I can idle creatively for a half-hour or so, and I'm going to do just that.

Off the discussion that cycles around periodically, I'm going to publish the scheme I use for certifying people:

  • Knowing who you are, or being otherwise assured of your identity, or having had personal contact: Important.
  • Programming skill: irrelevant.
  • Contribution to open source: Important.
  • Not embarassing me for having certified you: Important.
So..I don't care if you can't code..if you write documentation, bug-reports, do testing or whatever for open source projects, you're okay in my book. Or at least, you've passed step one. Step two is trickier:

Step 2 involves not spouting vile rants and noise that are going to make me wish I didn't have my name on your page certifying you. Heck, you can hold differing opinions, or argue with me, and I'm cool with that. What a funny old world it would be if we were all the same. But if you bite or flame people, I'm going to seriously reconsider my certification of you. If I suspect you might, I'll either be conservative in my certification, or simply not certify you. A few people here fall into that category....people who are acceptable for diary entries, but I wouldn't trust on the Advogato front-page. Not with my name attached to them, anyways.

And it's all about trust, isn't it? :)


Mostly bughunts and tuning, where there is time.


EYO in Sydney, Australia sells an RPC-1 (that is, not internally region-locked) DVD ROM drive: The ASUS DVD-E608 [link fixed]. Bought it. Neat. Also got a faster CPU (an AMD K62/500). Running the CPU at an FSB speed of 100Mhz caused me all sorts of grief, all of which looked like faulty RAM. The RAM is PC100, but to get the thing to work properly, I've had to back off to 95Mhz. Still, it works. Software decoded playback under Windows is Spiffy(tm), and it all seems to work quite well.

One CPU pin was slightly bent on delivery, but it was no biggie. I highly recommend them.


Family illness and death: Pneumonia, death, strokes. One down, and probably more in the queue.


  • Just arranged a flight for Jenn. The hospital people think her grandfather will not last the night. Must do without her for a few days.
  • Just found out that Harry Potter is not an author, but apparently a character. Score one point towards the Dancer lives under a rock total.
  • Contemplating two new game projects. More on that later.
  • Still no Terminus in town.
  • Got 64MB more RAM for Jenn and a new large (20GB) hard disk for her
  • Found a model of DVD-ROM that is region-free, an available in Oz. Ordering that next pay.
  • My Evil Twin is visiting. He makes life interesting.
  • Word from Hasbro is that in addition to X-Com: Alliance, there's two more games in the works, an isometric analagous to Enemy Unknown, and some clunky FPS (to appeal to the adrenaline market)
  • graydon on software reuse: concur. Complexity, safety, side effects, and dependencies do a reusable library/API/class make. At work, I carefully document that. I don't need the info(because I wrote it) but others will. Also, wherever there's a tradeoff I document why I chose X over Y. It shows that (a) I thought about it, and (b) if circumstances change people will be able to see which parts of the code can or should be adapted to alternative methods.
  • Simon: Ah, yes...EQL is indeed famous. I did have issues with it at one point, and more-or-less rewrote it one desperate night, but you made it easy to do that by making the code clear and easy to understand. I appreciate that. Further to your cooking comment: You can be a cooking hacker, too. It's fun.
  • drivers: Thought about clanlib. Documentation is more or less the key. I went with SDL because of a few reasons: (1) The documentation was astoundingly clear, (2) I was just learning the guts of what was really needed for a modern game-engine (I've been a backend coder for years) and thus wasn't able to evaluate much based on features, though SDL appeared to have everything I figured I would need (or I would simply be able to add stuff), and (3) I've taken some mild, and slightly irrational dislike to clan___ and ___clan things lately. Seems like I can't turn around these days without stumbling over a .*clan.* something (like e.+ things and dot-coms). Maybe silly reasons, but I looked through the API docs for clanlib this-morning, and saw little that attracted me. Oh, before I forget: (4) SDL has some commercial games under it's belt, so despite the fact that neither it nor clanlib offer the aformentioned guarantees (see earlier response to Graydon, above) it's already established a very solid reputation for Not Sucking(tm). [ Note: I do not wish to imply in any way shape or form that clanlib might suck. I'm sure it doesn't. It's just that I have objective evidence of SDL's lack of suckage in certain limited areas]

Fixed my audio streams bug. Had to do with the dreaded FILE * in the GNU C library. I've had trouble with FILE pointers and threads before. The library seems to attempt to mutex access to them, but it doesn't seem to work well (at all?), and tends to result in heap corruption.

Nonetheless, it works quite well now. The conversion to general midi seems to have made the music tracks sound a bit hissy. That might be part of the original instruments, though. Perhaps some sort of low-pass filter might help.


Repeating explanations, at twenty minutes per, over the last week. Double-bonus, having to repeat the material I typed into the job entry, because the people dealing with the job didn't read anything about the job, or what the problem was. Tired of all the repetition.


  • Linux USB - yes, the device numbers changed. I was going to post that in a previous diary entry when I discovered that that was where all my USB mouse problems were coming from, but it slipped my mind. Damn. Wish I could have saved other people the same troubles. The old device was (10,32) then new device is (13,63)
  • Terminus - Keeping an eye out for it. Want it. Still not in stores here, AFAIK.
  • Debian Xfree86 4.0.1 - Still salivating (someone fetch this man a bucket)
  • Hardware - Need to buy Jenn another 64MB DIMM and a larger hard-drive. Was going to do that at lunch. Will try it this-evening.
  • Linuxchix - Need to proofread the FAQ and issues stuff. I promised I would.
  • Streaming media==broadcasting - Senator Alston's backflipped under pressure from what the newspapers describe as 'his corporate masters'. Damn foolishness.
  • MAPS vs ORBS - More damn foolishness.
  • Gaming - Somewhere I read an article on violence (on IGN, I think). It talked about the mature rating on games and quoted some interesting statistics about gaming age-groups. While the article focused on the younger-crowd (since that was the issue at hand) I noticed the obverse side of the figures: 46% of gamers are over 30. Considering that, it'd be nice to get more games that cater to us aging and decrepit gamers whose reflexes are breaking down, no? :) But, of course, we're only nearly half the market...and usually the half with more money. This is not a rant. Really.
  • It would be great if we could come up with a rendering technology that seperates the display device and the code. This way, we can write things just once and render it to text, HTML and PDA with equal ease. - jauderho - I think that's what HTML was once for...something which later revisions (especially HTML4.0?) seem to have lost sight of. It's a commonly recurring thing...even [g|n|*]roff addressed. Seems we keep losing the plot by then forcing those generic systems to mandate layouts to the pixel.
  • Browsers - Becoming disillusioned with them. Massive, showstopping bugs that I reported in the original netscape 4.0 pre-releases never got fixed. They get worse in some version, better in others, but never go away. MSIE is generally pestiforous and Windows/Mac only. Looking forward to flushing them both, and using Mozilla for the long haul, as soon as it stablises a little more.
  • Genetic engineering - A rhetorical question to ponder "In what way (other than rapidity) is genetic engineering different from what mankind has been doing to plants and animals since we came down out of the trees?" (If you find the trees reference offensive, you may substitute 'expelled from the Garden for petty theft')

Offers, offers, offers. Do I stay, or do I go? Well, the short answer is that until I see a proper offer, I keep doing what I'm doing. Money, terms, conditions, and work details. Company A's offer is attractive, but their HR people are veritably cthonic and seem to need to be pushed every step just to stay on the right page. Company B wishes me good luck and has bailed out of the bidding (as far as I know). Company C is dragging it's feet a little and may yet make an offer.


And now we are seven. Ryan Nunn joined us, and has been doing wonders with xmidi->midi conversion, and mt32->general midi conversion. Sterling work.

I've implemented my audio streams, and they've largely blown up in my face. They work so very well, except that there seems to be some bizarre memory corruption. Maybe the mutex lock() call is non-blocking. That might be a cause. Must check return value more closely.

Jeff is working on finalising barges (wagons, ships, magic carpet, etc). If I can fix the audio streams, and we can get sound-effects in there, which looks like a real possibility then we'll be feature-complete on the next release. Wooo!

We've crept back up onto the front page of Sourceforge's Most Active list, just below FreeCraft. Working on this project is so much fun, that I don't really care either way. I just wish I had more time to do it. An hour or two over my morning coffee satisfyeth me not so much.


Xfree86 4.0.1 debian packaging is started, I am told. I salivate with anticipation.

Myself and Paul are corrupting Justin to the ways of ADOM (Good lord, ADOM's going commercial?? Eek! Well...good luck to them, anyways)

"X must die. Linux is shoddy" - Maybe. But it's what we have at the moment. Poorly engineered, buggy, badly designed operating systems and UI's are the norm. I daresay they will all improve, regardless of their commercial or free status. We all drive each-other. And militance is everywhere. Things get louder as they pass into and out of the fringes of mainstream. The noise will come from other parts of the field as things continue to jockey position in the public mind. Shrug This too shall pass. What operating system will you be using in 40 years? Whatever it's name is, it won't much resemble what we've got now, I figure.

DVD - Hmm. I should have gotten a DVD ROM before January 1, it would seem. Word is they're all internally region-locked, and (of course) half the stuff I want to play is only manufactured in other regions. Grump. I don't doubt that somewhere in Australia there are units being sold that aren't internally region-locked. When I find one, I'll buy one. Until then, I think I can miss the scene.

Broadcasting - Our Minister for corporate communications puppetry, Richard I-can-bore-the-socks-off-a-stone Alston, as a followup to the internet censorhip act, would apparently like to have the ABA class streaming audio and video as 'broadcasting' and require providers of same to have a broadcasting license (and no, you can't have a broadcasting license, we're not making any more for the next 6 or 8 years). Quite whose tune he's dancing to today is a good question, though just occasionally he is able to have stupid ideas of his own. This could be one of them.

Game developers in Oz appear to be having trouble getting and keeping their staff. This is apparently attributed to the skill-drain (which is, I understand it the new term for brain-drain). It's not unique to their industry...apparently they have no idea why perfectly good coders would go to work for other companies that treat them and pay them like human beings, when they could stay on and get treated like scum at poor pay. Maybe they'll learn.

A little ranty today. Maybe that's a good thing. Not enough sleep, and low-grade sleep at that. Time for more coffee.

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