    <?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">
<channel>
    <title>GizmoLA.com - Web Tech</title>
    <link>http://www.gizmola.com/blog/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.1 - http://www.s9y.org/</generator>
    <managingEditor>webmaster@gizmola.com</managingEditor>
<webMaster>webmaster@gizmola.com</webMaster>
<pubDate>Thu, 24 Jul 2008 17:55:09 GMT</pubDate>

    <image>
        <url>http://www.gizmola.com/blog/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: GizmoLA.com - Web Tech - </title>
        <link>http://www.gizmola.com/blog/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>New Lula/Lampsig Coop Server</title>
    <link>http://www.gizmola.com/blog/archives/85-New-LulaLampsig-Coop-Server.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/85-New-LulaLampsig-Coop-Server.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=85</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=85</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    So the UML Coop has finally after 3 years of talking about it, acquired a new server from Silicon Mechanics.  Read the rest of the article for the complete specifications.  We will be moving off User Mode Linux (UML) and on to OpenVZ. This change will allow us to accept some new members to the coop, so if you&#039;re interested drop me a line.&lt;br /&gt;
&lt;!-- s9ymdb:154 --&gt;&lt;img width=&#039;110&#039; height=&#039;37&#039; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://www.gizmola.com/blog/uploads/images/server.tn.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/85-New-LulaLampsig-Coop-Server.html#extended&quot;&gt;Continue reading &quot;New Lula/Lampsig Coop Server&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 24 Jul 2008 10:55:09 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/85-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>LAMP Tutorial Series originally published on PHPFreaks.com</title>
    <link>http://www.gizmola.com/blog/archives/82-LAMP-Tutorial-Series-originally-published-on-PHPFreaks.com.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/82-LAMP-Tutorial-Series-originally-published-on-PHPFreaks.com.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=82</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=82</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    A few years ago I published a 3 part LAMP tutorial series entitled &lt;strong&gt;LAMP, MySQL/PHP Database Driven Websites&lt;/strong&gt; on the well known php community website PHPFreaks.com.  This series dealt with a slew of practical issues including how a LAMP server works, relational database design using MySQL, many to many tables, SQL inner and outer joins, practical PHP debugging, php documentation tools, basic PHP classes, css, interactive javascript &amp;amp; DHTML with a &lt;em&gt;chooser&lt;/em&gt; widget, php HEREDOC and php basics like how to process forms and utilize GET and POST methods.&lt;br /&gt;
&lt;br /&gt;
The series was fairly successful, (a 4.5 of 5 after hundreds of ratings), many pages of comments and questions, and page views to the 100k&#039;s+ although PHPFreaks auditing system was turned off at some point and stopped recording views.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, some years ago PHPFreaks.com suffered some fairly catastrophic issues with its publishing system.  There were also some bugs, and the site was exploited with some XSS, and the admins simply decommissioned the majority of the site.  My series was part of what disappeared.  At that point, a couple of college Computer Science courses on web development had taken the series and integrated it into their curriculum, and the professor of one of these courses had converted it into a Word document, which I was able to download and convert to pdf.&lt;br /&gt;
&lt;br /&gt;
I plan to write a compatible publishing addon for gizmola.com so that I can take the original markup and republish it here, but in the meantime, here is the series in pdf format.  The conversion utility they used stripped out the original markup, and page breaks are gone, but the text, source code, and illustrations are all still there.  &lt;br /&gt;
&lt;br /&gt;
I also offer all the source code for parts 2 &amp;amp; 3 of the series.  I&#039;m not sure what happened to the source for part 1, however, it is all included inline in the tutorial.  &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybD1hSFIwY0RvdkwzZDNkeTVuYVhwdGIyeGhMbU52YlM5aWJHOW5MMmx1WkdWNExuQm9jRDl6WlhKbGJtUnBjR2wwZVZ0emRXSndZV2RsWFQxa2IzZHViRzloWkhNbWJHVjJaV3c5TVNaMGFHbHpZMkYwUFRZPSZhbXA7ZW50cnlfaWQ9ODI=&amp;amp;entry_id=82&quot;   onmouseover=&quot;window.status=&#039;http://www.gizmola.com/blog/index.php?serendipity[subpage]=downloads&amp;amp;level=1&amp;amp;thiscat=6&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;LAMP Tutorial Series.&quot;&gt;The &lt;strong&gt;LAMP, MySQL/PHP Database Driven Websites&lt;/strong&gt; series is now available in pdf format.  Click here.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Tue, 27 May 2008 12:52:58 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/82-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>CAPTCHA busting -- A sucker born every minute</title>
    <link>http://www.gizmola.com/blog/archives/73-CAPTCHA-busting-A-sucker-born-every-minute.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/73-CAPTCHA-busting-A-sucker-born-every-minute.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=73</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=73</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    &lt;img width=&#039;272&#039; height=&#039;48&#039; border=&#039;0&#039; hspace=&#039;5&#039; align=&#039;left&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/captchaimg.jpg&#039; alt=&#039;&#039; /&gt;I have a small phpBB2 forum attached to this site, that I used briefly to support some of my side projects.  phpBB has had a checkered past in terms of security, having been the victim of many exploits.  To be fair that&#039;s one of the costs of having been one of the first and most widely successful php based community projects.  The number of phpBB deployments is staggering even to this day.  With so many forums out there, spammers quickly figured out that if they could write a bot to create an account and auto post messages, they&#039;d be able to spread their spam messages far and wide.  I was getting so much spam, I ultimately disabled the ability of people to authenticate their own accounts, and despite this change, still see as many as ten new signups for the forum every day.  Who would bother to sign up for an account they can&#039;t use?  There had to be a way of determining the bots from the humans who wanted to post to my forum.  &lt;br /&gt;
