Older blog entries for tausq (starting at number 6)

potato boot-floppies:

I wonder how many ways modconf can break.... sigh... well, I released another version, hopefully it'll work. drow got powerpc boot-floppies to work, so it looks like we're pretty much ready to release 2.2.11. Mostly just waiting for the word from aph now. There seems to be some problems with the kernel/pcmcia modules dependencies still; I wonder what's going on there.... my vmware license expired, and I don't really feel like paying $299 for one. There are still lots of minor glitches with boot-floppies. In some ways I'm continually amazed that it actually works. It'll be interesting to see what we can do in woody. I expect some fairly substantial, if not a total, rewrite.

Morning

Compiled some ia64 stuff at work. Basically I'm just trying to get a few simple tools going. dpkg compiles (mostly), except it depends on perl, which I don't yet have. perl in turns depend on gdbm.... then i decided I wanted to get wget to make it easier to download sources. Turns out you have to force a -D_GNU_SOURCE for wget to compile correctly (took me about 30 minutes to figure that out ): ). Well, wget depends on gettext, which uses libtool, which is just utterly stupid and refuses to work with ia64 without lots of tinkering...

Anyway, I was in the middle of compiling gettext when my connection died... <sigh> Fun stuff, eh?

oh, and apt also mostly compiles, except that there seems to be a g++ parsing bug upstream. Hopefully that'll get fixed soon.

Evening

Am looking into php more to see if we should do db.d.o-NG in perl or php. php makes things a bit simplier in some cases, but lacks strong encyption support (it seems). For perl, with the new IPC::SharedCache stuff we can probably make a more secured system, but I'm a bit worried about how to properly garbage collect stale entries (similar problems with doing this in php). I'd also like to figure out a way to do LDAP (and possibly some SQL backend) connection pooling either with PHP or mod_perl.... hm.... is it even possible?

Today's fun C++ saga starts with some progress on the event mechanism I was thinking about yesterday. I am now able to trigger events like this:

void SomeWidget::RandomlyFireEvents()
{
  KeyEvent e;
  /* fill in e */
  FireEvent(&KeyEventListener::KeyPressed, e);
}

This has the advantage of being strongly typed, with most of the work done at compile-time. FireEvent is a funky method that is defined like this:


typedef void (Listener::* pmf_t)(EventObj); template<class Listener, class EventObj> inline void Event<Listener, EventObj>::FireEvent(pmf_t pmf, const EventObj &e) { listeners_t::iterator i; for (i = listeners.begin(); i != listeners.end(); i++) { ((*i)->*pmf)(e); } }

I guess all you C++ gurus out there will think this is obvious, but I thought it was pretty neat :-)

I still need to do some tests to determine the space/time efficiency of this system though. Oh well.

(Some time later...) Culus has sort of convinced me that this won't work if a widget wants to have multiple events of the same type, but in different queues. He plugged the deity system as being more flexible. It is better in some ways, but I really do not like the void * event parameter that is used in so many widget libraries.... <sigh>. Is there really no perfect solution?

I've been putting it off, but I think I need to rethink the db.d.o code and redo a lot of it.... hm...

Been thinking about how to write a good event manager for the widget library I'm working on. I'm still experimenting with a few things. I'd like to have a strongly typed system, but being able to do that cleanly and efficiently has proven to be rather difficult.

for some odd reason I've been thinking about going back to school. Not full time, but if I can manage to organize something so that I can do it part time that'd be awesome. I guess I had a slightly different perspective about college than some of the other postings I've seen here. Obviously, it depends on where you want to go and what you want to do. Certainly, going to college can open some extra doors; for example, my current employer only hires (for SW engineers) college grads; but then, I've also had many successful entrepreneurs tell me that spending time in school is a waste of time; that I'd be better off joining startups or what not.

For someone like me who can't seem to make up his mind about what he wants to do, I guess college gave me an opportunity to explore lots of different areas that I wouldn't have a chance to do now. For instance, college has changed my perspective on many topics (databases, compilers) that formerly seem dry and uninteresting, but now represent some of my core interests in computers.

Anyway, I'll stop babbling now. Back to HHGTG...

P.S. Outlook sucks. It took about 45 minutes to load over DSL (60kB/s) before it let me read my mail at work :(

I wish someone would fix the date code so it reflects the original post date if an entry gets edited....

Another interesting day in training. Sometimes I feel these evil urges to build a VB like environment for Linux.. hm.... yes, I am slowly being brainwashed. Does this mean my certification level will drop to dimwit?

On a more interesting note, I've been learning more about compilers and am thinking about writing one for fun. Haven't really learned anything specifically for OO languages though; wonder what sorts of OO-specific optimizations there are. hm...

Am reading HHGTG again for the third time. It's still as funny as ever! I finished my third Neal Stephenson book in the past couple of weeks (Diamond Age). It's decent, but IMHO Crytonomicon is definitely the best. Maybe I'll start on Heinlein next...

Ran into another Debian developer in the Phoenix area on IRC tonight. That makes three of us now. Cool... maybe we can take over the local LUG meeting :-)

Hrm, looks like my FA classes didn't quite sink in. <sigh> the question was: is there a way to strip shell-style comments (# blah). As it turns out, this perl regexp does the trick.... (from bod)

s/^((([^\\"#]+|"[^\\"]*(\\.[^\\"]*)*")*|(\\.)*)*)(#.*)?/$1/
I had argued that you cannot do this with a standard (FA) regular expression, but as aj pointed out to me, this shouldn't be the case. So, as an exercise for the reader, rewrite that in a form that sed recognizes.... :-)

So I have a question: why would anyone care and want to read what I did today?

Am attending a Microsoft MTS class this week (please, no rotten eggs...). One of the things we discussed was that reliability and scalability are mutually exclusive; you cannot have one without the other. Seems like many MS users do take that for granted.

Been trying to recuperate from a rather bad case of carpal tunnel. It comes and goes; for some reason, I never had problems when I was back in school, and I definitely did a lot more typing back then.. hmmm....

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!