XML, the Perl Way


XML description

The Technology

And Now?

XML description

The Perl Geek Code XML description

<?xml version="1.0"?>
<code version="0.01"><title>The Perl Geek Code</title>
<modifiers><title>Modifiers</title>
  <modifier type="simple" id="@">
    <short>varies</short>
    <long>For this variable, said trait is not very rigid, may change with 
          time or with individual interaction. For example, Geeks who do a
          lot of CGI for their job but really don't like it might choose to
          list themselves as : C++@ (actually C++@$, see below)</long>
  </modifier>
  <modifier type="simple" id="$">
     <short>I get paid for it</short>
     <long>Indicates that this particular category is done for a living.
           For example, o+++$ indicates that the person won the OPC and
           gets paid for their obfuscations. If you are a professional
           Perl programmer just add this to the first field (P) and to the
           main areas you work in, like CGI, Sysadmin...</long>
  </modifier>
  <modifier type="level" id=">">
    <short>wannabe</short>
    <long>for 'wannabe' ratings. Indicating that while the geek is currently
          at one rating, they are striving to reach another. For example, 
          c+++>++++ indicates a core developer who volunteers to be a
          pumpkin (not that this is likely to happen...).</long>
  </modifier>
  <modifier type="level" id="()">
    <short>cross-over</short>
     <long>for indicating "cross-overs" or ranges. Geeks who go from C+ to 
           C--- depending on the situation (i.e. mostly "C+") could use C+(---). @ is different from ()
       in that () has finite limits within the category, while @ ranges all over</long>
       </modifier>
</modifiers>  
<section><title>Generic</title>
  <item id="P"><title>Perl Programmer Stage</title>
	  <comments><p>See <a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide1.html">Seven Stages of a Perl Programmer</a>
			  for the detailed explanations of what the various levels.</p></comments>
    <level str="*"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide54.html">Wizard</a></level>
    <level str="++++"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide44.html">Guru</a></level>
    <level str="+++"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide36.html">Hacker</a></level>
    <level str="++"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide25.html">Adept</a></level>
    <level str="+"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide17.html">User</a></level>
    <level str=" "><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide11.html">Initiate</a></level>
    <level str="-"><a href="http://prometheus.frii.com/~gnat/yapc/2000-stages/slide2.html">Novice</a></level>
  </item>
