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:
Yorhel 2012-01-17 20:23:53 +01:00
parent ac38865338
commit b7746b3122
16 changed files with 1460 additions and 1423 deletions

35
dat/doc Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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.

File diff suppressed because it is too large Load diff

21
dat/ncdc-scr Normal file
View 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
View 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

View file

@ -1,4 +1,4 @@
ncdu(1) ncdu manual ncdu(1) ncdu(1) ncdu manual ncdu(1)
@ -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
@ -130,4 +132,4 @@ SEE ALSO
ncdu-1.8 Nov 3, 2011 ncdu(1) ncdu-1.8 Nov 3, 2011 ncdu(1)

29
dat/ncdu-scr Normal file
View 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.]

View file

@ -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
View 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

1266
index.cgi

File diff suppressed because it is too large Load diff