&lt;br /&gt;
CAPTCHA, as the conventional wisdom of the day was concerned, would provide a useful deterrent to this annoyance -- bots arent&#039; smart enough to decipher the captcha images and extract the right combination of numbers and letters depicted in the image, and type them back to into the form in order to unlock the account.  Without the account, the spammers couldn&#039;t have their bots post their spam messages.  While phpBB introduced a CAPTCHA capability relatively late in the game, it is now something you get out of the box, and there is at least one mod that improves on the quality of the CAPTCHA image, which is to say, makes it harder to read.&lt;br /&gt;
&lt;br /&gt;
The problem is that CAPTCHA&#039;s are there to defeat dumb machines, but not dumb humans.  And as the old saying goes, there&#039;s a sucker born every minute who is more than happy to help your local spammer defeat the CAPTCHA image on your site.  How might you ask?  Well, the scam works something like this:  John Q. Sucker visits some site that informs him he&#039;s getting something for free -- it could be a free ipod, porn, or an xbox 360.  All that is important is that this person believes they will be getting access to this free stuff once they register.&lt;br /&gt;
&lt;br /&gt;
They visit the spammer&#039;s site, and are presented a CAPTCHA image in order to register, only, this image didn&#039;t come directly from the spammer&#039;s site -- it came from YOURS.  The spammer writes a simple bot that goes to your site and hits the registration page.  It takes the CAPTCHA image your site provided, and presents it to John Q. Sucker on the spammer&#039;s site.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/73-CAPTCHA-busting-A-sucker-born-every-minute.html#extended&quot;&gt;Continue reading &quot;CAPTCHA busting -- A sucker born every minute&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 08 Jan 2007 22:50:14 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/73-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>February LAMPsig presentation on SVG with Ajax demo</title>
    <link>http://www.gizmola.com/blog/archives/69-February-LAMPsig-presentation-on-SVG-with-Ajax-demo.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/69-February-LAMPsig-presentation-on-SVG-with-Ajax-demo.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=69</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=69</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    &lt;a title=&quot;/blog/uploads/images/lampsig_scale2006_booth.jpg&quot; id=&quot;s9yisp113&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD03MTEmYW1wO2VudHJ5X2lkPTY5&amp;amp;entry_id=69&quot;   onmouseover=&quot;window.status=&#039;http://www.gizmola.com/blog/index.php?serendipity[subpage]=s9yisp&amp;amp;amp;serendipity[id]=69&amp;amp;amp;serendipity[image]=113&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot; id=&quot;s9yisphref113&quot;&gt;&lt;img width=&#039;110&#039; height=&#039;101&#039; border=&#039;0&#039; hspace=&#039;5&#039; align=&#039;left&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/lampsig_scale2006_booth.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;I&#039;ll be talking about &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD03MTImYW1wO2VudHJ5X2lkPTY5&amp;amp;entry_id=69&quot;   onmouseover=&quot;window.status=&#039;http://lampsig.org/new/archives/50-February-Meeting-The-Making-of-our-SCALE-Demo.html#extended&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  title=&quot;February 2006 LAMPsig General Meeting&quot;&gt;the Dynamic Scalable Vector Graphics (SVG) with Asynchronous Javascript and XML (Ajax) demo&lt;/a&gt; I created for the LAMPsig booth at the Southern California Linux expo 2006 (SCALE) conference that was held last weekend.  &lt;br /&gt;
