Older blog entries for Mondragon (starting at number 4)

19 Sep 2002 (updated 19 Sep 2002 at 04:51 UTC) »
Doing some development...

Started seriously looking at the code base to Gnutizen today. It's a bit of a strange thing to me, since gnutella wasn't something I was particularly interested in in the past. However, peer to peer networking has become a bit of an interesting research topic for me, since it's one the few applications to come along in recent years that has seriously affected user habits and traffic patterns on networks. It's also nice to be able to help out someone who is doing their first project - I know that I certainly benefitted from having a helping hand when I was working on my first projects. It also might give me a real project for creating a GUI using Interface Builder in MacOS X - I've done a lot of work with IB, but most of it just for the benefit of playing with IB.

Also fired off an email to the lead on Seeds Of War (sourceforge) that I'd be interested in contributing to that project. It sounds a bit like WC/SC from the description, but I can't be entirely certain at this point. I've always been interested in doing work on a game engine, and hoping this is an opportunity to contribute some networking and simulation knowledge (and letting somebody else take care of the tricky UI stuff.. ;-)). If it truly is intended to be something along the lines of WC/SC, then it'll also give me chance to write all of those features I wish those games had.

Got email from Amazon today that the books I ordered on genetic algorithms and modern heuristics have been shipped, so I'm pretty psyched about that. Just in case you didn't know I was a geek.


Heading off to SJ/SF next thursday for a few days. Will be nice to get out of DC for a while, although I should probably try to do it more than once a year or so.. :-) Was kind of hoping to get to a Giants game (and see the ballpark, more importantly), but it doesn't look like that's going happen. Guess that just means I'll have to go back.


Really want MLB to move the Expos to DC, and wish they'd realize that it really is a good idea. I know Baltimore doesn't really want another team encroaching on what they consider their territory, but I've got news for them if they think I get to many Orioles games (mostly because it's almost impossible to get to the games from DC on public transportation...you can get there, but you might not be able to get back if the game goes long). Besides, I think that having an NL team in the region isn't going to hurt. Sure, it isn't as big of a market as New York (which could really sustain a third team), but it's reasonably close to Chicago, which supports two teams, and it's certainly better than Montreal or Tampa Bay, who can't put 10,000 fans in the seats every night. If baseball truly is america's game, we should have a team in the nation's capital.

16 Sep 2002 (updated 16 Sep 2002 at 07:08 UTC) »
Life, or something like it...

Not a whole lot of technical crap today...end of the weekend, I suppose.

Picked up Lord of the Rings: Fellowship of the Ring DVD yesterday. I tried to resist, really, I did, but it just wasn't happening. Which, of course, means that I'll own two copies come november when the special edition comes out, but it's worth it I suppose. Anxiously awaiting the theatrical release of The Two Towers as well, of course, but that's a few too many months out to really think about. Of course, if doesn't help that I like to watch the quicktime trailer all the time, but that's my own fault.

Actually, a bit of technical news. It turns out that people really do read advogato (surprise, surprise.. :-)), and I've had a couple of emails regarding interesting projects to be involved in, so I'm grateful for that. I've only started looking at code right now, and moving things into source control, so no real progress yet, but it's something, and it'll almost certainly develop into something else...

Testing, Bugs, and small annoyances

I've been following the bugs/testing discussion with some interest over the last couple of days. Given that my day job involves creating an awful lot of unit tests for software, it's something that I have a fair amount of experience in. A lot of interesting ideas have floated across these pages, and I have to say that while a lot of them are really nice in theory, practice is another matter entirely. And there needs to be some recognition of the differences between open source and commercial software as well, I think. While it would be great if all software were bug free, I think that's a bit on the unrealistic side. Sure, a very simple piece of software, with limited inputs and outputs, can be bug free, but any relatively complex piece of software is going to be very difficult to prove to be bug free. Of course, commercial software also has the added pressure of having to actually ship to a customer base that is often more concerned about bullet points on feature lists than quality. It's not that the developers don't care about the quality of the software, it's that the consumer is concerned with 'good enough', and not demanding of 'great'.

Some of it is a matter of system and responsibility as well. Developers need to be aware that testing is part of the development process, and not separate from it. Too often I've heard the words 'testing isn't my job' come out of the mouth of a developer, and it's disturbing. Just because a QA department exists, or because there are helpful users doing testing, doesn't mean that excuses the developer from providing unit tests and running them before the software gets out the door. There will always been unforseen sequences of inputs and outputs in a complex system, and I don't necessarily expect developers to spend weeks trying to dream up every possible sequence of events that would lead to the invocation of the code that they have modified, but you can't just make a change and merge it either.

Just because you can't find all the bugs doesn't mean you shouldn't test.

14 Sep 2002 (updated 14 Sep 2002 at 17:51 UTC) »

