<?xml version="1.0" encoding="windows-1252"?>
<node id="127116" title="gmax" created="2001-11-23 13:49:22" updated="2006-10-22 10:25:02">
<type id="15">
user</type>
<author id="127116">
gmax</author>
<data>
<field name="doctext">
&lt;!--
&lt;p&gt;
  &lt;style type="text/css"&gt;
  @import  url("index.pl?node_id=6182");
  /* The green Web-safe theme */
&lt;/style&gt;
&lt;/p&gt;
--&gt;



&lt;font color="#000099"&gt;

&lt;PRE&gt;
     _/_/_/ _/_/_/  _/_/     _/_/_/ _/    _/  
  _/    _/ _/    _/    _/ _/    _/   _/_/     
 _/    _/ _/    _/    _/ _/    _/ _/    _/    
  _/_/_/ _/    _/    _/   _/_/_/ _/    _/     
     _/                                          
_/_/        

&lt;!--
   ggggggggg   ggggg   mmmmmmm    mmmmmmm     aaaaaaaaaaaaa   xxxxxxx      xxxxxxx
  g:::::::::ggg::::g mm:::::::m  m:::::::mm   a::::::::::::a   x:::::x    x:::::x
 g:::::::::::::::::gm::::::::::mm::::::::::m  aaaaaaaaa:::::a   x:::::x  x:::::x
g::::::ggggg::::::ggm::::::::::::::::::::::m           a::::a    x:::::xx:::::x
g:::::g     g:::::g m:::::mmm::::::mmm:::::m    aaaaaaa:::::a     x::::::::::x
g:::::g     g:::::g m::::m   m::::m   m::::m  aa::::::::::::a      x::::::::x
g:::::g     g:::::g m::::m   m::::m   m::::m a::::aaaa::::::a      x::::::::x
g::::::g    g:::::g m::::m   m::::m   m::::ma::::a    a:::::a     x::::::::::x
g:::::::ggggg:::::g m::::m   m::::m   m::::ma::::a    a:::::a    x:::::xx:::::x
 g::::::::::::::::g m::::m   m::::m   m::::ma:::::aaaa::::::a   x:::::x  x:::::x
  gg::::::::::::::g m::::m   m::::m   m::::m a::::::::::aa:::a x:::::x    x:::::x
    gggggggg::::::g mmmmmm   mmmmmm   mmmmmm  aaaaaaaaaa  aaaaxxxxxxx      xxxxxxx
            g:::::g
gggggg      g:::::g
g:::::gg   gg:::::g
 g::::::ggg:::::::g
  gg:::::::::::::g
    ggg::::::ggg
       gggggg

--&gt;                                            
&lt;/PRE&gt;&lt;/font&gt;
&lt;p&gt;&lt;font color="#ff9966"&gt;&lt;b&gt;Savoir, savoir faire, faire, faire savoir.&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;

&lt;!--
&lt;table border="1" cellspacing="0" cellpadding ="5"&gt;&lt;tr&gt;&lt;td&gt;
&lt;table border="0" cellpadding="10"&gt;&lt;tr&gt;
&lt;td&gt;&lt;p&gt;&lt;a title="MySQL Users Conference" href="http://www.mysql.com/events/uc2004/schedule-wednesday.html"&gt;&lt;img border="0" src="http://gmax.oltrelinux.com/mysql-uc2004-speaker.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;&lt;td&gt;
&lt;p&gt;I'll be speaking at the &lt;a href="http://www.mysql.com/events/uc2004/sessions.html#cfa00d97"&gt;MySQL Users Conference&lt;/a&gt; in Orlando, FL, on April 14&lt;small&gt;&lt;sup&gt;th&lt;/sup&gt;&lt;/small&gt;, 2004.&lt;/p&gt;
&lt;p&gt;It will be a computer lab session on [DBI Recipes|DBI Idioms].&lt;/p&gt;
&lt;p&gt;If any monk is going to be nearby Orlando on April 14&lt;small&gt;&lt;sup&gt;th&lt;/sup&gt;&lt;/small&gt; to 17&lt;small&gt;&lt;sup&gt;th&lt;/sup&gt;&lt;/small&gt;, please /msg me.&lt;br&gt; Perhaps we could share a few beers.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;&lt;/p&gt;
--&gt;
&lt;p&gt;Systems analyst and database designer, converted to Perl after a long mutual love with C.
&lt;/p&gt;
&lt;p&gt;Currently working as MySQL Community Team lead with Sun Microsystems &lt;strike&gt;a QA developer for &lt;a href="http://www.mysql.com"&gt;MySQL AB&lt;/a&gt;,&lt;/strike&gt; &lt;strike&gt;free-lance database designer and IT forensic consultant&lt;/strike&gt;, loves C/C++, perl, women, linux, mysql, object-pascal, books and chess &lt;I&gt;(not necessarily in that order :-)&lt;/I&gt;&lt;/p&gt;
&lt;p&gt;I have used the [gmax] nickname since 1991, and I would like to state that I have no association to a game tool with the same name.&lt;/p&gt;  