&lt;br /&gt;
There were some excellent LAMP oriented discussions including Zend&#039;s Andi Gutmans himself, who talked about the PHP community project and PHP 6, then hung around for a while whilst myself and Chris Thompson peppered him with questions about MySQL&#039;s oop, its applicablility to the various framework projects underway.  In short, Andi indicated that the PHP core team currently has no plans to add anything to the Oop capabilities of PHP 5, although I suppose that could change once the PHP Framework project matures.  He indicated that the PHP Framework should be available in alpha or beta within the next few weeks.&lt;br /&gt;
&lt;br /&gt;
Other LAMP hi-lights included Jim Winstead from MySQL AB who discussed new features in MySQL 5.x  and provided some nice example code, and David Schecter from Sleepycat gave an entertaining talk that illustrated how integral berkely database is to Linux in general, and how its used by many major players to provide a high performance caching layer in front of oracle and mysql for websites like Yahoo.&lt;br /&gt;
&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Fri, 17 Feb 2006 08:45:08 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/69-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Serendipity GeSHi Plugin update .05</title>
    <link>http://www.gizmola.com/blog/archives/67-Serendipity-GeSHi-Plugin-update-.05.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/67-Serendipity-GeSHi-Plugin-update-.05.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=67</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=67</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    Give this a day and it should be in Spartacus and the Sourceforge Additional Plugins cvs branch.&lt;br /&gt;
&lt;br /&gt;
-.05 release&lt;br /&gt;
- Updated GeSHi to latest release (1.0.7.4)&lt;br /&gt;
- This release includes some fixes, and new language files for: &lt;br /&gt;
applescript, D, diff output, DIV game language, DOS batch language,  eiffel, freebasic, gml, Delphi Inno script, Matlab M language files, MySQL specific SQL, Objective CAML, Ruby, Scheme, SDLBasic, and VHDL: Very high speed integrated circuit HDL&lt;br /&gt;
  
    </content:encoded>

    <pubDate>Sun, 13 Nov 2005 18:53:20 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/67-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Joomla PonyGallery tweak</title>
    <link>http://www.gizmola.com/blog/archives/66-Joomla-PonyGallery-tweak.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/66-Joomla-PonyGallery-tweak.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=66</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=66</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    In the current release of the The Mambo/Joomla PonyGallery component, support for MamboJoe&#039;s Community Builder component is hardwired into the picture detail page.  The Author name is a link to the Community Builder component.  If you don&#039;t have that component installed, here is how you can remove the link.&lt;br /&gt;
&lt;br /&gt;
You need to edit the PonyGallery script sub_viewdetails.php.  This script is in the components/mod_ponygallery directory.&lt;br /&gt;
&lt;br /&gt;
Find these lines:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url_id=707&amp;amp;entry_id=66&quot; title=&quot;http://www.php.net/echo&quot;  onmouseover=&quot;window.status=&#039;http://www.php.net/echo&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;lt;tr class=&#039;sectiontableentry2&#039;&amp;gt;&amp;lt;td width=&#039;30%&#039; valign=&#039;top&#039;&amp;gt;&amp;lt;b&amp;gt;&quot;&lt;/span&gt;._PONYGALLERY_AUTHOR.&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&#039;70%&#039; valign=&#039;top&#039;&amp;gt; &amp;lt;a href=&#039;index.php?option=com_comprofiler&amp;amp;task=userProfile&amp;amp;user=&quot;&lt;/span&gt; . &lt;span style=&quot;color: #0000ff;&quot;&gt;$imgownerid&lt;/span&gt; . &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&#039;&amp;gt;&amp;lt;b&amp;gt;&quot;&lt;/span&gt; . &lt;span style=&quot;color: #0000ff;&quot;&gt;$imgowner&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;. &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;lt;/b&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&quot;&lt;/span&gt;; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
And replace them with this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url_id=707&amp;amp;entry_id=66&quot; title=&quot;http://www.php.net/echo&quot;  onmouseover=&quot;window.status=&#039;http://www.php.net/echo&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;lt;tr class=&#039;sectiontableentry2&#039;&amp;gt;&amp;lt;td width=&#039;30%&#039; valign=&#039;top&#039;&amp;gt;&amp;lt;b&amp;gt;&quot;&lt;/span&gt;._PONYGALLERY_AUTHOR.&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;:&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&#039;70%&#039; valign=&#039;top&#039;&amp;gt;&amp;lt;b&amp;gt;&quot;&lt;/span&gt; . &lt;span style=&quot;color: #0000ff;&quot;&gt;$imgowner&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;. &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&quot;&lt;/span&gt;; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I&#039;m fairly sure this will be a configuration item in the next release of PonyGallery &lt;img src=&quot;http://www.gizmola.com/blog/templates/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;  Until then, if you aren&#039;t using CommunityBuilder, this will hold you over. 
    </content:encoded>

    <pubDate>Sun, 13 Nov 2005 11:40:41 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/66-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>PHPlot, MySQL and the Dark Ages of Camelot</title>
    <link>http://www.gizmola.com/blog/archives/63-PHPlot,-MySQL-and-the-Dark-Ages-of-Camelot.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/63-PHPlot,-MySQL-and-the-Dark-Ages-of-Camelot.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=63</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=63</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    &lt;img width=&#039;470&#039; height=&#039;295&#039; border=&#039;0&#039; hspace=&#039;5&#039; align=&#039;left&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/daocusers.gif&#039; alt=&#039;&#039; /&gt;The Dark Ages of Camelot (DAoC) is one of a number of Massive Multiplayer Online Role playing games (MMORPG) available for people who like those types of things.  Mythic Entertainment, the company behind DAoC decided to offer an xml feed with various statistics about the game including the number of active players.  From April 2002 to July 2005 I used a cron job to query the xml feed once every 5 minutes, parse the results and store the statistics in a database table.&lt;br /&gt;
