@ISA=qw(Exporter);
@EXPORT=qw(%WebConfig);
+use My::Web;
require CGI;
"pserver"=>':pserver:pserver:@cvs.jankratochvil.net',
"pserver_path"=>"/cvs",
"heading"=>sub () {
-# print "<h1>heading</h1>\n";
+ print '<table border="0" align="center" style="font-size: larger;">'."\n";
+ print '<col width="20%">'."\n";
+ print '<col width="50%">'."\n";
+ print '<col width="20%">'."\n";
+ print '<tr>'."\n";
+ print '<td>'."\n";
+ print '<table border="1" align="left"'
+ .' style="border-collapse: collapse; border-style: solid; border-width: 2px;">'."\n";
+ print '<tr>'."\n";
+ print '<td style="padding: 5px; font-weight: bold;">'."\n";
+ print My::Web::a_href('http://www.jankratochvil.net/','Jan Kratochvil');
+ print '</td>'."\n";
+ print '</tr>'."\n";
+ print '</table>';
+ print '</td>'."\n";
+ print '<td>'."\n";
+ print '<table border="1" align="center"'
+ .' style="border-collapse: collapse; border-style: solid; border-width: 2px;">'."\n";
+ print '<tr>'."\n";
+ my @sections=(
+ My::Web::top_dir()."/project/"=>"Projects",
+ "http://cvs.jankratochvil.net/"=>"CVS",
+# My::Web::top_dir()."/News.html.pl"=>"News",
+ My::Web::top_dir()."/Resume.html.pl"=>"Resume",
+ My::Web::top_dir()."/Contact.html.pl"=>"Contact",
+ );
+ while (@sections) {
+ my $section_path=shift @sections;
+ my $section_name=shift @sections;
+ print '<td style="padding: 5px;">';
+ print(($My::Web::W->{"section"} || "") eq $section_name ? "<b>$section_name</b>"
+ : My::Web::a_href($section_path,$section_name));
+ print "</td>\n";
+ }
+ print '</tr>'."\n";
+ print '</table>'."\n";
+ print '</td>'."\n";
+ print '</tr>'."\n";
+ print '</table>'."\n";
+ print My::Web::vskip("1ex");
},
"footing"=>sub () {
# print "<h1>footing</h1>\n";
"ListItem"=>\@project::332::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>Project was destined as the kernel for GPS-tracking device.
+Used Motorola 68332 computer features 1.25MB of RAM and 512KB of FlashEPROM.
+Included build script with custom GCC target for AmigaOS.</p>
+<p>Fortunately Pavel Troller already disassembled the kernel core in the past
+and this project could be based on his reverse engineered sources.</p>
+<p>@{[ a_href top_dir()."/project/332/332-noexec.tar.gz",'Downloadable sources' ]} archive unfortunately
+legally cannot contain the real code of the ported AmigaOS kernel core as
+@{[ a_href 'http://amigaworld.net/modules/newbb/viewtopic.php?forum=2&topic_id=224','it is copyrighted.' ]}.
+You should send me a mail with md5sum(1)s of AmigaOS kernel including
+statement you are the legal owner to let me send you the missing patched
+AmigaOS kernel core disassembled sources.</p>
+<p>The provided kernel lists the following features:</p>
+<ul>
+ <li>memory management</li>
+ <li>system objects lists operations</li>
+ <li>multitasking</li>
+ <li>intertask messaging</li>
+ <li>device drivers communication</li>
+ <li>locking/synchronization</li>
+ <li>system libraries management</li>
+ <li>server side for remote serial port debuggin</li>
+</ul>
+HERE
+
+
My::Web->footer();
"sponsorship"=>@{[ a_href('http://www.princip.cz/','Princip') ]},
"language"=>"680x0 asm, C",
"description"=><<"HERE",
-<p>Core of the AmigaOS kernel (exec.library) was ported to embedded Motorola 68332 computer.
-It is designed as the kernel for GPS-tracking device.
-Used Motorola 68332 computer features 1.25MB of RAM and 512KB of FlashEPROM.
-Included build script with custom GCC target for AmigaOS.</p>
-<p>Fortunately Pavel Troller already disassembled the kernel core in the past
-and this project could be based on his reverse engineered sources.</p>
-<p>@{[ a_href top_dir()."/project/332/332-noexec.tar.gz",'Downloadable sources' ]} archive unfortunately
-legally cannot contain the real code of the ported AmigaOS kernel core as
-@{[ a_href 'http://amigaworld.net/modules/newbb/viewtopic.php?forum=2&topic_id=224','it is copyrighted.' ]}.
-You should send me a mail with md5sum(1)s of AmigaOS kernel including
-statement you are the legal owner to let me send you the missing patched
-AmigaOS kernel core disassembled sources.</p>
-<p>The provided kernel lists the following features:</p>
-<ul>
- <li>memory management</li>
- <li>system objects lists operations</li>
- <li>multitasking</li>
- <li>intertask messaging</li>
- <li>device drivers communication<li>
- <li>locking/synchronization</li>
- <li>system libraries management</li>
- <li>server side for remote serial port debuggin</li>
-</ul>
+<p>Core of the AmigaOS kernel (exec.library) ported to embedded Motorola 68332 computer.
+Reusable as OS for your embedded device suitable for developers with AmigaOS experience.</p>
HERE
);
This project has some additional features:</p>
<ul>
<li>
- <p>Clean the checkout directory without <strong>Makefile</strong>s for
- 'make clean'.</p>
+ Clean the checkout directory without <strong>Makefile</strong>s for
+ 'make clean'.
</li>
<li>
- <p>Maintain <strong>.cvsignore</strong> files containing the files being
- cleaned.</p>
+ Maintain <strong>.cvsignore</strong> files containing the files being
+ cleaned.
</li>
<li>
- <p>Single-command package building of
- <strong>.rpm</strong>/<strong>.deb</strong> out of CVS checkout.</p>
+ Single-command package building of
+ <strong>.rpm</strong>/<strong>.deb</strong> out of CVS checkout.
</li>
<li>
- <p>Supports: <strong>gettext</strong>, <strong>glib-gettext</strong>,
+ Support: <strong>gettext</strong>, <strong>glib-gettext</strong>,
<strong>libtool</strong>, <strong>autoconf</strong>,
- <strong>automake</strong>.</p>
+ <strong>automake</strong>.
</li>
</ul>
HERE
My::Web->init(
"__PACKAGE__"=>__PACKAGE__,
"title"=>'Project List',
+ "section"=>"Projects",
);
My::Web->heading();
HERE
print '<table border="1" align="center" style="border-collapse: collapse; border-style: solid;">'."\n";
- my @platforms=@project::Platform::platforms;
- while (@platforms) {
- my $platform_sym =shift @platforms;
- my $platform_name=shift @platforms;
- print '<td style="padding: 5px;">'.a_href('#'.$platform_sym,$platform_name)."</td>\n";
- }
+ print '<tr>'."\n";
+ my @platforms=@project::Platform::platforms;
+ while (@platforms) {
+ my $platform_sym =shift @platforms;
+ my $platform_name=shift @platforms;
+ print '<td style="padding: 5px;">'.a_href('#'.$platform_sym,$platform_name)."</td>\n";
+ }
+ print '</tr>'."\n";
print '</table>'."\n";
print vskip "1ex";
"maintenance"=>"ready",
"language"=>"Java 1.1",
"description"=><<"HERE",
-<p>Simple 'game', Java demostration.</p>
+<p>Java applet implementing a simple map fight game.</p>
HERE
);
"maintenance"=>"ready",
"language"=>"C",
"description"=><<"HERE",
-<p>Project allows wrapping of Microsoft Windows Kernel API calls by the chosen
-kernel driver.</p>
+<p>Project allows wrapping of Microsoft Windows Kernel API calls of your chosen
+kernel driver by your custom function code.</p>
<p>Although TraceFS was up to now used only for tracing of Windows NT Cache
Manager it can be easily used ever for any other NT kernel API tracing. You
need to provide appropriate function wrappers in the main source file.
"maintenance"=>"ready",
"language"=>"C",
"description"=><<"HERE",
-<p>badblock-guess will try to find all readable sectors of the disk in minimal time.</p>
+<p>badblock-guess will recover all readable sectors of the disk in minimal time
+while trying to prevent disk read retrying head recalibrations.</p>
HERE
);
<p class="stuff">
Why did I install Microsoft Windows and wrote such disgusting piece of code?<br />
- I expect @{[ a_href top_dir()."/CV.html.pl","yet another challenging task" ]}, !
+ Expecting @{[ a_href top_dir()."/CV.html.pl","yet another challenging task" ]}, !
</p>
HERE
"maintenance"=>"ready",
"language"=>"Perl",
"description"=><<"HERE",
-<p>Gives additional warnings not provided by GNU C Compiler
+<p>Scripts gives additional warnings not provided by GNU C Compiler
such as dead code declared as <code>global</code> in separate file,
missing <code>static</code> keywords etc.</p>
<p>It can get very valuable during stripping functionality off of
"ListItem"=>\@project::cvsutil::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>There already exists package @{[ a_href 'http://www.red-bean.com/cvsutils/','CVS Utilities' ]}
+with similiar features - this utility should be merged into it.
+Pointed out by the courtesy of Jesse Glick.</p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"merge",
"language"=>"Perl",
"description"=><<"HERE",
-<p>Lists of specified types of files and safe settings of CVSROOT
-for already checkouted package.</p>
-<p>There exists package @{[ a_href 'http://www.red-bean.com/cvsutils/','CVS Utilities' ]}
-doing similiar things and more - this utility should be merged into it.
-Pointed out by the courtesy of Jesse Glick.</p>
+<p>List the specified types of files and safe settings of CVSROOT
+for already checkouted package. As an example of its many applications
+can serve a handy prevention of grepping built files: <span class="quote">
+ grep -w wanted_sym `cvsfiles`
+ </span></p>
HERE
);
<li>MDA/Hercules secondary adapter recommended for DOSWATCH</li>
<li>Package contains also MDABIOS - generic secondary adapter driver</li>
<li>MDABIOS features DOS commands accessible device "mda$"</li>
- <li>DOSWATCH can be run on single VGA card (with not much comfort, indeed)</li
+ <li>DOSWATCH can be run on single VGA card (with not much comfort, indeed)</li>
</ul>
HERE
);
"ListItem"=>\@project::fixhtml::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>If you download/grab the whole (or its part) of some web site (for example
+by <b>WebCopy</b> tool), you will
+probably want to browse it locally on your computer offline. Unfortunately
+the authors are usually using server-name protocol reference or absolute
+path referration which will broke on your local machine.</p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"obsolete-".a_href('http://wget.sunsite.dk/','Wget')." option <b>--convert-links</b> does the same.",
"language"=>"Perl",
"description"=><<"HERE",
-<p>If you download/grab the whole (or its part) of some web site (for example
-by <b>WebCopy</b> tool), you will
-probably want to browse it locally on your computer offline. Unfortunately
-the authors are usually using server-name protocol reference or absolute
-path referration which will broke on your local machine.</p>
+<p>Program translates the URL references in your downloaded web pages to be relative
+and therefore browsable without Internet access.</p>
HERE
);
"ListItem"=>\@project::kix::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>You no longer need to run any foreign binaries on your system and connect
+to remote/slow real @{[ a_href 'http://www.kali.net/','Kali' ]} server.
+You also do not need to sign any papers to get binary-only your
+own Kali server. Unfortunaly you cannot interconnect a game established
+by using KIX with any other software (Kali, native IPX etc.).</p>
+<p>Just compile, run and then add "-kali" option to your
+@{[ a_href 'http://d1x.warpcore.org/','D1X' ]} to get it running. You
+do not need IPX support anywhere (kernel, D1X, ...).</p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"ready",
"language"=>"C",
"description"=><<"HERE",
-<p>Server which can be used on GNU/Linux as a replacement of
-@{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]}
-and thus no need to run some foreign binaries on your system and connection
-to remote/slow real @{[ a_href 'http://www.kali.net/','Kali' ]} server
-and/or subscribing various papers to get (again binary-only) your
-own Kali server. Unfortunaly you cannot interconnect a game established
-by using KIX with any other software (Kali, native IPX etc.).</p>
-<p>Just compile, run and then add "-kali" option to your
-@{[ a_href 'http://d1x.warpcore.org/','D1X' ]} to get it running. You
-do not need IPX support anywhere (kernel, D1X, ...).</p>
+<p>Server used on GNU/Linux as a replacement for proprietary
+@{[ a_href 'ftp://linux.kali.net/outgoing/kalinix/','KaliNix' ]} network game server.</p>
HERE
);
"ListItem"=>\@project::kware::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>Currently only a few functions are implemented and the code is rather
+an ugly hack than professional solution. I do not expect to ever develop
+it into some clean software, take it as it is, improve it or let it be.</p>
+HERE
+
+
My::Web->footer();
is able to link with already pre-compiled modules. No special compilation
flags needed, just link the <code>.o</code> module of the driver with
KernelWare and you will get standard executable.</p>
-<p>Currently only a few functions are implemented and the code is rather
-an ugly hack than professional solution. I do not expect to ever develop
-it into some clean software, take it as it is, improve it or let it be.</p>
HERE
);
"maintenance"=>"ready",
"language"=>"bash, hardware",
"description"=><<"HERE",
-<p>Waits for incoming PPP data connection, authorizes it and answers it.</p>
+<p>Daemon waits for incoming PPP data connection, authorizes it and answers it.</p>
<p>Scheme of computer controllde hardware charger for Nokia Communicator 9110 is supplied.
It keeps the Nokia battery fit by automatically controlled battery charging cycles.</p>
HERE
"ListItem"=>\@project::mdsms::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>This software should be general-UNIX compatible. Please wait a minute when
+you run it, under various UNIXes it may take some time to finish.</p>
+<p><b>GSM network codes: </b>GSM network code needs to be given as parameter during
+sending of operator logo. Nice list of the codes you will find
+@{[ a_href 'http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html','here' ]}.</p>
+HERE
+
+
My::Web->footer();
a_href('http://www.atspraha.cz/','Advanced Telecom Services')),
"language"=>"C",
"description"=><<"HERE",
-<p>Sends NOL or NGG files as operator logo or group graphics through
+<p>Program sends NOL or NGG files as Nokia operator logo or group graphics through
@{[ a_href 'http://www.nokia.com/','Nokia' ]} @{[ a_href 'http://www.communicator.org/','Communicator' ]}
-<b>9110</b> (9000/9000i is definitively <b>not</b> compatible). Usually you need
+9110 (@{[ a_href 'http://www.nokia.com/phones/9000i','9000/9000i' ]}
+is not compatible). Usually you need
to have either infra-red port in your computer or special FBUS cable to be able
-to use conventional logo-uploading tools (@{[ a_href 'http://www.gnokii.org/','GNokii' ]}
-or one from @{[ a_href 'http://www.kessler-design.com/wireless/operatorlogo.php3','KESSLER Wireless Design' ]}).
-This program uses only standard modem cable and integrated
+to use conventional logo-uploading tools (such as @{[ a_href 'http://www.gnokii.org/','gnokii' ]}).
+This program uses only standard modem cable and the integrated
FaxModem capability of 9110.</p>
-<p>This software should be general-UNIX compatible. Please wait a minute when
-you run it, under various UNIXes it may take some time to finish.</p>
-<p><b>GSM network codes: </b>GSM network code needs to be given as parameter during
-sending of operator logo. Nice list of the codes you will find
-@{[ a_href 'http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html','here' ]}.</p>
HERE
);
"ListItem"=>\@project::mot2as::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>Specifically it will care about: <code>equ</code> operation, <code>dc.b</code> strings,
+<code>;</code> comments, <code>$</code> for hex-radix, <code>%</code> for bin-radix,
+local labels, <code>:</code> for label termination.</p>
+HERE
+
+
My::Web->footer();
of processors? You have probably already found out that original Motorola
syntax is not suitable for GNU assembler which uses a bit different (AT&T
style) syntax. Using this very simple program you can convert between these two.</p>
-<p>Specifically it will care about: <code>equ</code> operation, <code>dc.b</code> strings,
-<code>;</code> comments, <code>$</code> for hex-radix, <code>%</code> for bin-radix,
-local labels, <code>:</code> for label termination.</p>
HERE
);
"maintenance"=>"ready",
"language"=>"Prolog",
"description"=><<"HERE",
-<p>This is no game, just solution of one specific mathematical problem
+<p>Solution calculator of a logical game / mathematical problem
consisting of simple state search. Software is written equivalentnly
both in <strong>C</strong> and <strong>Prolog</strong> for comparation.</p>
HERE
"ListItem"=>\@project::pipebuf::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>Progarm is implemented as two processes (no threads - no pthread libraries
+needed, only IPC communication used). Features custom buffer sizes, prefill
+(start writing of the first byte only after the WHOLE buffer has beel filled
+up) and warning messages when buffer is getting emptied.</p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"ready",
"language"=>"C",
"description"=><<"HERE",
-<p>You can do a buffering of realtime data such as audio stream by inserting this program
+<p>You can buffer realtime data such as audio stream by inserting this program
with traditional "UNIX filter" behaviour. It reads as fast as possible into
-its cache and also in the same time writes as fast as possible to the output. In fact
-it is implemented as two processes (no threads - no pthread libraries needed, only IPC
-communication used). Features custom buffer sizes, prefill (start writing of the first byte
-only after the WHOLE buffer has beel filled up) and warning messages when buffer is getting
-emptied.</p>
+its cache and also in the same time writes as fast as possible to the output.</p>
HERE
);
"maintenance"=>"ready",
"language"=>"Perl",
"description"=><<"HERE",
-<p>Scripts that will simply discard graphical images referenced
-from web pages. Unlike other such packages it:</p>
-<ul>
-<li>Does not need separate administration of another daemon</li>
-<li>Does not do any page contents filtering (popups will still pass through!)</li>
-</ul>
+<p>Scripts discarding specified graphical images (read 'ads') referenced
+from web pages. Unlike zillions of other such packages there
+is no need for separate administration of another daemon.</p>
HERE
);
"ListItem"=>\@project::smbfs::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>Simple patch to increase virtual block size of SMB filesytem in Linux
+kernel. It improved tranfer rate of <code>cp</code> command almost
+by a factor of <strong>2</strong> (approx. 700KB -> 1300KB or something
+like about it) in the local conditions. Now <code>cp</code> should be as fast
+as <code>cat</code> redirected across networked filesystems.</p>
+<p>Unfortunately the blocksize causes different (4 times smaller) sizes
+reported by <code>du</code> command as it measures it in <i>blocks</i>
+and not in <i>kilobytes</i> as some people think.</p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"ready",
"language"=>"C patch",
"description"=><<"HERE",
-<p>Simple patch to increase virtual block size of SMB filesytem in Linux
-kernel. For me it improved tranfer rate of <code>cp</code> command almost
-by a factor of <strong>2</strong> (approx. 700KB -> 1300KB or something
-like about it). Now <code>cp</code> should be as fast as <code>cat</code>
-redirected across networked filesystems.</p>
-<p>Unfortunately the blocksize causes different (4 times smaller) sizes
-reported by <code>du</code> command as it measures it in <i>blocks</i>
-and not in <i>kilobytes</i> as some people think.</p>
+<p>Accelerate twice the copying transfer rate for client GNU/Linux from SMB
+server share (Microsoft Windows).
HERE
);
"maintenance"=>"update-".a_href('http://www.openssh.com/','OpenSSH').' is preferred although this patch is not migrated.',
"language"=>"C patch",
"description"=><<"HERE",
-This patch will protect your mostly idle SSH connection from broken masquerading firewalls
-and/or it will also provide _on-demand_ tunnelling.
+<ul>
+ <li><i>KeepAliveData</i>: Protect your mostly idle SSH connection from broken
+ masquerading firewalls which forget and reset the idle connections.</li>
+ <li><i>OnDemandForward</i>: Setup the connection only after the first client
+ connected to the local tunnel (-L) connection side.</li>
+</ul>
HERE
);
"sponsorship"=>a_href('http://www.jklabs.cz/','JKLabs'),
"language"=>"bash",
"description"=><<"HERE",
-<p>Do you need to admin remote host placed in the intranet behind enemy firewall?
-If you are able to set up port forward on the firewalling you are done.
-In the case of HTTP-only proxy you cannot use these scripts - look elsewhere.</p>
-<p>If the firewall performat NAT (masquerade) where you can connect from
+<p>Do you need to admin remote host placed in the intranet behind firewall out of your contrl?
+If the firewall performat NAT (masquerade) where you can connect from
the intranet to the outer world by @{[ a_href 'http://www.openssh.org/','SSH' ]}
-you can use these security safe (TODO: chroot) scripts.</p>
+you can use these security safe scripts.</p>
+<p>If you are able to set up port forwarding on the firewall you do not need any such scripts.
+In the case of HTTP-only proxy you cannot use these scripts - look elsewhere.</p>
HERE
);
"maintenance"=>"dead",
"language"=>"PHP 3.0",
"description"=><<"HERE",
-<p>Preview of a possible future web database solution for some lawyers association.
+<p>Preview of a possible future web database solution for a lawyers association.
Currently it remains as a source of some web development @{[ a_href 'http://www.php.net/','PHP 3.0' ]}
codebase to be reused in other projects.</p>
HERE
HERE
"language"=>"C",
"description"=><<"HERE",
-<p>Partition Surprise is a GPL partition managing software for Linux. Partition
+<p>Partition Surprise is a GPL partition managing software for GNU/Linux. Partition
resizes, moves and conversions is implemented. Limited support of operations on
mounted ext2-filesystem included as well.
HERE
"language"=>"C patch",
"sponsorship"=>a_href('http://www.gtsgroup.cz/'.'GTS'),
"description"=><<"HERE",
-<p>Patch provides complete freedom of specifying ANY
+<p>Patch provides complete freedom of specifying any
configuration changes depending on the specific NAS the user is being logged
on. This involves different enable password, NAS keys but now also: various
specific commands, permitted services etc.</p>
"ListItem"=>\@project::tcp_rto::ListItem::ListItem,
);
+
+print <<"HERE";
+<p>This patch can solve your problems if you have network connection dropping too much
+packets. In standard case the Linux kernel will correctly increase our round-trip-time
+of connection slowing the transfer rate up to the unusable state.</p>
+<p>After applying this patch you can set your maximal round-trip-time in file
+"<b>/proc/sys/net/ipv4/tcp_rto_max</b>", it is expressed in <tt>Hz</tt>
+units (<tt>100-per-second</tt> on <i>x86</i> platform). You may need also to enlarge
+your maximal retry count in "<b>/proc/sys/net/ipv4/tcp_retries2</b>",
+otherwise <u>your</u> machine will reject the connection as it will have to retry
+the packets more than in sane states.</p>
+<p><font color="red">Please use this feature very carefully! You are violating
+<tt>RFC</tt> standards and you can get your network administrators to be very angry!</font></p>
+HERE
+
+
My::Web->footer();
"maintenance"=>"ready",
"language"=>"C patch",
"description"=><<"HERE",
-<p>This patch can solve your problems if you have network connection dropping too much
-packets. In standard case the Linux kernel will correctly increase our round-trip-time
-of connection slowing the transfer rate up to the unusable state.</p>
-<p>After applying this patch you can set your maximal round-trip-time in file
-"<b>/proc/sys/net/ipv4/tcp_rto_max</b>", it is expressed in <tt>Hz</tt>
-units (<tt>100-per-second</tt> on <i>x86</i> platform). You may need also to enlarge
-your maximal retry count in "<b>/proc/sys/net/ipv4/tcp_retries2</b>",
-otherwise <u>your</u> machine will reject the connection as it will have to retry
-the packets more than in sane states.</p>
-<p><font color="red">Please use this feature very carefully! You are violating
-<tt>RFC</tt> standards and you can get your network administrators to be very angry!</font></p>
+<p>Solve your problems with network connection dropping too much of your
+packets. It forces Linux kernel to insist repeating the packages to prevent
+slowdown of the TCP connection up to its unusable state.</p>
HERE
);
"language"=>"C",
"description"=><<"HERE",
<p>This programs is userful for time-limited demo versions, of course.</p>
-<p>Just set <b>WAYBACK</b> to the number of seconds to shift system time back,
-set <b>LD_PRELOAD</b> to the provided <b>libwayback.so</b> and run your
-demo program.</P>
+<p>Just set environment variable "<b>WAYBACK</b>" to the number of seconds to shift the system time back.
+Set "<b>LD_PRELOAD</b>" to the provided <b>libwayback.so</b> and run your demo program.</P>
HERE
);
"ListItem"=>\@project::xbill::ListItem::ListItem,
);
+
+print <<"HERE";
+This project has been moved to @{[ a_href 'http://sourceforge.net/','SourceForge' ]}.
+Please refer to its @{[ a_href 'http://xbill.sourceforge.net/','SourceForge project page' ]}.
+HERE
+
+print '<table border="0"><tr><td align="center">'.My::Web::img("redmond_.jpeg","xBill").'</td></tr></table>'."\n";
+
+
My::Web->footer();
"maintenance"=>"ready",
"language"=>"C",
"description"=><<"HERE",
-<p>Almost-rewritten @{[ a_href 'ftp://ftp.x.org/contrib/games/xbill-2.0.tgz','classical xBill game' ]},
-this project has been moved to @{[ a_href 'http://sourceforge.net/','SourceForge' ]}.
-Please refer to the @{[ a_href 'http://xbill.sourceforge.net/','page linked above' ]}
-to have further access to it.</p>
+<p>Rewritten @{[ a_href 'ftp://ftp.x.org/contrib/games/xbill-2.0.tgz','classical xBill game' ]}.
+<p>Features list: @{[ a_href 'http://www.gnome.org/','Gnome/GTK+' ]} UI,
+network gameplay, C++ no longer required, portability.</p>
HERE
);