From d9c3801fdf22d214341be7d189a8d64e6b12338f Mon Sep 17 00:00:00 2001 From: Yorhel Date: Mon, 20 Jun 2011 11:08:08 +0200 Subject: [PATCH] Released ncdc 0.1 and added a simple user guide --- img/ncdcstart.png | Bin 0 -> 17907 bytes index.cgi | 184 ++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 154 insertions(+), 30 deletions(-) create mode 100644 img/ncdcstart.png diff --git a/img/ncdcstart.png b/img/ncdcstart.png new file mode 100644 index 0000000000000000000000000000000000000000..99e622d50909bc4cc52a8e8f77640b3730104d47 GIT binary patch literal 17907 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 literal 0 HcmV?d00001 diff --git a/index.cgi b/index.cgi index 2c32b89..a8f71e5 100755 --- a/index.cgi +++ b/index.cgi @@ -15,6 +15,7 @@ TUWF::register( qr{ncdu/changes} => \&ncduchangelog, qr{ncdu/man} => \&ncdumanual, qr{ncdc} => \&ncdc, + qr{ncdc/guide} => \&ncdcguide, qr{tuwf} => \&tuwf, qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual, @@ -49,6 +50,7 @@ sub home { E; end; h2 'Updates'; + b '2011-06-20'; txt ' ncdc 0.1 released! And wrote a user guide for it.'; br; b '2011-06-11'; txt ' Added NCurses colour experiment at code dump => nc-colour'; br; 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; @@ -177,48 +179,54 @@ sub 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 + Ncdc is a modern and lightweight direct connect client with a friendly ncurses interface. 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 active and passive mode,'; + li 'Connections tab,'; + li 'Replying to search requests from other clients.'; + end; + + h2 'Try it out'; + p; + b 'Latest version:'; txt ' 0.1 ('; + a href => '/download/ncdc-0.1.tar.gz', 'download'; + txt ' - '; a href => '/download/ncdc.md5', 'md5'; + txt ' - '; a href => '/download/ncdc.sha1', 'sha1'; + txt ')'; br; + txt 'The current version might be slightly awkward to use and still lacks + many features. Nonetheless, it\'s already quite useful as a chat program + and upload server.'; br; + txt 'You can also 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.'; br; + txt 'Check out the '; a href => '/ncdc/guide', 'user guide'; txt ' to get started.'; + 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 + Ncdc has been developed on a recent Arch Linux installation and has been tested on FreeBSD 8.2 and 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. + 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; @@ -228,7 +236,10 @@ sub ncdc { 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; + perhaps easier than getting nanodc to compile.'; br; + txt 'I believe there was another one which used DCTC as backend. I + can\'t find it anymore, but without a doubt it\'s also too old for modern + DC networks.'; 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 @@ -255,6 +266,112 @@ sub ncdc { } +sub ncdcguide { + my $s = shift; + $s->htmlHeader(title => 'Ncdc User Guide', page => 'ncdc', tab => 'guide'); + p 'Since the built-in documentation of ncdc is not really complete yet, it + may be a bit hard to use for first-timers. This is a short guide to help + you get started with ncdc and to make up for the lack of proper + documentation. I\'m assuming that you already managed to install a recent + version of ncdc.'; + + h2 'Starting up'; + p 'Simply run `ncdc\', and you should see something like the following screenshot:'; + img src => '/img/ncdcstart.png', style => 'margin: 5px 0 0 10px; border: 1px solid #999', alt => 'Ncdc start-up screen.'; + + h2 'Basic settings'; + p 'When you just started ncdc, the first thing you want to do is to change some basic settings:'; + pre class => 'code'; + txt '/set nick '; b 'MyNick'; + end; + p 'And optionally, you may also want to change these:'; + pre class => 'code'; + txt '/set description '; b 'ncdc is awesome!'; br; + txt '/set connection '; b '10'; br; + txt '/set email '; b 'user@example.com'; + end; + p 'What you can use with the \'connection\' setting is a bit vague, but + you\'re safe if you just set it to your option speed, in MBit/s. On public + hubs, you probably don\'t want to set an email address.'; + p 'Note: these settings can also be changed on a per-hub basis. More on that below.'; + + h2 'Sharing'; + p 'You can skip this section if you don\'t intent to share any files. To add a directory to your share, use the following command:'; + pre class => 'code'; + txt '/share '; b 'Virtual_name /path/to/actual/dir'; + end; + p "And '/path/to/actual/dir' will be shared under the virtual directory + 'Virtual_name', for which you are free to choose a name. Ncdc will + automatically index and hash the files in this directory. You can use + '/unshare' to remove a directory from your share and '/refresh' to + manually keep the index updated on changes. A refresh is automatically done + every hour by default, but can be changed using '/set autorefresh'."; + + h2 'Active vs. passive'; + p 'By default ncdc will use passive mode. If you are connected directly to + the internet or are behind a router that allows port forwarding, you will + probably want to enable active mode. To do so, issue the following + commands:'; + pre class => 'code'; + txt '/set active_ip '; b $s->reqIP; br; + txt '/set active_port '; b '34194'; br; + txt '/set active '; b 'true'; + end; + p "And make sure the port you specified is properly forwarded."; + + h2 'Connecting to hubs'; + p "This is where ncdc differs a bit from other DC or even IRC clients. To + connect to a hub, you first need to name and open a 'hub tab', after which + you can use '/connect' to actually connect to the hub:"; + pre class => 'code'; + txt '/open '; b 'ghub'; br; + txt '/connect '; b 'dchub://ghub.no-ip.org:411/'; + end; + p "The name you specify with '/open' will be used by ncdc to refer to this + hub. After this, you can always reconnect to this hub simply by typing '/open + ghub', without having to use the '/connect' again."; + p "Some settings can be changed on a per-hub basis, for example your nick. + Using the '/set' command on a hub tab will change the setting only for that + hub. You can use '/unset' to change a setting back to its global value."; + + h2 'Global keybindings and commands'; + p "You have probably noticed that '/open' created a new tab, and are probably + wondering how to switch between multiple tabs and do other funky stuff. The + following ASCII table lists some of the global keybindings you can use:"; + pre class => 'code'; + b 'Alt+j'; txt ' open previous tab.'; br; + b 'Alt+k'; txt ' open next tab.'; br; + b 'Alt+h'; txt ' move current tab left.'; br; + b 'Alt+l'; txt ' move current tab right.'; br; + b 'Alt+'; txt ' open tab with number .'; br; + b 'Alt+c'; txt ' close current tab.'; br; + b 'Alt+n'; txt ' open the connections tab.'; br; + b 'Ctrl+c'; txt ' quit ncdc.'; br; + end; + p "Lots of functionality is hidden behind commands and settings, use '/help' + to get a list of the commands and '/help ' for information about a + specific commands. '/set' can be used to get the list of available + settings, but these are not documented yet."; + + h2 'User list'; + p "To open the user list of a hub, use the '/userlist' command or hit Alt+u. + Here's a list of the keys you can use:"; + pre class => 'code'; + b 'j'; txt ' scroll down.'; br; + b 'k'; txt ' scroll up.'; br; + b 's'; txt ' order by share size.'; br; + b 'u'; txt ' order by username.'; br; + b 'o'; txt ' toggle sort OPs before others.'; br; + b 'd'; txt ' toggle description column.'; br; + b 'e'; txt ' toggle email column.'; br; + b 'c'; txt ' toggle connection column.'; br; + b 'i'; txt ' toggle information box.'; br; + b 'm'; txt ' PM the selected user.'; br; + end; + $s->htmlFooter; +} + + # T U W F @@ -747,6 +864,12 @@ sub htmlHeader { a href => 'http://sourceforge.net/tracker/?group_id=200175', 'bug tracker (sf)'; end; } + if($o{page} eq 'ncdc') { + div id => 'mtabs'; + a href => '/ncdc', !$o{tab} ? (class => 'sel') : (), 'main'; txt ' '; + a href => '/ncdc/guide', $o{tab} eq 'guide' ? (class => 'sel') : (), 'user guide'; txt ' '; + end; + } if($o{page} eq 'tuwf') { div id => 'mtabs'; a href => '/tuwf', !$o{tab} ? (class => 'sel') : (), 'main'; txt ' '; @@ -847,7 +970,7 @@ sub css { #menu a { line-height: 25px; padding: 5px 8px; margin: 0 2px; color: #ccc; } #menu a:hover, #menu a.sel { background-color: #222; text-decoration: none } #main { margin: 30px auto 5px auto; background-color: #000; width: 700px; border: 2px solid #666; text-align: left; padding: 5px 10px 10px 10px } - #mtabs { margin: 30px 0 -28px 0; } + #mtabs { margin: 30px 0 -28px 0; } #mtabs a { background-color: #222; color: #ccc; font-size: 13px; margin: 0 2px; padding: 0 10px 3px 10px; border: 1px solid #666; border-bottom: 2px solid #666 } #mtabs a:hover { background-color: #000; text-decoration: none } #mtabs a.sel { border-bottom: 2px solid #000; background-color: #000; } @@ -856,7 +979,8 @@ sub css { h2 { font-size: 16px; color: #888; margin-top: 25px; margin-bottom: 1px; } b { font-weight: bold; color: #fff } ul { margin-left: 20px } - pre, code { font: 11px monospace; } + pre, code, pre b { font: 11px monospace; } + pre b { font-weight: bold } pre.code, .pod pre { background: #111; border: 1px dotted #666; margin: 5px 10px; display: block; padding: 5px; } .indexgroup ul { margin-left: 5px; list-style-type: none } .indexgroup ul ul { margin-left: 20px }