<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="2.0" xml:base="http://sysd.org/stas">
<channel>
 <title>stas&#039;den - web</title>
 <link>http://sysd.org/stas/taxonomy/term/8/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Formulário CEP/CPF/CNPJ</title>
 <link>http://sysd.org/stas/node/150</link>
 <description>&lt;p align=&quot;center&quot;&gt;
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; width=&quot;423&quot; height=&quot;200&quot; id=&quot;brloc&quot; align=&quot;middle&quot;&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
&lt;param name=&quot;movie&quot; value=&quot;/brloc/brloc.swf&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /&gt;&lt;embed src=&quot;/brloc/brloc.swf&quot; quality=&quot;high&quot; bgcolor=&quot;#ffffff&quot; width=&quot;423&quot; height=&quot;200&quot; name=&quot;brloc&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /&gt;
&lt;/object&gt;
&lt;br&gt;
&lt;small&gt;&lt;i&gt;(tente preencher os campos acima; a informa&amp;ccedil;&amp;atilde;o &amp;eacute; atualizada instantaneamente)&lt;/i&gt;&lt;/small&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;br&gt;
Este projeto &amp;eacute; o sucessor do&amp;nbsp;&lt;a
 href=&quot;http://sysd.org/stas/node/99&quot;&gt;CEP-2-City&lt;/a&gt;.
&amp;Eacute; um formul&amp;aacute;rio &lt;i&gt;online&lt;/i&gt; que:&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Verifica a validade do n&amp;uacute;mero &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas&quot;
 target=&quot;_blank&quot;&gt;CPF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Verifica a validade do n&amp;uacute;mero &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/CNPJ&quot; target=&quot;_blank&quot;&gt;CNPJ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A partir do &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Sistema_endere%C3%A7amento_postal_no_Brasil&quot;
 target=&quot;_blank&quot;&gt;CEP&lt;/a&gt;, deduz o endere&amp;ccedil;o
completo (Cidade/Estado/Bairro/Rua)&lt;/li&gt;
  &lt;li&gt;A partir do CEP, deduz o c&amp;oacute;digo &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Discagem_direta_a_dist%C3%A2ncia#Lista_de_c.C3.B3digos_DDD_brasileiros_por_estado_e_seus_principais_munic.C3.ADpios&quot;
 target=&quot;_blank&quot;&gt;DDD&lt;/a&gt; da regi&amp;atilde;o &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
O banco de dados utilizado &amp;eacute; compilado a partir de diversas
fontes. Se n&amp;atilde;o constar a informa&amp;ccedil;&amp;atilde;o da
rua, ent&amp;atilde;o somente a cidade &amp;eacute; retornada. A
interface com o banco de dados foi implementada usando &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Perl&quot; target=&quot;_blank&quot;&gt;Perl&lt;/a&gt;
e &lt;a href=&quot;http://en.wikipedia.org/wiki/PHP&quot; target=&quot;_blank&quot;&gt;PHP&lt;/a&gt;,
e pode ser acessada via &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Common_Gateway_Interface&quot;
 target=&quot;_blank&quot;&gt;CGI&lt;/a&gt;, &lt;a target=&quot;_blank&quot;
 href=&quot;http://en.wikipedia.org/wiki/Adobe_Flash&quot;&gt;Flash&lt;/a&gt;
ou &lt;a href=&quot;http://en.wikipedia.org/wiki/Ajax_%28programming%29&quot;
 target=&quot;_blank&quot;&gt;AJAX&lt;/a&gt;. O sistema de busca
&amp;eacute; extremamente eficiente, e n&amp;atilde;o necessita de &lt;a
 href=&quot;http://en.wikipedia.org/wiki/MySQL&quot; target=&quot;_blank&quot;&gt;MySQL&lt;/a&gt;.
