diff --git a/index.cgi b/index.cgi index fad6ad8..b131819 100755 --- a/index.cgi +++ b/index.cgi @@ -14,6 +14,7 @@ TUWF::register( qr{ncdu} => \&ncdu, qr{ncdu/changes} => \&ncduchangelog, qr{ncdu/man} => \&ncdumanual, + qr{ncdc} => \&ncdc, qr{tuwf} => \&tuwf, qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual, @@ -47,6 +48,7 @@ sub home { E; end; h2 'Updates'; + b '2011-06-03'; txt ' Added my latest project: ncdc'; br; b '2011-02-07'; txt ' TUWF 0.1 released and now also available on CPAN'; br; b '2011-01-27'; txt ' Documented and uploaded one of my older projects: TUWF'; br; b '2011-01-09'; txt ' Added my json.mll OCaml library to code dump'; br; @@ -165,6 +167,93 @@ sub ncdumanual { +# N C D C + +sub ncdc { + my $s = shift; + $s->htmlHeader(title => 'NCurses Direct Connect', page => 'ncdc'); + p; + lit <<' E;'; + 2003 called. They wanted me to write a text-mode alternative to DC++.
+ ncdc is a modern and lightweight direct connect client with a friendly + ncurses interface. + E; + end; + + h2 'Requirements'; + p; + lit <<' E;'; + The following libraries are required: ncurses, bzip2, gdbm, glib2 and libxml2.
+ These dependencies should be easy to satisfy. Depending on your system, you + may have all of these installed already.
+
+ ncdc has been developed on a recent Arch Linux installation and has been + tested on Debian Squeeze. It should be fairly trivial to port to other + POSIX-like systems.
+
+ ncdc is entirely written in C and available under a liberal MIT license. + E; + end; + + h2 'Current Status'; + p 'ncdc is currently still in development, and still lacks many of the + features one would expect from a DC client. The following is a list of + features that have been implemented so far:'; + ul; + li 'Connecting to multiple hubs at the same time,'; + li 'Chatting and private messaging,'; + li 'Browsing the user list of a connected hub,'; + li 'Share management (file list generation, hashing, refreshing, etc),'; + li 'File uploading in passive mode,'; + li 'Replying to search requests from other clients.'; + end; + + h2 'Try it out'; + p; + txt 'The current version might be slightly awkward to use and is not really + suited for serious use. Nonetheless, it\'s not entirely useless. You can get + the latest development version of ncdc from '; + a href => 'http://g.blicky.net/ncdc.git/', 'this git repository'; + txt '. The README includes instructions to build ncdc.'; + end; + + h2 'Quick Q&A'; + ul; + li; txt 'What about other text-mode clients?'; br; + a href => 'http://corsair626.no-ip.org/microdc/', 'microdc2'; + txt ' - A rather nice client, yet not exactly there. It\'s limited to + connecting to a single hub, hasn\'t been updated since 2006, and the + readline interface is slightly awkward to use.';br; + a href => 'http://sourceforge.net/projects/nanodc/', 'nanodc'; + txt ' - Can\'t comment much on this, except maybe that rocket science is + perhaps easier than getting nanodc to compile.'; br;br; + end; + li; txt 'Can ncdc connect to ADC hubs?'; br; + txt 'Not yet. My initial focus is to get a working client for the old NMDC + protocol, since, unfortunately, that is still the most widely used. Support + for ADC is planned.'; br;br; + end; + li; txt 'Can ncdc use the hash data or configuration from an existing DC++ installation?'; br; + txt 'No, ncdc uses its own configuration and hash storage directory. + However, on popular demand I could write a conversion utility to transfer + the hash data from other clients to ncdc\'s format.'; br;br; + end; + li; txt 'What protocol features does ncdc support?'; br; + txt 'Hub: NoGetINFO and NoHello.'; br; + txt 'Client: MiniSlots, XmlBZList, ADCGet, TTHL and TTHF.'; br; + txt q|That is pretty much everything you'd expect any modern client to + have. Note that ncdc does not support some of the older protocol + features, like $Get, $GetZBlock, $CHUNK and $Cancel. I am not aware of + any other up-to-date client that requires these.|; + end; + end; + + $s->htmlFooter; +} + + + + # T U W F @@ -569,6 +658,7 @@ sub htmlHeader { div id => 'menu'; a href => '/', !$o{page} ? (class => 'sel') : (), 'home'; txt ' '; a href => '/ncdu', $o{page} eq 'ncdu' ? (class => 'sel') : (), 'ncdu'; txt ' '; + a href => '/ncdc', $o{page} eq 'ncdc' ? (class => 'sel') : (), 'ncdc'; txt ' '; a href => '/tuwf', $o{page} eq 'tuwf' ? (class => 'sel') : (), 'tuwf'; txt ' '; a href => '/dump', $o{page} eq 'dump' ? (class => 'sel') : (), 'code dump'; end;