</section>
<section><title>Perl Skills</title>
  <item id="R"><title>Regular Expressions</title>
    <level str="++++">I am Ilya or Jeff Friedl</level>
    <level str="+++">I use ??{}, and ?<! and s///ee, sometimes in the same regexp</level>
    <level str="++">I use ///e and I know the difference between //m and //s</level>
    <level str="+">I understand "Death to DotStar" and when I have to use \1 instead of $1</level>
    <level str=" ">I use regular expressions quite often but I am always a little uncomfortable with them</level>
    <level str="-">why can't you do tr/&/&amp;/ ?</level>
    <level str="--">regular expressions is a fancy name for line noise</level>
    <level str="!">I don't need no stinkin' regular expression, all of my data is XML</level>
    <level str="?">Regular Expressions? What the Heck is a Regular Expression?</level>
  </item>
  <item id="M"><title>Modules</title>
    <level str="++++">I am Damian Conway</level>
    <level str="+++">Some of my modules are part of the core distribution</level>
    <level str="++">I have more than 3 modules on CPAN</level>
    <level str="+">I have between 1 and 3 modules on CPAN</level>
    <level str=" ">I write my own modules and use them as much as I can</level>
    <level str="-">I use modules from CPAN</level>
    <level str="--">I only use modules from the core distribution</level>
    <level str="---">I don't like modules and I don't use them</level>
    <level str="!">I only write one-liners anyway</level>
    <level str="?">Modules?</level>
  </item>
  <item id="O"><title>Objects</title>
    <level str="++++">I am Damian Conway</level>
    <level str="+++">I have written a large application with OOP</level>
    <level str="++">I have written an OOP module and know what @ISA is for</level>
    <level str="+">I have written an OOP module, but never used inheritence</level>
    <level str=" ">I have used other people's OO modules</level>
    <level str="-">I've heard of OOP and would like to learn it someday</level>
    <level str="--">I've heard of OOP and think its a joke</level>
    <level str="---">I've never heard of OOP or don't understand OOP</level>
    <level str="!">I am Tom Christiansen</level>
    <level str="?">What? You mean Perl can be OO?</level>
  </item>
  <item id="MA"><title>Map</title>
    <level str="++++">I am Erudil or Randal Schwartz, I (ab)use map</level>
    <level str="+++">I use map as often as I can, including in void context, on purpose, and I know who will flame me for that</level>
    <level str="++">I use map quite often and I understand the Schwartzian transform</level>
    <level str="+">I often try to use map, but as soon as I have a problem in the code I replace it with a foreach</level>
    <level str=" ">I know the difference between map and grep... in theory</level>
    <level str="-">I read the description of map a while ago and my head still hurts!</level>
    <level str="--">Is map one of those obscure functions no one actually uses?</level>
    <level str="!">Sure I can use a map, it's just that I can't seem to be able to fold it back</level>
  </item>
  <item id="E"><title>Eval</title>
    <level str="++++">I am Erudil, 'nuff said</level>
    <level str="+++">I use eval in AUTOLOAD methods to generate methods dynamically</level>
    <level str="++">I use eval to generate subroutines dynamically</level>
    <level str="+">I use eval and @! to catch exception</level>
    <level str=" ">I use eval every now and then</level>
    <level str="-">I know the difference between eval "string" and eval { block }</level>
    <level str="--">I know that eval "string" and eval { block } are different and I avoid both</level>
    <level str="---">eval is insecure, I don't use it</level>
    <level str="!">My company's coding standards don't allow me to use eval</level>
  </item>
  <item id="PU"><title>Pack/Unpack</title>
    <level str="++++">I use pack and unpack to speedup my sort routines</level>
    <level str="+++">A good JAPH (like mine) _must_ use pack</level>
    <level str="++">I use pack and unpack enough so that I never have to look at the doc</level>
    <level str="+">I use pack and unpack, of course!</level>
    <level str=" ">I use pack and unpack, I just need to read the doc carefully each time I do</level>
    <level str="-">I try to avoid pack and unpack, I don't feel real confident with them</level>
    <level str="--">pack and unpack? I thought they were deprecated!</level>
    <level str="!">I pack and unpack my suitcase</level>
  </item>
  <item id="BD"><title>Bondage & Discipline</title>
    <level str="*">I use Python for all serious code</level>
    <level str="+++">I use Class::Contract</level>
    <level str="++">I use pseudo-hashes to avoid auto-vivification</level>
    <level str="+">I refuse to use AUTOLOAD</level>
    <level str=" ">I use -w and strict for anything but one-liners</level>
    <level str="-">I use strict but warnings are a pain</level>
    <level str="--">strict? -w? Yeah right!</level>
    <level str="!">I only write one-liners anyway</level>
    <level str="?">strict? -w? What are those?</level>
  </item>
  <item id="C"><title>CGI</title>
	  <level str="*">I am Lincol Stein or Doug McEachern</level>
    <level str="++++">I write (good) books about CGI and Perl</level>
    <level str="+++">mod_perl, mod_perl, mod_perl!</level>
    <level str="++">I use CGI.pm, the Template Toolkit and HTML::Parser</level>
    <level str="+">I use CGI.pm and the taint mode</level>
    <level str=" ">I use CGI.pm but I am not that sure my scripts are secure</level>
    <level str="-">CGI is best done with print and parsing CGI queries by hand</level>
    <level str="--">I try to avoid doing CGI at all costs</level>
    <level str="---">I do CGI all the time with Perl and Matt's Archive</level>
    <level str="?">Cute Guys Inside? Can't Get Inducted? Calling Girls Immediately?</level>
    <level str="!">My company won't do CGI, it is not secure</level>
  </item>
  <item id="D"><title>DBI</title>
    <level str="*">I am Tim Bunce</level>
    <level str="+++">I have written a DBD</level>
    <level str="++">I have used DBI with at least 2 DBD's in the same program</level>
    <level str="+">I have used DBI with at least 2 DBD's</level>
    <level str=" ">I use DBI always with the same data base</level>
    <level str="-">DBI? The mySQL/Oracle modules work fine for me thank you</level> 
    <level str="--">Why should I use DBI, flat files work fine for me</level>
    <level str="!">I don't need no stinkin' data base!</level>
    <level str="?">Double Barrel Ingram? Dozens of Bugs Inside? Dirty Boys Inc?</level>
  </item>
  <item id="S"><title>Sysadmin</title>
    <level str="*">I am Evi Nemeth, I don't need perl.  *nix does what I want.  period.</level>
    <level str="++++">I am David Blank-Edelman, I can use perl to do anything the system can do</level>
    <level str="+++">I wrote the perl that automates all our system tasks</level>
    <level str="++">I wrote some perl to check the logs and quotas and other daily maintenance</level>
    <level str="+">I fixed the previous perl code after upgrading perl to 5.6, but didn't understand everything there</level>
    <level str=" ">I use perl to do daily maintenance</level>
    <level str="-">I know where the logs are, why do i need perl?</level>
    <level str="--">I think i installed that, don't remember why...</level>
    <level str="---">I'm sorry, where's the `on' button?</level>
  </item>
  <item id="X"><title>XML</title>
    <level str="++++">I am Matt Sergeant or Clark Cooper</level>
    <level str="+++">I have writen at least one of the CPAN XML modules</level>
    <level str="++">I can tell how XML::DOM differs from XML::Twig and I use both</level>
    <level str="+">I use XML::Simple or XML::PYX</level>
    <level str=" ">XML... that's on my TODO list</level>
    <level str="-">Yeah I know, XML is great, but why is it such a pain to use?</level>
    <level str="--">I HATE XML! It is a creation of the evil empire to destroy us all, I am Jon Barger</level>
    <level str="!">We don't need no stinkin' XML, we got Data::Dumper!</level>
    <level str="?">I have lived in a cave for the last 3 years, what is XML?</level>
  </item>
</section>
<section><title>Community</title>
  <item id="WP"><title>Perlmonk</title>
    <level str="++++">I am Tim Vroom or merlyn</level>
    <level str="+++">I am a Saint</level>
    <level str="++">I am an Abbot or above</level>
    <level str="+">I have my picture on my homenode</level>
    <level str=" ">I Can't vote yet, but I will soon</level>
    <level str="-">I am not interested in Perl Monks</level>
    <level str="--">I am Princepawn</level>
    <level str="!">Perl Monks promotes idolatry and adoring a false god. Down with Perl Monks!</level>
    <level str="?">What is PerlMonks?</level>
  </item>
  <item id="MO"><title>Perl Monger</title>
    <level str="++++">I am brian d foyi or David H. Addler</level>
    <level str="+++">I founded and/or head a Perl Monger group</level>
    <level str="++">I participate in at least 2 Perl Monger groups</level>
    <level str="+">I go to Perl Monger reunions</level>
    <level str=" ">I am subscribed to a Perl Monger mailing list but I don't go to meetings</level>
    <level str="---">Me hangin' out with geeks? I don't need no stinkin' Perl Mongers</level>
    <level str="!">There is no Perl Mongers group in my area</level>
    <level str="?">What is a Perl Monger?</level>
  </item>
  <item id="PP"><title>#perl</title>
    <level str="++++">I am a #perl op</level>
    <level str="+++">I am a #perl regular</level>
    <level str="++">I answer questions (correctly) on #perl</level>
    <level str="+">I post questions on #perl</level>
    <level str=" ">I occasionally visit #perl</level>
    <level str="-">I have been berated on #perl</level>
    <level str="--">I am banned from #perl</level>
    <level str="!">I don't use IRC</level>
    <level str="?">What is IRC?</level>
  </item>
  <item id="n"><title>Usenet</title>
    <level str="++++">I am a moderator of c.l.p.moderated</level>
    <level str="+++">Not only do I post on all 3 c.l.p.m groups, I also monitor c.l.python!</level>
    <level str="++">I read and post on all 3 c.l.p.m groups</level>
    <level str="+">I read regularly c.l.p.m groups</level>
    <level str=" ">I read occasionally c.l.p.m groups</level>
    <level str="-">I rarely read c.l.p.m groups</level>
    <level str="!">I have given up on usenet in general and the c.l.p.m groups, they're useless</level>
    <level str="?">What is usenet?</level>
  </item>
  <item id="CO"><title>Conferences</title>
    <level str="++++">I am Nat Torkington, Kevin Lenzo, Leon Brocard or Damian Conway</level>
    <level str="+++">I have won a prize at TPC or YAPC (but I am NOT Damian Conway!)</level>
    <level str="++">I have given tutorials at TPC or YAPC</level>
    <level str="+">I have given talks at TPC or YAPC</level>
    <level str=" ">I have attended at least 3 TPC or YAPC</level>
    <level str="-">I have attended at least once TPC or YAPC</level>
    <level str="--">I have never attended TPC or YAPC, my company won't let me go</level>
    <level str="!">I have never attended TPC or YAPC, and I have no desire to ever do so</level>
    <level str="?">TPC, YAPC what's that?</level>
  </item>
  <item id="CS"><title>Community Service</title>
	  <level str="*">I wrote Perl</level>
	  <level str="++++">I organize Perl Conferences</level>
	  <level str="+++">I am active on Perl Testers</level>
	  <level str="+">I </level>
	  <level str="++">I answer beginners questions on ???</level>
  </item>
</section>
<section><title>Typically Perl</title>
  <item id="PO"><title>Perl Poetry</title>
    <level str="*">Some features of Perl were designed so I could write Perl Poetry</level>
    <level str="++++">I wrote Coy or I am Kevin Meltzer</level>
    <level str="+++">I have been a judge in a Perl Poetry (or Haiku) contest</level>
    <level str="++">I have won a Perl Poetry (or Haiku) contest</level>
    <level str="+">I have participated in a Perl Poetry or Perl Haiku contest</level>
    <level str=" ">I have posted Perl Poetry on PerlMonks, c.l.p.m or on my website</level>
    <level str="-">I don't write Perl Poetry but I like reading it or I use Coy.pm occasionnally</level>
    <level str="--">Some people have _way_ too much time on their hands</level> 
    <level str="!">Do I look like I would enjoy poetry?</level>
  </item>
  <item id="o"><title>JAPH/Obfuscation</title>
    <level str="++++">I am Randal Schwartz, I won the OPC, I am BooK, Abigail or Erudil</level>
    <level str="+++">I participated in the OPC, I posted obfuscations on PerlMonks that have over 20 in rep</level>
    <level str="++">I use a JAPH</level>
    <level str="+">I wrote a JAPH but it is so pathetic I never use it</level>
    <level str=" ">Obfuscation is cool, I'm just not good at it</level>
    <level str="-">Obfuscation gives Perl a bad rep</level>
    <level str="!">I HATE obfuscation</level>
    <level str="?">What is a JAPH?</level>
  </item>
  <item id="G"><title>Goof</title>
    <level str="*">I am Larry Wall</level>
    <level str="++++">I am Damian Conway, Michael Schwern or I have a Camel tatoo somewhere on my body</level>
    <level str="+++">I won a White Camel Award</level>
    <level str="++">I write programs that are valid in at least 2 languages including Perl</level>
    <level str="+">I play Perl golf regularly</level> 
    <level str=" ">Perl is fun, I try not use the most exotic features though, someone will have to maintain my code some day</level>
    <level str="-">I _never_ use $_</level>
    <level str="--">My Perl code looks just like C, I stay away from constructs that can't be found in other languages</level>
    <level str="!">I use Perl strictly for work, it's just another language</level>
  </item>
  <item id="A"><title>Abuse/Glue</title>
    <level str="++++">Don't call my Perl OS a POS</level>
    <level str="+++">I'm writing device drivers in Perl</level>
    <level str="++">I'm writing a virtual machine in Perl (POE, Object Server, Turing-capable interpreter)</level>
    <level str="+">I'm working on Inline.pm</level>
    <level str=" ">I've written code that someone compiled to bytecode</level>
    <level str="-">Writing portable code is hard enough</level>
    <level str="--">You guys scare me</level>
    <level str="---">I'm still trying to figure out anonymous functions</level>
    <level str="!">I read part of Slash code and switched to Python</level>
  </item>
</section>
<section><title>Perl Development</title>
  <item id="c"><title>Core Hacker</title>
    <level str="*">I am Larry Wall</level>
    <level str="++++">I am or I have been a pumpkin</level>
    <level str="+++">I am a (hard!) core developer: I (re)wrote an entire subsystem of Perl or I have ported Perl to a new OS</level>
    <level str="++">I am a core developer</level>
    <level str="+">At least 3 of my patches (including documentation patches) made it into Perl</level>
    <level str=" ">I once had a patch</level>
    <level str="!">I don't mess with the internals</level>
    <level str="?">Oh my God! You mean Perl is created by human beings?</level>
</item>
    <item id="P5P"><title>p5p</title>
	    <level str="*">At one time I accounted for more than 25% of the traffic on p5p</level>
    <level str="+++">I often post on p5p</level>
    <level str="++">I occasionaly post on p5p</level>
    <level str="+">I rarely post on p5p</level>
    <level str="">I read p5p</level>
    <level str="-">I read the p5p digest</level>
    <level str="--">I don't read p5p</level>
    <level str="---">I don't see why I should get involved in Perl development</level>
    <level str="!">I refuse to participate anymore in the mess that p5p has become</level>
    <level str="?">What is p5p?</level>
  </item>
  <item id="P6"><title>Perl 6</title>
    <level str="*">I am a Language Designer for Perl 6</level>
    <level str="++++">I attended the Meeting where Perl 6 was decided</level>
    <level str="+++">I am a Perl 6 Working Group Chair</level>
    <level str="++">I wrote at least one accepted Perl 6 RFC</level>
    <level str="+">I submitted at least one refused RFC for Perl 6</level>
    <level str=" ">I subscribed to at least one of the Perl 6 mailing lists</level>
    <level str="-">I am not really interested in Perl 6, I'll deal with it when I see it</level> 
    <level str="--">I still use Perl 4 here, limme alone!</level>
    <level str="---">I don't _want_ a Perl 6</level>
    <level str="!">Isn't Perl 6 called Python?</level> 
    <level str="?">Perl 6? There is going to be a Perl 6? Cool!</level> 
  </item>
</section>
<section><title>Environment</title> 
  <item id="OL"><title>Other Languages</title>
    <subcats>
      <subcat id="C" god="Larry (Wall|Rossler)">C</subcat>
      <subcat id="CC" god="Bjarne Stroustrup">C++</subcat>
      <subcat id="J" god="working in a basement at Sun">Java</subcat>
      <subcat id="P" god="Guido Van Rossum">Python</subcat>
      <subcat id="R" god="Yukihiro Matsumoto">Ruby</subcat>
      <subcat id="CO" god= "that sick!">COBOL</subcat>
      <subcat id="S" god="Alan Kay">Smalltalk</subcat>
      <subcat id="L" god="John McCarthy">Lisp</subcat>
      <subcat id="A" god= "that old!">Assembly</subcat>
    </subcats>
    <level str="*">I am <replace val="subcat@god" str="the creator of the language" /></level>
    <level str="+++">I _LOVE_ <replace val="subcat" str="this language"/>, way more than Perl</level>
    <level str="++">I use <replace val="subcat" str="this language"/> quite often and I like it as much as I like Perl</level>
    <level str="+">I use <replace val="subcat" str="this language"/> every now and then, it's OK but Perl still rules</level>
    <level str="-">I have to use <replace val="subcat" str="this language"/>, it does not mean that I like it</level>
    <level str="--">I try to avoid using <replace val="subcat" str="this language"/> as much as I can</level>
    <level str="---">I _HATE_ <replace val="subcat" str="this language"/>, I will never use it</level>
    <level str="!" generic="yes">I only use Perl anyway</level>
  </item>
  <item id="Ee"><title>Emacs</title>
    <level str="+++">Emacs is my login shell!! M-x doctor is my psychologist! I use emacs to control my TV and toaster oven!</level>
    <level str="++">I know and use elisp regularly!</level>
    <level str="+">Emacs is great! I read my mail and news with it!</level>
    <level str=" ">Yeah, I know what emacs is, and use it as my regular editor.</level>
    <level str="-">Emacs is too big and bloated for my tastes</level>
    <level str="--">Emacs is just a fancy word processor</level>
    <level str="---">Emacs sucks! vi forever!!!</level>
    <level str="----">Emacs sucks! pico forever!!!</level>
    <level str="!">Emacs sucks!</level>
    <level str="?">What is Emacs?</level>
  </item>
  <item id="Ev"><title>Vi</title>
    <level str="*">I am Bram Moolenaar</level>
    <level str="+++">I write patches from time to time</level>
    <level str="++">I write my own scripts to change behavior</level>
    <level str="+">I can open multiple files and use shell escapes effectively</level>
    <level str=" ">I know how to do complex find/replaces (even using % instead of 1,$)</level>
    <level str="-">I can open a file and save and quit</level>
    <level str="--">How do I start inputing text?</level>
    <level str="---">How is vi visual?</level>
    <level str="----">vi sucks, emacs forever!!!</level>
    <level str="!">vi sucks</level>
    <level str="?">vi?</level>
  </item>
  <item id="Eo"><title>Other Editor</title>
    <subcats>
      <subcat id="n">Notepad</subcat>
      <subcat id="t">Textedit</subcat>
      <subcat id="b">BBEdit</subcat>
      <subcat id="a">Alpha</subcat>
   </subcats>
    <level str="++++">I wrote <replace val="subcat" str="this editor"/></level>
    <level str="+++">I only use <replace val="subcat" str="this editor"/> to edit my Perl code</level>
    <level str="++"><replace val="subcat" str="this editor"/> is my favorite editor</level>
    <level str="+">I am happy to use <replace val="subcat" str="this editor"/> when I work on a machine that has it</level>
    <level str=" ">I use <replace val="subcat" str="this editor"/> when I really have to</level>
    <level str="-"><replace val="subcat" str="this editor"/> is a piece of crap and I try real hard to avoid using it</level>
    <level str="!">I refuse to use <replace val="subcat" str="this editor"/></level>
  </item>
</section>
<section><title>Operating System</title>
  <item id="u"><title>UNIX</title>
    <subcats>
      <subcat id="L" god="Linus Torvald or Alan Cox">Linux</subcat>
      <subcat id="B" god="Theo de Raadt">BSD</subcat>
      <subcat id="S" god="a Sun employee">Sun OS/Solaris</subcat>
      <subcat id="H" god="Jeff Okamoto">HPUX</subcat>
      <subcat id="o" god="the Author of the darn OS!">An Other Unix</subcat>
    </subcats>
    <level str="*">I am <replace val="subcat@god" str="the author of the OS" /></level>
    <level str="+++">I use <replace val="subcat" str="this OS" /> all the time, I know it inside out</level>
    <level str="++"><replace val="subcat" str="this OS" /> is my main OS and my favorite</level>
    <level str="+">I use <replace val="subcat" str="this OS" /> amongst others</level>
    <level str=" ">I use <replace val="subcat" str="this OS" /> amongst others</level>
    <level str="-">I have to use <replace val="subcat" str="this OS" /> but I don't really like it</level>
    <level str="!">Why would I care about <replace val="subcat" str="this OS"/>?</level>
 </item>
  <item id="w"><title>Windows</title>
    <level str="*">I am Bill Gates or Gurusami Sarathy</level>
    <level str="+++">I work for Activestate</level>
    <level str="++">I only use Windows, Windows Rul3z</level>
    <level str="+">I mostly use Windows, I like it</level>
    <level str=" ">Windows, Unix, whatever, I write portable Perl anyway</level>
    <level str="-">I'd like to avoid Windows but I have to work with it sometimes</level>
    <level str="--">It's such a shame I still need to boot Windows for games</level>
    <level str="---">Windows? I read Slahsdot, 'nuff said</level>
    <level str="!">I might have to peel carrots all day but at least I don't have to do no Windows</level>
  </item>
  <item id="m"><title>MacIntosh</title>
    <level str="*">I am Steve Wozniack, Mathias Neubacher or Chris Nandor</level>
    <level str="+++">I use MacPerl all the time, I love droplets!</level>
    <level str="++">I use MacPerl quite often</level>
    <level str="+">I have installed MacPerl but I use it mostly to check that my code is really portable</level>
    <level str=" ">I have installed MacPerl but I don't use it much</level>
    <level str="-">I installed MacPerl but could never make much sense of it</level> 
    <level str="!">Gimme back my command line!</level>
  </item>
  <item id="os"><title>Other OS</title>
    <subcats>
      <subcat id="A">Amiga</subcat>
      <subcat id="BE">BeOS</subcat>
    </subcats>
    <level str="++++">I wrote <replace val="subcat" str="this OS"/>!</level>
    <level str="+++">I wrote the Perl port for <replace val="subcat" str="this OS"/>!</level>
    <level str="++"><replace val="subcat" str="this OS"/> rules!</level>
    <level str="+">I quite like <replace val="subcat" str="this OS"/></level>
    <level str=" ">I occasionnaly use <replace val="subcat" str="this OS"/></level>
    <level str="-">I try to avoid using <replace val="subcat" str="this OS"/>, 
                   frankly it sucks!</level>
    <level str="!">I HATE <replace val="subcat" str="this OS"/>! It sucks so bad!</level>
  </item>
</section>
</code>






XML description

The Technology

And Now?

copyright © 2001 Michel Rodriguez