&lt;br /&gt;
I made a graph of these statistics available on a fan site I operated.  The graph used the open source &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02MTImYW1wO2VudHJ5X2lkPTYz&amp;amp;entry_id=63&quot;  title=&quot;http://www.phplot.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.phplot.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPlot graphing class&lt;/a&gt; in order to draw a line graph charting the number of players playing the game by hour for a 24 hour period.  Visitors to the site would see the line graph shown here, plotting the number of players per hour against a second line showing the day&#039;s average.  Like many PHP graphing libraries,  PHPlot assumes that you have the GD library installed and available to PHP on order for the graphs to work.  &lt;br /&gt;
&lt;br /&gt;
This was one of my early experiments with PHP, and illustrated its power and flexibility.  Now that the site where the graph appeared is no longer online, I figured I would provide the code, and a small subset of the database, for people interested in how to program with &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02MTImYW1wO2VudHJ5X2lkPTYz&amp;amp;entry_id=63&quot;  title=&quot;http://www.phplot.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.phplot.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;PHPlot.&lt;/a&gt;  At the time I created this code, PHPlot didn&#039;t have much documentation and required some trial and error experimentation.  Of course, since then (several years now) PHPlot has been improved, and should definately be considered if you want graphing in your application.  Because I don&#039;t want to spend time debugging old obsolete code, I&#039;ve provided the library I used in the download along with the graph script.  It would probably work with the latest release, but I don&#039;t have time to test it.  You can &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02MTcmYW1wO2VudHJ5X2lkPTYz&amp;amp;entry_id=63&quot;  title=&quot;http://www.gizmola.com/blog/index.php?serendipity[subpage]=downloads&amp;amp;thiscat=5&amp;amp;file=7&quot;  onmouseover=&quot;window.status=&#039;http://www.gizmola.com/blog/index.php?serendipity[subpage]=downloads&amp;amp;thiscat=5&amp;amp;file=7&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;download my example database, version of PHPlot and script here&lt;/a&gt;.  The database contains one months data, so you can play with the script and explore the class. &lt;br style=&quot;clear:both&quot; /&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02MjMmYW1wO2VudHJ5X2lkPTYz&amp;amp;entry_id=63&quot;  title=&quot;http://www.php.net/array_pad&quot;  onmouseover=&quot;window.status=&#039;http://www.php.net/array_pad&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;/a&gt;  Read on for some brief instructions and an explanation of the code. &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/63-PHPlot,-MySQL-and-the-Dark-Ages-of-Camelot.html#extended&quot;&gt;Continue reading &quot;PHPlot, MySQL and the Dark Ages of Camelot&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 29 Sep 2005 16:46:15 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/63-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Joomla (Mambo) Core ERD diagrams</title>
    <link>http://www.gizmola.com/blog/archives/62-Joomla-Mambo-Core-ERD-diagrams.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/62-Joomla-Mambo-Core-ERD-diagrams.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=62</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=62</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    I have a small project that involves an implementation of Joomla (a fork of the popular PHP/Mysql based content management system Mambo).  I started with Mambo and during the time I was configuring the site, the core developers of Mambo left to create the Joomla project.  The reasons for this are discussed on their &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url_id=590&amp;amp;entry_id=62&quot; title=&quot;http://www.opensourcematters.org/&quot;  onmouseover=&quot;window.status=&#039;http://www.opensourcematters.org/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;  class=&quot;bb-url&quot;&gt; OpenSourceMatters&lt;/a&gt; website.  &lt;br /&gt;
