DOMC is a lightweight implementation of the Document Object Model (DOM) in ANSI C as specified in the W3C DOM Core Level 1 recommendation. When coupled with the Expat XML Parser Toolkit, DOMC can load, store, build, and directly manipulate XML documents represented as a tree in memory.
Encdec encodes and decodes C objects such as integers, IEEE754 float and double values, times, and internationalized strings to and from popular binary formats and a wide variety of character encodings as they might appear in various file formats or network messages. It is compiled directly against the libiconv sources.
The libmba package is a collection of mostly independent C modules potentially useful to any project. There are the usual ADTs including a linkedlist, hashmap, pool, stack, and varray, a flexible memory allocator, CSV parser, path canonicalization routine, I18N text abstraction, configuration file module, portable semaphores, condition variables, and more. The code is designed so that individual modules can be integrated into existing codebases rather than requiring the user to commit to the entire library. The code has no typedefs, few comments, and extensive man pages and HTML documentation.
The tcpsound utility plays sounds in response to network traffic, making it possible for a user to literally listen to a network. It forks a pseudo terminal in which to run tcpdump, parses that output, and plays a wide variety of user-configurable sounds. By interpreting the output in a pseudo terminal, users can first SSH to a remote host if desired.
This application is genuinely good. As a developer I can tell that some thought really went into this code. It can generate high quality postcript figures quickly and easily. Need a network diagram ... zap. Need a schematic of a screen layout ... bang. So far nothing with respect to the layout engine surprised me. Very consistent. The page layout controls are fantastic. You can generate/print very nice postscript. I would rather the right-click menu have some of the more commonly used items at the root (delete, object specific properties) and it would be great if some settings could be saved for future settings (e.g scale) but all of the fundamentals are there. Outstanding job folks! Thank you.
strength of the Open Source movement is that its components are highly modular.
Not at all. Let's say you wan't to use netbios sockets. Can you extract that "module" from Samba? No. This is any area where hobbyist programmers more often than not lack conviction.
The modularity is much stronger than the (IMHO rubbish) OO methodology advocated by dubious software engineering textbooks.
At the c level you really can't call something OO. That requires dynamic binding an techniques that provoke polymorphic behavior. It's a tool though. Nothing more. Sometimes OO enthusists get a little carried away with it but when used properly the effect is unparalleled using mear "moduler" techniques. The real problem is that 9/10 people using an OO language such as C++ or Java are not writing OO code. They think they are but in reality it's moduler at best. This leads to a bit of confusion over the value of OO because there are very few good examples of it.
doesn't matter how the internals of the FTP server are structured. It's an object.
I agree with you here. I'm a big advocate of the UNIX theology where tools are designed to do one thing very well. Collectively they become more usefull than the sum of their parts in ways than can be very clever.
But an even better model would be if the FTP client interface was not defined at the RFC level but rather at the language level. The c API for using FTP should be well defined and stored in a shared library with other network clients. Then Mozilla and friends should use that. That's what they should be shooting for.