Older blog entries for andrewgilmartin (starting at number 2)

7 Jan 2002 (updated 7 Jan 2002 at 19:45 UTC) »

I have been mostly programming in Perl for the last three years. Thanks to CPAN and the acquired experience I can get quite a bit done in a short amount of time. Now I am thinking about working in Python and C++ again and the lack of a CPAN equivalent is distressing.

So, I have started to think about a tool for those that want to create services like CPAN. The basic features are

  • HTTP accessible archive of modules for both human and machine.

  • Modules have type, version, and dependencies. Perhaps a general set of named attributes.

  • Contributions can be upgraded directly by contributor and maintainer.

  • Contributions can be downgraded directly by contributor and maintainer.

  • Sites can be mirrored easily.

  • Module installation registry on local host.

  • Simple command line tool for incorporating new modules into an installation.

  • Simple command line tool for incorporating upgraded and downgraded modules into an installation.

As a general tool perhaps the most you could is to coordinate the archive's content with a local and limited copy of it, and then coordinate the incorporation of the local modules into some default base installation. (SWIG has done a great job over the years at unifying the creation of C and C++ extensions for scripting languages. I am sure there is much experience and advice here we need to keep in mind.)

Anyway, it would be nice to have something to offer the Python, C++, Ruby, JavaScript, etc communities.

Before going further I really should see what CPAN has.

I the early 90s I contributed to the then hot communications technology -- Gopher. I built Sextant, the first (non-Hypercard) Gopher client for the Macintosh. Even today it has one feature that I miss in browsers and that is saving window position and size information kept with a bookmark: Having this allowed you to organize your desktop and then quickly restore it on restart.

A few places standardized on it. But in the end it died out as TurboGopher (I think this is what it was called) come out and had support for many more data types. I don't know what happened to Sextant's code.

Thanks to Google I can still see my announcements:

http://groups.google.com/groups? q=sextant+gopher&selm=9209101851.AA20207% 40brown.edu&rnum=2

What was bigger than Sextant was it inspired me to start the THINK Class Library mailing list. The TCL was a class library that came with the Lightspeed compiler. This was my first introduction to C++ and application frameworks. It was a good introduction as C++ was small, TCL was small, and it allowed me to build a good Macintosh application with much less effort and with more features than anything I had done previously. I wanted to share my experience with TCL with others and to get others help in using it better. The mailing list (later the news group comp.sys.mac.oop.tcl) and code archive lasted for several years. It even survived the transition from my maintenance to others. It to had a natural death as other technologies surpassed it.

Thanks to Google I can still see my announcements:

http://groups.google.com/groups? q=gilmartin+tcl&selm=1g8eiaINNroo% 40cat.cis.Brown.EDU&rnum=1

What was novel about the archive at the time was that I organized it by contributor and topic. At the time all archives where anonymous FTP hierarchies organizaed by topic. I felt that the contributor should get as much acknowledgement as the code contributed.

Peterme.com suggest following the writting of Erin Malone at DesignWritings.

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!