&lt;br /&gt;
Suffice it to say, I find an Entity Relationships diagram to be very helpful in understanding the architecture of a database driven application like Joomla.  There wasn&#039;t one available, so I decided to reverse engineer the database, and created these diagrams, which break the core database down into a few functional areas.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;User and Security Subsystem&lt;/b&gt;&lt;br /&gt;
&lt;a href=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_users.jpg&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;68&#039; border=&#039;0&#039; hspace=&#039;5&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_users.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Backend (modularity and extensibility) Subsystem&lt;/b&gt;&lt;br /&gt;
&lt;a href=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_backend.jpg&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;68&#039; border=&#039;0&#039; hspace=&#039;5&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_backend.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Content and Presentation Subsystem&lt;/b&gt;&lt;br /&gt;
&lt;a href=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_content.jpg&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;85&#039; border=&#039;0&#039; hspace=&#039;5&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_content.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Banners&lt;/b&gt;&lt;br /&gt;
&lt;a href=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_banners.jpg&#039;&gt;&lt;img width=&#039;110&#039; height=&#039;62&#039; border=&#039;0&#039; hspace=&#039;5&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_banners.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Logging&lt;/b&gt;&lt;br /&gt;
&lt;a href=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_logging.jpg&#039;&gt;&lt;img width=&#039;103&#039; height=&#039;110&#039; border=&#039;0&#039; hspace=&#039;5&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/joomlaerd_logging.tn.jpg&#039; alt=&#039;&#039; /&gt;&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 23 Sep 2005 13:28:46 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/62-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>RegEx and the Mod_rewrite reference sheet</title>
    <link>http://www.gizmola.com/blog/archives/61-RegEx-and-the-Mod_rewrite-reference-sheet.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/61-RegEx-and-the-Mod_rewrite-reference-sheet.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=61</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=61</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    &lt;p&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTImYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/&quot;  onmouseover=&quot;window.status=&#039;http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;img width=&#039;150&#039; height=&#039;203&#039; border=&#039;0&#039; hspace=&#039;5&#039; align=&#039;left&#039; src=&#039;http://www.gizmola.com/blog/uploads/images/mod_rewrite_cheat_sheet_thm.gif&#039; alt=&#039;&#039; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTMmYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://www.ilovejackdaniels.com&quot;  onmouseover=&quot;window.status=&#039;http://www.ilovejackdaniels.com&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Dave Child&lt;/a&gt;, a Brighton UK based Web developer offers a series of free Reference/Cheat sheets that I think most web developers will find of value.  He obviously invested a lot of time and effort into them and it shows.  &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTQmYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://www.ilovejackdaniels.com/cheat-sheets/&quot;  onmouseover=&quot;window.status=&#039;http://www.ilovejackdaniels.com/cheat-sheets/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;He&#039;s created free cheat sheets&lt;/a&gt; for MySQL, Javascript, PHP, RGB colors and the subject today&#039;s Gizmola.com entry, &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTUmYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&quot;  onmouseover=&quot;window.status=&#039;http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Apache mod_rewrite&lt;/a&gt;.  If you&#039;ve used Apache there&#039;s a good chance you&#039;ve heard of mod_rewrite, although you might not understand what it can do for you.  Lately, a lot of PHP scripts are including functionality that will create mod_rewrite rules and add them to a .htaccess file to support &quot;SEO friendly&quot; url&#039;s.  Serendipity, which runs my blog, and the popular PHP Content Management System &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTYmYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://www.joomla.org&quot;  onmouseover=&quot;window.status=&#039;http://www.joomla.org&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Mambo/Joomla&lt;/a&gt; are just two examples of packages that can do this for you.&lt;br /&gt;
  &lt;br /&gt;