&lt;p&gt;
&lt;a href="http://gmax.oltrelinux.com/places.html"&gt;Places I visited&lt;/a&gt;
&lt;/p&gt;

&lt;h3&gt;&lt;font color="#669999"&gt;Articles (SQL &amp; Perl):&lt;/font&gt;&lt;/h3&gt;
&lt;table border=0&gt;
&lt;tr&gt;&lt;td&gt;
&lt;A HREF="http://www.mysql.com/articles/wizard/index.html" &gt;MySQL wizardry - cross tabulations&lt;/A&gt; (off-site at &lt;a href="http://www.mysql.com"&gt;MySQL.com&lt;/a&gt;)
&lt;/td&gt;
&lt;td&gt;A tutorial on how to create server-side cross-tabulations reports with MySQL and Perl.
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;


&lt;td&gt;
&lt;a href="http://www.onlamp.com/pub/a/onlamp/2003/12/04/crosstabs.html"&gt;Generating Database Server-Side Cross Tabulations&lt;/a&gt; (off-site at &lt;a href="http://www.onlamp.com"&gt;OnLamp&lt;/a&gt;)
&lt;/td&gt;
&lt;td&gt;Theory and practice of server-side cross-tabulation with SQL and Perl.&lt;/td&gt;

&lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;font color="#669999"&gt;My policy&lt;/font&gt;&lt;/h3&gt;
&lt;p&gt;I usually don't participate in flames. Nor I answer to gratuitous attacks. I apply Murphy's law about not getting engaged in a discussion with an idiot, since people couldn't  tell the difference.&lt;/p&gt; 
&lt;pre&gt;
         \|||/       
         (o o)       
,----ooO--(_)-------.   ,---------------------------------.
| Please            |   | If you are arguing with a fool, |
|   don't feed the  |   | chances are he's doing the same |
|     TROLLs  !!    |   | thing.                          |
'--------------Ooo--'   '---------------------------------'
        |__|__|      
         || ||       
        ooO Ooo      
&lt;/pre&gt;