O tamanho do banco de dados &amp;eacute; cerca de 60 MB, e a
performance chega a milhares de consultas por segundo.
&lt;/p&gt;
&lt;p&gt;Portanto, eis uma solu&amp;ccedil;&amp;atilde;o bastante
s&amp;iacute;mples, flex&amp;iacute;vel e eficaz para o
cadastro&amp;nbsp;de clientes. J&amp;aacute; utilizei este sistema numa
pesquisa que conduzi, e asseguro que me poupou bastante tempo. Se tiver
interesse, &lt;a href=&quot;http://sysd.org/stas/feedback&quot;&gt;entre
em contato&lt;/a&gt;!
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/25">actionscript</category>
 <category domain="http://sysd.org/stas/taxonomy/term/22">city</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/24">php</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Wed, 15 Aug 2007 20:31:52 -0300</pubDate>
</item>
<item>
 <title>Geolizer HTTP stats</title>
 <link>http://sysd.org/stas/node/10</link>
 <description>&lt;p align=&quot;center&quot;&gt;&lt;img
 alt=&quot;Sample Geolizer output (fragment)&quot;
 src=&quot;http://sysd.org/stas/files/active/0/geolizer.png&quot; height=&quot;480&quot;
 width=&quot;640&quot; style=&quot;border: 1px solid #000000;&quot;&gt;
&lt;/p&gt;
&lt;h3&gt;About Geolizer&lt;/h3&gt;
&lt;p&gt;This is an enhanced version of the popular &lt;a
 href=&quot;http://www.mrunix.net/webalizer/&quot; target=&quot;_blank&quot;&gt;Webalizer&lt;/a&gt;
HTTP server statistics generator. It&#039;s main feature is an ability to
discover visitor&#039;s country by his/her IP address. Default Webalizer
method is to extract host suffix from the reversal DNS query (obtained
directly from log files, or by &lt;code&gt;webazolver&lt;/code&gt;
program if HTTP
server doesn&#039;t reverses client IPs), which is slow and imprecise (for
example, Brazilian host could be reversed as &lt;code&gt;.com&lt;/code&gt;).
Geolizer relies on the &lt;a
 href=&quot;http://www.maxmind.com/app/ip_locate&quot; target=&quot;_blank&quot;&gt;GeoIP&lt;/a&gt;
library API to do the same thing. Thus, no more DNS queries are
required, and
results are much more precise. Geolizer also has some additional
features: it displays file sizes in a human-readable form
(&lt;i&gt;bytes/KB/MB/GB/TB&lt;/i&gt;) instead of default kilobytes. It
also compiles
under &lt;a href=&quot;http://www.mingw.org/msys.shtml&quot;
 target=&quot;_blank&quot;&gt;MinGW/MSYS&lt;/a&gt; now, so you can process
your UN*X log files on your Windows box&lt;code&gt;. &lt;/code&gt;And,
finally, Geolizer features a nice eye-candy: country flags! &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Beware as Geolizer also has some bad features (read &quot;bugs&quot;):
for example, &lt;code&gt;webazolver&lt;/code&gt;
won&#039;t work anymore, and already resolved hosts aren&#039;t handled well.
Want to see how it looks like, at all? Take a look at some &lt;a
 href=&quot;http://sysd.org/hybrid/stats/&quot; target=&quot;_blank&quot;&gt;sample
statistics&lt;/a&gt;! Or see &lt;a
 href=&quot;http://www.google.com/search?q=link:sysd.org/stas/node/10&quot;
 target=&quot;_blank&quot;&gt;who else&lt;/a&gt; uses Geolizer to produce
their server stats.
&lt;/p&gt;
&lt;h3&gt;
&lt;b&gt;Tips&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;The country flag pictures can be downloaded at &lt;a
 target=&quot;_blank&quot; href=&quot;http://flags.blogpotato.de/&quot;&gt;http://flags.blogpotato.de/&lt;/a&gt;.
Just download and unzip &lt;code&gt;world.small.zip&lt;/code&gt;
&amp;amp; &lt;code&gt;special.small.zip&lt;/code&gt; to the &lt;code&gt;flags/&lt;/code&gt;
subdirectory in your HTML output path.&lt;/li&gt;
  &lt;li&gt;You may enhance your Webalizer further (allowing it to
identify more user agents, referrers and search engines than normal)
using extended configuration files, provided by Enric Naval and
available at &lt;a target=&quot;_blank&quot;
 href=&quot;http://griho.udl.es/webalizer/&quot;&gt;http://griho.udl.es/webalizer/&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;It is possible to use multiple configuration files on