For example, if your script uses a parameter like this: &lt;b&gt;http://www.yoursite.com/home.php?id=5&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A mod rewrite rule can allow users to use: &lt;b&gt;http://www.yoursite.com/home/5/&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Many search engines seem to penalize sites that use URL parameters, and are more likely to index and value the non-parameter version.  Of course, that&#039;s not all that mod_rewrite can do.  Many people use it for its ability to offer at least a layer of Hotlink protection, or to handle things like forwarding visitors from obsolete pages that might exist in a search engine to the new ones.&lt;br /&gt;
&lt;br /&gt;
Using and understanding the&lt;i&gt; black magic&lt;/i&gt; of mod_rewrite requires a basic understanding of Regular Expressions or as they are typically known: RegEx.  If you&#039;re new to RegEx, think of them as wildcards on steroids.  The October Lampsig meeting will present RegEx basics, and if you&#039;re in Los Angeles, definately try and attend the presentation, which will be given by Peter Benjamin.  Check out Dave Child&#039;s &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD02OTImYW1wO2VudHJ5X2lkPTYx&amp;amp;entry_id=61&quot;  title=&quot;http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/&quot;  onmouseover=&quot;window.status=&#039;http://www.ilovejackdaniels.com/cheat-sheets/mod_rewrite-cheat-sheet/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;succint reference for this powerful module&lt;/a&gt; whether or not you plan to attend Pete&#039;s presentation.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/61-RegEx-and-the-Mod_rewrite-reference-sheet.html#extended&quot;&gt;Continue reading &quot;RegEx and the Mod_rewrite reference sheet&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 09 Sep 2005 13:12:11 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/61-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>3 Part PHP Development Tutorial at phpfreaks.com</title>
    <link>http://www.gizmola.com/blog/archives/59-3-Part-PHP-Development-Tutorial-at-phpfreaks.com.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/59-3-Part-PHP-Development-Tutorial-at-phpfreaks.com.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=59</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=59</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    It took me a few years to write, but I finally completed and published my 3 Part introduction to web development on phpFreaks.com.  Eric of phpFreaks wrote a new publishing engine, which includes a print feature, and my recollection is that if you use that to print out the series,  it ends up being 60 pages or so printed out on 8.5x11.  I&#039;ve received numerous emails from readers over the couple of years between Part I and Parts 2 &amp;amp; 3, asking when Part 2 was coming.  At a certain point, I&#039;m sure it looked as though this might be the &lt;a href=http://www.imdb.com/title/tt0089901/&gt;Remo Williams&lt;/a&gt; of the PHP tutorial world.  When I wrote Part I, I promised a sequel, but after a year had passed, I doubt anyone would have been willing to bet on Part 2, or even for that matter, would still care to read it.&lt;br /&gt;
&lt;br /&gt;
While I&#039;m not in a position to answer any questions about the importance of the series,  I felt I bore a responsibility wholly of my own making, to deliver on the implicit promise of an article I had the hubris to entitle Part I.  I&#039;d written a portion of Part II wll over a year ago, where it sat on my hard drive, even as the emails continuted to dribble in, always with the question of &quot;when or where was Part 2?&quot;  I finally sat down and finished it during a recent visit by Tracy&#039;s mom, Betty, who graciously occupied Niamh and allowed me several days of uninterrupted time at my desk.  Because this was a programming article, it entailed writing and testing the code to be included, and generating the screen shots as illustration.  In summary, it turned out to be a lot more time an effort than I had bargained for.&lt;br /&gt;
&lt;br /&gt;
What really drove me to expend the effort,  was the opportunity to dedicate the series to my Dad, Frank Rolston III who passed away unexpectedly, earlier this year.  Dad was an advocate of &quot;finish what you start.&quot; &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/59-3-Part-PHP-Development-Tutorial-at-phpfreaks.com.html#extended&quot;&gt;Continue reading &quot;3 Part PHP Development Tutorial at phpfreaks.com&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 11 Jun 2005 23:00:03 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/59-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>PHPeclipse Annoyances</title>
    <link>http://www.gizmola.com/blog/archives/56-PHPeclipse-Annoyances.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/56-PHPeclipse-Annoyances.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=56</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=56</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    I have become an Eclipse convert.  Eclipse is an IDE which I use to develope my PHP projects.  Eclipse is open source and free, and has too many features to even begin listing.  It also has a myriad of modules supporting language specific extensions and support for programmer tools like CVS. &lt;br /&gt;
