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.
|
||||
710
dat/ncdc-man
710
dat/ncdc-man
File diff suppressed because it is too large
Load diff
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
|
||||
|
||||
|
||||
114
dat/ncdu-man
114
dat/ncdu-man
|
|
@ -1,4 +1,4 @@
|
|||
ncdu(1) ncdu manual ncdu(1)
|
||||
ncdu(1) ncdu manual ncdu(1)
|
||||
|
||||
|
||||
|
||||
|
|
@ -11,32 +11,33 @@ SYNOPSIS
|
|||
|
||||
|
||||
DESCRIPTION
|
||||
ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du', and
|
||||
provides a fast way to see what directories are using your disk space.
|
||||
ncdu (NCurses Disk Usage) is a curses-based version of the well-known 'du',
|
||||
and provides a fast way to see what directories are using your disk space.
|
||||
|
||||
|
||||
OPTIONS
|
||||
-h Print a small help message
|
||||
|
||||
-q Quiet mode. While calculating disk space, ncdu will update the screen 10
|
||||
times a second by default, this will be decreased to once every 2 seconds
|
||||
in quiet mode. Use this feature to save bandwidth over remote connec‐
|
||||
tions.
|
||||
-q Quiet mode. While calculating disk space, ncdu will update the
|
||||
screen 10 times a second by default, this will be decreased to once
|
||||
every 2 seconds in quiet mode. Use this feature to save bandwidth
|
||||
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.
|
||||
|
||||
-x Only count files and directories on the same filesystem as the specified
|
||||
dir.
|
||||
-x Only count files and directories on the same filesystem as the spec‐
|
||||
ified dir.
|
||||
|
||||
--exclude PATTERN
|
||||
Exclude files that match PATTERN. This argument can be added multiple
|
||||
times to add more patterns.
|
||||
Exclude files that match PATTERN. This argument can be added multi‐
|
||||
ple times to add more patterns.
|
||||
|
||||
-X FILE, --exclude-from FILE
|
||||
Exclude files that match any pattern in FILE. Patterns should be sepa‐
|
||||
rated by a newline.
|
||||
Exclude files that match any pattern in FILE. Patterns should be
|
||||
separated by a newline.
|
||||
|
||||
|
||||
KEYS
|
||||
|
|
@ -57,21 +58,21 @@ KEYS
|
|||
|
||||
a Toggle between showing disk usage and showing apparent size.
|
||||
|
||||
d Delete the selected file or directory. An error message will be shown
|
||||
when the contents of the directory do not match or do not exist anymore
|
||||
on the filesystem.
|
||||
d Delete the selected file or directory. An error message will be
|
||||
shown when the contents of the directory do not match or do not
|
||||
exist anymore on the filesystem.
|
||||
|
||||
t Toggle dirs before files when sorting.
|
||||
|
||||
g Toggle between showing percentage, graph, both, or none. Percentage is
|
||||
relative to the size of the current directory, graph is relative to the
|
||||
largest item in the current directory.
|
||||
g Toggle between showing percentage, graph, both, or none. Percentage
|
||||
is relative to the size of the current directory, graph is relative
|
||||
to the largest item in the current directory.
|
||||
|
||||
e Show/hide 'hidden' or 'excluded' files and directories. Please note that
|
||||
even though you can't see the hidden files and directories, they are
|
||||
still there and they are still included in the directory sizes. If you
|
||||
suspect that the totals shown at the bottom of the screen are not cor‐
|
||||
rect, make sure you haven't enabled this option.
|
||||
e Show/hide 'hidden' or 'excluded' files and directories. Please note
|
||||
that even though you can't see the hidden files and directories,
|
||||
they are still there and they are still included in the directory
|
||||
sizes. If you suspect that the totals shown at the bottom of the
|
||||
screen are not correct, make sure you haven't enabled this option.
|
||||
|
||||
i Show information about the current selected item.
|
||||
|
||||
|
|
@ -81,44 +82,45 @@ KEYS
|
|||
|
||||
|
||||
HARD LINKS
|
||||
Every disk usage analysis utility has its own way of (not) counting hard links.
|
||||
There does not seem to be any universally agreed method of handling hard links,
|
||||
and it is even inconsistent among different versions of ncdu. This section
|
||||
explains what each version of ncdu does.
|
||||
Every disk usage analysis utility has its own way of (not) counting hard
|
||||
links. There does not seem to be any universally agreed method of handling
|
||||
hard links, and it is even inconsistent among different versions of ncdu.
|
||||
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
|
||||
considered a separate inode and its size is counted for every link. This means
|
||||
that the displayed directory sizes are incorrect when analyzing directories
|
||||
which contain hard links.
|
||||
ncdu 1.5 and below does not support any hard link detection at all: each
|
||||
link is considered a separate inode and its size is counted for every link.
|
||||
This means that the displayed directory sizes are incorrect when analyzing
|
||||
directories which contain hard links.
|
||||
|
||||
ncdu 1.6 has basic hard link detection: When a link to a previously encountered
|
||||
inode is detected, the link is considered to have a file size of zero bytes.
|
||||
Its size is not counted again, and the link is indicated in the browser inter‐
|
||||
face with a 'H' mark. The displayed directory sizes are only correct when all
|
||||
links to an inode reside within that directory. When this is not the case, the
|
||||
sizes may or may not be correct, depending on which links were considered as
|
||||
"duplicate" and which as "original". The indicated size of the topmost directory
|
||||
(that is, the one specified on the command line upon starting ncdu) is always
|
||||
correct.
|
||||
ncdu 1.6 has basic hard link detection: When a link to a previously encoun‐
|
||||
tered inode is detected, the link is considered to have a file size of zero
|
||||
bytes. Its size is not counted again, and the link is indicated in the
|
||||
browser interface with a 'H' mark. The displayed directory sizes are only
|
||||
correct when all links to an inode reside within that directory. When this
|
||||
is not the case, the sizes may or may not be correct, depending on which
|
||||
links were considered as "duplicate" and which as "original". The indicated
|
||||
size of the topmost directory (that is, the one specified on the command
|
||||
line upon starting ncdu) is always correct.
|
||||
|
||||
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
|
||||
counted exactly once for every directory it appears in. The indicated size of
|
||||
each directory is therefore, correctly, the sum of the sizes of all unique
|
||||
inodes that can be found in that directory. Note, however, that this may not
|
||||
always be same as the space that will be reclaimed after deleting the directory,
|
||||
as some inodes may still be accessible from hard links outside it.
|
||||
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
|
||||
counted exactly once for every directory it appears in. The indicated size
|
||||
of each directory is therefore, correctly, the sum of the sizes of all
|
||||
unique inodes that can be found in that directory. Note, however, that this
|
||||
may not always be same as the space that will be reclaimed after deleting
|
||||
the directory, as some inodes may still be accessible from hard links out‐
|
||||
side it.
|
||||
|
||||
|
||||
BUGS
|
||||
Directory hard links are not supported. They will not be detected as being hard
|
||||
links, and will thus be scanned and counted multiple times.
|
||||
Directory hard links are not supported. They will not be detected as being
|
||||
hard links, and will thus be scanned and counted multiple times.
|
||||
|
||||
Some minor glitches may appear when displaying filenames that contain multibyte
|
||||
or multicolumn characters.
|
||||
Some minor glitches may appear when displaying filenames that contain
|
||||
multibyte or multicolumn characters.
|
||||
|
||||
Please report any other bugs you may find at the bug tracker, which can be found
|
||||
on the web site at http://dev.yorhel.nl/ncdu
|
||||
Please report any other bugs you may find at the bug tracker, which can be
|
||||
found on the web site at http://dev.yorhel.nl/ncdu
|
||||
|
||||
|
||||
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
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
|
||||
|
||||
=pod
|
||||
|
||||
(Published on B<2011-11-26>. Also available in L<POD|http://dev.yorhel.nl/dat/sqlaccess>.)
|
||||
|
||||
=head1 Introduction
|
||||
|
||||
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