Webalizer. Just specify them at the command line:&lt;br&gt;
    &lt;pre&gt;webalizer -c common.conf -c user_stas.conf&lt;br&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
Why don&#039;t you try also &lt;a href=&quot;http://awstats.sourceforge.net/&quot;
 target=&quot;_blank&quot;&gt;AWStats&lt;/a&gt;
&amp;amp; &lt;a href=&quot;http://www.projet-webdruid.org/&quot;
 target=&quot;_blank&quot;&gt;WebDruid&lt;/a&gt;?!
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;hr&gt;
It is easy to located an &lt;a href=&quot;http://www.connectedinternet.net&quot; target=&quot;_blank&quot;&gt;internet service&lt;/a&gt; which provides low prices for &lt;a href=&quot;http://www.callage.net&quot; target=&quot;_blank&quot;&gt;voip&lt;/a&gt;. Simply by downloading the &lt;a href=&quot;http://www.softwareconnects.com&quot; target=&quot;_blank&quot;&gt;software&lt;/a&gt; the service of the &lt;a href=&quot;http://www.hostseeq.com/c/internet_phones.htm&quot; target=&quot;_blank&quot;&gt;voip&lt;/a&gt; can be utilized, though for this a fast &lt;a href=&quot;http://www.wirelessnetproviders.com&quot; target=&quot;_blank&quot;&gt;wireless internet&lt;/a&gt; is also required. This is especially benefical for small &lt;a href=&quot;http://www.complete-website-hosting.com&quot; target=&quot;_blank&quot;&gt;website hosting&lt;/a&gt; companies to contact their clients at a low cost.
&lt;/p&gt;</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/19">C</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/17">GeoIP</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Tue, 16 Jan 2007 15:00:00 -0200</pubDate>
</item>
<item>
 <title>tiny HTTP proxy</title>
 <link>http://sysd.org/stas/node/100</link>
 <description>&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;Main screen&quot; width=398 height=395 border=0 src=&quot;http://sysd.org/stas/files/active/0/main1.png&quot; /&gt;&lt;/div&gt;

&lt;br&gt;

&lt;p&gt;This is a tiny and highly experimental HTTP/1.0 proxy software that I have
written to debug HTTP protocol &amp;amp; it&#039;s clients. It is very small and
simple, yet useful to reverse-engineering purposes. It&#039;s interface is quite
obvious. The &lt;em&gt;Server&lt;/em&gt; frame controls the IP, port and connection limit
of the proxy server. It also shows how many connections are active at moment.
The &lt;em&gt;Data Traffic&lt;/em&gt; frame shows in/out packets &amp;amp; bytes.
&lt;em&gt;Service&lt;/em&gt; frame allows you to stop, start and quit the proxy. These
are the very minimalist controls for the very minimalist proxy server.&lt;/p&gt;