&lt;br /&gt;
I&#039;ve also been using the PHPeclipse extension, which adds a number of nice PHP specific features and in eclipse terminology, an eclipse &lt;span style=&quot;font-style:italic&quot;&gt;perspective&lt;/span&gt;, which is especially useful if you develope in an all-in-one environment with a local apache and php instance on your workstation.  This allows you to iterate rapidly, as your changes can be instantly examined in the docked browser window, and ostensibly give&#039;s one access to php&#039;s debugging hooks.  I&#039;ll admit I&#039;ve never tried this, although having a debugger available is always a nice feature for any platform.  &lt;br /&gt;
&lt;br /&gt;
The main things I want out of PHPeclipse are color syntax hilighting, a class and function browser window that makes it quick to jump around inside your code,  and PHP functionn prototypes so I know what the argument list is for all those useful built-ins like substr and array_sort, all of which you get with PHPEclipse.  The class browser works well, except that it&#039;s not smart enough to resolve includes, and for this reason, rarely has visibility into the classes you&#039;re using because they&#039;re in their own class file.  You can always open these in a seperate source window of course, as your workspace you can have numerous files open, all easily accessible from tabs. &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/56-PHPeclipse-Annoyances.html#extended&quot;&gt;Continue reading &quot;PHPeclipse Annoyances&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 01 Apr 2005 13:15:25 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/56-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Referer spammers: New scourge of the web</title>
    <link>http://www.gizmola.com/blog/archives/52-Referer-spammers-New-scourge-of-the-web.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/52-Referer-spammers-New-scourge-of-the-web.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=52</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    When someone creates a link to a webpage you have, and someone clicks on that link, the standard browsers include code that carries over information that tells you what server &quot;referred&quot; you.  This information shows up in your standard webserver log, and can also be grabbed by cgi and serverside scripts.  For example in PHP that information can be gotten using the $_SERVER superglobal array:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url_id=501&amp;amp;entry_id=52&quot; title=&quot;http://www.php.net/echo&quot;  onmouseover=&quot;window.status=&#039;http://www.php.net/echo&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #0000ff;&quot;&gt;$_SERVER&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;HTTP_REFERER&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
As an aside, yes they did spell that REFERER, and I assume that the history of that mispelling goes back to the foks who created the CGI-BIN API.  &lt;br /&gt;
&lt;br /&gt;
The referrer comes in as part of the http header sent by the browser with its request,  and it has always been possible to suppress or change the referer information, so most folks consider &quot;referer&quot; information as a useful indication of sites that have linked to you, but nothing you can depend on.&lt;br /&gt;
&lt;br /&gt;
Lately, there seem to be more and more unscrupolous people marketing software to others which does nothing but waste bandwidth hitting long lists of sites and generating referrer entries in your web logs.  Their reasoning is that you will check your logs (and every website reporting package includes information about the refers you get) and very possibly click on them to see how you&#039;re being linked, or what their site is about.  &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/52-Referer-spammers-New-scourge-of-the-web.html#extended&quot;&gt;Continue reading &quot;Referer spammers: New scourge of the web&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 16 Dec 2004 14:36:12 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/52-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>Exploring Mysql CURDATE and NOW.  The same but different.</title>
    <link>http://www.gizmola.com/blog/archives/51-Exploring-Mysql-CURDATE-and-NOW.-The-same-but-different..html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/51-Exploring-Mysql-CURDATE-and-NOW.-The-same-but-different..html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=51</wfw:comment>

    <slash:comments>8</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=51</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    Sometimes I see people attempting to use VARCHARS or CHARS to store dates in their MySQL database application.  This is really fighting against MySQL, which has a variety of interchangeable date types. Internally MySQL is storing dates as numbers, which allows it to do all sorts of nice arithmetic and comparisons with very little effort on your part.  For example, when you use a mysql DATE column to store a date, you don&#039;t have to worry about sortation, or comparing that date to another DATE, because MySQL already understands how to do those things internally.  A lot of people also don&#039;t realize that they can output a DATE column in just about any way they choose using the DATE_FORMAT function.  This causes people to shy away from using DATE, DATETIME, TIME, or TIMESTAMP columns, when they really should.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.gizmola.com/blog/archives/51-Exploring-Mysql-CURDATE-and-NOW.-The-same-but-different..html#extended&quot;&gt;Continue reading &quot;Exploring Mysql CURDATE and NOW.  The same but different.&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 30 Nov 2004 18:17:19 -0800</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/51-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>My First Serendipity Plugin</title>
    <link>http://www.gizmola.com/blog/archives/3-My-First-Serendipity-Plugin.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/3-My-First-Serendipity-Plugin.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=3</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=3</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    I&#039;ve exploring the Serendipity API by writing an &quot;event&quot; plugin wrapper around GeSHi.  GeSHi is an extremely cool php class that does color syntax highlighting for any computer language you want.  Since I hop from language to language, this is exactly the type of capability I want.  So without further ado, here&#039;s a test of my plugin, currently in alpha state:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;First some PHP&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;function&lt;/span&gt; generate_content&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&amp;amp;&lt;span style=&quot;color: #0000ff;&quot;&gt;$title&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;$title&lt;/span&gt; = PLUGIN_EVENT_GESHI_NAME;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Now some SQL&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;sql&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; &lt;strong&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; temptable &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; user= &lt;span style=&quot;color: #cc66cc;&quot;&gt;10&lt;/span&gt;&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
