Redesigned and rewrote the website
Moved most pages out of the index.cgi and into a POD file while I was at it.
This commit is contained in:
parent
ac38865338
commit
b7746b3122
16 changed files with 1460 additions and 1423 deletions
35
dat/doc
Normal file
35
dat/doc
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
When programming stuff, I often come across a situation where I am not
|
||||||
|
happy with the documentation or articles available online, and feel the urge to
|
||||||
|
do something about this situation. Most of the time I resist this urge because
|
||||||
|
I otherwise won't get any programming done, but sometimes this urge is just too
|
||||||
|
hard to resist.
|
||||||
|
|
||||||
|
I don't really have a blog - at least not one that I take seriously - so I'll
|
||||||
|
just use this site to publish my articles. Since I've just started writing
|
||||||
|
these, this page is still quite empty. I'll add more as soon as my urge to
|
||||||
|
write an article surprasses my urge to get some programming done again.
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item C<2011-11-26 > - L<Multi-threaded Access to an SQLite3 Database|http://dev.yorhel.nl/doc/sqlaccess>
|
||||||
|
|
||||||
|
So you have a single database and some threads. How do you combine these in a
|
||||||
|
program?
|
||||||
|
|
||||||
|
=item C<2010-06-02 > - L<Design and implementation of a compressed linked list library|http://dev.yorhel.nl/download/doc/compll.pdf> (PDF)
|
||||||
|
|
||||||
|
This 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. :-)
|
||||||
|
|
||||||
|
=back
|
||||||
63
dat/dump
Normal file
63
dat/dump
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Most of the things I write are simple perl/shell scripts or programs that only
|
||||||
|
serve the purpose of learning something new. This page is a listing of those I
|
||||||
|
thought might be of interest to others as well.
|
||||||
|
|
||||||
|
=head2 bbcode.c
|
||||||
|
|
||||||
|
January 2006. Simple BBCode to HTML converter written in plain C, for learning
|
||||||
|
puroses. L<source|http://dev.yorhel.nl/download/code/bbcode.c>
|
||||||
|
|
||||||
|
=head2 echoserv.c
|
||||||
|
|
||||||
|
February 2006. A simple non-blocking single-threaded TCP echo server,
|
||||||
|
displaying how the select() system call can be used to handle multiple
|
||||||
|
connections. L<source|http://dev.yorhel.nl/download/code/echoserv.c>
|
||||||
|
|
||||||
|
=head2 yapong.c
|
||||||
|
|
||||||
|
Feburary 2006. Yet Another Pong, and yet another program written just for
|
||||||
|
testing/ learning purposes. Tested to work with the ncurses or pdcurses
|
||||||
|
libraries. L<source|/download/code/yapong.c> (L<older
|
||||||
|
version|http://dev.yorhel.nl/download/code/yapong-0.01.c>).
|
||||||
|
|
||||||
|
=head2 Microdc2 log file parser
|
||||||
|
|
||||||
|
June 2007. Simple perl script that parses log files created by
|
||||||
|
L<microdc2|http://corsair626.no-ip.org/microdc/> and outputs a simple and
|
||||||
|
ugly html file with all uploaded files. It correctly merges chunked
|
||||||
|
uploads, calculates average upload speed per file and total bandwidth used
|
||||||
|
for uploads. L<source|http://dev.yorhel.nl/download/code/mdc2-parse.pl>
|
||||||
|
|
||||||
|
B<Note:> for those of you who still use microdc2, please have a look at
|
||||||
|
L<ncdc|http://dev.yorhel.nl/ncdc>, a modern alternative.
|
||||||
|
|
||||||
|
=head2 vinfo.c
|
||||||
|
|
||||||
|
November 2009. The L<public VNDB API|http://vndb.org/d11> was designed to be
|
||||||
|
easy to use even from low level languages. I wrote this simple program to see
|
||||||
|
how much work it would be to use the API in C, and as example code for anyone
|
||||||
|
wishing to use the API for something more useful. Read the comments for more
|
||||||
|
info. L<source|http://dev.yorhel.nl/download/code/vinfo.c>
|
||||||
|
|
||||||
|
=head2 json.mll
|
||||||
|
|
||||||
|
December 2010. I was writing a client for the L<public VNDB
|
||||||
|
API|http://vndb.org/d11> in OCaml and needed a JSON parser/generator. Since I
|
||||||
|
wasn't happy with the currently available solutions - they try to do too many
|
||||||
|
things and have too many dependencies - I decided to write a minimal JSON
|
||||||
|
library myself. L<source|http://g.blicky.net/serika.git/tree/json.mll>
|
||||||
|
|
||||||
|
=head2 ncdc-transfer-stats
|
||||||
|
|
||||||
|
September 2011. L<ncdc|http://dev.yorhel.nl/ncdc> gained transfer logging
|
||||||
|
features, and I wrote a quick Perl script to fetch some simple statistics from
|
||||||
|
it. L<source|http://p.blicky.net/agolr>
|
||||||
|
|
||||||
|
=head2 ncdc-share-report
|
||||||
|
|
||||||
|
December 2011. Playing around with the Go programming language, I wrote another
|
||||||
|
transfer log parser and statistics generator for ncdc.
|
||||||
|
L<source|http://p.blicky.net/6yx2d> (L<older
|
||||||
|
version|http://p.blicky.net/ab4lm>).
|
||||||
102
dat/dump-awshrink
Normal file
102
dat/dump-awshrink
Normal file
|
|
@ -0,0 +1,102 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
People who run AWStats on large log files have most likely noticed: the data
|
||||||
|
files can grow quite large, resulting in both a waste of disk space and longer
|
||||||
|
page generation times for the AWStats pages. I wrote a small script that
|
||||||
|
analyzes these data files and can remove any information you think is
|
||||||
|
unnecessary.
|
||||||
|
|
||||||
|
B<Download:> L<awshrink|http://dev.yorhel.nl/download/code/awshrink> (copy to
|
||||||
|
/usr/bin to install).
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Important
|
||||||
|
|
||||||
|
Do B<NOT> use this script on data files that are not completed yet (i.e. data
|
||||||
|
files of the month you're living in). This will result in inaccurate sorting of
|
||||||
|
visits, pages, referers and whatever other list you're shrinking. Also, keep
|
||||||
|
in mind that this is just a fast written perl hack, it is by no means fast and
|
||||||
|
may hog some memory while shrinking data files.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Usage
|
||||||
|
|
||||||
|
awshrink [-c -s] [-SECTION LINES] [..] datafile
|
||||||
|
-s Show statistics
|
||||||
|
-c Overwrite datafile instead of writing to a backupfile (datafile~)
|
||||||
|
-SECTION LINES
|
||||||
|
Shrink the selected SECTION to LINES lines. (See example below)|;
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Typical command-line usage
|
||||||
|
|
||||||
|
While awshrink is most useful for monthly cron jobs, here's an example of basic
|
||||||
|
command line usage to demonstrate what the script can do:
|
||||||
|
|
||||||
|
$ wc -c awstats122007.a.txt
|
||||||
|
29916817 awstats122007.a.txt
|
||||||
|
|
||||||
|
$ awshrink -s awstats122007.a.txt
|
||||||
|
Section Size (Bytes) Lines
|
||||||
|
SCREENSIZE* 74 0
|
||||||
|
WORMS 131 0
|
||||||
|
EMAILRECEIVER 135 0
|
||||||
|
EMAILSENDER 143 0
|
||||||
|
CLUSTER* 144 0
|
||||||
|
LOGIN 155 0
|
||||||
|
ORIGIN* 178 6
|
||||||
|
ERRORS* 229 10
|
||||||
|
SESSION* 236 7
|
||||||
|
FILETYPES* 340 12
|
||||||
|
MISC* 341 10
|
||||||
|
GENERAL* 362 8
|
||||||
|
OS* 414 29
|
||||||
|
SEREFERRALS 587 34
|
||||||
|
TIME* 1270 24
|
||||||
|
DAY* 1293 31
|
||||||
|
ROBOT 1644 40
|
||||||
|
BROWSER 1992 127
|
||||||
|
DOMAIN 2377 131
|
||||||
|
UNKNOWNREFERERBROWSER 5439 105
|
||||||
|
UNKNOWNREFERER 20585 317
|
||||||
|
SIDER_404 74717 2199
|
||||||
|
PAGEREFS 130982 2500
|
||||||
|
KEYWORDS 288189 27036
|
||||||
|
SIDER 1058723 25470
|
||||||
|
SEARCHWORDS 5038611 157807
|
||||||
|
VISITOR 23285662 416084
|
||||||
|
* = not shrinkable
|
||||||
|
|
||||||
|
$ awshrink -s -c -VISITOR 100 -SEARCHWORDS 100 -SIDER 100 awstats122007.a.txt
|
||||||
|
Section Size (Bytes) Lines
|
||||||
|
SCREENSIZE* 74 0
|
||||||
|
WORMS 131 0
|
||||||
|
EMAILRECEIVER 135 0
|
||||||
|
EMAILSENDER 143 0
|
||||||
|
CLUSTER* 144 0
|
||||||
|
LOGIN 155 0
|
||||||
|
ORIGIN* 178 6
|
||||||
|
ERRORS* 229 10
|
||||||
|
SESSION* 236 7
|
||||||
|
FILETYPES* 340 12
|
||||||
|
MISC* 341 10
|
||||||
|
GENERAL* 362 8
|
||||||
|
OS* 414 29
|
||||||
|
SEREFERRALS 587 34
|
||||||
|
TIME* 1270 24
|
||||||
|
DAY* 1293 31
|
||||||
|
ROBOT 1644 40
|
||||||
|
BROWSER 1992 127
|
||||||
|
SEARCHWORDS 2289 100
|
||||||
|
DOMAIN 2377 131
|
||||||
|
SIDER 3984 100
|
||||||
|
UNKNOWNREFERERBROWSER 5439 105
|
||||||
|
VISITOR 5980 100
|
||||||
|
UNKNOWNREFERER 20585 317
|
||||||
|
SIDER_404 74717 2199
|
||||||
|
PAGEREFS 130982 2500
|
||||||
|
KEYWORDS 288189 27036
|
||||||
|
* = not shrinkable
|
||||||
|
|
||||||
|
$ wc -c awstats122007.a.txt
|
||||||
|
546074 awstats122007.a.txt
|
||||||
28
dat/dump-demo
Normal file
28
dat/dump-demo
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Yes, I realise that the title is plural, suggesting there's more than one demo.
|
||||||
|
That is not quite true, unfortunately. The reason I chose to use plural form is
|
||||||
|
simply in the hopes that I do, in fact, write more demos, and that this page
|
||||||
|
will actually get more content in the future. I still happen to be a huge fan
|
||||||
|
of the L<demoscene|http://demoscene.info/>, and still wish to contribute to
|
||||||
|
it... if only I could find the time and self-discipline to do so. In the
|
||||||
|
meanwhile, here's one demo I did write some time ago:
|
||||||
|
|
||||||
|
=head1 Blue Cubes
|
||||||
|
|
||||||
|
[img right bluecubes.png Blue Cubes.]
|
||||||
|
August 2006. My first demo - or more exact: intro. Blue Cubes is a 64kB intro
|
||||||
|
written in OpenGL/SDL with Linux as target OS. I wrote this intro within 10
|
||||||
|
days without any prior experience in any of the fields of computer generated
|
||||||
|
graphics or music. So needlessly to say, it sucks. I am ashamed even of the
|
||||||
|
thought of releasing it at a respectable demoparty like
|
||||||
|
L<Evoke|http://www.evoke.eu/2006/>. Still, it didn't feel I was unwelcome, I
|
||||||
|
did actually receive three prices: 3rd price in the 64k competition (there were
|
||||||
|
only 3 actual entries, but oh well), best non-windows 64k intro (it was the
|
||||||
|
only one in the competition), and the Digitale Kultur newcomer award, which
|
||||||
|
actually is something to be proud of, I guess.
|
||||||
|
|
||||||
|
L<download|http://dev.yorhel.nl/download/yorhel~bluecubes.zip> -
|
||||||
|
L<mirror|http://scene.org/file.php?file=/parties/2006/evoke06/in64/yorhel_bluecubes.zip&fileinfo>
|
||||||
|
(includes linux binaries, windows port, and sources) -
|
||||||
|
L<pouet comments|http://pouet.net/prod.php?which=25866>.
|
||||||
53
dat/dump-grenamr
Normal file
53
dat/dump-grenamr
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
GRenamR is a GTK+ mass file renamer written in Perl, the functionality is
|
||||||
|
insipred by the
|
||||||
|
L<rename|http://search.cpan.org/~rmbarker/File-Rename-0.05/rename.PL> command
|
||||||
|
that comes with a Perl module.
|
||||||
|
|
||||||
|
GRenamR allows multiple file renaming using perl expressions. You can see the
|
||||||
|
effects of your expression while typing it, and can preview your action before
|
||||||
|
applying them. The accepted expressions are mostly the same as the rename
|
||||||
|
command (see above paragrah): your expression will be evaluated with $_ set to
|
||||||
|
the filename, and any modifications to this variable will result in the
|
||||||
|
renaming of the file. There's one other variable that the rename command does
|
||||||
|
not have: $i, which reflects the file number (starting from 0) in the current
|
||||||
|
list. This allows expressions such as as C<$_=sprintf'%03d.txt',$i>.
|
||||||
|
|
||||||
|
B<Download: > L<grenamr|http://dev.yorhel.nl/download/code/grenamr-0.1.pl>
|
||||||
|
(copy to /usr/bin/ to install)
|
||||||
|
|
||||||
|
Requires the Gtk2 Perl module. Most distributions have a perl-gtk2 package.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Example expressions
|
||||||
|
|
||||||
|
y/A-Z/a-z/ # Convert filenames to lowercase
|
||||||
|
$_=lc # Same
|
||||||
|
s/\.txt$/.utf8/ # Change all '.txt' extensions to '.utf8'
|
||||||
|
s/([0-9]+)/sprintf'%04d',$1/eg # Zero-pad all numbers in filenames
|
||||||
|
|
||||||
|
# Replace each image filename with a zero-padded number starting from 1
|
||||||
|
s/^.+\.jpg$/sprintf'%03d.jpg',$i+1/e
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Caveats / bugs / TODO
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * Calling functions as 'sleep' or 'exit' in the expression will trash the program
|
||||||
|
|
||||||
|
=item * It's currently not possible to manually order the file list, so $i is
|
||||||
|
not useful in every situation
|
||||||
|
|
||||||
|
=item * It's currently not possible to manually rename files or exclude items
|
||||||
|
from being effected by the expression
|
||||||
|
|
||||||
|
=item * The expression isn't executed in the opened directory, so things like
|
||||||
|
L<-X|http://perldoc.perl.org/functions/-X.html> won't work
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head2 Screenshot
|
||||||
|
|
||||||
|
[img scr grenamr.png GRenamR]
|
||||||
99
dat/dump-nccolour
Normal file
99
dat/dump-nccolour
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
I decided to do some experimentation with how the colours defined in ncurses
|
||||||
|
are actually displayed in terminals, what the effects are of combining these
|
||||||
|
colours with other attributes, and how colour schemes of a terminal can affect
|
||||||
|
the displayed colours. To this end I wrote a small c file and ran it in
|
||||||
|
different terminals and different configurations. Note that only the 8 basic
|
||||||
|
NCurses colours are tested, the more flexible init_color() function is not
|
||||||
|
used.
|
||||||
|
|
||||||
|
B<Source code: > L<nccolour.c|http://dev.yorhel.nl/download/code/nccolour.c>
|
||||||
|
(L<syntax highlighed version|http://p.blicky.net/xu35c>)
|
||||||
|
|
||||||
|
Some screenshots can be found below, but more screenshots are always welcome!
|
||||||
|
Please send your (.png) screenshots to projects@yorhel.nl.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Notes / observations
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * The most obvious conclusion: the displayed colours do not have the
|
||||||
|
exact same colour value in every terminal. Some terminals also allow users to
|
||||||
|
modify these colours.
|
||||||
|
|
||||||
|
=item * You can not assume that the default foreground or background colour can
|
||||||
|
be represented by one of the 8 basic colours defined by NCurses.
|
||||||
|
|
||||||
|
=item * Specifying -1 as colour, to indicate the default foreground or
|
||||||
|
background colour, seems to work fine in any terminal tested so far.
|
||||||
|
|
||||||
|
=item * All tested terminals render the foreground colour in a lighter shade
|
||||||
|
when the A_BOLD attribute is set. This does not apply to the background colour.
|
||||||
|
The result of this is that the text becomes visible when using A_BOLD when the
|
||||||
|
foreground and background colour are set to the same value.
|
||||||
|
|
||||||
|
=item * 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. :-(
|
||||||
|
|
||||||
|
=item * 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.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Full screenshot
|
||||||
|
|
||||||
|
To avoid wasting unecessary space, the comparison screenshots below only
|
||||||
|
display the colour table. Here's a screenshot of the full output of the
|
||||||
|
program, which also explains what each column means.
|
||||||
|
|
||||||
|
[img scr nccol-full.png ]
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Screenshots
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item Arch Linux, Roxterm, Default color scheme
|
||||||
|
|
||||||
|
[img scr nccol-rox-b.png ]
|
||||||
|
|
||||||
|
=item Arch Linux, Roxterm, GTK color scheme
|
||||||
|
|
||||||
|
[img scr nccol-rox-w.png ]
|
||||||
|
|
||||||
|
=item Arch Linux, Roxterm, Tango color scheme
|
||||||
|
|
||||||
|
[img scr nccol-rox-t.png ]
|
||||||
|
|
||||||
|
=item Arch Linux, Roxterm, Modified Tango color scheme
|
||||||
|
|
||||||
|
[img scr nccol-rox-c.png ]
|
||||||
|
|
||||||
|
=item Arch Linux, xterm (default settings)
|
||||||
|
|
||||||
|
[img scr nccol-xterm.png ]
|
||||||
|
|
||||||
|
=item Ubuntu 11.10, Gnome-terminal
|
||||||
|
|
||||||
|
[img scr nccol-ubuntu.png ]
|
||||||
|
|
||||||
|
=item Debian Squeeze, VT (default settings)
|
||||||
|
|
||||||
|
[img scr nccol-debian.png ]
|
||||||
|
|
||||||
|
=item FreeBSD, VT (default settings)
|
||||||
|
|
||||||
|
[img scr nccol-fbsd.png ]
|
||||||
|
|
||||||
|
=item Mac OS X, Terminal
|
||||||
|
|
||||||
|
[img scr nccol-osx-terminal.png ]
|
||||||
|
|
||||||
|
=item Mac OS X, iTerm2
|
||||||
|
|
||||||
|
[img scr nccol-osx-iterm2.png ]
|
||||||
77
dat/home
Normal file
77
dat/home
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
This site is an attempt to publish and organise my various opensource programs
|
||||||
|
and libraries on one central location, possibly documented as well as possible
|
||||||
|
so it might actually be useful to anyone. Some of these projects might end up
|
||||||
|
to be total crap, and some might not be useful to anyone at all. I'll simply
|
||||||
|
try to dump most of the things I create here, and leave it up to you whatever
|
||||||
|
you decide to do with it.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Changes
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item C<2012-01-17 > Complete site redesign.
|
||||||
|
|
||||||
|
=item C<2011-12-30 > ncdc 1.7 released!
|
||||||
|
|
||||||
|
=item C<2011-12-07 > ncdc 1.6 released!
|
||||||
|
|
||||||
|
=item C<2011-11-26 > Added article section and the article on SQLite.
|
||||||
|
|
||||||
|
=item C<2011-11-03 > ncdc 1.5 and ncdu 1.8 released!
|
||||||
|
|
||||||
|
=item C<2011-10-26 > ncdc 1.4 released!
|
||||||
|
|
||||||
|
=item C<2011-10-19 > PGP-signed all releases of ncdu, ncdc and TUWF.
|
||||||
|
|
||||||
|
=item C<2011-10-14 > ncdc 1.3 released!
|
||||||
|
|
||||||
|
=item C<2011-09-25 > ncdc 1.1 released - follwed by a 1.2 quickfix.
|
||||||
|
|
||||||
|
=item C<2011-09-16 > ncdc 1.0 released!
|
||||||
|
|
||||||
|
=item C<2011-09-15 > Added some screenshots for ncdu.
|
||||||
|
|
||||||
|
=item C<2011-09-03 > ncdc 0.9 released!
|
||||||
|
|
||||||
|
=item C<2011-08-26 > ncdc 0.8 released!
|
||||||
|
|
||||||
|
=item C<2011-08-17 > ncdc 0.7 released!
|
||||||
|
|
||||||
|
=item C<2011-08-08 > ncdc 0.6 released & user guide updated
|
||||||
|
|
||||||
|
=item C<2011-08-02 > ncdc 0.5 released!
|
||||||
|
|
||||||
|
=item C<2011-07-23 > ncdc 0.4 released!
|
||||||
|
|
||||||
|
=item C<2011-07-15 > ncdc 0.3 released!
|
||||||
|
|
||||||
|
=item C<2011-06-27 > ncdc 0.2 released!
|
||||||
|
|
||||||
|
=item C<2011-06-20 > ncdc 0.1 released! And wrote a user guide for it.
|
||||||
|
|
||||||
|
=item C<2011-06-11 > Added NCurses colour experiment at code dump => nc-colour
|
||||||
|
|
||||||
|
=item C<2011-06-03 > Added my latest project: ncdc
|
||||||
|
|
||||||
|
=item C<2011-02-07 > TUWF 0.1 released and now also available on CPAN
|
||||||
|
|
||||||
|
=item C<2011-01-27 > Documented and uploaded one of my older projects: TUWF
|
||||||
|
|
||||||
|
=item C<2011-01-09 > Added my json.mll OCaml library to code dump
|
||||||
|
|
||||||
|
=item C<2010-08-13 > ncdu 1.7 released!
|
||||||
|
|
||||||
|
=item C<2009-12-22 > Added vinfo.c script to code dump
|
||||||
|
|
||||||
|
=item C<2009-10-23 > ncdu 1.6 released!
|
||||||
|
|
||||||
|
=item C<2009-09-21 > Tiny CSS fix to make this site look good in certain configurations.
|
||||||
|
|
||||||
|
=item C<2009-05-02 > ncdu 1.5 released!
|
||||||
|
|
||||||
|
=item C<2009-04-30 > Site redesign and reorganisation.
|
||||||
|
|
||||||
|
=back
|
||||||
120
dat/ncdc
Normal file
120
dat/ncdc
Normal file
|
|
@ -0,0 +1,120 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Ncdc is a modern and lightweight direct connect client with a friendly
|
||||||
|
ncurses interface.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Get ncdc!
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item Latest version
|
||||||
|
|
||||||
|
1.7 ([dllink ncdc-1.7.tar.gz download]
|
||||||
|
- L<changes|http://dev.yorhel.nl/ncdc/changes>
|
||||||
|
- L<mirror|https://sourceforge.net/projects/ncdc/files/ncdc/>)
|
||||||
|
|
||||||
|
=item Development version
|
||||||
|
|
||||||
|
The latest development version is available from git and can be cloned using
|
||||||
|
C<git clone git://g.blicky.net/ncdc.git>. The repository is available for
|
||||||
|
L<online browsing|http://g.blicky.net/ncdc.git/>.
|
||||||
|
|
||||||
|
You are also invited to join the development hub at C<adc://dc.blicky.net:2780/>.
|
||||||
|
|
||||||
|
=item Packages and ports
|
||||||
|
|
||||||
|
Are available for the following systems:
|
||||||
|
L<Arch Linux|http://aur.archlinux.org/packages.php?ID=50949> -
|
||||||
|
L<FreeBSD|http://www.freshports.org/net-p2p/ncdc/> -
|
||||||
|
L<Frugalware|http://frugalware.org/packages/136807> -
|
||||||
|
L<Gentoo|http://packages.gentoo.org/package/net-p2p/ncdc> -
|
||||||
|
L<Mac OS X|http://www.macports.org/ports.php?by=name&substr=ncdc> -
|
||||||
|
L<OpenSUSE|http://packman.links2linux.org/package/ncdc>
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Features
|
||||||
|
|
||||||
|
Common features all modern DC clients (should) have:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * Connecting to multiple hubs at the same time,
|
||||||
|
|
||||||
|
=item * Support for both ADC and NMDC protocols,
|
||||||
|
|
||||||
|
=item * Chatting and private messaging,
|
||||||
|
|
||||||
|
=item * Browsing the user list of a connected hub,
|
||||||
|
|
||||||
|
=item * Share management and file uploading,
|
||||||
|
|
||||||
|
=item * Connections and download queue management,
|
||||||
|
|
||||||
|
=item * File list browsing,
|
||||||
|
|
||||||
|
=item * Multi-source and TTH-checked file downloading,
|
||||||
|
|
||||||
|
=item * Searching for files,
|
||||||
|
|
||||||
|
=item * Secure hub (adcs:// and nmdcs://) and client connections on both protocols.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
And special features not commonly found in other clients:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * Subdirectory refreshing,
|
||||||
|
|
||||||
|
=item * Nick notification and highlighting in chat windows,
|
||||||
|
|
||||||
|
=item * Detecting changes to the TLS certificate of a hub,
|
||||||
|
|
||||||
|
=item * Efficient file uploads using sendfile(),
|
||||||
|
|
||||||
|
=item * Large file lists are opened in a background thread,
|
||||||
|
|
||||||
|
=item * Doesn't trash your OS file cache (with the flush_file_cache option enabled),
|
||||||
|
|
||||||
|
=item * (Relatively...) low memory usage.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
|
=head2 What doesn't ncdc do?
|
||||||
|
|
||||||
|
Since the above list is getting larger and larger every time, it may be more
|
||||||
|
interesting to list a few features that are (relatively) common in other DC
|
||||||
|
clients, but which ncdc doesn't do. Yet.
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * Segmented downloading,
|
||||||
|
|
||||||
|
=item * Bandwidth throttling,
|
||||||
|
|
||||||
|
=item * OP features (e.g. client detection, file list scanning and other useful stuff for OPs),
|
||||||
|
|
||||||
|
=item * SOCKS support.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Of course, there are many more features that could be implemented or improved.
|
||||||
|
These will all be addressed in later versions (hopefully :).
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Requirements
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Ncdc has been developed on Arch Linux, but I have received reports from people
|
||||||
|
who successfully used it on CentOS, Debian, FreeBSD, Gentoo, Mac OS X,
|
||||||
|
OpenSUSE, Solaris and Ubuntu. 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.
|
||||||
688
dat/ncdc-man
688
dat/ncdc-man
|
|
@ -11,116 +11,120 @@ SYNOPSIS
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
Ncdc is a modern and lightweight direct connect client with a friendly ncurses
|
Ncdc is a modern and lightweight direct connect client with a friendly
|
||||||
interface.
|
ncurses interface.
|
||||||
|
|
||||||
|
|
||||||
GETTING STARTED
|
GETTING STARTED
|
||||||
This is a basic introduction for those who are new to ncdc. See the chapters
|
This is a basic introduction for those who are new to ncdc. See the chap‐
|
||||||
below for a more detailed description of the available functionality.
|
ters below for a more detailed description of the available functionality.
|
||||||
|
|
||||||
What you see when starting up ncdc is an input line where you can input commands
|
What you see when starting up ncdc is an input line where you can input
|
||||||
and a log window where the results are displayed, much like a regular terminal.
|
commands and a log window where the results are displayed, much like a reg‐
|
||||||
Commands within ncdc start with a slash (e.g. `/help') and have tab completion
|
ular terminal. Commands within ncdc start with a slash (e.g. `/help') and
|
||||||
to help you.
|
have tab completion to help you.
|
||||||
|
|
||||||
The first thing you will want to do after starting ncdc for the first time is to
|
The first thing you will want to do after starting ncdc for the first time
|
||||||
setup some basic information and settings:
|
is to setup some basic information and settings:
|
||||||
/set nick MyNick
|
/set nick MyNick
|
||||||
/set description ncdc is awesome!
|
/set description ncdc is awesome!
|
||||||
/set connection 10
|
/set connection 10
|
||||||
/share "My Awesome Files" /path/to/files
|
/share "My Awesome Files" /path/to/files
|
||||||
|
|
||||||
And if you have a direct connection to the internet or if your router allows
|
And if you have a direct connection to the internet or if your router
|
||||||
port forwarding, you may also want to enable active mode:
|
allows port forwarding, you may also want to enable active mode:
|
||||||
/set active_ip 13.33.33.7
|
/set active_ip 13.33.33.7
|
||||||
/set active_port 34194
|
/set active_port 34194
|
||||||
/set active true
|
/set active true
|
||||||
|
|
||||||
See the help text for each of the commands and settings for more information.
|
See the help text for each of the commands and settings for more informa‐
|
||||||
Of course, all of the above settings are saved to the database and will be used
|
tion. Of course, all of the above settings are saved to the database and
|
||||||
again on the next run.
|
will be used again on the next run.
|
||||||
|
|
||||||
To connect to a hub, use /open:
|
To connect to a hub, use /open:
|
||||||
/open ncdc adc://dc.blicky.net:2780/
|
/open ncdc adc://dc.blicky.net:2780/
|
||||||
Here `ncdc' is the personal name you give to the hub, and the second argument
|
Here `ncdc' is the personal name you give to the hub, and the second argu‐
|
||||||
the URL. This URL will be saved in the database, so the next time you want to
|
ment the URL. This URL will be saved in the database, so the next time you
|
||||||
connect to this hub, you can simply do:
|
want to connect to this hub, you can simply do:
|
||||||
/open ncdc
|
/open ncdc
|
||||||
See the help text for '/open' and '/connect' for more information. If you want
|
See the help text for '/open' and '/connect' for more information. If you
|
||||||
to automatically connect to a hub when ncdc starts up, use the `autoconnect'
|
want to automatically connect to a hub when ncdc starts up, use the `auto‐
|
||||||
setting.
|
connect' setting.
|
||||||
|
|
||||||
Ncdc uses a tabbed interface: every hub opens in a new tab, and there are sev‐
|
Ncdc uses a tabbed interface: every hub opens in a new tab, and there are
|
||||||
eral other kinds of tabs available as well. The type of tab is indicated in the
|
several other kinds of tabs available as well. The type of tab is indicated
|
||||||
tab list on the bottom of the screen with a character prefix. Hubs, for example,
|
in the tab list on the bottom of the screen with a character prefix. Hubs,
|
||||||
are prefixed with a `#'. If a tab needs your attention, a colored exclamation
|
for example, are prefixed with a `#'. If a tab needs your attention, a col‐
|
||||||
mark is displayed before the tab name, different colors are used for different
|
ored exclamation mark is displayed before the tab name, different colors
|
||||||
types of activity.
|
are used for different types of activity.
|
||||||
|
|
||||||
Everything else should be fairly self-explanatory: To search for files, use the
|
Everything else should be fairly self-explanatory: To search for files, use
|
||||||
`/search' command. To browse through the user list of a hub, use `/userlist' or
|
the `/search' command. To browse through the user list of a hub, use
|
||||||
hit Alt+u. To browse someone's file list, use `/browse' or hit the 'b' key in
|
`/userlist' or hit Alt+u. To browse someone's file list, use `/browse' or
|
||||||
the user list. And to monitor your upload and download connections, use `/con‐
|
hit the 'b' key in the user list. And to monitor your upload and download
|
||||||
nections' or hit Alt+n.
|
connections, use `/connections' or hit Alt+n.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-c, --session-dir=<dir>
|
-c, --session-dir=<dir>
|
||||||
Use a different session directory. Defaults to the contents of the envi‐
|
Use a different session directory. Defaults to the contents of the
|
||||||
ronment variable `$NCDC_DIR' or if this is unset to `$HOME/.ncdc'.
|
environment variable `$NCDC_DIR' or if this is unset to
|
||||||
|
`$HOME/.ncdc'.
|
||||||
|
|
||||||
-h, --help
|
-h, --help
|
||||||
Display summary of options.
|
Display summary of options.
|
||||||
|
|
||||||
-n, --no-autoconnect
|
-n, --no-autoconnect
|
||||||
Don't automatically connect to hubs with the `autoconnect' option set.
|
Don't automatically connect to hubs with the `autoconnect' option
|
||||||
|
set.
|
||||||
|
|
||||||
-v, --version
|
-v, --version
|
||||||
Display ncdc version.
|
Display ncdc version.
|
||||||
|
|
||||||
|
|
||||||
INTERACTIVE COMMANDS
|
INTERACTIVE COMMANDS
|
||||||
The following is the list of commands that can be used within ncdc. The /help
|
The following is the list of commands that can be used within ncdc. The
|
||||||
command can also be used get a list of available commands and to access this
|
/help command can also be used get a list of available commands and to
|
||||||
documentation.
|
access this documentation.
|
||||||
|
|
||||||
/accept
|
/accept
|
||||||
Use this command to accept the TLS certificate of a hub. This command is
|
Use this command to accept the TLS certificate of a hub. This com‐
|
||||||
used only in the case the keyprint of the TLS certificate of a hub does
|
mand is used only in the case the keyprint of the TLS certificate of
|
||||||
not match the keyprint stored in the database.
|
a hub does not match the keyprint stored in the database.
|
||||||
|
|
||||||
/browse [[-f] <user>]
|
/browse [[-f] <user>]
|
||||||
Without arguments, this opens a new tab where you can browse your own
|
Without arguments, this opens a new tab where you can browse your
|
||||||
file list. Note that changes to your list are not immediately visible in
|
own file list. Note that changes to your list are not immediately
|
||||||
the browser. You need to re-open the tab to get the latest version of
|
visible in the browser. You need to re-open the tab to get the lat‐
|
||||||
your list.
|
est version of your list.
|
||||||
|
|
||||||
With arguments, the file list of the specified user will be downloaded
|
With arguments, the file list of the specified user will be down‐
|
||||||
(if it has not been downloaded already) and the browse tab will open once
|
loaded (if it has not been downloaded already) and the browse tab
|
||||||
it's complete. The `-f' flag can be used to force the file list to be
|
will open once it's complete. The `-f' flag can be used to force the
|
||||||
(re-)downloaded.
|
file list to be (re-)downloaded.
|
||||||
|
|
||||||
/clear
|
/clear
|
||||||
Clears the log displayed on the screen. Does not affect the log files in
|
Clears the log displayed on the screen. Does not affect the log
|
||||||
any way. Ctrl+l is a shortcut for this command.
|
files in any way. Ctrl+l is a shortcut for this command.
|
||||||
|
|
||||||
/close
|
/close
|
||||||
Close the current tab. When closing a hub tab, you will be disconnected
|
Close the current tab. When closing a hub tab, you will be discon‐
|
||||||
from the hub and all related userlist and PM tabs will also be closed.
|
nected from the hub and all related userlist and PM tabs will also
|
||||||
Alt+c is a shortcut for this command.
|
be closed. Alt+c is a shortcut for this command.
|
||||||
|
|
||||||
/connect [<address>]
|
/connect [<address>]
|
||||||
Initiate a connection with a hub. If no address is specified, will con‐
|
Initiate a connection with a hub. If no address is specified, will
|
||||||
nect to the hub you last used on the current tab. The address should be
|
connect to the hub you last used on the current tab. The address
|
||||||
in the form of `protocol://host:port/' or `host:port'. The `:port' part
|
should be in the form of `protocol://host:port/' or `host:port'. The
|
||||||
is in both cases optional and defaults to :411. The following protocols
|
`:port' part is in both cases optional and defaults to :411. The
|
||||||
are recognized: dchub, nmdc, nmdcs, adc, adcs. When connecting to an
|
following protocols are recognized: dchub, nmdc, nmdcs, adc, adcs.
|
||||||
nmdcs or adcs hub and the SHA256 keyprint is known, you can attach this
|
When connecting to an nmdcs or adcs hub and the SHA256 keyprint is
|
||||||
to the url as `?kp=SHA256/<base32-encoded-keyprint>'
|
known, you can attach this to the url as
|
||||||
|
`?kp=SHA256/<base32-encoded-keyprint>'
|
||||||
|
|
||||||
Note that this command can only be used on hub tabs. If you want to open
|
Note that this command can only be used on hub tabs. If you want to
|
||||||
a new connection to a hub, you need to use /open first. For example:
|
open a new connection to a hub, you need to use /open first. For
|
||||||
|
example:
|
||||||
/open testhub
|
/open testhub
|
||||||
/connect dchub://dc.some-test-hub.com/
|
/connect dchub://dc.some-test-hub.com/
|
||||||
See the /open command for more information.
|
See the /open command for more information.
|
||||||
|
|
@ -132,37 +136,39 @@ INTERACTIVE COMMANDS
|
||||||
Disconnect from a hub.
|
Disconnect from a hub.
|
||||||
|
|
||||||
/gc
|
/gc
|
||||||
Cleans up unused data and reorganizes existing data to allow more effi‐
|
Cleans up unused data and reorganizes existing data to allow more
|
||||||
cient storage and usage. Currently, this commands removes unused hash
|
efficient storage and usage. Currently, this commands removes unused
|
||||||
data, does a VACUUM on db.sqlite3, removes unused files in inc/ and old
|
hash data, does a VACUUM on db.sqlite3, removes unused files in inc/
|
||||||
files in fl/.
|
and old files in fl/.
|
||||||
|
|
||||||
This command may take some time to complete, and will fully block ncdc
|
This command may take some time to complete, and will fully block
|
||||||
while it is running. It is recommended to run this command every once in
|
ncdc while it is running. It is recommended to run this command
|
||||||
a while. Every month is a good interval. Note that when ncdc says that it
|
every once in a while. Every month is a good interval. Note that
|
||||||
has completed this command, it's lying to you. Ncdc will still run a few
|
when ncdc says that it has completed this command, it's lying to
|
||||||
large queries on the background, which may take up to a minute to com‐
|
you. Ncdc will still run a few large queries on the background,
|
||||||
plete.
|
which may take up to a minute to complete.
|
||||||
|
|
||||||
/grant [-list|<user>]
|
/grant [-list|<user>]
|
||||||
Grant someone a slot. This allows the user to download from you even if
|
Grant someone a slot. This allows the user to download from you even
|
||||||
you have no free slots. The slot will be granted for as long as ncdc
|
if you have no free slots. The slot will be granted for as long as
|
||||||
stays open or the /ungrant command is used. If you restart ncdc, the user
|
ncdc stays open or the /ungrant command is used. If you restart
|
||||||
will have to wait for a regular slot. Unless, of course, you /grant a
|
ncdc, the user will have to wait for a regular slot. Unless, of
|
||||||
slot again.
|
course, you /grant a slot again.
|
||||||
|
|
||||||
To get a list of users whom you have granted a slot, use `/grant' without
|
To get a list of users whom you have granted a slot, use `/grant'
|
||||||
arguments or with `-list'. Be warned that using `/grant' without argu‐
|
without arguments or with `-list'. Be warned that using `/grant'
|
||||||
ments on a PM tab will grant the slot to the user you are talking with.
|
without arguments on a PM tab will grant the slot to the user you
|
||||||
Make sure to use `-all' in that case.
|
are talking with. Make sure to use `-list' in that case.
|
||||||
|
|
||||||
Note that a granted slot is specific to a single hub. If the same user is
|
Note that a granted slot is specific to a single hub. If the same
|
||||||
also on other hubs, he/she will not be granted a slot on those hubs.
|
user is also on other hubs, he/she will not be granted a slot on
|
||||||
|
those hubs.
|
||||||
|
|
||||||
/help [<command>|set <key>|keys [<section>]]
|
/help [<command>|set <key>|keys [<section>]]
|
||||||
To get a list of available commands, use /help without arguments.
|
To get a list of available commands, use /help without arguments.
|
||||||
To get information on a particular command, use /help <command>.
|
To get information on a particular command, use /help <command>.
|
||||||
To get information on a configuration setting, use /help set <setting>.
|
To get information on a configuration setting, use /help set <set‐
|
||||||
|
ting>.
|
||||||
To get help on key bindings, use /help keys.
|
To get help on key bindings, use /help keys.
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -171,45 +177,47 @@ INTERACTIVE COMMANDS
|
||||||
`/set' command, but can only be used on hub tabs.
|
`/set' command, but can only be used on hub tabs.
|
||||||
|
|
||||||
/hunset [<key>]
|
/hunset [<key>]
|
||||||
This command can be used to reset a per-hub configuration variable back
|
This command can be used to reset a per-hub configuration variable
|
||||||
to its global value.
|
back to its global value.
|
||||||
|
|
||||||
/kick <user>
|
/kick <user>
|
||||||
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
|
||||||
need to be an OP to be able to use it.
|
you need to be an OP to be able to use it.
|
||||||
|
|
||||||
/me <message>
|
/me <message>
|
||||||
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
|
||||||
message as something like:
|
your message as something like:
|
||||||
** Nick is doing something
|
** Nick is doing something
|
||||||
|
|
||||||
Note that this command only works correctly on ADC hubs. The NMDC proto‐
|
Note that this command only works correctly on ADC hubs. The NMDC
|
||||||
col does not have this feature, and your message will be sent as-is,
|
protocol does not have this feature, and your message will be sent
|
||||||
including the /me.
|
as-is, including the /me.
|
||||||
|
|
||||||
/msg <user> [<message>]
|
/msg <user> [<message>]
|
||||||
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
|
||||||
sage is given, the tab will be opened but no message will be sent.
|
message is given, the tab will be opened but no message will be
|
||||||
|
sent.
|
||||||
|
|
||||||
/nick [<nick>]
|
/nick [<nick>]
|
||||||
Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.
|
Alias for `/hset nick' on hub tabs, and `/set nick' otherwise.
|
||||||
|
|
||||||
/open [-n] <name> [<address>]
|
/open [-n] <name> [<address>]
|
||||||
Opens a new tab to use for a hub. The name is a (short) personal name you
|
Opens a new tab to use for a hub. The name is a (short) personal
|
||||||
use to identify the hub, and will be used for storing hub-specific con‐
|
name you use to identify the hub, and will be used for storing hub-
|
||||||
figuration.
|
specific configuration.
|
||||||
|
|
||||||
If you have specified an address or have previously connected to a hub
|
If you have specified an address or have previously connected to a
|
||||||
from a tab with the same name, /open will automatically connect to the
|
hub from a tab with the same name, /open will automatically connect
|
||||||
hub. Use the `-n' flag to disable this behaviour.
|
to the hub. Use the `-n' flag to disable this behaviour.
|
||||||
|
|
||||||
See /connect for more information on connecting to a hub.
|
See /connect for more information on connecting to a hub.
|
||||||
|
|
||||||
/password <password>
|
/password <password>
|
||||||
This command can be used to send a password to the hub without saving it
|
This command can be used to send a password to the hub without sav‐
|
||||||
to the database. If you wish to login automatically without having to
|
ing it to the database. If you wish to login automatically without
|
||||||
type /password every time, use '/hset password <password>'. Be warned,
|
having to type /password every time, use '/hset password <pass‐
|
||||||
however, that your password will be saved unencrypted in that case.
|
word>'. Be warned, however, that your password will be saved unen‐
|
||||||
|
crypted in that case.
|
||||||
|
|
||||||
/pm <user> [<message>]
|
/pm <user> [<message>]
|
||||||
Alias for /msg
|
Alias for /msg
|
||||||
|
|
@ -224,36 +232,38 @@ INTERACTIVE COMMANDS
|
||||||
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.
|
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
|
||||||
nected hubs will be reconnected.
|
connected hubs will be reconnected.
|
||||||
|
|
||||||
/refresh [<path>]
|
/refresh [<path>]
|
||||||
Initiates share refresh. If no argument is given, the complete list will
|
Initiates share refresh. If no argument is given, the complete list
|
||||||
be refreshed. Otherwise only the specified directory will be refreshed.
|
will be refreshed. Otherwise only the specified directory will be
|
||||||
The path argument can be either an absolute filesystem path or a virtual
|
refreshed. The path argument can be either an absolute filesystem
|
||||||
path within your share.
|
path or a virtual path within your share.
|
||||||
|
|
||||||
/say <message>
|
/say <message>
|
||||||
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
|
||||||
to use the /say command explicitly, any command not staring with '/' will
|
have to use the /say command explicitly, any command not staring
|
||||||
automatically imply `/say <command>'. For example, typing `hello.' in the
|
with '/' will automatically imply `/say <command>'. For example,
|
||||||
command line is equivalent to `/say hello.'. Using the /say command
|
typing `hello.' in the command line is equivalent to `/say hello.'.
|
||||||
explicitly may be useful to send message starting with '/' to the chat,
|
Using the /say command explicitly may be useful to send message
|
||||||
for example `/say /help is what you are looking for'.
|
starting with '/' to the chat, for example `/say /help is what you
|
||||||
|
are looking for'.
|
||||||
|
|
||||||
/search [options] <query>
|
/search [options] <query>
|
||||||
Performs a file search, opening a new tab with the results.
|
Performs a file search, opening a new tab with the results.
|
||||||
|
|
||||||
Available options:
|
Available options:
|
||||||
-hub Search the current hub only. (default)
|
-hub Search the current hub only. (default)
|
||||||
-all Search all connected hubs, except those with `chat_only' set.
|
-all Search all connected hubs, except those with `chat_only'
|
||||||
|
set.
|
||||||
-le <s> Size of the file must be less than <s>.
|
-le <s> Size of the file must be less than <s>.
|
||||||
-ge <s> Size of the file must be larger than <s>.
|
-ge <s> Size of the file must be larger than <s>.
|
||||||
-t <t> File must be of type <t>. (see below)
|
-t <t> File must be of type <t>. (see below)
|
||||||
-tth <h> TTH root of this file must match <h>.
|
-tth <h> TTH root of this file must match <h>.
|
||||||
|
|
||||||
File sizes (<s> above) accept the following suffixes: G (GiB), M (MiB)
|
File sizes (<s> above) accept the following suffixes: G (GiB), M
|
||||||
and K (KiB).
|
(MiB) and K (KiB).
|
||||||
|
|
||||||
The following file types can be used with the -t option:
|
The following file types can be used with the -t option:
|
||||||
1 any Any file or directory. (default)
|
1 any Any file or directory. (default)
|
||||||
|
|
@ -264,54 +274,55 @@ INTERACTIVE COMMANDS
|
||||||
6 img Image files.
|
6 img Image files.
|
||||||
7 video Video files.
|
7 video Video files.
|
||||||
8 dir Directories.
|
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
|
||||||
very reliable.
|
not very reliable.
|
||||||
|
|
||||||
/set [<key> [<value>]]
|
/set [<key> [<value>]]
|
||||||
Get or set global configuration variables. Use without arguments to get a
|
Get or set global configuration variables. Use without arguments to
|
||||||
list of all global settings and their current value. Glob-style pattern
|
get a list of all global settings and their current value. Glob-
|
||||||
matching on the settings is also possible. Use, for example, `/set
|
style pattern matching on the settings is also possible. Use, for
|
||||||
color*' to list all color-related settings.
|
example, `/set color*' to list all color-related settings.
|
||||||
|
|
||||||
See the `/hset' command to manage configuration on a per-hub basis.
|
See the `/hset' command to manage configuration on a per-hub basis.
|
||||||
Changes to the settings are automatically saved to the database, and will
|
Changes to the settings are automatically saved to the database, and
|
||||||
not be lost after restarting ncdc.
|
will not be lost after restarting ncdc.
|
||||||
|
|
||||||
To get information on a particular setting, use `/help set <key>'.
|
To get information on a particular setting, use `/help set <key>'.
|
||||||
|
|
||||||
/share [<name> <path>]
|
/share [<name> <path>]
|
||||||
Use /share without arguments to get a list of shared directories.
|
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.
|
When called with a name and a path, the path will be added to your
|
||||||
Note that shell escaping may be used in the name. For example, to add a
|
share. Note that shell escaping may be used in the name. For exam‐
|
||||||
directory with the name `Fun Stuff', you could do the following:
|
ple, to add a directory with the name `Fun Stuff', you could do the
|
||||||
|
following:
|
||||||
/share "Fun Stuff" /path/to/fun/stuff
|
/share "Fun Stuff" /path/to/fun/stuff
|
||||||
Or:
|
Or:
|
||||||
/share Fun\ Stuff /path/to/fun/stuff
|
/share Fun\ Stuff /path/to/fun/stuff
|
||||||
|
|
||||||
The full path to the directory will not be visible to others, only the
|
The full path to the directory will not be visible to others, only
|
||||||
name you give it will be public. An initial `/refresh' is done automati‐
|
the name you give it will be public. An initial `/refresh' is done
|
||||||
cally on the added directory.
|
automatically on the added directory.
|
||||||
|
|
||||||
/ungrant [<username>|<id>]
|
/ungrant [<username>|<id>]
|
||||||
Revoke a granted slot.
|
Revoke a granted slot.
|
||||||
|
|
||||||
/unset [<key>]
|
/unset [<key>]
|
||||||
This command can be used to reset a global configuration variable back to
|
This command can be used to reset a global configuration variable
|
||||||
its default value.
|
back to its default value.
|
||||||
|
|
||||||
/unshare [<name>]
|
/unshare [<name>]
|
||||||
To remove a single directory from your share, use `/unshare <name>', to
|
To remove a single directory from your share, use `/unshare <name>',
|
||||||
remove all directories from your share, use `/unshare /'.
|
to remove all directories from your share, use `/unshare /'.
|
||||||
|
|
||||||
Note that the hash data associated with the removed files will remain in
|
Note that the hash data associated with the removed files will
|
||||||
the database. This allows you to re-add the files to your share without
|
remain in the database. This allows you to re-add the files to your
|
||||||
needing to re-hash them. The downside is that the database file may grow
|
share without needing to re-hash them. The downside is that the
|
||||||
fairly large with unneeded information. See the `/gc' command to clean
|
database file may grow fairly large with unneeded information. See
|
||||||
that up.
|
the `/gc' command to clean that up.
|
||||||
|
|
||||||
/userlist
|
/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
|
||||||
using Alt+u.
|
accessed using Alt+u.
|
||||||
|
|
||||||
/version
|
/version
|
||||||
Display version information.
|
Display version information.
|
||||||
|
|
@ -322,63 +333,66 @@ INTERACTIVE COMMANDS
|
||||||
|
|
||||||
|
|
||||||
SETTINGS
|
SETTINGS
|
||||||
The following is a list of configuration settings. These settings can be changed
|
The following is a list of configuration settings. These settings can be
|
||||||
and queried using the `/set' command for global settings and `/hset' for hub-
|
changed and queried using the `/set' command for global settings and
|
||||||
local settings. All configuration data is stored in the db.sqlite3 file in the
|
`/hset' for hub-local settings. All configuration data is stored in the
|
||||||
session directory.
|
db.sqlite3 file in the session directory.
|
||||||
|
|
||||||
active <boolean>
|
active <boolean>
|
||||||
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_port' before enabling active mode.
|
||||||
|
|
||||||
active_bind <string>
|
active_bind <string>
|
||||||
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
|
||||||
interfaces.
|
all interfaces.
|
||||||
|
|
||||||
active_ip <string>
|
active_ip <string>
|
||||||
Your public IP address for use in active mode. It is important that other
|
Your public IP address for use in active mode. It is important that
|
||||||
clients can reach you using this IP address. If you connect to a hub on
|
other clients can reach you using this IP address. If you connect to
|
||||||
the internet, this should be your internet (WAN) IP. Likewise, if you
|
a hub on the internet, this should be your internet (WAN) IP. Like‐
|
||||||
connect to a hub on your LAN, this should be your LAN IP.
|
wise, if you connect to a hub on your LAN, this should be your LAN
|
||||||
|
IP.
|
||||||
|
|
||||||
Unlike the other connection-related settings, this can be changed on a
|
Unlike the other connection-related settings, this can be changed on
|
||||||
per-hub basis, allowing you to have a different public IP address per
|
a per-hub basis, allowing you to have a different public IP address
|
||||||
hub.
|
per hub.
|
||||||
|
|
||||||
active_port <integer>
|
active_port <integer>
|
||||||
The listen port for incoming connections in active mode. Set to `0' to
|
The listen port for incoming connections in active mode. Set to `0'
|
||||||
automatically assign a random port. If TLS support is available, another
|
to automatically assign a random port. If TLS support is available,
|
||||||
TCP port will be opened on the configured port + 1. Ncdc will tell you
|
another TCP port will be opened on the configured port + 1. Ncdc
|
||||||
exactly on which ports it is listening for incoming packets. If you are
|
will tell you exactly on which ports it is listening for incoming
|
||||||
behind a router or firewall, make sure that you have configured it to
|
packets. If you are behind a router or firewall, make sure that you
|
||||||
forward and allow these ports.
|
have configured it to forward and allow these ports.
|
||||||
|
|
||||||
autoconnect <boolean>
|
autoconnect <boolean>
|
||||||
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
|
||||||
up.
|
starts up.
|
||||||
|
|
||||||
autorefresh <interval>
|
autorefresh <interval>
|
||||||
The time between automatic file refreshes. Recognized suffices are 's'
|
The time between automatic file refreshes. Recognized suffices are
|
||||||
for seconds, 'm' for minutes, 'h' for hours and 'd' for days. Set to 0 to
|
's' for seconds, 'm' for minutes, 'h' for hours and 'd' for days.
|
||||||
disable automatically refreshing the file list. This setting also deter‐
|
Set to 0 to disable automatically refreshing the file list. This
|
||||||
mines whether ncdc will perform a refresh on startup. See the `/refresh'
|
setting also determines whether ncdc will perform a refresh on
|
||||||
command to manually refresh your file list.
|
startup. See the `/refresh' command to manually refresh your file
|
||||||
|
list.
|
||||||
|
|
||||||
backlog <integer>
|
backlog <integer>
|
||||||
When opening a hub or PM tab, ncdc can load a certain amount of lines
|
When opening a hub or PM tab, ncdc can load a certain amount of
|
||||||
from the log file into the log window. Setting this to a positive value
|
lines from the log file into the log window. Setting this to a posi‐
|
||||||
enables this feature and configures the number of lines to load. Note
|
tive value enables this feature and configures the number of lines
|
||||||
that, while this setting can be set on a per-hub basis, PM windows will
|
to load. Note that, while this setting can be set on a per-hub
|
||||||
use the global value (global.backlog).
|
basis, PM windows will use the global value (global.backlog).
|
||||||
|
|
||||||
chat_only <boolean>
|
chat_only <boolean>
|
||||||
Set to true to indicate that this hub is only used for chatting. That is,
|
Set to true to indicate that this hub is only used for chatting.
|
||||||
you won't or can't download from it. This setting affects the /search
|
That is, you won't or can't download from it. This setting affects
|
||||||
command when it is given the -all option.
|
the /search command when it is given the -all option.
|
||||||
|
|
||||||
color_* <color>
|
color_* <color>
|
||||||
The settings starting with the `color_' prefix allow you to change the
|
The settings starting with the `color_' prefix allow you to change
|
||||||
interface colors. The following is a list of available color settings:
|
the interface colors. The following is a list of available color
|
||||||
|
settings:
|
||||||
list_default - default item in a list
|
list_default - default item in a list
|
||||||
list_header - header of a list
|
list_header - header of a list
|
||||||
list_select - selected item in a list
|
list_select - selected item in a list
|
||||||
|
|
@ -395,59 +409,61 @@ SETTINGS
|
||||||
tabprio_high - high priority tab notification color
|
tabprio_high - high priority tab notification color
|
||||||
title - the title bar
|
title - the title bar
|
||||||
|
|
||||||
The actual color value can be set with a comma-separated list of color
|
The actual color value can be set with a comma-separated list of
|
||||||
names and/or attributes. The first color in the list is the foreground
|
color names and/or attributes. The first color in the list is the
|
||||||
color, the second color is used for the background. When the fore- or
|
foreground color, the second color is used for the background. When
|
||||||
background color is not specified, the default colors of your terminal
|
the fore- or background color is not specified, the default colors
|
||||||
will be used.
|
of your terminal will be used.
|
||||||
The following color names can be used: black, blue, cyan, default, green,
|
The following color names can be used: black, blue, cyan, default,
|
||||||
magenta, red, white and yellow.
|
green, magenta, red, white and yellow.
|
||||||
The following attributes can be used: bold, blink, reverse and underline.
|
The following attributes can be used: bold, blink, reverse and
|
||||||
The actual color values displayed by your terminal may vary. Adding the
|
underline.
|
||||||
`bold' attribute usually makes the foreground color appear brighter as
|
The actual color values displayed by your terminal may vary. Adding
|
||||||
well.
|
the `bold' attribute usually makes the foreground color appear
|
||||||
|
brighter as well.
|
||||||
|
|
||||||
connection <string>
|
connection <string>
|
||||||
Set your upload speed. This is just an indication for other users in the
|
Set your upload speed. This is just an indication for other users in
|
||||||
hub so that they know what speed they can expect when downloading from
|
the hub so that they know what speed they can expect when download‐
|
||||||
you. The actual format you can use here may vary, but it is recommended
|
ing from you. The actual format you can use here may vary, but it is
|
||||||
to set it to either a plain number for Mbit/s (e.g. `50' for 50 mbit) or
|
recommended to set it to either a plain number for Mbit/s (e.g. `50'
|
||||||
a number with a `KiB/s' indicator (e.g. `2300 KiB/s'). On ADC hubs you
|
for 50 mbit) or a number with a `KiB/s' indicator (e.g. `2300
|
||||||
must use one of the previously mentioned formats, otherwise no upload
|
KiB/s'). On ADC hubs you must use one of the previously mentioned
|
||||||
speed will be broadcasted. This setting is broadcasted as-is on NMDC
|
formats, otherwise no upload speed will be broadcasted. This setting
|
||||||
hubs, to allow for using old-style connection values (e.g. `DSL' or
|
is broadcasted as-is on NMDC hubs, to allow for using old-style con‐
|
||||||
`Cable') on hubs that require this.
|
nection values (e.g. `DSL' or `Cable') on hubs that require this.
|
||||||
|
|
||||||
description <string>
|
description <string>
|
||||||
A short public description that will be displayed in the user list of a
|
A short public description that will be displayed in the user list
|
||||||
hub.
|
of a hub.
|
||||||
|
|
||||||
download_dir <path>
|
download_dir <path>
|
||||||
The directory where finished downloads are moved to. Finished downloads
|
The directory where finished downloads are moved to. Finished down‐
|
||||||
are by default stored in <session directory>/dl/. It is possible to set
|
loads are by default stored in <session directory>/dl/. It is possi‐
|
||||||
this to a location that is on a different filesystem than the incoming
|
ble to set this to a location that is on a different filesystem than
|
||||||
directory, but doing so is not recommended: ncdc will block when moving
|
the incoming directory, but doing so is not recommended: ncdc will
|
||||||
the completed files to their final destination.
|
block when moving the completed files to their final destination.
|
||||||
|
|
||||||
download_exclude <regex>
|
download_exclude <regex>
|
||||||
When recursively adding a directory to the download queue - by pressing
|
When recursively adding a directory to the download queue - by
|
||||||
`b' on a directory in the file list browser - any item in the selected
|
pressing `b' on a directory in the file list browser - any item in
|
||||||
directory with a name that matches this regular expression will not be
|
the selected directory with a name that matches this regular expres‐
|
||||||
added to the download queue.
|
sion will not be added to the download queue.
|
||||||
|
|
||||||
This regex is not checked when adding individual files from either the
|
This regex is not checked when adding individual files from either
|
||||||
file list browser or the search results.
|
the file list browser or the search results.
|
||||||
|
|
||||||
download_slots <integer>
|
download_slots <integer>
|
||||||
Maximum number of simultaneous downloads.
|
Maximum number of simultaneous downloads.
|
||||||
|
|
||||||
email <string>
|
email <string>
|
||||||
Your email address. This will be displayed in the user list of the hub,
|
Your email address. This will be displayed in the user list of the
|
||||||
so only set this if you want it to be public.
|
hub, so only set this if you want it to be public.
|
||||||
|
|
||||||
encoding <string>
|
encoding <string>
|
||||||
The character set/encoding to use for hub and PM messages. This setting
|
The character set/encoding to use for hub and PM messages. This set‐
|
||||||
is only used on NMDC hubs, ADC always uses UTF-8. Some common values are:
|
ting is only used on NMDC hubs, ADC always uses UTF-8. Some common
|
||||||
|
values are:
|
||||||
CP1250 (Central Europe)
|
CP1250 (Central Europe)
|
||||||
CP1251 (Cyrillic)
|
CP1251 (Cyrillic)
|
||||||
CP1252 (Western Europe)
|
CP1252 (Western Europe)
|
||||||
|
|
@ -456,39 +472,40 @@ SETTINGS
|
||||||
UTF-8 (International)
|
UTF-8 (International)
|
||||||
|
|
||||||
filelist_maxage <interval>
|
filelist_maxage <interval>
|
||||||
The maximum age of a downloaded file list. If a file list was downloaded
|
The maximum age of a downloaded file list. If a file list was down‐
|
||||||
longer ago than the configured interval, it will be removed from the
|
loaded longer ago than the configured interval, it will be removed
|
||||||
cache (the fl/ directory) and subsequent requests to open the file list
|
from the cache (the fl/ directory) and subsequent requests to open
|
||||||
will result in the list being downloaded from the user again. Recognized
|
the file list will result in the list being downloaded from the user
|
||||||
suffices are 's' for seconds, 'm' for minutes, 'h' for hours and 'd' for
|
again. Recognized suffices are 's' for seconds, 'm' for minutes, 'h'
|
||||||
days. Set to 0 to disable the cache altogether.
|
for hours and 'd' for days. Set to 0 to disable the cache alto‐
|
||||||
|
gether.
|
||||||
|
|
||||||
flush_file_cache <none|upload|download|hash>[,...]
|
flush_file_cache <none|upload|download|hash>[,...]
|
||||||
Tell the OS to flush the file (disk) cache for file contents read while
|
Tell the OS to flush the file (disk) cache for file contents read
|
||||||
hashing and/or uploading or written to while downloading. On one hand,
|
while hashing and/or uploading or written to while downloading. On
|
||||||
this will avoid trashing your disk cache with large files and thus
|
one hand, this will avoid trashing your disk cache with large files
|
||||||
improve the overall responsiveness of your system. On the other hand,
|
and thus improve the overall responsiveness of your system. On the
|
||||||
ncdc may purge any shared files from the cache, even if they are still
|
other hand, ncdc may purge any shared files from the cache, even if
|
||||||
used by other applications. In general, it is a good idea to enable this
|
they are still used by other applications. In general, it is a good
|
||||||
if you also use your system for other things besides ncdc, you share
|
idea to enable this if you also use your system for other things
|
||||||
large files (>100MB) and people are not constantly downloading the same
|
besides ncdc, you share large files (>100MB) and people are not con‐
|
||||||
file from you.
|
stantly downloading the same file from you.
|
||||||
|
|
||||||
hubname <string>
|
hubname <string>
|
||||||
The name of the currently opened hub tab. This is a user-assigned name,
|
The name of the currently opened hub tab. This is a user-assigned
|
||||||
and is only used within ncdc itself. This is the same name as given to
|
name, and is only used within ncdc itself. This is the same name as
|
||||||
the `/open' command.
|
given to the `/open' command.
|
||||||
|
|
||||||
incoming_dir <path>
|
incoming_dir <path>
|
||||||
The directory where incomplete downloads are stored. This setting can
|
The directory where incomplete downloads are stored. This setting
|
||||||
only be changed when the download queue is empty. Also see the down‐
|
can only be changed when the download queue is empty. Also see the
|
||||||
load_dir setting.
|
download_dir setting.
|
||||||
|
|
||||||
log_debug <boolean>
|
log_debug <boolean>
|
||||||
Log debug messages to stderr.log in the session directory. It is highly
|
Log debug messages to stderr.log in the session directory. It is
|
||||||
recommended to enable this setting if you wish to debug or hack ncdc. Be
|
highly recommended to enable this setting if you wish to debug or
|
||||||
warned, however, that this may generate a lot of data if you're connected
|
hack ncdc. Be warned, however, that this may generate a lot of data
|
||||||
to a large hub.
|
if you're connected to a large hub.
|
||||||
|
|
||||||
log_downloads <boolean>
|
log_downloads <boolean>
|
||||||
Log downloaded files to transfers.log.
|
Log downloaded files to transfers.log.
|
||||||
|
|
@ -497,84 +514,87 @@ SETTINGS
|
||||||
Log file uploads to transfers.log.
|
Log file uploads to transfers.log.
|
||||||
|
|
||||||
minislots <integer>
|
minislots <integer>
|
||||||
Set the number of available minislots. A `minislot' is a special slot
|
Set the number of available minislots. A `minislot' is a special
|
||||||
that is used when all regular upload slots are in use and someone is
|
slot that is used when all regular upload slots are in use and some‐
|
||||||
requesting your filelist or a small file. In this case, the other client
|
one is requesting your filelist or a small file. In this case, the
|
||||||
automatically applies for a minislot, and can still download from you as
|
other client automatically applies for a minislot, and can still
|
||||||
long as not all minislots are in use. What constitutes a `small' file can
|
download from you as long as not all minislots are in use. What con‐
|
||||||
be changed with the `minislot_size' setting. Also see the `slots' config‐
|
stitutes a `small' file can be changed with the `minislot_size' set‐
|
||||||
uration setting and the `/grant' command.
|
ting. Also see the `slots' configuration setting and the `/grant'
|
||||||
|
command.
|
||||||
|
|
||||||
minislot_size <integer>
|
minislot_size <integer>
|
||||||
The maximum size of a file that may be downloaded using a `minislot', in
|
The maximum size of a file that may be downloaded using a `minis‐
|
||||||
KiB. See the `minislots' setting for more information.
|
lot', in KiB. See the `minislots' setting for more information.
|
||||||
|
|
||||||
nick <string>
|
nick <string>
|
||||||
Your nick. Nick changes are only visible on newly connected hubs, use the
|
Your nick. Nick changes are only visible on newly connected hubs,
|
||||||
`/reconnect' command to use your new nick immediately. Note that it is
|
use the `/reconnect' command to use your new nick immediately. Note
|
||||||
highly discouraged to change your nick on NMDC hubs. This is because
|
that it is highly discouraged to change your nick on NMDC hubs. This
|
||||||
clients downloading from you have no way of knowing that you changed your
|
is because clients downloading from you have no way of knowing that
|
||||||
nick, and therefore can't immediately continue to download from you.
|
you changed your nick, and therefore can't immediately continue to
|
||||||
|
download from you.
|
||||||
|
|
||||||
password <string>
|
password <string>
|
||||||
Sets your password for the current hub and enables auto-login on connect.
|
Sets your password for the current hub and enables auto-login on
|
||||||
If you just want to login to a hub without saving your password, use the
|
connect. If you just want to login to a hub without saving your
|
||||||
`/password' command instead. Passwords are saved unencrypted in the con‐
|
password, use the `/password' command instead. Passwords are saved
|
||||||
fig file.
|
unencrypted in the config file.
|
||||||
|
|
||||||
sendfile <boolean>
|
sendfile <boolean>
|
||||||
Whether or not to use the sendfile() system call to upload files, if sup‐
|
Whether or not to use the sendfile() system call to upload files, if
|
||||||
ported. Using sendfile() allows less resource usage while uploading, but
|
supported. Using sendfile() allows less resource usage while upload‐
|
||||||
may not work well on all systems.
|
ing, but may not work well on all systems.
|
||||||
|
|
||||||
share_exclude <regex>
|
share_exclude <regex>
|
||||||
Any file or directory with a name that matches this regular expression
|
Any file or directory with a name that matches this regular expres‐
|
||||||
will not be shared. A file list refresh is required for this setting to
|
sion will not be shared. A file list refresh is required for this
|
||||||
be effective.
|
setting to be effective.
|
||||||
|
|
||||||
share_hidden <boolean>
|
share_hidden <boolean>
|
||||||
Whether to share hidden files and directories. A `hidden' file or direc‐
|
Whether to share hidden files and directories. A `hidden' file or
|
||||||
tory is one of which the file name starts with a dot. (e.g. `.bashrc'). A
|
directory is one of which the file name starts with a dot. (e.g.
|
||||||
file list refresh is required for this setting to be effective.
|
`.bashrc'). A file list refresh is required for this setting to be
|
||||||
|
effective.
|
||||||
|
|
||||||
show_joinquit <boolean>
|
show_joinquit <boolean>
|
||||||
Whether to display join/quit messages in the hub chat.
|
Whether to display join/quit messages in the hub chat.
|
||||||
|
|
||||||
slots <integer>
|
slots <integer>
|
||||||
The number of upload slots. This determines for the most part how many
|
The number of upload slots. This determines for the most part how
|
||||||
people can download from you simultaneously. It is possible that this
|
many people can download from you simultaneously. It is possible
|
||||||
limit is exceeded in certain circumstances, see the `minislots' setting
|
that this limit is exceeded in certain circumstances, see the `min‐
|
||||||
and the `/grant' command.
|
islots' setting and the `/grant' command.
|
||||||
|
|
||||||
tls_policy <disabled|allow|prefer>
|
tls_policy <disabled|allow|prefer>
|
||||||
Set the policy for secure client-to-client connections. Setting this to
|
Set the policy for secure client-to-client connections. Setting this
|
||||||
`disabled' disables TLS support for client connections, but still allows
|
to `disabled' disables TLS support for client connections, but still
|
||||||
you to connect to TLS-enabled hubs. `allow' will allow the use of TLS if
|
allows you to connect to TLS-enabled hubs. `allow' will allow the
|
||||||
the other client requests this, but ncdc itself will not request TLS when
|
use of TLS if the other client requests this, but ncdc itself will
|
||||||
connecting to others. Setting this to `prefer' tells ncdc to also request
|
not request TLS when connecting to others. Setting this to `prefer'
|
||||||
TLS when connecting to others.
|
tells ncdc to also request TLS when connecting to others.
|
||||||
|
|
||||||
The use of TLS for client connections usually results in less optimal
|
The use of TLS for client connections usually results in less opti‐
|
||||||
performance when uploading and downloading, but is quite effective at
|
mal performance when uploading and downloading, but is quite effec‐
|
||||||
avoiding protocol-specific traffic shaping that some ISPs may do. Also
|
tive at avoiding protocol-specific traffic shaping that some ISPs
|
||||||
note that, even if you set this to `prefer', TLS will only be used if the
|
may do. Also note that, even if you set this to `prefer', TLS will
|
||||||
connecting party also supports it.
|
only be used if the connecting party also supports it.
|
||||||
|
|
||||||
ui_time_format <string>
|
ui_time_format <string>
|
||||||
The format of the time displayed in the lower-left of the screen. Set `-'
|
The format of the time displayed in the lower-left of the screen.
|
||||||
to not display a time at all. The string is passed to the Glib
|
Set `-' to not display a time at all. The string is passed to the
|
||||||
g_date_time_format() function, which accepts roughly the same formats as
|
Glib g_date_time_format() function, which accepts roughly the same
|
||||||
strftime(). Check out the strftime(3) man page or the Glib documentation
|
formats as strftime(). Check out the strftime(3) man page or the
|
||||||
for more information. Note that this setting does not influence the
|
Glib documentation for more information. Note that this setting does
|
||||||
date/time format used in other places, such as the chat window or log
|
not influence the date/time format used in other places, such as the
|
||||||
files.
|
chat window or log files.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
KEY BINDINGS
|
KEY BINDINGS
|
||||||
On any tab without the text input line, you can press `?' to get the key bind‐
|
On any tab without the text input line, you can press `?' to get the key
|
||||||
ings for that tab. The list of key bindings is available through the `/help
|
bindings for that tab. The list of key bindings is available through the
|
||||||
keys' command, and is reproduced below.
|
`/help keys' command, and is reproduced below.
|
||||||
|
|
||||||
Global key bindings
|
Global key bindings
|
||||||
Alt+j Open previous tab.
|
Alt+j Open previous tab.
|
||||||
|
|
@ -646,14 +666,15 @@ KEY BINDINGS
|
||||||
+/- Increase/decrease priority.
|
+/- Increase/decrease priority.
|
||||||
i/Return Toggle user list.
|
i/Return Toggle user list.
|
||||||
r Remove selected user for this file.
|
r Remove selected user for this file.
|
||||||
R Remove selected user from all files in the download queue.
|
R Remove selected user from all files in the download
|
||||||
|
queue.
|
||||||
x Clear error state for the selected user for this file.
|
x Clear error state for the selected user for this file.
|
||||||
X Clear error state for the selected user for all files.
|
X Clear error state for the selected user for all files.
|
||||||
|
|
||||||
Note: when an item in the queue has `ERR' indicated in the priority col‐
|
Note: when an item in the queue has `ERR' indicated in the priority
|
||||||
umn, you have two choices: You can remove the item from the queue using
|
column, you have two choices: You can remove the item from the queue
|
||||||
`d', or attempt to continue the download by increasing its priority using
|
using `d', or attempt to continue the download by increasing its
|
||||||
`+'.
|
priority using `+'.
|
||||||
|
|
||||||
Search results tab
|
Search results tab
|
||||||
Up/Down Select one item up/down.
|
Up/Down Select one item up/down.
|
||||||
|
|
@ -661,7 +682,8 @@ KEY BINDINGS
|
||||||
PgUp/PgDown Select one page of items up/down.
|
PgUp/PgDown Select one page of items up/down.
|
||||||
End/Home Select last/first item in the list.
|
End/Home Select last/first item in the list.
|
||||||
f Find user in user list.
|
f Find user in user list.
|
||||||
b/B Browse the selected users' list, B to force a redownload.
|
b/B Browse the selected users' list, B to force a redown‐
|
||||||
|
load.
|
||||||
d Add selected file to the download queue.
|
d Add selected file to the download queue.
|
||||||
h Toggle hub column visibility.
|
h Toggle hub column visibility.
|
||||||
u Order by username.
|
u Order by username.
|
||||||
|
|
@ -689,13 +711,14 @@ KEY BINDINGS
|
||||||
i/Return Toggle information box.
|
i/Return Toggle information box.
|
||||||
m Send a PM to the selected user.
|
m Send a PM to the selected user.
|
||||||
g Grant a slot to the selected user.
|
g Grant a slot to the selected user.
|
||||||
b/B Browse the selected users' list, B to force a redownload.
|
b/B Browse the selected users' list, B to force a redown‐
|
||||||
|
load.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ENVIRONMENT
|
ENVIRONMENT
|
||||||
$NCDC_DIR is used to determine the session dir, it is only honoured if -c is not
|
$NCDC_DIR is used to determine the session dir, it is only honoured if -c
|
||||||
set on the command line.
|
is not set on the command line.
|
||||||
|
|
||||||
|
|
||||||
FILES
|
FILES
|
||||||
|
|
@ -703,17 +726,18 @@ FILES
|
||||||
$NCDC_DIR or $HOME/.ncdc.
|
$NCDC_DIR or $HOME/.ncdc.
|
||||||
|
|
||||||
$NCDC_DIR/cert/
|
$NCDC_DIR/cert/
|
||||||
Directory where the client certificates are stored. Must contain a pri‐
|
Directory where the client certificates are stored. Must contain a
|
||||||
vate key file (client.key) and public certificate (client.crt). These
|
private key file (client.key) and public certificate (client.crt).
|
||||||
should be generated automatically when ncdc starts up the first time, but
|
These should be generated automatically when ncdc starts up the
|
||||||
can be generated manually using ncdc-gen-cert(1).
|
first time, but can be generated manually using ncdc-gen-cert(1).
|
||||||
|
|
||||||
$NCDC_DIR/db.sqlite3
|
$NCDC_DIR/db.sqlite3
|
||||||
The database. This stores all configuration variables, hash data of
|
The database. This stores all configuration variables, hash data of
|
||||||
shared files, download queue information and other state information.
|
shared files, download queue information and other state informa‐
|
||||||
Manually editing this file with the `sqlite3' commandline tool is possi‐
|
tion. Manually editing this file with the `sqlite3' commandline tool
|
||||||
ble but discouraged. Any changes made to the database while ncdc is run‐
|
is possible but discouraged. Any changes made to the database while
|
||||||
ning will not be read, and may even get overwritten by ncdc.
|
ncdc is running will not be read, and may even get overwritten by
|
||||||
|
ncdc.
|
||||||
|
|
||||||
$NCDC_DIR/dl/
|
$NCDC_DIR/dl/
|
||||||
Directory where completed downloads are moved to by default. Can be
|
Directory where completed downloads are moved to by default. Can be
|
||||||
|
|
@ -723,10 +747,10 @@ FILES
|
||||||
Filelist containing a listing of all shared files.
|
Filelist containing a listing of all shared files.
|
||||||
|
|
||||||
$NCDC_DIR/fl/
|
$NCDC_DIR/fl/
|
||||||
Directory where downloaded file lists from other users are stored. The
|
Directory where downloaded file lists from other users are stored.
|
||||||
names of the files are hex-encoded user IDs that are used internally by
|
The names of the files are hex-encoded user IDs that are used inter‐
|
||||||
ncdc. Old file lists are deleted automatically after a configurable
|
nally by ncdc. Old file lists are deleted automatically after a con‐
|
||||||
interval. See the `filelist_maxage' configuration option.
|
figurable interval. See the `filelist_maxage' configuration option.
|
||||||
|
|
||||||
$NCDC_DIR/history
|
$NCDC_DIR/history
|
||||||
Command history.
|
Command history.
|
||||||
|
|
@ -737,32 +761,32 @@ FILES
|
||||||
base32-encoded TTH root of the completed file.
|
base32-encoded TTH root of the completed file.
|
||||||
|
|
||||||
$NCDC_DIR/logs/
|
$NCDC_DIR/logs/
|
||||||
Directory where all the log files are stored. File names starting with
|
Directory where all the log files are stored. File names starting
|
||||||
`#' are hub logs and `~' are user (PM) logs. Special log files are trans‐
|
with `#' are hub logs and `~' are user (PM) logs. Special log files
|
||||||
fers.log and main.log.
|
are transfers.log and main.log.
|
||||||
ncdc does not have built-in functionality to rotate or compress log files
|
ncdc does not have built-in functionality to rotate or compress log
|
||||||
automatically. When rotating log files manually (e.g. via a cron job),
|
files automatically. When rotating log files manually (e.g. via a
|
||||||
make sure to send the SIGUSR1 signal afterwards to force ncdc to flush
|
cron job), make sure to send the SIGUSR1 signal afterwards to force
|
||||||
the old logs and create or open the new log files.
|
ncdc to flush the old logs and create or open the new log files.
|
||||||
|
|
||||||
$NCDC_DIR/stderr.log
|
$NCDC_DIR/stderr.log
|
||||||
Error/debug log. This file is cleared every time ncdc starts up.
|
Error/debug log. This file is cleared every time ncdc starts up.
|
||||||
|
|
||||||
$NCDC_DIR/version
|
$NCDC_DIR/version
|
||||||
Version of the data directory. This file locked while an ncdc instance is
|
Version of the data directory. This file locked while an ncdc
|
||||||
running, making sure that no two ncdc instances work with the same ses‐
|
instance is running, making sure that no two ncdc instances work
|
||||||
sion directory at the same time.
|
with the same session directory at the same time.
|
||||||
|
|
||||||
|
|
||||||
LICENSE
|
LICENSE
|
||||||
Copyright (C) 2011 Yoran Heling <projects@yorhel.nl>
|
Copyright (C) 2011-2012 Yoran Heling <projects@yorhel.nl>
|
||||||
ncdc is distributed under the MIT license, please read the COPYING file for more
|
ncdc is distributed under the MIT license, please read the COPYING file for
|
||||||
information.
|
more information.
|
||||||
|
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
Please report bugs or feature requests to projects@yorhel.nl or connect to the
|
Please report bugs or feature requests to projects@yorhel.nl or connect to
|
||||||
development hub at adc://dc.blicky.net:2780/.
|
the development hub at adc://dc.blicky.net:2780/.
|
||||||
|
|
||||||
|
|
||||||
AUTHOR
|
AUTHOR
|
||||||
|
|
|
||||||
21
dat/ncdc-scr
Normal file
21
dat/ncdc-scr
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Note: While these screenshots are from version 1.5, the latest version has only
|
||||||
|
little visible changes. Let me also apologise for the crappy formatting, I
|
||||||
|
should take some smaller shots next time...
|
||||||
|
|
||||||
|
=head2 Main chat
|
||||||
|
|
||||||
|
[img scr ncdchub.png Ncdc in the mainchat.]
|
||||||
|
|
||||||
|
=head2 File browser
|
||||||
|
|
||||||
|
[img scr ncdcbrowse.png Simple file list browser.]
|
||||||
|
|
||||||
|
=head2 User list
|
||||||
|
|
||||||
|
[img scr ncdcusers.png Ncdc displaying the userlist of a hub.]
|
||||||
|
|
||||||
|
=head2 Built-in help
|
||||||
|
|
||||||
|
[img scr ncdchelp.png Ncdc built-in help.]
|
||||||
98
dat/ncdu
Normal file
98
dat/ncdu
Normal file
|
|
@ -0,0 +1,98 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Not quite happy with the available disk usage analyzers and looking for a fun
|
||||||
|
project to get used to C programming, I started working on ncdu: A disk usage
|
||||||
|
analyzer with an ncurses interface, aimed to be run on a remote server where
|
||||||
|
you don't have an entire gaphical setup, but have to do with a simple SSH
|
||||||
|
connection. ncdu aims to be fast, simple and easy to use, and should be able
|
||||||
|
to run in any minimal POSIX-like environment with ncurses installed.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Download
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item Latest version
|
||||||
|
|
||||||
|
1.8 ([dllink ncdu-1.8.tar.gz download]
|
||||||
|
- L<changes|http://dev.yorhel.nl/ncdu/changes>
|
||||||
|
- L<mirror|https://sourceforge.net/projects/ncdu/files/ncdu/>)
|
||||||
|
|
||||||
|
=item Development version
|
||||||
|
|
||||||
|
The most recent code is available on a git repository and can be cloned with
|
||||||
|
C<git clone git://g.blicky.net/ncdu.git/>. The repository is also available for
|
||||||
|
L<online browsing|http://g.blicky.net/ncdu.git/>.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Ncdu is entirely written in C and available under a liberal MIT license.
|
||||||
|
|
||||||
|
Subscribe to L<freecode|http://freecode.com/projects/ncdu> to receive
|
||||||
|
notifications for new releases.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Packages and ports
|
||||||
|
|
||||||
|
Ncdu has been packaged for quite a few systems already, here's a list of the ones I am aware of:
|
||||||
|
|
||||||
|
L<AgiliaLinux|http://packages.agilialinux.ru/search.php?tag=sys-fs> -
|
||||||
|
L<AIX|http://www.perzl.org/aix/index.php?n=Main.Ncdu> -
|
||||||
|
L<ALT Linux|http://sisyphus.ru/en/srpm/Sisyphus/ncdu> -
|
||||||
|
L<Arch Linux|http://www.archlinux.org/packages/?q=ncdu> -
|
||||||
|
L<CRUX|http://crux.nu/portdb/?q=ncdu&a=search> -
|
||||||
|
L<Cygwin|http://cygwin.com/packages/ncdu/> -
|
||||||
|
L<Debian|http://packages.debian.org/ncdu> -
|
||||||
|
L<Fedora|https://admin.fedoraproject.org/pkgdb/acls/name/ncdu> -
|
||||||
|
L<FreeBSD|http://www.freshports.org/sysutils/ncdu/> -
|
||||||
|
L<Frugalware|http://frugalware.org/packages/?op=pkg&srch=ncdu&arch=all&ver=all> -
|
||||||
|
L<Gentoo|http://packages.gentoo.org/package/sys-fs/ncdu> -
|
||||||
|
L<IPCop|http://www.ipadd.de/binary-v2.html> -
|
||||||
|
L<OpenBSD|http://www.openbsd.org/cgi-bin/cvsweb/ports/sysutils/ncdu/> -
|
||||||
|
L<OpenSUSE|http://packman.links2linux.de/package/ncdu/> -
|
||||||
|
Mac OS X (L<Fink|http://pdb.finkproject.org/pdb/package.php/ncdu> - L<Homebrew|http://mxcl.github.com/homebrew/> - L<MacPorts|http://www.macports.org/ports.php?by=name&substr=ncdu>) -
|
||||||
|
L<Pardus|http://packages.pardus.org.tr/info/2011/devel/source/ncdu.html> -
|
||||||
|
L<Puppy Linux|http://www.murga-linux.com/puppy/viewtopic.php?t=35024> -
|
||||||
|
Solaris (L<CSW|http://www.opencsw.org/packages/ncdu> - L<sunfreeware|http://www.sunfreeware.com/>) -
|
||||||
|
Slackware (L<Slackbuilds|http://slackbuilds.org/repository/13.37/system/ncdu/> - L<Slackers.it|http://www.slackers.it/repository/ncdu/>) -
|
||||||
|
L<Ubuntu|http://packages.ubuntu.com/search?searchon=sourcenames&keywords=ncdu> -
|
||||||
|
L<Zenwalk|http://zur.zenwalk.org/view/package/name/ncdu>
|
||||||
|
|
||||||
|
Ncdu is also available on the
|
||||||
|
L<Open Build Service|https://build.opensuse.org/package/show?package=ncdu&project=utilities>,
|
||||||
|
which provides packages for a variaty of Linux distributions.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Similar projects
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item L<gt5|http://gt5.sourceforge.net/> - Quite similar to ncdu, but a different approach.
|
||||||
|
|
||||||
|
=item L<tdu|http://webonastick.com/tdu/> - Another small ncurses-based disk usage visualization utility.
|
||||||
|
|
||||||
|
=item L<TreeSize|http://treesize.sourceforge.net/> - GTK, using a treeview.
|
||||||
|
|
||||||
|
=item L<Baobab|http://www.marzocca.net/linux/baobab.html> - GTK, using pie-charts, a treeview and a treemap. Comes with GNOME.
|
||||||
|
|
||||||
|
=item L<GdMap|http://gdmap.sourceforge.net/> - GTK, with a treemap display.
|
||||||
|
|
||||||
|
=item L<Filelight|http://www.methylblue.com/filelight/> - KDE, using pie-charts.
|
||||||
|
|
||||||
|
=item L<KDirStat|http://kdirstat.sourceforge.net/> - KDE, with a treemap display.
|
||||||
|
|
||||||
|
=item L<QDiskUsage|http://qt-apps.org/content/show.php/QDiskUsage?content=107012> - Qt, using pie-charts.
|
||||||
|
|
||||||
|
=item L<xdiskusage|http://xdiskusage.sourceforge.net/> - FLTK, with a treemap display.
|
||||||
|
|
||||||
|
=item L<fsv|http://fsv.sourceforge.net/> - 3D visualization.
|
||||||
|
|
||||||
|
=item L<Philesight|http://zevv.nl/play/code/philesight/> - Web-based clone of Filelight.
|
||||||
|
|
||||||
|
=item L<JDiskReport|http://www.jgoodies.com/freeware/jdiskreport/> - Java, using pie-charts and a treeview.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
|
||||||
106
dat/ncdu-man
106
dat/ncdu-man
|
|
@ -11,32 +11,33 @@ SYNOPSIS
|
||||||
|
|
||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du', and
|
ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du',
|
||||||
provides a fast way to see what directories are using your disk space.
|
and provides a fast way to see what directories are using your disk space.
|
||||||
|
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-h Print a small help message
|
-h Print a small help message
|
||||||
|
|
||||||
-q Quiet mode. While calculating disk space, ncdu will update the screen 10
|
-q Quiet mode. While calculating disk space, ncdu will update the
|
||||||
times a second by default, this will be decreased to once every 2 seconds
|
screen 10 times a second by default, this will be decreased to once
|
||||||
in quiet mode. Use this feature to save bandwidth over remote connec‐
|
every 2 seconds in quiet mode. Use this feature to save bandwidth
|
||||||
tions.
|
over remote connections.
|
||||||
|
|
||||||
-r Read-only mode. This will disable the built-in file deletion feature.
|
-r Read-only mode. This will disable the built-in file deletion fea‐
|
||||||
|
ture.
|
||||||
|
|
||||||
-v Print version.
|
-v Print version.
|
||||||
|
|
||||||
-x Only count files and directories on the same filesystem as the specified
|
-x Only count files and directories on the same filesystem as the spec‐
|
||||||
dir.
|
ified dir.
|
||||||
|
|
||||||
--exclude PATTERN
|
--exclude PATTERN
|
||||||
Exclude files that match PATTERN. This argument can be added multiple
|
Exclude files that match PATTERN. This argument can be added multi‐
|
||||||
times to add more patterns.
|
ple times to add more patterns.
|
||||||
|
|
||||||
-X FILE, --exclude-from FILE
|
-X FILE, --exclude-from FILE
|
||||||
Exclude files that match any pattern in FILE. Patterns should be sepa‐
|
Exclude files that match any pattern in FILE. Patterns should be
|
||||||
rated by a newline.
|
separated by a newline.
|
||||||
|
|
||||||
|
|
||||||
KEYS
|
KEYS
|
||||||
|
|
@ -57,21 +58,21 @@ KEYS
|
||||||
|
|
||||||
a Toggle between showing disk usage and showing apparent size.
|
a Toggle between showing disk usage and showing apparent size.
|
||||||
|
|
||||||
d Delete the selected file or directory. An error message will be shown
|
d Delete the selected file or directory. An error message will be
|
||||||
when the contents of the directory do not match or do not exist anymore
|
shown when the contents of the directory do not match or do not
|
||||||
on the filesystem.
|
exist anymore on the filesystem.
|
||||||
|
|
||||||
t Toggle dirs before files when sorting.
|
t Toggle dirs before files when sorting.
|
||||||
|
|
||||||
g Toggle between showing percentage, graph, both, or none. Percentage is
|
g Toggle between showing percentage, graph, both, or none. Percentage
|
||||||
relative to the size of the current directory, graph is relative to the
|
is relative to the size of the current directory, graph is relative
|
||||||
largest item in the current directory.
|
to the largest item in the current directory.
|
||||||
|
|
||||||
e Show/hide 'hidden' or 'excluded' files and directories. Please note that
|
e Show/hide 'hidden' or 'excluded' files and directories. Please note
|
||||||
even though you can't see the hidden files and directories, they are
|
that even though you can't see the hidden files and directories,
|
||||||
still there and they are still included in the directory sizes. If you
|
they are still there and they are still included in the directory
|
||||||
suspect that the totals shown at the bottom of the screen are not cor‐
|
sizes. If you suspect that the totals shown at the bottom of the
|
||||||
rect, make sure you haven't enabled this option.
|
screen are not correct, make sure you haven't enabled this option.
|
||||||
|
|
||||||
i Show information about the current selected item.
|
i Show information about the current selected item.
|
||||||
|
|
||||||
|
|
@ -81,44 +82,45 @@ KEYS
|
||||||
|
|
||||||
|
|
||||||
HARD LINKS
|
HARD LINKS
|
||||||
Every disk usage analysis utility has its own way of (not) counting hard links.
|
Every disk usage analysis utility has its own way of (not) counting hard
|
||||||
There does not seem to be any universally agreed method of handling hard links,
|
links. There does not seem to be any universally agreed method of handling
|
||||||
and it is even inconsistent among different versions of ncdu. This section
|
hard links, and it is even inconsistent among different versions of ncdu.
|
||||||
explains what each version of ncdu does.
|
This section explains what each version of ncdu does.
|
||||||
|
|
||||||
ncdu 1.5 and below does not support any hard link detection at all: each link is
|
ncdu 1.5 and below does not support any hard link detection at all: each
|
||||||
considered a separate inode and its size is counted for every link. This means
|
link is considered a separate inode and its size is counted for every link.
|
||||||
that the displayed directory sizes are incorrect when analyzing directories
|
This means that the displayed directory sizes are incorrect when analyzing
|
||||||
which contain hard links.
|
directories which contain hard links.
|
||||||
|
|
||||||
ncdu 1.6 has basic hard link detection: When a link to a previously encountered
|
ncdu 1.6 has basic hard link detection: When a link to a previously encoun‐
|
||||||
inode is detected, the link is considered to have a file size of zero bytes.
|
tered inode is detected, the link is considered to have a file size of zero
|
||||||
Its size is not counted again, and the link is indicated in the browser inter‐
|
bytes. Its size is not counted again, and the link is indicated in the
|
||||||
face with a 'H' mark. The displayed directory sizes are only correct when all
|
browser interface with a 'H' mark. The displayed directory sizes are only
|
||||||
links to an inode reside within that directory. When this is not the case, the
|
correct when all links to an inode reside within that directory. When this
|
||||||
sizes may or may not be correct, depending on which links were considered as
|
is not the case, the sizes may or may not be correct, depending on which
|
||||||
"duplicate" and which as "original". The indicated size of the topmost directory
|
links were considered as "duplicate" and which as "original". The indicated
|
||||||
(that is, the one specified on the command line upon starting ncdu) is always
|
size of the topmost directory (that is, the one specified on the command
|
||||||
correct.
|
line upon starting ncdu) is always correct.
|
||||||
|
|
||||||
ncdu 1.7 has improved hard link detection. Each file that has more than two
|
ncdu 1.7 has improved hard link detection. Each file that has more than two
|
||||||
links has the "H" mark visible in the browser interface. Each hard link is
|
links has the "H" mark visible in the browser interface. Each hard link is
|
||||||
counted exactly once for every directory it appears in. The indicated size of
|
counted exactly once for every directory it appears in. The indicated size
|
||||||
each directory is therefore, correctly, the sum of the sizes of all unique
|
of each directory is therefore, correctly, the sum of the sizes of all
|
||||||
inodes that can be found in that directory. Note, however, that this may not
|
unique inodes that can be found in that directory. Note, however, that this
|
||||||
always be same as the space that will be reclaimed after deleting the directory,
|
may not always be same as the space that will be reclaimed after deleting
|
||||||
as some inodes may still be accessible from hard links outside it.
|
the directory, as some inodes may still be accessible from hard links out‐
|
||||||
|
side it.
|
||||||
|
|
||||||
|
|
||||||
BUGS
|
BUGS
|
||||||
Directory hard links are not supported. They will not be detected as being hard
|
Directory hard links are not supported. They will not be detected as being
|
||||||
links, and will thus be scanned and counted multiple times.
|
hard links, and will thus be scanned and counted multiple times.
|
||||||
|
|
||||||
Some minor glitches may appear when displaying filenames that contain multibyte
|
Some minor glitches may appear when displaying filenames that contain
|
||||||
or multicolumn characters.
|
multibyte or multicolumn characters.
|
||||||
|
|
||||||
Please report any other bugs you may find at the bug tracker, which can be found
|
Please report any other bugs you may find at the bug tracker, which can be
|
||||||
on the web site at http://dev.yorhel.nl/ncdu
|
found on the web site at http://dev.yorhel.nl/ncdu
|
||||||
|
|
||||||
|
|
||||||
AUTHOR
|
AUTHOR
|
||||||
|
|
|
||||||
29
dat/ncdu-scr
Normal file
29
dat/ncdu-scr
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
Note: While these screenshots are from version 1.7, the latest version has only
|
||||||
|
little visible changes. Let me also apologise for the crappy formatting, I
|
||||||
|
should take some smaller shots next time...
|
||||||
|
|
||||||
|
=head2 Scanning...
|
||||||
|
|
||||||
|
[img scr ncduscan.png Ncdu scanning a large directory.]
|
||||||
|
|
||||||
|
=head2 Done scanning
|
||||||
|
|
||||||
|
[img scr ncdudone.png Ncdu done scanning a large directory.]
|
||||||
|
|
||||||
|
=head2 Directory information
|
||||||
|
|
||||||
|
[img scr ncduinfo.png Ncdu displaying directory information.]
|
||||||
|
|
||||||
|
=head2 Delete confirmation
|
||||||
|
|
||||||
|
[img scr ncduconfirm.png Ncdu asking for confirmation to delete a file.]
|
||||||
|
|
||||||
|
=head2 Help screen
|
||||||
|
|
||||||
|
[img scr ncduhelp1.png Ncdu help screen.]
|
||||||
|
|
||||||
|
=head2 About screen
|
||||||
|
|
||||||
|
[img scr ncduhelp2.png Ncdu about screen.]
|
||||||
|
|
@ -1,5 +1,9 @@
|
||||||
Multi-threaded Access to an SQLite3 Database
|
Multi-threaded Access to an SQLite3 Database
|
||||||
|
|
||||||
|
=pod
|
||||||
|
|
||||||
|
(Published on B<2011-11-26>. Also available in L<POD|http://dev.yorhel.nl/dat/sqlaccess>.)
|
||||||
|
|
||||||
=head1 Introduction
|
=head1 Introduction
|
||||||
|
|
||||||
As I was porting L<ncdc|http://dev.yorhel.nl/ncdc> over to use SQLite3 as
|
As I was porting L<ncdc|http://dev.yorhel.nl/ncdc> over to use SQLite3 as
|
||||||
|
|
|
||||||
64
dat/tuwf
Normal file
64
dat/tuwf
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
=pod
|
||||||
|
|
||||||
|
TUWF is a very small and lightweight web development framework for Perl. It has
|
||||||
|
evolved from being a few abstraction layers in two large websites to a separate
|
||||||
|
set of modules. While initially designed to be used for large and complex
|
||||||
|
websites, it is also perfectly suited for small single-file websites.
|
||||||
|
|
||||||
|
=head2 Main features
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * Very small, and no extra modules required,
|
||||||
|
|
||||||
|
=item * Easy URI-to-function mapping using regular expressions,
|
||||||
|
|
||||||
|
=item * Handy form validation functions,
|
||||||
|
|
||||||
|
=item * Easy XML/XHTML output generation functions,
|
||||||
|
|
||||||
|
=item * Response buffering and output compression,
|
||||||
|
|
||||||
|
=item * Easy access to GET/POST data and cookies,
|
||||||
|
|
||||||
|
=item * Support for CGI and FastCGI - optimized for FastCGI,
|
||||||
|
|
||||||
|
=item * Uses UTF-8 for all text,
|
||||||
|
|
||||||
|
=item * Convenient SQL execution functions and correct transaction handling,
|
||||||
|
|
||||||
|
=item * Promotes code re-use,
|
||||||
|
|
||||||
|
=item * Open source (duh!) and available under a liberal MIT license.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
Read the L<description|TUWF/DESCRIPTION> in the documentation for more
|
||||||
|
information and details.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Download
|
||||||
|
|
||||||
|
B<Latest packaged version:> 0.1 ([dllink TUWF-0.1.tar.gz download]
|
||||||
|
- L<CPAN mirror|http://search.cpan.org/dist/TUWF/>)
|
||||||
|
|
||||||
|
TUWF is also available on a git repository at L<http://g.blicky.net/tuwf.git/>.
|
||||||
|
|
||||||
|
|
||||||
|
=head2 Websites using TUWF
|
||||||
|
|
||||||
|
(Not a whole lot)
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item * L<VNDB.org|http://vndb.org/> (the site that spawned TUWF - L<open source|http://g.blicky.net/vndb.git/>)
|
||||||
|
|
||||||
|
=item * L<This website|http://dev.yorhel.nl/> (also L<open source|http://g.blicky.net/yorhel-dev.git/tree/index.cgi>)
|
||||||
|
|
||||||
|
=item * L<Blicky.net Pastebin|http://p.blicky.net/> (L<open source|http://g.blicky.net/bpaste.git/tree/index.cgi>)
|
||||||
|
|
||||||
|
=item * The website embedded in the L<D&R Axum|http://www.d-r.nl/AXUM/AXUM.htm> mixing console.
|
||||||
|
|
||||||
|
=item * L<Yorhel.nl|http://yorhel.nl/>
|
||||||
|
|
||||||
|
=back
|
||||||
Loading…
Add table
Add a link
Reference in a new issue