Older blog entries for tausq (starting at number 10)

<rant>

One of my biggest complaints about the Debian project is that we lack good project management people. Of course, it is to be expected that with 400-odd developers and many to-be-developers, coordination and communication are key. Sadly, no one seems to put a lot of emphasis on this. Our slow release cycle is (IMHO only, of course) a direct consequence of poor communications and coordination. Sure there is tons of work involved, but it can be done much better and more coherently if we had a plan in place rather than everyone going about doing their own thing. Many of the flamewars that erupt regularly on the lists also stem from people not communicating well and arguing before thinking. I'm sure this is nothing new, and many of these assertions have been made before, again and again. Sometimes I wish some of the Debian folks would just take a more draconian approach to the issues that are brought up and deal with them quickly and decisively.

</rant>

Later, when I'm more calm....

Since I didn't feel like doing any work, I decided to go package something :P xerces (XML library from Apache) looks pretty interesting. XML seems to be in the news so much lately, I wonder if it's all hype.... been looking at SOAP a bit. The idea is good, I think, but there seems to be fairly severe performance tradeoffs. Hrm...

well, we got lully back, but without the disks :/ We're supposed to get 2 18G in there, but I wonder how long that will take.

Let's all participate in jgg's find-Culus'-photo contest! (not!)

lully didn't get turned on today (why am I not too surprised?), because TLS says they are busy with COMDEX. I really don't understand why it takes so much effort, hrm... it's now supposed to be turned on tomorrow.

One idea I had today while working on db.d.o -- I'm thinking of creating a "karma" measurement of Debian developers. (yes, I like the Advogato trust metric too much :P) It'll be something like:

sum({C_i | i = {packages maintained}})/n - sum({B_i | i = {outstanding bugs in packages}})/n

where n is the number of packages the person maintains, C_i is a "coefficient of importance" (ie an essential = 1.5, important = 1.4, standard = 1.2 or optional = 1 package), and B_i is a "coefficient of severity" (critical = 1.5, grave = 1.5, important = 1.2, normal = 1)...

Sounds a bit crazy... hm..

Happy Birthday, Joey!

Heard from TLS today; lully is supposed to be back online Wednesday. As always, I'll believe it when I see it... the good news is that they seem to be hiring a Linux/Alpha person; hopefully things will work out better then.

Did some prototyping work with the new db.d.o replacement. Might need to talk to gorgo about packaging the php4-dev files. It'll be interesting to write some new modules for the encryption stuff. I'm a bit worried about the load php places on the server though. I guess it shouldn't be worse than forking perl.

It really bothers me that USWest seems to have a monopoly for DSL ISP services in my area. I called a few ISPs and they say they don't have access to my location, even though I already have DSL wiring and stuff. Hrm...

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.... :-)

1 older entry...

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!