&lt;p&gt;&lt;small&gt;I got the above ascii-art from&lt;a href="http://jni.sdf-eu.org/trolls.html"&gt;
this usenet collection&lt;/a&gt;. Thanks to [IlyaM] for 
[id://237707|providing the link].&lt;/small&gt;&lt;/p&gt;
&lt;!-- os:Linux --&gt;
&lt;!-- birthday:0000/11/5--&gt;
&lt;!-- email:gmax_at_oltrelinux.com--&gt;
&lt;!-- location:latitude=39.14.54,longitude=9.10.58 --&gt;

&lt;h3&gt;&lt;font color="#669999"&gt;CPAN Modules&lt;/font&gt;&lt;/h3&gt;
&lt;table border=0 cellpadding=2 cellspacing=0&gt;
&lt;tr&gt;
&lt;td&gt;Server-side cross tabulations&lt;/td&gt;
&lt;td&gt;&lt;a href="http://search.cpan.org/perldoc?DBIx::SQLCrosstab"&gt;DBIx::SQLCrosstab&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;a href="http://gmax.oltrelinux.com/cgi-bin/xtab.cgi"&gt;(Live sample)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;i&gt;SQL and Perl wizardry together&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
Database Normalizer
&lt;/td&gt;
&lt;td&gt; 
&lt;a href="http://search.cpan.org/perldoc?DBSchema::Normalizer"&gt;  DBschema::Normalizer&lt;/a&gt;    
&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://search.cpan.org/search?dist=DBSchema-Normalizer"  &gt;(CPAN module)&lt;/a&gt;
&lt;td&gt;&lt;i&gt;When Perl and SQL co-operate strictly&lt;/i&gt;&lt;/td&gt;
&lt;/td&gt;&lt;tr&gt;

&lt;tr&gt;&lt;td&gt;
A parser for PGN files
&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://search.cpan.org/perldoc?Chess::PGN::Parse" &gt;Chess::PGN::Parse&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;a href="http://search.cpan.org/search?dist=Chess-PGN-Parse"  &gt;(CPAN module)&lt;/a&gt;
&lt;/td&gt;
&lt;td&gt;&lt;i&gt;(Fruit of a joint venture with brother [hsmyers]).&lt;/i&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;h3&gt;&lt;font color="#669999"&gt;Nodes&lt;/font&gt;&lt;/h3&gt;

&lt;h4&gt;&lt;font color="#0000FF"&gt;database programming&lt;/font&gt;&lt;/h4&gt;

&lt;table border=0 &gt;
&lt;tr&gt;
&lt;td&gt;[id://162771|The fine art of database programming].&lt;/td&gt;
&lt;td&gt;Why database programming is not easy.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://284436]&lt;/td&gt;
&lt;td&gt;A collection of DBI idioms. (Now mentioned in &lt;a href="http://search.cpan.org/~timb/DBI-1.39/Changes#Changes_in_DBI_1.39,_27th_November_2003"&gt;
DBI docs&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://264485|Before asking a database related question ...]
&lt;/td&gt; 
&lt;td&gt;Searching for solutions before asking for help.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://132513|Normalization the easier way]
&lt;/td&gt;
&lt;td&gt;How database programming could be less difficult.
&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://273952|Speeding up the DBI]
&lt;/td&gt;
&lt;td&gt;Improve the efficiency of your database apps with new DBI features.
&lt;/td&gt;

&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://298213]&lt;/td&gt;&lt;td&gt;How to find your way through database learning&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://182023|DBI specification change]
&lt;/td&gt; 
&lt;td&gt;Something in the DBI docs to be aware of.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://150255|Handling huge BLOB fields with DBI and MySQL]
&lt;/td&gt;
&lt;td&gt;Stretching the database limits.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;[id://313934|SQL Crosstab, a hell of a DBI idiom]&lt;/td&gt;
&lt;td&gt;Analyzing the guts of a complex SQL builder.&lt;/td&gt;

&lt;/tr&gt;
&lt;/table&gt;


&lt;h4&gt;&lt;font color="#0000FF"&gt;Tutorials&lt;/font&gt;&lt;/h4&gt;
&lt;table border=0&gt;
&lt;tr&gt;&lt;td&gt;[id://153259|Tree::Dag_Node tutorial]
&lt;/td&gt; 
&lt;td&gt;
The fascinating world of trees.&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
[id://270014] 
&lt;/td&gt;

&lt;td&gt;
How to use Vim to compose off-line Perlmonks write-ups 
&lt;/td&gt;
&lt;/tr&gt; 
&lt;/table&gt;

&lt;h4&gt;&lt;font color="#0000FF"&gt;Perl community&lt;/font&gt;&lt;/h4&gt;
&lt;table border=0&gt;
&lt;tr&gt;&lt;td&gt;
[id://163993]
&lt;/td&gt;
&lt;td&gt;
The social impact of PerlMonks
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://134361]
&lt;/td&gt;&lt;td&gt;
On writing negative reviews
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://152185]
&lt;/td&gt;&lt;td&gt;
On answering with examples
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://136235]
&lt;/td&gt;&lt;td&gt;
On hiring a new developer
&lt;/td&gt;&lt;/tr&gt;
&lt;!--
&lt;tr&gt;&lt;td&gt;
[id://244322]
&lt;/td&gt;&lt;td&gt;
An alternative to [best nodes]&lt;/td&gt;&lt;/tr&gt;
--&gt;

&lt;tr&gt;&lt;td&gt;
[id://344377]
&lt;/td&gt;&lt;td&gt;
[best nodes] on steroids! (&lt;a href="http://gmax.oltrelinux.com/cgi-bin/cbnodes.cgi"&gt;live listings&lt;/a&gt;)&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;

&lt;h4&gt;&lt;font color="#0000FF"&gt;obfuscation&lt;/font&gt;&lt;/h4&gt;
&lt;table border=0&gt;
&lt;tr&gt;&lt;td&gt;
[id://128986|
Reusing Camel Code]
&lt;/td&gt;
&lt;td&gt;Obfuscation turned into Software Engineering :-)
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://133561|The key to paradise (1)] [id://133730|and (2)]
&lt;/td&gt;
&lt;td&gt;
&lt;I&gt;Plain&lt;/I&gt; Obfuscation (if there is such a thing)
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
&lt;code&gt;
#/usr/bin/perl -w
   use strict;my%p=
 ("\40"=&gt;chr(ord("\40"
)*3-1).chr(ord("\40")+ord("\40")/4+7));$p{$p{"\40"}}="\40";print
@{[map{my$o= $p{"\40"};@{[map{(($o=$p{$o})x$_)}map{ord($_)-(ord(
"\40")*3       )-1}split//]},"\n"}split/n/,"uaqbnfdgcebcccbnebe"
."bcecc"       ."gbndbeb"          ."cbibi"   ."bncdg"  ."dcbib"
."nbbna"       ."bnaaua"           ."ubndd"   ."ccgce"  ."debcb"
."ncbeb"       ."ebcbeb"
 ."cbebc"     ."cnbbeb"
  ."ebcbebcbebcbcbnab"
   ."ebebecebebcbeb"
    ."na"]};# amen
&lt;/code&gt;
&lt;table&gt;
&lt;tr&gt;&lt;td&gt;
[id://136685|Perl Monk's dream]&lt;/td&gt;
&lt;td&gt;A multiple level obfuscation
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;
[id://140626]&lt;/td&gt;
&lt;td&gt;with its spoiler.&lt;/td&gt;
&lt;/tr&gt;
&lt;td&gt;[id://144594|Elusive monks]
&lt;/td&gt;
&lt;td&gt; A running obfuscation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;[id://155426] &lt;/td&gt;
&lt;td&gt;A different obfuscation. Wants to be fun :)
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[id://157703]&lt;/td&gt; &lt;td&gt;spoiler of the above&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[id://309253|2 years]&lt;/td&gt; &lt;td&gt;A celebration of a pleasant friendship with PM.&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;

&lt;h4&gt;&lt;font color="#0000FF"&gt;various&lt;/font&gt;&lt;/h4&gt;
&lt;table border=0&gt;
&lt;tr&gt;
&lt;td&gt;[id://278232]&lt;/td&gt;&lt;td&gt;How curiosity can make you grow as a programmer.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[id://135345|Perl's pearls]&lt;/td&gt;
&lt;td&gt; Notes on implementing an anagram algorithm in Perl
&lt;/td&gt; &lt;tr&gt;
&lt;!--
&lt;tr&gt;
&lt;td&gt;[id://135634|a challenge]&lt;/td&gt; 
&lt;td&gt;Multiple words anagrams. An intractable algorithm slightly tamed.&lt;/td&gt;
&lt;/tr&gt;
--&gt;
&lt;tr&gt;
&lt;td&gt;
[id://141765|Editing features for advanced users]&lt;/td&gt;
&lt;td&gt;shows some powerful features for programming using a well known editor.
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
[id://314528|On-the-fly all-languages syntax highlighting]&lt;/td&gt;
&lt;td&gt;Syntax highlighting for the masses.
&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td&gt;
[id://144335|In praise of Perl for admin tasks]&lt;/td&gt;
&lt;td&gt; is a praise of Perl for its original purpose. 
&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;


&lt;br/&gt;
&lt;br/&gt;
&lt;small&gt;&lt;i&gt;Data charmer drawing by Simon Goodway&lt;/i&gt;&lt;/small&gt;</field>
<field name="lasttime">
2011-06-21 15:36:55</field>
<field name="experience">
20724</field>
<field name="user_scratchpad">
358145</field>
<field name="imgsrc">
229091</field>
<field name="timeformat">
</field>
<field name="numwriteups">
292</field>
<field name="location">
Sardinia, Italy&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPAN Directory:&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href="http://search.cpan.org/author/GMAX/"&gt;GMAX&lt;/a&gt;  &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Home page:&amp;nbsp;&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;a href="http://datacharmer.org/"&gt;the data charmer&lt;/a&gt;</field>
<field name="timezone">
-1</field>
<field name="codewrapoff">
</field>
<field name="codewraplength">
80</field>
<field name="codeautowrap">
</field>
<field name="codeprefix">
</field>
<field name="codebig">
on</field>
</data>
</node>