and how about a hot cup-o...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Java&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;java&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt; &lt;/strong&gt; Java example for GeSHi&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #a1a100;&quot;&gt;import javax.swing.JOptionPane;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;class&lt;/span&gt; Foo &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;static&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;void&lt;/span&gt; main &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPWFsbGludXJsJTNBU3RyaW5nK2phdmEuc3VuLmNvbSZhbXA7Ym50bD0x&amp;amp;entry_id=3&quot; title=&quot;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;amp;bntl=1&quot;  onmouseover=&quot;window.status=&#039;http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;amp;amp;bntl=1&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;String&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt; args &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPWFsbGludXJsJTNBSk9wdGlvblBhbmUramF2YS5zdW4uY29tJmFtcDtibnRsPTE=&amp;amp;entry_id=3&quot; title=&quot;http://www.google.com/search?q=allinurl%3AJOptionPane+java.sun.com&amp;amp;amp;bntl=1&quot;  onmouseover=&quot;window.status=&#039;http://www.google.com/search?q=allinurl%3AJOptionPane+java.sun.com&amp;amp;amp;bntl=1&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;JOptionPane&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;showMessageDialog&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;null&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;hello, world!&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; n = args&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #b1b100;&quot;&gt;for&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&quot;color: #993333;&quot;&gt;int&lt;/span&gt; i = &lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;; i &amp;lt; n; i++ &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5nb29nbGUuY29tL3NlYXJjaD9xPWFsbGludXJsJTNBU3lzdGVtK2phdmEuc3VuLmNvbSZhbXA7Ym50bD0x&amp;amp;entry_id=3&quot; title=&quot;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;amp;bntl=1&quot;  onmouseover=&quot;window.status=&#039;http://www.google.com/search?q=allinurl%3ASystem+java.sun.com&amp;amp;amp;bntl=1&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;&lt;span style=&quot;color: #aaaadd; font-weight: bold;&quot;&gt;System&lt;/span&gt;&lt;/a&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;println&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
I have a lot to do (and learn about Serendipity)  before I feel the plugin will be ready to release in beta state, but at least I thought I&#039;d try it out and show a proof of general concept.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 
    </content:encoded>

    <pubDate>Thu, 28 Oct 2004 19:39:42 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/3-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>
<item>
    <title>LAMP Tutorial</title>
    <link>http://www.gizmola.com/blog/archives/49-LAMP-Tutorial.html</link>
            <category>Web Tech</category>
    
    <comments>http://www.gizmola.com/blog/archives/49-LAMP-Tutorial.html#comments</comments>
    <wfw:comment>http://www.gizmola.com/blog/wfwcomment.php?cid=49</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.gizmola.com/blog/rss.php?version=2.0&amp;type=comments&amp;cid=49</wfw:commentRss>
    

    <author>nospam@example.com (David Rolston)</author>
    <content:encoded>
    I have been spending some of my free time as a moderator of the PHP forums at &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD0zMzcmYW1wO2VudHJ5X2lkPTQ5&amp;amp;entry_id=49&quot;  title=&quot;http://www.phpfreaks.com/&quot;  onmouseover=&quot;window.status=&#039;http://www.phpfreaks.com/&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;Phpfreaks.com&lt;/a&gt;, one of the most visited websites on the PHP language. The Tutorial is titled: &lt;a href=&quot;http://www.gizmola.com/blog/exit.php?url=aHR0cDovL3d3dy5naXptb2xhLmNvbS9ibG9nL2V4aXQucGhwP3VybF9pZD0zMzgmYW1wO2VudHJ5X2lkPTQ5&amp;amp;entry_id=49&quot;  title=&quot;http://www.phpfreaks.com/tutorials/89/0.php&quot;  onmouseover=&quot;window.status=&#039;http://www.phpfreaks.com/tutorials/89/0.php&#039;;return true;&quot; onmouseout=&quot;window.status=&#039;&#039;;return true;&quot;&gt;LAMP, MySQL/PHP Database driven website design and development, and the List-Detail-Post paradigm. Part I&lt;/a&gt;. It&#039;s been read over 700 times already, which is a good start. 
    </content:encoded>

    <pubDate>Sun, 27 Jul 2003 02:24:00 -0700</pubDate>
    <guid isPermaLink="false">http://www.gizmola.com/blog/archives/49-guid.html</guid>
    <creativeCommons:license>http://creativecommons.org/licenses/by/1.0/</creativeCommons:license>
</item>

</channel>
</rss>