mascot: I wouldn't worry too much about the LCD backlight life unless you're used to having your CRTs last more than 3 or 4 years. I've had my Samsung 170T for over a year now, and it still stacks up nicely sitting next to the brand new 171v that I bought. Realistically, the backlight is eventually going to die, since that's what lights do... :-) That being said, my Powerbook G3 - wallstreet - still works great after 4+ years, so I would expect an LCD bought today to last on average as long as a CRT (and when you go to replace it, it'll be a heck of a lot cheaper).

GUI Development

I'm really looking forward to the new O'Reilly 'Creating Applications with Mozilla' and hoping it turns out to be a good text. I'm pretty down on doing anything with a UI at this point because it's well-nigh impossible to work in a cross-platform environment. wxWindows claims to be cross-platform, and it builds, but realistically, many GUI elements are messed up on different platforms because the library doesn't support native control sizing, or dialog resizing. I'm giving up on resource files from wx at this point - it'll have to be something like .nib files for MacOS X or what Galaxy (from Visix) had before it'll take the pain out of building a cross-platform GUI.

Which, of course, brings us full-circle back to Mozilla, since XUL does appear to do a very good job. I've been told that Mozilla is rendering, though, and not using native controls, which could be a problem. Galaxy rendered, and they did a pretty good job, but it's always a little strange when a new OS release is available (mostly for win32), or when trying to handle i18n support. Supposedly a company called Ambiencia bought Galaxy from Visix, but I don't really know what the deal is with that - like, what it costs...


Speaking of O'Reilly books, I think they need to be a bit more cautious in their mad rush to put out more books for the community. I'm still pleased with the company as a whole, but it used to be that if O'Reilly had a book on the subject, it was the book you bought, no questions asked. They were hands-down the best books you could buy on the subject matter. Trouble is, that isn't so true anymore. Both 'Virtual Private Networks' and 'Practical Internet Groupware' were pretty soft on real useable content, and I've perused through a few on the shelf recently that didn't look so good either.

There's also the matter of certain author's letting their perceived celebrity go to their heads. 'Internet Core Protocols' is a decent book, and it covers the basic to intermediate subject matter pretty well, but every time Eric Hall makes a comment on any networking mailing list, it reminds me how much he really doesn't understand about how real networks work. That's fair - you certainly don't need to have run a large network to be able to cover things like TCP and higher layer protocols - surely Stevens hadn't - but you shouldn't think that you have the core knowledge to comment on operational problems either.

Of course, in retrospect, it seems that their coverage of software development and unix administration has been very good, while most of the books covering networks and protocols haven't necessarily been top notch. Which, of course, makes me a bit nervous about 'BGP', by Iljitsch van Beijnum, but I certainly am not going to pass judgement before I see it. He seems to have the background experience, and the world certainly needs a good book on BGP (Halabi is great, but not necessarily for the uninitiated), so I have hopes, but I'm hedging my bets a bit.

Software Development

In an attempt to avoid being overly critical of other people (too late?), it's time to change the topic. I'm still in the hunt for a project that needs some core development help that I can get in on, or at least something where I don't have to fight with the UI code. Data structures and networking are my thing, so anything along those lines would be great. I tried to get in on a Python SMTP server at sourceforge, and it seems like an interesting project, but it appears to have died from lack of attention by the lead developer. Maybe I should just pick up the torch and run with it, but frankly I'd rather leave the project management up to someone else in a large project like that.

Obviously Python doesn't lend itself to any real data structures work, since it's fairly meaningless to implement complex data structures in Python itself, given the high overhead of the primitives used in those structures, but I find it an interesting language that I'd like to do more with. And besides, you can always implement data structures in C/C++ and expose them to Python as extension modules, which is probably worth doing for some specialized data structures, since the built-in ones are a bit too general for some tasks. General is great for the native language, since there's really no telling what people are going to do with it, but if you want to be efficient, it's probably best to roll your own. Of course, the question there would be that if you wanted to be efficient, why are using Python, and I do think that there is some kind of balance to be struck between development time and runtime efficiency, but I also think that Python makes great glue for C++ components, and that performance doesn't necessarily need to be lacking.

But anyhow, it's late, and I'm riding the Civil War Century tomorrow, leaving in about 3.5 hours to drive up there, so I should probably get some sleep.

Nymia, just a small note here, you might want to check out any number of SVG tools, since optimally SVG is intended to support everything you want in flash.

After spending a great deal of time looking in, I thought I'd see what the view looked like from the inside. Mostly that means I've spent the last couple of years far too busy with my day job to even think about too much open source work. That being said, I've pretty much reached the point in my life where I need to do outside development, just to maintain my sanity.. :-)

Basically, this means I'm looking for a project. Hornet (sourceforge) was keeping me busy for period of time, but I lost interest because I spent too much time fighting with the UI code (well, that, and Hornet in its current state solved my immediate problem). I really wish there was some sort of open-source equivalent of a UI designer tool like Apple's Interface Builder, or at the very least a resource-file based GUI library which kept the application separate from the definition of the UI. wxWindows looks like it might be going this way with XML resource files, but I'll have to play with it some more to really see (and maybe wait for it to mature a bit).

In any case, no more rambling for tonight....if anybody actually happens to read this and has an interesting project in need of a C/C++ or Python developer, let me know. :-)

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!