diff --git a/dat/ncdc-changelog b/dat/ncdc-changelog index 8db45a4..8eb26b7 100644 --- a/dat/ncdc-changelog +++ b/dat/ncdc-changelog @@ -1,135 +1,158 @@ +1.6 - 2011-12-07 + - Use SQLite3 for storage instead of GDBM + - Converted config.ini to SQLite3 database + - Added ncdc-db-upgrade utility + - Session directory is architecture-independent + - All data is safe against crashes and power failures + - Added support for removing/adding directories without rehashing + - Always match every file list on 'Q' key on TTH search + - Immediately flush log entries to the kernel + - Faster start-up + - Added support for per-hub 'active_ip' settings + - Allow interval notation when setting autorefresh + - Broadcast SF (number of shared files) on ADC hubs + - Combine TTH data for downloaded files to blocks of at least 1MiB + - Increased hash buffer size (10KiB -> 512KiB) + - Fix case-insensitivity of search results + - Fix reporting of user state in pm tabs at hub disconnect + - Fix generation of client certificates with openssl + - Fix segfault with duplicate users on an ADC hub + - Fix segfault when opening of a filelist fails + - Fix base32 decoding bug (fixes login sequence on some ADC hubs) + 1.5 - 2011-11-03 - - Added filelist_maxage setting - - Added flush_file_cache setting - - Added /ungrant and improved /grant management - - Added key to download queue to clear user state for all files - - Added keys to search results to download file list and match queue - - Select the right user when using the 'q' key in connection tab - - Fixed possible crash when opening file list from search results - - Fixed detection of incompatible session directory version + - Added filelist_maxage setting + - Added flush_file_cache setting + - Added /ungrant and improved /grant management + - Added key to download queue to clear user state for all files + - Added keys to search results to download file list and match queue + - Select the right user when using the 'q' key in connection tab + - Fixed possible crash when opening file list from search results + - Fixed detection of incompatible session directory version 1.4 - 2011-10-26 - - Added sorting functionality to file list - - Added color settings: title, separator, list_default, list_header and list_select - - Added "blink" color attribute - - Allow /disconnect to be used on the main tab - - Display number of matched and added items when using match queue feature - - Use git-describe to create a version string, if available - - Decreased memory usage for large file lists - - Handle duplicate filenames in other users' file list - - Fixed incorrect setting of the "Incomplete" flag in files.xml.bz2 - - Fixed handling of the PM param in MSG commands on ADC - - Fixed user change notifications for PM tabs + - Added sorting functionality to file list + - Added color settings: title, separator, list_default, list_header and + list_select + - Added "blink" color attribute + - Allow /disconnect to be used on the main tab + - Display number of matched and added items when using match queue feature + - Use git-describe to create a version string, if available + - Decreased memory usage for large file lists + - Handle duplicate filenames in other users' file list + - Fixed incorrect setting of the "Incomplete" flag in files.xml.bz2 + - Fixed handling of the PM param in MSG commands on ADC + - Fixed user change notifications for PM tabs 1.3 - 2011-10-14 - - Added multi-source downloading - - Added user information view and management keys to download queue tab - - Added "search for alternative" key to queue, file browser and search tabs - - Added "match queue" key to file browser and search tabs - - Added ui_time_format setting - - Added chat_only setting - - Changed default value of color_log_time to dark grey - - Improved tracking of a parent for each tab - - Improved portability for Solaris - - Fixed crash when closing a hub tab while it is connecting - - Fixed crash when auto-completing settings without auto-completion - - Fixed bug with file name display if download_dir ends with a slash - - Fixed bug with uploading chunks larger than 2GiB - - Fixed handling of directory search results on ADC + - Added multi-source downloading + - Added user information view and management keys to download queue tab + - Added "search for alternative" key to queue, file browser and search tabs + - Added "match queue" key to file browser and search tabs + - Added ui_time_format setting + - Added chat_only setting + - Changed default value of color_log_time to dark grey + - Improved tracking of a parent for each tab + - Improved portability for Solaris + - Fixed crash when closing a hub tab while it is connecting + - Fixed crash when auto-completing settings without auto-completion + - Fixed bug with file name display if download_dir ends with a slash + - Fixed bug with uploading chunks larger than 2GiB + - Fixed handling of directory search results on ADC 1.2 - 2011-09-25 - - Fixed incorrect handling of outgoing NMDC connections + - Fixed incorrect handling of outgoing NMDC connections 1.1 - 2011-09-25 - - Select item in file browser when opened from a search result - - Added active_bind setting - - Added share_exclude setting - - Added download_exclude setting - - Added incoming_dir setting - - Added autocompletion for the previous values of certain settings - - Allow the "connection" setting to be used for ADC as well - - Added IP column to user list - - Allow sorting on description, email, tag and IP columns in user list - - Display upload speeds in the user list of an ADC hub - - Added TLS indication to connection list - - Mark selected items bold in listings - - Allow /reconnect on the main tab to reconnect all hubs - - Added slash to base path in partial file lists - - Added delay of 5 seconds before reconnecting to a hub - - Added recognition of the AP param on ADC - - Added support for UserIP2 on NMDC - - Removed support for unexpected incoming NMDC connections + - Select item in file browser when opened from a search result + - Added active_bind setting + - Added share_exclude setting + - Added download_exclude setting + - Added incoming_dir setting + - Added autocompletion for the previous values of certain settings + - Allow the "connection" setting to be used for ADC as well + - Added IP column to user list + - Allow sorting on description, email, tag and IP columns in user list + - Display upload speeds in the user list of an ADC hub + - Added TLS indication to connection list + - Mark selected items bold in listings + - Allow /reconnect on the main tab to reconnect all hubs + - Added slash to base path in partial file lists + - Added delay of 5 seconds before reconnecting to a hub + - Added recognition of the AP param on ADC + - Added support for UserIP2 on NMDC + - Removed support for unexpected incoming NMDC connections 1.0 - 2011-09-16 - - Added ncdc(1) and ncdc-gen-cert(1) manual pages - - Documented settings (/help set ) - - Documented key bindings (/help keys) - - Improved line wrapping algorithm for the log window - - Added support for client-to-client TLS on NMDC - - Added support for the CGFI command on ADC - - Throttle GET requests on the same file + offset - - Fixed glib assertion failure when disabling active mode - - Fixed downloading from clients using $ADCSND with -1 bytes - - Fixed race condition in file uploading code - - Fixed idle time calculation while connecting to another client - - Properly include unistd.h in dl.c + - Added ncdc(1) and ncdc-gen-cert(1) manual pages + - Documented settings (/help set ) + - Documented key bindings (/help keys) + - Improved line wrapping algorithm for the log window + - Added support for client-to-client TLS on NMDC + - Added support for the CGFI command on ADC + - Throttle GET requests on the same file + offset + - Fixed glib assertion failure when disabling active mode + - Fixed downloading from clients using $ADCSND with -1 bytes + - Fixed race condition in file uploading code + - Fixed idle time calculation while connecting to another client + - Properly include unistd.h in dl.c 0.9 - 2011-09-03 - - Added TLS support (adcs://, nmdcs://, and ADC client-to-client) - - Added tls_policy setting - - Added KEYP support for ADC - - Added warning when a hub changes TLS certificate - - Display exact listen ports when enabling active mode + - Added TLS support (adcs://, nmdcs://, and ADC client-to-client) + - Added tls_policy setting + - Added KEYP support for ADC + - Added warning when a hub changes TLS certificate + - Display exact listen ports when enabling active mode 0.8 - 2011-08-26 - - Added transfer log - - Added log_downloads and log_uploads settings - - Added day changed indicators to the log windows - - Added common readline keys to the text input box - - Changed /refresh shortcut from Ctrl+e/u to Alt+r - - Allow join messages to work even when the join completion detection fails - - Select parent tab when closing a userlist, PM or filelist tab - - Re-open log files when receiving SIGUSR1 - - Perform a clean shutdown when the terminal is closed - - Fixed bug in formatting the title of a /search tab - - Fixed log indent for non-ASCII nicks - - Fixed log highlighting and indenting for /me messages + - Added transfer log + - Added log_downloads and log_uploads settings + - Added day changed indicators to the log windows + - Added common readline keys to the text input box + - Changed /refresh shortcut from Ctrl+e/u to Alt+r + - Allow join messages to work even when the join completion detection fails + - Select parent tab when closing a userlist, PM or filelist tab + - Re-open log files when receiving SIGUSR1 + - Perform a clean shutdown when the terminal is closed + - Fixed bug in formatting the title of a /search tab + - Fixed log indent for non-ASCII nicks + - Fixed log highlighting and indenting for /me messages 0.7 - 2011-08-17 - - Added word wrapping for the log window - - Added basic colors and nick highlighting to the log window - - Allow colors to be changed with the /set command - - Added backlog feature and setting - - Added silent building to the configure script - - Automatically re-open log files when they are moved/truncated externally - - Accept 'nmdc://' URLs as alternative to 'dchub://' - - Fixed spamming of useless $MyINFO and BINF commands every 5 minutes - - Fixed minor memory leak when closing/clearing the log window + - Added word wrapping for the log window + - Added basic colors and nick highlighting to the log window + - Allow colors to be changed with the /set command + - Added backlog feature and setting + - Added silent building to the configure script + - Automatically re-open log files when they are moved/truncated externally + - Accept 'nmdc://' URLs as alternative to 'dchub://' + - Fixed spamming of useless $MyINFO and BINF commands every 5 minutes + - Fixed minor memory leak when closing/clearing the log window 0.6 - 2011-08-08 - - Added file searching, through a /search command - - Added tab to display the search results - - Listen for incoming messages on UDP in active mode - - Allow specifying a hub address with /open - - Fixed case-sensitivity of shared files - - Various bugfixes and other improvements + - Added file searching, through a /search command + - Added tab to display the search results + - Listen for incoming messages on UDP in active mode + - Allow specifying a hub address with /open + - Fixed case-sensitivity of shared files + - Various bugfixes and other improvements 0.5 - 2011-08-02 - - Downloaded files are now TTH-checked - - Added download queue priorities - - Download queue items are automatically disabled on error - - Improved error handling and reporting for downloads - - Added download_slots setting - - Use a separate thread to load other users' file list - - Improved /gc to also clean up download queue related data - - Decreased memory usage for large file lists - - Improved error handling with sendfile() - - Fixed downloading in passive mode on ADC hubs - - Fixed adding a dir to the download queue while connected to the user - - Fixed segfault when the userlist is open while disconnecting from a hub + - Downloaded files are now TTH-checked + - Added download queue priorities + - Download queue items are automatically disabled on error + - Improved error handling and reporting for downloads + - Added download_slots setting + - Use a separate thread to load other users' file list + - Improved /gc to also clean up download queue related data + - Decreased memory usage for large file lists + - Improved error handling with sendfile() + - Fixed downloading in passive mode on ADC hubs + - Fixed adding a dir to the download queue while connected to the user + - Fixed segfault when the userlist is open while disconnecting from a hub 0.4 - 2011-07-23 - - Added file downloading support. + - Added file downloading support WARNING: Downloaded files are not TTH checked at this moment. - Added persistent download queue - Added busy indicators on start-up and with /gc diff --git a/dat/ncdc-faq b/dat/ncdc-faq index fa7d5fb..49f220b 100644 --- a/dat/ncdc-faq +++ b/dat/ncdc-faq @@ -50,19 +50,26 @@ up-to-date client that still uses any of these features. This is for Ubuntu 11.10, but may work for other versions as well. Run the following command: - sudo apt-get install libbz2-dev libgdbm-dev\ - libncursesw5-dev libxml2-dev libglib2.0-dev gnutls-bin + sudo apt-get install libbz2-dev libsqlite3-dev\ + libncursesw5-dev libxml2-dev libglib2.0-dev And then follow the instructions in the README. -=head2 I'm getting the error "No PEM-encoded private key found" on startup +=head2 Ncdc uses too much disk space! -Most likely this is caused by a L. To get -around it, install the "certtool" utility that comes with gnutls (package -"gnutls-bin" on Ubuntu), delete the old certificates (C), -and then start ncdc again. +First, look where this disk space goes to (hint: use +L). If it's the log files: you can safely +delete or rotate them (see next question). + +The I file can also grow quite large in certain situations. If you +modify or rename a lot of files in your share and ncdc re-hashes them, the old +hash data associated with the files is not removed from the database, resulting +in wasted disk space. The C command in ncdc can be used to clean up this +unused data. Be warned, however, that this command needs roughly twice the size +of the old db.sqlite3 file for temporary storage, so make sure you have enough +space available. (Note that this behaviour is not specific to ncdc, most other +DC clients do the same.) =head2 Why doesn't ncdc rotate log files automatically? @@ -73,6 +80,15 @@ L, which is run as a monthly cron job. +=head2 I'm getting the error "No PEM-encoded private key found" on startup + +(This issue should have been fixed in 1.6) Most likely this is caused by a +L. To +get around it, install the "certtool" utility that comes with gnutls (package +"gnutls-bin" on Ubuntu), delete the old certificates (C), +and then start ncdc again. + + =head1 Can ncdc... @@ -123,6 +139,7 @@ myself, though. I just run ncdc directly on my router. :-) =head2 Are there any programs available for analyzing the transfers.log file? -Nothing like that is included in the release yet, but there is a simple -Perl script available: L. +Nothing like that is included in the release yet, but there is a simple Perl +script available: L, and a short +Go program: L. diff --git a/dat/ncdc-man b/dat/ncdc-man index a0cbf1e..357bac5 100644 --- a/dat/ncdc-man +++ b/dat/ncdc-man @@ -38,13 +38,13 @@ GETTING STARTED /set active true See the help text for each of the commands and settings for more information. - Of course, all of the above settings are saved to the configuration file and - will be used again on the next run. + Of course, all of the above settings are saved to the database and will be used + again on the next run. To connect to a hub, use /open: /open ncdc adc://dc.blicky.net:2780/ Here `ncdc' is the personal name you give to the hub, and the second argument - the URL. This URL will be saved in the config file, so the next time you want to + the URL. This URL will be saved in the database, so the next time you want to connect to this hub, you can simply do: /open ncdc See the help text for '/open' and '/connect' for more information. If you want @@ -88,7 +88,7 @@ INTERACTIVE COMMANDS /accept Use this command to accept the TLS certificate of a hub. This command is used only in the case the keyprint of the TLS certificate of a hub does - not match the keyprint stored in the configuration file. + not match the keyprint stored in the database. /browse [[-f] ] Without arguments, this opens a new tab where you can browse your own @@ -133,22 +133,27 @@ INTERACTIVE COMMANDS /gc Cleans up unused data and reorganizes existing data to allow more effi‐ - cient storage and usage. Currently, this commands cleans up hashdata.dat - and dl.dat, removes unused files in inc/ and old files in fl/. + cient storage and usage. Currently, this commands removes unused hash + data, does a VACUUM on db.sqlite3, removes unused files in inc/ and old + files in fl/. - This command may take some time to complete, and will fully block ncdc - while it is running. You won't have to perform this command very often. + This command may take some time to complete, and will fully block ncdc + while it is running. It is recommended to run this command every once in + a while. Every month is a good interval. Note that when ncdc says that it + has completed this command, it's lying to you. Ncdc will still run a few + large queries on the background, which may take up to a minute to com‐ + plete. /grant [-list|] - Grant someone a slot. This allows the user to download from you even if - you have no free slots. The slot will be granted for as long as ncdc + Grant someone a slot. This allows the user to download from you even if + you have no free slots. The slot will be granted for as long as ncdc stays open or the /ungrant command is used. If you restart ncdc, the user - will have to wait for a regular slot. Unless, of course, you /grant a + will have to wait for a regular slot. Unless, of course, you /grant a slot again. To get a list of users whom you have granted a slot, use `/grant' without - arguments or with `-list'. Be warned that using `/grant' without argu‐ - ments on a PM tab will grant the slot to the user you are talking with. + arguments or with `-list'. Be warned that using `/grant' without argu‐ + ments on a PM tab will grant the slot to the user you are talking with. Make sure to use `-all' in that case. Note that a granted slot is specific to a single hub. If the same user is @@ -162,20 +167,20 @@ INTERACTIVE COMMANDS /kick - Kick a user from the hub. This command only works on NMDC hubs, and you + Kick a user from the hub. This command only works on NMDC hubs, and you need to be an OP to be able to use it. /me - This allows you to talk in third person. Most clients will display your + This allows you to talk in third person. Most clients will display your message as something like: ** Nick is doing something - Note that this command only works correctly on ADC hubs. The NMDC proto‐ - col does not have this feature, and your message will be sent as-is, + Note that this command only works correctly on ADC hubs. The NMDC proto‐ + col does not have this feature, and your message will be sent as-is, including the /me. /msg [] - Send a private message to a user on the currently opened hub. If no mes‐ + Send a private message to a user on the currently opened hub. If no mes‐ sage is given, the tab will be opened but no message will be sent. /nick [] @@ -183,19 +188,19 @@ INTERACTIVE COMMANDS /open [-n] [
] Opens a new tab to use for a hub. The name is a (short) personal name you - use to identify the hub, and will be used for storing hub-specific con‐ + use to identify the hub, and will be used for storing hub-specific con‐ figuration. - If you have specified an address or have previously connected to a hub - from a tab with the same name, /open will automatically connect to the + If you have specified an address or have previously connected to a hub + from a tab with the same name, /open will automatically connect to the hub. Use the `-n' flag to disable this behaviour. See /connect for more information on connecting to a hub. /password - This command can be used to send a password to the hub without saving it - to the config file. If you wish to login automatically without having to - type /password every time, use '/set password '. Be warned, + This command can be used to send a password to the hub without saving it + to the database. If you wish to login automatically without having to + type /password every time, use '/set password '. Be warned, however, that your password will be saved unencrypted in that case. /pm [] @@ -208,24 +213,24 @@ INTERACTIVE COMMANDS Quit ncdc. You can also just hit ctrl+c, which is equivalent. /reconnect - Reconnect to the hub. When your nick or the hub encoding have been + Reconnect to the hub. When your nick or the hub encoding have been changed, the new settings will be used after the reconnect. - This command can also be used on the main tab, in which case all con‐ + This command can also be used on the main tab, in which case all con‐ nected hubs will be reconnected. /refresh [] - Initiates share refresh. If no argument is given, the complete list will - be refreshed. Otherwise only the specified directory will be refreshed. - The path argument can be either an absolute filesystem path or a virtual + Initiates share refresh. If no argument is given, the complete list will + be refreshed. Otherwise only the specified directory will be refreshed. + The path argument can be either an absolute filesystem path or a virtual path within your share. /say - Sends a chat message to the current hub or user. You normally don't have + Sends a chat message to the current hub or user. You normally don't have to use the /say command explicitly, any command not staring with '/' will automatically imply `/say '. For example, typing `hello.' in the - command line is equivalent to `/say hello.'. Using the /say command - explicitly may be useful to send message starting with '/' to the chat, + command line is equivalent to `/say hello.'. Using the /say command + explicitly may be useful to send message starting with '/' to the chat, for example `/say /help is what you are looking for'. /search [options] @@ -239,7 +244,7 @@ INTERACTIVE COMMANDS -t File must be of type . (see below) -tth TTH root of this file must match . - File sizes ( above) accept the following suffixes: G (GiB), M (MiB) + File sizes ( above) accept the following suffixes: G (GiB), M (MiB) and K (KiB). The following file types can be used with the -t option: @@ -251,13 +256,13 @@ INTERACTIVE COMMANDS 6 img Image files. 7 video Video files. 8 dir Directories. - Note that file type matching is done using file extensions, and is not + Note that file type matching is done using file extensions, and is not very reliable. /set [ []] - Get or set configuration variables. Use without arguments to get a list - of all settings and their current value. Changes to the settings are - automatically saved to the config file, and will not be lost after + Get or set configuration variables. Use without arguments to get a list + of all settings and their current value. Changes to the settings are + automatically saved to the config file, and will not be lost after restarting ncdc. To get information on a particular setting, use `/help set '. @@ -265,33 +270,35 @@ INTERACTIVE COMMANDS /share [ ] Use /share without arguments to get a list of shared directories. When called with a name and a path, the path will be added to your share. - Note that shell escaping may be used in the name. For example, to add a + Note that shell escaping may be used in the name. For example, to add a directory with the name `Fun Stuff', you could do the following: /share "Fun Stuff" /path/to/fun/stuff Or: /share Fun\ Stuff /path/to/fun/stuff - The full path to the directory will not be visible to others, only the - name you give it will be public. An initial `/refresh' is done automati‐ + The full path to the directory will not be visible to others, only the + name you give it will be public. An initial `/refresh' is done automati‐ cally on the added directory. /ungrant [|] Revoke a granted slot. /unset [] - This command can be used to reset a configuration variable back to its + This command can be used to reset a configuration variable back to its default value. /unshare [] - To remove a single directory from your share, use `/unshare ', to + To remove a single directory from your share, use `/unshare ', to remove all directories from your share, use `/unshare /'. - Note that all hash data for the removed directories will be thrown away. - All files will have to be re-hashed again when the directory is later re- - added. + Note that the hash data associated with the removed files will remain in + the database. This allows you to re-add the files to your share without + needing to re-hash them. The downside is that the database file may grow + fairly large with unneeded information. See the `/gc' command to clean + that up. /userlist - Opens the user list of the currently selected hub. Can also be accessed + Opens the user list of the currently selected hub. Can also be accessed using Alt+u. /version @@ -304,46 +311,45 @@ INTERACTIVE COMMANDS SETTINGS The following is a list of configuration settings. These settings can be changed - and queried using the `/set' command, and are stored in the config.ini file in + and queried using the `/set' command, and are stored in the db.sqlite3 file in the session directory. active - Enables or disables active mode. Make sure to set `active_ip' and + Enables or disables active mode. Make sure to set `active_ip' and `active_port' before enabling active mode. active_bind - IP address to bind to in active mode. When unset, ncdc will bind to all + IP address to bind to in active mode. When unset, ncdc will bind to all interfaces. active_ip Your public IP address for use in active mode. It is important that other - clients can reach you using this IP address. If you connect to a hub on - the internet, this should be your internet (WAN) IP. Likewise, if you + clients can reach you using this IP address. If you connect to a hub on + the internet, this should be your internet (WAN) IP. Likewise, if you connect to a hub on your LAN, this should be your LAN IP. - Note that this setting is global for ncdc: it is currently not possible - to use a single instance of ncdc to connect to both internet and LAN - hubs, if you are not reachable on the same IP with both networks. In that - case you can either use passive mode or run two separate instances of - ncdc. + Unlike the other connection-related settings, this can be changed on a + per-hub basis, allowing you to have a different public IP address per + hub. active_port - The listen port for incoming connections in active mode. Set to `0' to - automatically assign a random port. If TLS support is available, another - TCP port will be opened on the configured port + 1. Ncdc will tell you - exactly on which ports it is listening for incoming packets. If you are - behind a router or firewall, make sure that you have configured it to + The listen port for incoming connections in active mode. Set to `0' to + automatically assign a random port. If TLS support is available, another + TCP port will be opened on the configured port + 1. Ncdc will tell you + exactly on which ports it is listening for incoming packets. If you are + behind a router or firewall, make sure that you have configured it to forward and allow these ports. autoconnect - Set to true to automatically connect to the current hub when ncdc starts + Set to true to automatically connect to the current hub when ncdc starts up. - autorefresh - The time between automatic file refreshes, in minutes. Set to 0 to dis‐ - able automatically refreshing the file list. This setting also determines - whether ncdc will perform a refresh on startup. See the `/refresh' com‐ - mand to manually refresh your file list. + autorefresh + The time between automatic file refreshes. Recognized suffices are 's' + for seconds, 'm' for minutes, 'h' for hours and 'd' for days. Set to 0 to + disable automatically refreshing the file list. This setting also deter‐ + mines whether ncdc will perform a refresh on startup. See the `/refresh' + command to manually refresh your file list. backlog When opening a hub or PM tab, ncdc can load a certain amount of lines @@ -683,18 +689,17 @@ FILES should be generated automatically when ncdc starts up the first time, but can be generated manually using ncdc-gen-cert(1). - $NCDC_DIR/config.ini - Main configuration file. It is recommended to use commands within ncdc - instead of editing this file manually. In particular, do not edit this - file while ncdc is running, otherwise you will lose your changes. + $NCDC_DIR/db.sqlite3 + The database. This stores all configuration variables, hash data of + shared files, download queue information and other state information. + Manually editing this file with the `sqlite3' commandline tool is possi‐ + ble but discouraged. Any changes made to the database while ncdc is run‐ + ning will not be read, and may even get overwritten by ncdc. $NCDC_DIR/dl/ Directory where completed downloads are moved to by default. Can be changed with the `download_dir' configuration option. - $NCDC_DIR/dl.dat - Stores information about the download queue. - $NCDC_DIR/files.xml.bz2 Filelist containing a listing of all shared files. @@ -704,9 +709,6 @@ FILES ncdc. Old file lists are deleted automatically after a configurable interval. See the `filelist_maxage' configuration option. - $NCDC_DIR/hashdata.dat - File information and hash data for shared files. - $NCDC_DIR/history Command history. @@ -750,8 +752,8 @@ AUTHOR SEE ALSO - ncdc-gen-cert(1). + ncdc-gen-cert(1), ncdc-db-upgrade(1). -ncdc-1.5 November 2011 ncdc(1) +ncdc-1.6 December 2011 ncdc(1) diff --git a/download/ncdc-1.6.tar.gz.asc b/download/ncdc-1.6.tar.gz.asc new file mode 100644 index 0000000..9f73726 --- /dev/null +++ b/download/ncdc-1.6.tar.gz.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQIcBAABCgAGBQJO34UeAAoJEGI5TGmMJzn6wBkP/jZvIr0ylFoTwgSVEA9yaePk +OcafdIaAuhJxk5b66cohmYSO5kkSWY9FtPtJYitdocLvzmLL5EkrOvY+WHCcBDcB +kJa31ScqgfwXGIHbpaZU9aAwoU9uoAjzxoRalxCvQ3PHAp/l5i5NJMNxH2IpByRn +Jr8Ufb6lj8Nkek9USl4NmYeK2LMQH/7q9FHr6gS82K1lJ0tNsYPYiBNF7eGjr1Bw +pxoOthEtCbFeTIfJj2crM8UbQfXMsDFJHTbMmnh8dsAixIIpvT4CDR4Opaubp0Vc +XdM+52W5EPPwGE8GdGc+r2X82LePB8zsjNmWoe7gGWH9nlMbH+IPDzsUj/oA+bj/ +L3T8/Uxs+uh/Jq3IX8v0WxMVcHVDIa8AE4yIRAs5apJwd9635V3CdDwGwIubHGXS +GSSe7UjxZZ9sAIxwsmwgxamtW1+GjLEjzieuHQedVJNW2ObE8/pmpZfJBBDc0LqB +wlpQsOzFH8R7y0HmB0VTnjerkbbaGKPOFVtYVFi04bjEc0J/XSXGWmHGT45Y0v7a +Gs0ibEPjgTAZUQMjhj0U1qvv9cVmxJfsWwI9e48K1alCQy8rdwf+pF9PQYrzrlaB +Sz90KQEuRM54H8VHWZg60Ba2YPv0S+xSqH8gbihdbxr6IEBLcUfkCmexzrudE5TV +xMIJUXseGiv0A/C6K5pB +=Z7Rl +-----END PGP SIGNATURE----- diff --git a/download/ncdc-1.6.tar.gz.md5 b/download/ncdc-1.6.tar.gz.md5 new file mode 100644 index 0000000..24d32f5 --- /dev/null +++ b/download/ncdc-1.6.tar.gz.md5 @@ -0,0 +1 @@ +99d5f58029c2676c38d417bf50632c3e ncdc-1.6.tar.gz diff --git a/download/ncdc-1.6.tar.gz.sha1 b/download/ncdc-1.6.tar.gz.sha1 new file mode 100644 index 0000000..276a4d1 --- /dev/null +++ b/download/ncdc-1.6.tar.gz.sha1 @@ -0,0 +1 @@ +e84831f08aa406134e14c5d14bce158d79b152dd ncdc-1.6.tar.gz diff --git a/img/nccol-osx-iterm2.png b/img/nccol-osx-iterm2.png new file mode 100644 index 0000000..db79798 Binary files /dev/null and b/img/nccol-osx-iterm2.png differ diff --git a/img/nccol-osx-terminal.png b/img/nccol-osx-terminal.png new file mode 100644 index 0000000..824c7c6 Binary files /dev/null and b/img/nccol-osx-terminal.png differ diff --git a/img/nccol-ubuntu.png b/img/nccol-ubuntu.png new file mode 100644 index 0000000..d2cafdc Binary files /dev/null and b/img/nccol-ubuntu.png differ diff --git a/index.cgi b/index.cgi index 96c4c63..e79b912 100755 --- a/index.cgi +++ b/index.cgi @@ -56,6 +56,7 @@ sub home { E; end; h2 'Updates'; + b '2011-12-07'; txt ' ncdc 1.6 released!'; br; b '2011-11-26'; txt ' Added article section and the article on SQLite.'; br; b '2011-11-03'; txt ' ncdc 1.5 and ncdu 1.8 released!'; br; b '2011-10-26'; txt ' ncdc 1.4 released!'; br; @@ -251,13 +252,14 @@ sub ncdc { h2 'Get ncdc!'; p; - b 'Latest version:'; txt ' 1.5 ('; - $s->htmlDLLink('ncdc-1.5.tar.gz', 'download'); + b 'Latest version:'; txt ' 1.6 ('; + $s->htmlDLLink('ncdc-1.6.tar.gz', 'download'); txt ' - '; a href => '/ncdc/changes', 'changes'; txt ' - '; a href => 'https://sourceforge.net/projects/ncdc/files/ncdc/', 'mirror'; txt ')'; br; - txt 'You can also get the latest development version from '; - a href => 'http://g.blicky.net/ncdc.git/', 'this git repository'; + txt 'The latest development version can be fetched from the git repository + at '; code 'git://g.blicky.net/ncdc.git'; txt ' and is available for '; + a href => 'http://g.blicky.net/ncdc.git/', 'online browsing'; txt '. The README includes instructions to build ncdc. Check out the '; a href => '/ncdc/man', 'manual'; txt ' to get started.'; br;br; @@ -311,7 +313,7 @@ sub ncdc { h2 'Requirements'; p; lit <<' E;'; - The following libraries are required: ncurses, bzip2, gdbm, glib2 and libxml2.
+ The following libraries are required: ncurses, bzip2, sqlite3, glib2 and libxml2.
For TLS support, you will need at least glib2 version 2.28.0 and glib-networking installed.
These dependencies should be easy to satisfy. Depending on your system, you @@ -363,6 +365,8 @@ sub ncdcscr { my $s = shift; $s->htmlHeader(title => 'Screenshots', page => 'ncdc', tab => 'scr'); p; + txt 'Note: While these screenshots are from version 1.5, the latest version has only little visible changes.'; + br; br; txt 'Main chat'; img src => '/img/ncdchub.png', class => 'scr', alt => 'Ncdc in the mainchat.'; br;br; @@ -497,6 +501,21 @@ sub docindex { p; txt '2011-11-26 - '; b 'Multi-threaded Access to an SQLite3 Database'; txt ' ['; a href => '/doc/sqlaccess', 'HTML'; txt ' - '; a href => '/dat/sqlaccess', rel => 'nofollow', 'POD'; txt ']'; + br; + txt '2010-06-02 - '; b 'Design and implementation of a compressed linked list library'; + txt ' ['; a href => '/download/doc/compll.pdf', 'PDF'; txt ']'; + br;br; + txt q|Disclaimer: The last one isn't really an article. It's the report for the + final project of my professional (HBO) bachelor of Electrical + Engineering. I was very liberal with some terminology in this report. For + example, "linked lists" aren't what you think they are, and I didn't even + use the term "locality of reference" where I really should have. It was + also written for an audience with little knowledge on the subject, so I + elaborated on a lot of things that should be obvious for most people in + the field. Then there is a lot of uninteresting overhead about the + project itself, which just happened to be mandatory for this report. + Nonetheless, if you can ignore these faults it's not such a bad read, if + I may say so myself. :-)|; end; $s->htmlFooter; } @@ -590,6 +609,25 @@ sub dump { E; a href => 'http://g.blicky.net/serika.git/tree/json.mll', 'source'; end; + + h2 'ncdc-transfer-stats'; + p; + lit <<' E;'; + September 2011. ncdc gained transfer logging features, + and I wrote a quick Perl script to fetch some simple statistics from it. + E; + a href => 'http://p.blicky.net/agolr', 'source'; + end; + + h2 'ncdc-share-report'; + p; + lit <<' E;'; + December 2011. Playing around with the Go programming language, I wrote + another transfer log parser and statistics generator for ncdc. + latest source + (0.1) + E; + end; $s->htmlFooter; } @@ -823,9 +861,9 @@ sub dumpnccolour { li 'Unfortunately, not all terminals are configured in such a way that all possible colours are readable. So as a developer you\'ll still have to support configurable colour schemes in your ncurses application. :-('; - li 'None of the tested terminals make an attempt to change the foreground - colour if it is (almost) invisible on the selected background colour. This - can be a good thing or a bad thing, depending on what you want.'; + li 'On most terminals, setting the foreground and background colour to the + same value without applying the A_BOLD attribute will make the text + invisible. Don\'t rely on this, however, as this is not the case on OS X.'; end; h2 'Full screenshot'; @@ -839,13 +877,16 @@ sub dumpnccolour { h2 'Screenshots'; my @img = ( - 'rox-b' => 'Arch Linux, Roxterm, Default color scheme', - 'rox-w' => 'Arch Linux, Roxterm, GTK color scheme', - 'rox-t' => 'Arch Linux, Roxterm, Tango color scheme', - 'rox-c' => 'Arch Linux, Roxterm, Modified Tango color scheme', - xterm => 'Arch Linux, xterm (default settings)', - debian => 'Debian Squeeze, VT (default settings)', - fbsd => 'FreeBSD, VT (default settings)', + 'rox-b' => 'Arch Linux, Roxterm, Default color scheme', + 'rox-w' => 'Arch Linux, Roxterm, GTK color scheme', + 'rox-t' => 'Arch Linux, Roxterm, Tango color scheme', + 'rox-c' => 'Arch Linux, Roxterm, Modified Tango color scheme', + xterm => 'Arch Linux, xterm (default settings)', + ubuntu => 'Ubuntu 11.10, Gnome-terminal', + debian => 'Debian Squeeze, VT (default settings)', + fbsd => 'FreeBSD, VT (default settings)', + 'osx-terminal' => 'Mac OS X, Terminal', + 'osx-iterm2' => 'Mac OS X, iTerm2', ); while(@img) { my($n, $t) = (shift(@img), shift(@img)); diff --git a/robots.txt b/robots.txt index 4a94b1d..5589b00 100644 --- a/robots.txt +++ b/robots.txt @@ -1,3 +1,4 @@ User-Agent: * Disallow: /download +Disallow: /dat