Add ylib + various fixes

This commit is contained in:
Yorhel 2013-05-09 16:53:27 +02:00
parent 764f628cb7
commit 2f88c43171
6 changed files with 26 additions and 16 deletions

View file

@ -4,9 +4,8 @@ I write a lot of miscellaneous little perl/shell scripts and micro-libraries
for the purpose of getting something done. This page is a listing of those I
thought might be of useful to others as well.
I also maintain a collection of miscellaneous C micro-libraries in a L<separate
git repository|http://g.blicky.net/ylib.git/> (and its L<Github
mirror|https://github.com/yorhel/ylib>). These libraries are not listed here.
I also maintain a collection of miscellaneous C micro-libraries. Those are
listed under the collective name of L<Ylib|http://dev.yorhel.nl/ylib>.
=head2 maildir.pl

View file

@ -85,7 +85,7 @@ There are at this point not many scripts or interfaces available for Globster:
=item * L<globsterctl|http://dev.yorhel.nl/globster/ctl> - A control script for the daemon, included in the git repo.
=item * L<globster-feedspam.pl|http://p.blicky.net/wpaaf> - An RSS / Atom notification script.
=item * L<globster-feedspam.pl|http://p.blicky.net/0z9uw> - An RSS / Atom notification script.
=item * L<globster-mhc.pl|http://p.blicky.net/8y8mv> - A hub chat link script. More useful as an example than anything else.
@ -107,9 +107,7 @@ Globster incorporates code from
L<libev|http://software.schmorp.de/pkg/libev.html>,
L<freetiger|http://klondike.es/freetiger/>,
L<klib|https://github.com/attractivechaos/klib> and
L<ylib|https://github.com/yorhel/ylib>.
Additionally, L<makeheaders|http://www.hwaci.com/sw/mkhdr/> is used to prevent
obsessing over header file management, and
L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> keeps the
configure script fast.
L<ylib|http://dev.yorhel.nl/ylib>.
Additionally, L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> is
used to keep the configure script fast.

View file

@ -17,9 +17,11 @@ ncurses interface.
Convenient static binaries for Linux:
L<64-bit|http://dev.yorhel.nl/download/ncdc-linux-x86_64-1.16.1.tar.gz> -
L<32-bit|http://dev.yorhel.nl/download/ncdc-linux-i486-1.16.1.tar.gz> -
L<ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.16.1.tar.gz>.
Check the L<installation instructions|http://dev.yorhel.nl/ncdc/install> for
more info.
L<ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.16.1.tar.gz>. Check the
L<installation instructions|http://dev.yorhel.nl/ncdc/install> for more info.
B<Note:> The static binaries have some problems with chatting and searching on
KOI8-R NMDC hubs, use an alternative installation method if you're affected by
this.
=item Development version

View file

@ -90,9 +90,9 @@ low-end devices. Updating to ncdc 1.15 or later should fix this.
=head2 Ncdc crashes a lot!
Ncdc 1.16 has no known bugs that may cause a crash. If you're running an older
version of ncdc, please upgrade. If your ncdc is up to date and you still have
a crash, please report a bug.
Ncdc 1.16.1 has no known bugs that may cause a crash. If you're running an
older version of ncdc, please upgrade. If your ncdc is up to date and you still
have a crash, please report a bug.
=head2 Ncdc uses too much disk space!

View file

