---
title: "The bunsen burners still burn and the beakers still... um... beak."
date: 2002-04-24T12:40:12-04:00
url: https://blog.lmorchard.com/2002/04/24/oooaaf/
author: Les Orchard
---

# The bunsen burners still burn and the beakers still... um... beak.

<p>So I'm starting to play with <a href="http://www.php.net">PHP</a> and working on rewriting my <a href="http://www.movabletype.org">Movable Type</a> templates as *.phtml.</p>
<p>Having never really payed much attention to <a href="http://www.decafbad.com/twiki/bin/view/Main/PHP">PHP</a>, I'm amazed at how close it is to Perl (obviously on purpose) yet how much effort has been made to sand off the rough bits.  Not sure how much I like it yet, but at least it's a familiar tune they're playing.  The mildly annoying thing is that it's familiar, but there are just a few things I would habitually reach for in Perl that I haven't sussed out yet in <a href="http://www.decafbad.com/twiki/bin/view/Main/PHP">PHP</a>.  Like autovivifying data structures.  I abuse those constantly.  I really need to wean myself away from that, methinks.</p>
<p>One thing that I <i>was</i> pleasantly surprised to find is <a href="http://pear.php.net">PEAR</a>, "a framework and distribution system for reusable <a href="http://www.decafbad.com/twiki/bin/view/Main/PHP">PHP</a> components".  Hello, <a href="http://www.cpan.org">CPAN</a>, my old friend. :)  Finding all kinds of things that are immediately useful, like a <a href="http://pear.php.net/package-info.php?pacid=40">Cache</a> I can use to more intelligently and easily do the output caching voodoo I do in the perl CGI widgets right now.  </p>
<p><b><Aside></b>You know, a lack of a centrallized CPAN-like system is what has kept me from leaving Perl for many other technologies.  I really wish Java (<a href="http://www.google.com/search?hl=en&amp;q=cjan">CJAN</a>?) and Python (<a href="http://www.google.com/search?q=cpyan&amp;sourceid=mozilla-search&amp;start=0&amp;start=0">CPyAN</a>?) had one supported by their respective communities.  It's just so nice to do a <code>perl -MCPAN -e"install Date::Parse"</code> and get what I need.  Maintaining CPAN bundles for my perl software is tasty, too.  Single-command installation of all my app's requirements, and sometimes I can roll it right into the app's installation itself.  Mmm.<b></aside></b></p>
<p>Anyway, it's nice (to say it again) to have a running personal site to tinker with, now that I've gotten off my butt and done it.  This laboratory is letting me manufacture reasons to play with tech I hadn't bothered with before.  </p>
<p>I mean, I've used ASP and JSP, and for most of the things I've done, I've grown a severe dislike for them both.  I left the "Hey, you've got HTML in my code!" paradigm behind, wandered through that "Hey, you've got code in my HTML" model, and eventually settled on my standard pattern now:<blockquote>A central app logic controller takes in GET/POST data, dispatches to a method which processes the form data.  That method then constructs data structures, which are in turn passed through a template engine to be rendered by a pile of templates independent from the controller.</blockquote>This, along with some very special self-assembling component-based automation sauce, is the core of what my employer's offerings run on.  But, this has crystallized as a habit for me, and I've not even considered other possibilities for a long time.  This of course has made everything look like a nail for this hammer I have.  </p>
<p>For example, while <a href="http://www.decafbad.com/twiki/bin/view/Main/PHP">PHP</a> is not quite the right tool for the  things we're doing at my day job, it seems like a perfect option to quickly and easily replace <a href="http://www.decafbad.com/twiki/bin/view/Main/SSI">SSI</a> pages on my site with something meatier yet still simple to maintain and doesn't stink like ASP or JSP.  I've also been looking at <a href="http://xml.apache.org/cocoon">Cocoon</a>, which if I can ever quite get in a groove with it, looks like a highly refined instance of my standard hammer.</p>
<p>And then there's Radio <a href="http://www.decafbad.com/twiki/bin/view/Main/UserLand">UserLand</a>.  I love it and hate it.  The hate mostly comes from the slower iBook on which I run it, I think.  The bootstrappiness of it makes me itch sometimes, but other times that just makes it endearing.  The whole self-contained development biodome it represents is pretty sexy, too.  Speaking of autovivifying data structures...  I just have to love a system which has a live, manually tinkerable giant outline/hashtree for a persistence mechanism.</p>
<p>Next, I really want to swing back around to playing with Flash.  Last time I did something major with it, I was making a game for my employer which really wanted to use web services but I hadn't known it yet.  The game worked pretty well, but I want to see what it can do since last we met.  First thing in mind that seems mildly nifty might be a slick, live updating lil "Recent Visitors" app for my front page.</p>
<p>I'm really feeling what <a href="http://radio.weblogs.com/0100887/">Jon Udell</a> means when he writes about <a href="http://www.byte.com/documents/s=7031/byt1016214357418/0318_udell.html">thinking by analogy</a>.  It's also something one of my favorite Comp Sci professors harped on, with regards to what makes a Computer Programmer versus what makes a Computer Scientist.  A small part of his speech always pointed to the notion that a a programmer is almost always pragmatic, memorizing the patterns and greasy innards of whatever tool he or she uses daily.  On the other hand, the scientist is an explorer and finds joy in confusing him or herself by finding the universals and generalities across a range of tools.  In the end, the programmer becomes specialized in a limited domain, while the scientist knows can pick up just about anything that comes along.  And sometimes, many times, the scientist <i>makes new tools</i> for programmers to specialize on.  I want to be and am working toward being a scientist.</p>
<p>More soon.</p>
<!--more-->
shortname=oooaaf