&lt;p&gt;The interesting stuff begins at the &lt;em&gt;Plugin&lt;/em&gt; frame. All the packet
passed through this proxy server are forwarded to the selectable plugin
module. By default, it is &lt;code&gt;logger.dll&lt;/code&gt;. It simply saves every
single packet into separate file, which uses the following name scheme:
&lt;code&gt;from_IP.from_port-to_IP.to_port.log&lt;/code&gt; (for example,
&lt;code&gt;127.0.0.1.4322-127.0.0.1.21.log&lt;/code&gt;). The files can be ordered by
their modification date in your file explorer, so you can track the entire
session:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;Packets list&quot; width=435 height=345 border=0 src=&quot;http://sysd.org/stas/files/active/0/packets.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;logger.dll&lt;/code&gt; can be set up to include a sequence counter at
the beginning of each packet and to output saved packets into some specific
directory:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;logger.dll setup&quot; width=566 height=71 border=0 src=&quot;http://sysd.org/stas/files/active/0/logger.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Plugin module is also capable of injecting packets. Load the
&lt;code&gt;replicator.dll&lt;/code&gt; file and check the setup screen:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;replicator.dll setup&quot; width=631 height=246 border=0 src=&quot;http://sysd.org/stas/files/active/0/replicator.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;When you click the &lt;em&gt;Capture&lt;/em&gt; button and then make some action in
your proxied web client, the replicator plugin will prompt you if it got a
corresponding packet. This packet may be resent automatically, at the period
specified in the &lt;em&gt;Period&lt;/em&gt; box. You can capture &amp;amp; replicate several
packets, and manipulate their resend period. A very interesting application
of the replicator plugin is to flood &lt;strong&gt;web chats&lt;/strong&gt; and to spin
up &lt;strong&gt;web counters&lt;/strong&gt;. Of course, the right way is to use
&lt;code&gt;logger.dll&lt;/code&gt; and to make a clone that imitates the &quot;real&quot; web
client.&lt;/p&gt;

&lt;p&gt;The final note: this is, and always will be, an &lt;em&gt;alpha-state code&lt;/em&gt;.
I do not develop this proxy application anymore. It is useful to me the way
it is. But you can grab the source and make a whatever plugin you like, or
even rewrite the code entirely. I don&#039;t care. Just give me the proper
credits!&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/19">C</category>
 <category domain="http://sysd.org/stas/taxonomy/term/13">GUI</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Wed, 03 Jan 2007 22:50:00 -0200</pubDate>
</item>
<item>
 <title>I.E. &#039;hidden image&#039; maker</title>
 <link>http://sysd.org/stas/node/38</link>
 <description>&lt;p&gt;
&lt;center&gt;&lt;img alt=&quot;sample masked image&quot;
 src=&quot;http://sysd.org/stas/files/active/0/masked.jpg&quot;
 height=&quot;228&quot; width=&quot;320&quot;&gt;&lt;br&gt;