@ -4,6 +4,10 @@ Multi-threaded Access to an SQLite3 Database
(Published on B<2011-11-26>. Also available in L<POD|http://dev.yorhel.nl/dat/sqlaccess>.)
(Minor 2013-04-06 update: I abstracted my message passing solution from ncdc
and implemented it in a POSIX C library for general use. It's called
I<sqlasync> and is part of my L<Ylib library collection|http://dev.yorhel.nl/ylib>.)
=head1 Introduction
As I was porting L<ncdc|http://dev.yorhel.nl/ncdc> over to use SQLite3 as

View file

@ -12,6 +12,8 @@ BEGIN { ($ROOT = abs_path $0) =~ s{index\.cgi$}{}; }
my @changes = (
[ '2013-04-04', '/ylib', 'Created a page for Ylib' ],
[ '2013-04-03', '/ncdc', 'Created a mailing list for ncdc' ],
[ '2013-03-23', '/ncdc', 'ncdc 1.16.1 released.' ],
[ '2013-03-02', '/ncdc', 'ncdc 1.15 released.' ],
[ '2012-12-15', '/globster', 'Announcing yet another awesome project: Globster!' ],
@ -90,6 +92,7 @@ TUWF::register(
qr{tuwf} => sub { podpage(shift, 'tuwf', 'tuwf', '', 'The Ultimate Website Framework') },
qr{tuwf/man(?:/(db|misc|request|response|xml))?} => \&tuwfmanual,
qr{tuwf/changes} => sub { changelog(shift, 'tuwf-changelog', 'TUWF', 'tuwf', 'changes', 'TUWF Changelog') },
qr{ylib} => sub { podpage(shift, 'ylib/README.pod', 'ylib', '', 'Ylib') },
qr{doc} => sub { podpage(shift, 'doc', 'doc', '', 'Articles') },
qr{doc/sqlaccess} => sub { podpage(shift, 'sqlaccess', 'doc', '', 'Multi-threaded Access to an SQLite3 Database', 1) },
qr{doc/commvis} => sub { podpage(shift, 'doc-commvis', 'doc', '', 'A Distributed Communication System for Modular Applications', 1) },
@ -179,7 +182,9 @@ sub atom {
tag link => rel => 'self', type => 'application/atom+xml', href => "http://dev.yorhel.nl/feed.atom", undef;
tag link => rel => 'alternate', type => 'text/html', href => 'http://dev.yorhel.nl/', undef;
my $n = 0;
for(@changes) {
last if $n++ >= 10;
tag 'entry';
tag id => 'http://dev.yorhel.nl'.($_->[1]||'/').'#'.$_->[0];
tag title => $_->[2];
@ -458,7 +463,7 @@ sub htmlMenu {
h1 class => 'title', "~ \u$o{page} ~" if $o{spec}{$o{page}};
my $m = sub {
li;
my $s = $_[0] =~ m{^/([^/]+)} && $o{spec}{$1} && $o{page} ne $1;
my $s = ($_[0] =~ m{^/([^/]+)} && $o{spec}{$1} && $o{page} ne $1) || $_[0] =~ m{^http://};
my @c = ($s?'special':(), $_[2]?'menusel':(), $_[4]?'tiny':());
a href => $_[0], @c?(class => join ' ',@c):(), $_[1];
if($_[3]) {
@ -485,6 +490,7 @@ sub htmlMenu {
$m->('/ncdc/changes', 'Changelog', $o{sec} eq 'changes');
$m->('/ncdc/scr', 'Screenshots', $o{sec} eq 'scr');
$m->('/ncdc/bug', 'Bug tracker', $o{sec} eq 'bug');
$m->('http://l.blicky.net/listinfo/ncdc', 'Mailing list ');
} elsif($o{page} eq 'globster') {
$m->('/globster', 'Info', !$o{sec});
$m->('/globster/daemon', 'Commands', (scalar $o{sec} =~ /(daemon|ctl|launch)/), sub {
@ -511,6 +517,7 @@ sub htmlMenu {
$m->('/ncdc', 'Ncdc ');
$m->('/globster', 'Globster ');
$m->('/tuwf', 'Tuwf ');
$m->('/ylib', 'Ylib', $o{page} eq 'ylib');
$m->('/doc', 'Articles', $o{page} eq 'doc');
$m->('/dump', 'Code dump', $o{page} eq 'dump', sub {
$m->('/dump', 'Misc.', $o{page} eq 'dump' && !$o{sec});