<div id="comments" class="comments archived-comments">
            <h3>Archived Comments</h3>
            
        <ul class="comments">
            
        <li class="comment" id="comment-221089970">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://webseitz.fluxent.com/wiki"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2e83224d92ed7f1148f4dd3cdb0e4548&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://webseitz.fluxent.com/wiki">Bill Seitz</a>
                </div>
                <a href="#comment-221089970" class="permalink"><time datetime="2002-04-24T13:48:17">2002-04-24T13:48:17</time></a>
            </div>
            <div class="content">What template engine do you use in Perl? In Python?

Have you considered Zope?</div>
            
        </li>
    
        <li class="comment" id="comment-221089973">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href="http://www.decafbad.com"><img src="http://www.gravatar.com/avatar.php?gravatar_id=2ac2cffd36ada8c734b90e02a1e5c1ac&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="http://www.decafbad.com">l.m.orchard</a>
                </div>
                <a href="#comment-221089973" class="permalink"><time datetime="2002-04-24T16:38:22">2002-04-24T16:38:22</time></a>
            </div>
            <div class="content">Well, under Perl, I pretty much religiously use the Template Toolkit nowadays.  As for Python, still looking around.  Was toying with Cheetah, but some #python people were telling me that I need to forsake all these and go for using ZPT.  But, I have a lot of itchiness with ZPT's attribute-based language.

As for Zope... well, I've poked my head in there from time to time, and even was working on a competitor in Perl named Iaido, but I petered out on that.  I love and hate Zope.  I'm waiting to see if the next generation of Zope fixes what I dislike.</div>
            
        </li>
    
        <li class="comment" id="comment-221089975">
            <div class="meta">
                <div class="author">
                    <a class="avatar image" rel="nofollow" 
                       href=""><img src="http://www.gravatar.com/avatar.php?gravatar_id=77d56a18a1b1a6417813091d8a6554e5&amp;size=32&amp;default=http://mediacdn.disqus.com/1320279820/images/noavatar32.png"/></a>
                    <a class="avatar name" rel="nofollow" 
                       href="">reha</a>
                </div>
                <a href="#comment-221089975" class="permalink"><time datetime="2004-05-03T21:02:39">2004-05-03T21:02:39</time></a>
            </div>
            <div class="content">It's boiring. Where is the picture that shows us what the bunsen burner looks like and if u had a picture you can label it too.</div>
            
        </li>
    
        </ul>
    
        </div>
