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 for the purpose of getting something done. This page is a listing of those I
thought might be of useful to others as well. thought might be of useful to others as well.
I also maintain a collection of miscellaneous C micro-libraries in a L<separate I also maintain a collection of miscellaneous C micro-libraries. Those are
git repository|http://g.blicky.net/ylib.git/> (and its L<Github listed under the collective name of L<Ylib|http://dev.yorhel.nl/ylib>.
mirror|https://github.com/yorhel/ylib>). These libraries are not listed here.
=head2 maildir.pl =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<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. =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<libev|http://software.schmorp.de/pkg/libev.html>,
L<freetiger|http://klondike.es/freetiger/>, L<freetiger|http://klondike.es/freetiger/>,
L<klib|https://github.com/attractivechaos/klib> and L<klib|https://github.com/attractivechaos/klib> and
L<ylib|https://github.com/yorhel/ylib>. L<ylib|http://dev.yorhel.nl/ylib>.
Additionally, L<makeheaders|http://www.hwaci.com/sw/mkhdr/> is used to prevent Additionally, L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> is
obsessing over header file management, and used to keep the configure script fast.
L<autoconf-lean|https://bitbucket.org/GregorR/autoconf-lean> keeps the
configure script fast.

View file

@ -17,9 +17,11 @@ ncurses interface.
Convenient static binaries for Linux: Convenient static binaries for Linux:
L<64-bit|http://dev.yorhel.nl/download/ncdc-linux-x86_64-1.16.1.tar.gz> - 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<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>. L<ARM|http://dev.yorhel.nl/download/ncdc-linux-arm-1.16.1.tar.gz>. Check the
Check the L<installation instructions|http://dev.yorhel.nl/ncdc/install> for L<installation instructions|http://dev.yorhel.nl/ncdc/install> for more info.
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 =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! =head2 Ncdc crashes a lot!
Ncdc 1.16 has no known bugs that may cause a crash. If you're running an older Ncdc 1.16.1 has no known bugs that may cause a crash. If you're running an
version of ncdc, please upgrade. If your ncdc is up to date and you still have older version of ncdc, please upgrade. If your ncdc is up to date and you still
a crash, please report a bug. have a crash, please report a bug.
=head2 Ncdc uses too much disk space! =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>.) (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 =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

View file

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