&lt;/center&gt;
&lt;/p&gt;
If you are using Internet Explorer (any version able to load this page
&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;, just select the above image (or go to &lt;i&gt;&quot;Edit =&amp;gt;
Select All&quot;&lt;/i&gt;, or press &lt;code&gt;Ctrl-A&lt;/code&gt;). You
may see a watermark with white letters forming a word &quot;TEST&quot;. This &lt;b&gt;only&lt;/b&gt;
happens in IE, due to the specific way it masks the selected images to
show their selected state. &lt;a
 href=&quot;http://www.mozilla.org/products/firefox/&quot;&gt;Firefox&lt;/a&gt;,
for example, simply tints the image with bluish color. There are lots
of jokes one can make using this simple principle. For example, all
images on your homepage may have some &quot;subliminal&quot; messages. Adobe
PhotoShop is perfectly suitable to make such &#039;Hidden Images&#039; by hand;
in fact, my inspiration was a tutorial made by Matt Kment to do this.
But if you
are too lazy and/or do not have PhotoShop installed (UN*X users, for
example), you can use this small program I wrote in Perl to automate
the
&quot;steganographic&quot; process. I wrote it using &lt;a
 href=&quot;http://www.imagemagick.net/&quot;&gt;ImageMagick&lt;/a&gt;&lt;small&gt;&lt;sup&gt;TM&lt;/sup&gt;&lt;/small&gt;
library (so it&#039;s required to successfully run the program). It is a
command line program, but it is simple enough to use,
and it has an advantage to be integrable into your own scripts/programs
(you can even setup your server to embed your company logo into all
graphics of your site, but this will overload the server&#039;s CPU and RAM
too quickly). I called my program &quot;Internet Explorer Mask&#039;O&#039;Matic&quot;.
Take a look at it&#039;s startup screen:&lt;br&gt;
&lt;pre&gt;Internet Explorer Mask&#039;O&#039;Matic v1.0 by Stas &lt;stanis
 @linuxmail.org=&quot;&quot;&gt;&lt;br&gt;Grab yours at http://sysdlabs.hypermart.net/ &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;&lt;br&gt;Inspirated by some mad stuff by Lem0nHead&lt;br&gt;Based on Photoshop &#039;Hidden Image&#039; Guide (http://www.atomicwienerdog.com/ot/)&lt;br&gt;made by Matt Kment &amp;amp; suggested to me by xfalmp&lt;br&gt;&lt;br&gt;&lt;br&gt;ERROR: please give us --visible&lt;br&gt;&lt;br&gt;&lt;br&gt; * Usage: MaskOMatic.pl &lt;options&gt;&lt;br&gt; * Options (note that you can use syntaxes like --vis= --hid -out -p):&lt;br&gt; --visible filename of image normally seen (required)&lt;br&gt; --hidden filename of image seen when selected in IE (required)&lt;br&gt; --output filename to write out, format is selected automatically&lt;br&gt; using suffix provided (required)&lt;br&gt; --percentage float value between 0 &amp;amp; 100; how much of hidden appears&lt;br&gt; (optional, defaults to 50%)&lt;br&gt; --quality JPEG/MIFF/PNG compression level (optional, DON&#039;T USE!)&lt;br&gt; --contrast flag, internal contrast reduction (optional)&lt;br&gt; --test filename to dump preview of selected image (optional)&lt;br&gt;&lt;br&gt; * Notes:&lt;br&gt; # Visible &amp;amp; hidden images doesn&#039;t need to have same size, when size&lt;br&gt; doesn&#039;t matches then hidden image is rescaled using Lanczos filter&lt;br&gt; # A huge set of image formats is supported (JPG, GIF, PNG for example)&lt;br&gt; but I strongly advice you to write output in loseless format *only*&lt;br&gt; (BMP, PNG, TGA) and *then* fine-tune contrast/brightness &amp;amp; save&lt;br&gt; compressed in your favourite image editor (like GIMP)&lt;br&gt;&lt;br&gt; * Example:&lt;br&gt; MaskOMatic.pl --vis bush.jpg --hid death.jpg --out sublim.bmp&lt;br&gt;&lt;/options&gt;&lt;/stanis&gt;&lt;/pre&gt;
Only 3 options are obligatory: &lt;code&gt;--visible&lt;/code&gt;, &lt;code&gt;--hidden&lt;/code&gt;
&amp;amp; &lt;code&gt;--output&lt;/code&gt;. You can abbreviate them
as &lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;-h&lt;/code&gt; &amp;amp;
&lt;code&gt;-o&lt;/code&gt;,
respectively. &quot;Visible&quot; is an image that user sees by default.
&quot;Hidden&quot; is what user sees when he/she selects the image. And &quot;output&quot;
is the resulting image you can embed into your pages. It is also
possible to use the &lt;code&gt;&quot;--test&quot;&lt;/code&gt;
option to preview the selected state of the output image without
starting Internet Explorer. If it looks bad, you may play around with &lt;code&gt;&quot;--percentage&quot;&lt;/code&gt;
option, which specifies the &#039;weight&#039; of the hidden image. The higher
is this value, the greater is the hidden image visibility. If that&#039;s
not
enough to hide your image well (some things are pretty difficult to
hide!), you can try to tune the output image with &lt;code&gt;&quot;--contrast&quot;&lt;/code&gt;
option, but I suggest you to use some GUI program to do that as you get
the visual feedback instantly. I also suggest you to always save your
output in the non-compressed lossless format (like BMP, TGA, TIFF), and
then
fine-tune the compression in some program specialized in it (&lt;a
 href=&quot;http://www.gimp.org/&quot;&gt;GIMP&lt;/a&gt; has a nice
compressor with visual feedback).
&lt;p&gt;
&lt;h3&gt;Alternatives:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.n-sane.net/effects/hidden-image/index.php&quot; target=&quot;_blank&quot;&gt;Hidden
Image&lt;/a&gt; Photoshop tutorial&lt;/li&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.codeproject.com/cs/media/magicimage.asp&quot; target=&quot;_blank&quot;&gt;Magic
Image Generator&lt;/a&gt; C#/VS.NET2003 program (with source) &lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Fri, 05 May 2006 17:47:18 -0300</pubDate>
</item>
<item>
 <title>GibCounter QW stats</title>
 <link>http://sysd.org/stas/node/21</link>
 <description>GibCounter is a tiny yet quite useful game statistics generator for QuakeWorld games.
It operates parsing &lt;code&gt;frag*.log&lt;/code&gt; files generated by the QuakeWorld game server. If your server doesn&#039;t generate such a log files by default, you may enable this feature executing the server as follows:&lt;br&gt;
&lt;pre&gt;qw-server +set fraglogfile 1&lt;/pre&gt;
Of course you can also edit your server&#039;s &lt;code&gt;.cfg&lt;/code&gt; files to enable frag logging. You may run GibCounter on the same machine (and, on UN*X systems, as the same user) that runs the game server. If it&#039;s a &lt;a href=&quot;http://www.quakeforge.net/&quot;&gt;QuakeForge&lt;/a&gt; server, then GibCounter will locate log files automatically at the path &lt;code&gt;$HOME/.quakeforge/qw&lt;/code&gt;. For the different ports of the QuakeWorld server, or a QuakeForge server operating as a different user, you may specify the location of the &lt;code&gt;qw&lt;/code&gt; directory manually. To do that, simply pass the new directory as an argument to GibCounter (using your favorite command line shell):&lt;br&gt;
&lt;pre&gt;perl gibcounter.pl /home/qserver/.quake/qw&lt;/pre&gt;
GibCounter outputs the generated HTML code directly to &lt;code&gt;STDOUT&lt;/code&gt;. So, if you&#039;re going to add it into your server&#039;s &lt;i&gt;crontab&lt;/i&gt;, don&#039;t forget to pipe the output to some file! For example, the following &lt;span style=&quot;font-style: italic;&quot;&gt;crontab&lt;/span&gt; line will regenerate GibCounter game stats every 30 min and make it available through the URL &lt;u&gt;http://yourserver.com/~youruser/gibcounter.html&lt;/u&gt; (file paths &amp;amp; &lt;i&gt;crontab&lt;/i&gt; format may be different on your system; so ask your system administrator if unsure):&lt;br&gt;
&lt;pre&gt;0,30 * * * * perl $HOME/gibcounter.pl &amp;gt; $HOME/www/gibcounter.html&lt;/pre&gt;
GibCounter is also highly theme-able: CSS style of almost every element may be changed within &lt;code&gt;gibcounter.css&lt;/code&gt; file. Of course, you can also edit the HTML template which is contained inside the Perl source itself &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
The game statistics page generated by GibCounter is self-explanatory. On the top, it will show players ranking, sorted by (guess what?!) the frags they scored. Frags are computed as: kills &lt;i&gt;minus&lt;/i&gt; suicides. GibCounter also computes how many times each player was killed by others. And, on the bottom of the generated page, some computed totals are shown. This includes the period of time for which the stats were made, the &lt;i&gt;top fragger&lt;/i&gt; (the best) &amp;amp; the &lt;i&gt;top fragged&lt;/i&gt; (the worst) players. Please note that players with default nicknames, such as &quot;unnamed&quot; or &quot;user-#&quot;, are automatically excluded from being processed, simply to avoid useless information bloat (as many different players would be rated as one, with very high kill/death number)!&lt;br&gt;
By the way, GibCounter preserves the colorization of the graphical font in players&#039; nicknames (Quake console is able to print some ASCII characters in white, orange, gold &amp;amp; brown colors), and translates all symbols into readable ASCII.&lt;br&gt;
So, after all, how does GibCounter-generated page looks like?! Look for yourself, here are some &lt;a href=&quot;http://sysd.org/docs/gibcounter.html&quot;&gt;example stats&lt;/a&gt;. Also, feel free to modify the program itself to fit your own needs!&lt;br&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/29">game</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Thu, 20 Apr 2006 01:48:22 -0300</pubDate>
</item>
</channel>
</rss>
