<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:planet="http://planet.intertwingly.net/" xmlns:indexing="urn:atom-extension:indexing" indexing:index="no"><access:restriction xmlns:access="http://www.bloglines.com/about/specs/fac-1.0" relationship="deny"/>
  <title>Planet ChrisDolan</title>
  <updated>2008-03-09T21:00:59Z</updated>
  <generator uri="http://intertwingly.net/code/venus/">Venus</generator>
  <author>
    <name>Chris Dolan</name>
    <email>planet@chrisdolan.net</email>
  </author>
  <id>http://www.chrisdolan.net/planet/atom.xml</id>
  <link href="http://www.chrisdolan.net/planet/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.chrisdolan.net/planet/" rel="alternate"/>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~pjf/journal/35869?from=rss</id>
    <link href="http://use.perl.org/~pjf/journal/35869?from=rss" rel="alternate" type="text/html"/>
    <title>RFC: lethal - lexical exceptions for Perl (2008.03.09  8:50)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p> <b>RFC: lethal - lexical exceptions for Perl</b> <br/>
I've been scratching a long-time itch of mine, which is that while Perl allows me to use <tt> <a href="http://search.cpan.org/perldoc?Fatal">Fatal</a> </tt> to get subroutines and built-ins to throw exceptions on failure, such a change was always done on a package-wide, rather than lexical (block) basis.
</p> <p>
However with Perl 5.10 we have the ability to fix that, and I've put together a proof-of-concept module that enables exception-throwing subroutines on a lexical basis.
</p> <p>
I'm looking for input into its naming, interface, and concept in general.  Rather than filling up a blog post with it, you can <a href="http://perlmonks.org/?node_id=673060">read the node on PerlMonks</a>.
</p></div>
    </summary>
    <updated>2008-03-09T20:59:55Z</updated>
    <category term="journal"/>
    <author>
      <name>pjf</name>
    </author>
    <source>
      <id>http://use.perl.org/search.pl</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/search.pl" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/search.pl?content_type=rss&amp;op=journals" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>use Perl Journal Search</subtitle>
      <title>use Perl Journal Search</title>
      <updated>2008-03-09T20:59:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~Beatnik/journal/35868?from=rss</id>
    <link href="http://use.perl.org/~Beatnik/journal/35868?from=rss" rel="alternate" type="text/html"/>
    <title>Upgrading Trac #2 (2008.03.08 18:16)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">After the migration, Trac started throwing <a href="http://lists.edgewall.com/archive/trac/2006-February/006655.html">No changeset X in repository</a>. It took me a few minutes to figure out. The solution: resync Trac with the SVN db:<p/><blockquote> <div><tt>trac-admin /path/to/tracdb<br/>resync</tt></div> </blockquote></div>
    </summary>
    <updated>2008-03-09T20:59:55Z</updated>
    <category term="journal"/>
    <author>
      <name>Beatnik</name>
    </author>
    <source>
      <id>http://use.perl.org/search.pl</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/search.pl" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/search.pl?content_type=rss&amp;op=journals" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>use Perl Journal Search</subtitle>
      <title>use Perl Journal Search</title>
      <updated>2008-03-09T20:59:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>tag:blogger.com,1999:blog-4925399027471706894.post-6795920305269840367</id>
    <link href="http://ventnorsblog.blogspot.com/2008/03/fullscreen-is-now.html" rel="alternate" type="text/html"/>
    <title>Michael Ventnor: Fullscreen Is Now...</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://bp2.blogger.com/_UKaUkB4Y3mE/R9MzqppfPpI/AAAAAAAAADw/qdB1pzLRKwE/s1600-h/fullscr-incrediblyawesome.jpg"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5175537204606221970" src="http://bp2.blogger.com/_UKaUkB4Y3mE/R9MzqppfPpI/AAAAAAAAADw/qdB1pzLRKwE/s400/fullscr-incrediblyawesome.jpg" style="cursor: pointer; cursor: hand;"/></a><br/><br/>Once upon a time there was a humble front-end contributor who worked on many small XUL and Javascript features for Firefox 3 like the smooth-scrolling tab bar and prefilling the find bar with the current selection. He later took on the mountainous responsibility of GTK Widget maintainer after travelling to New Zealand for his Uni holidays, but thats another story.<br/><br/>Anyway, in April 2007, I^H he contributed a patch to make the toolbars auto-hide themselves when in full-screen mode. It was a long and laborious process towards code review but it is now finally in the latest Firefox 3 hourly builds, and possibly in the latest nightly build.<br/><br/>So why is this fullscreen so incredibly awesome? For Firefox 3 we added a new read-only boolean property called <a href="http://developer.mozilla.org/en/docs/DOM:window.fullScreen">window.fullScreen</a> that can allow web applications to know whether or not you are in fullscreen mode (technically its not "new" per se, it existed in Firefox 2 but it never gave back the correct value, I just fixed that up). This can provide really great opportunities for web apps to take advantage of the new built-in fuller fullscreen. Maybe Google Presentations could start the slide show automatically when you enter fullscreen. Or maybe video sites could adjust the video size to take up the entire screen when you enter fullscreen.<br/><br/>Of course, I haven't forgotten my now main duty of GTK Widget maintainer. For Thunderbird users, I managed to fix the bug where dragging an image from your file manager would paste the file:// URL as text rather than embed the image. Oh, and XUL popups now properly set hints, so if you maintain a window manager, especially one with compositing, you no longer need Firefox-specific hacks; we now correctly report whether the popup is supposed to be a menu, a tooltip, or just a utility popup like Larry.<br/><br/>But anyway, Beta 4 is coming out soon. Like many times before, all the cool things I make just miss the beta freeze and get checked in before said beta even comes out, which makes the betas slightly less exciting than the nightlies or hourlies. Also, I hope Ted manages to turn on Profile-Guided Optimization for Linux very soon (if he hasn't done so already).</div>
    </summary>
    <updated>2008-03-09T20:59:50Z</updated>
    <author>
      <name>Michael</name>
    </author>
    <source>
      <id>http://planet.mozilla.org/</id>
      <author>
        <name>Planet Mozilla</name>
      </author>
      <link href="http://planet.mozilla.org/" rel="alternate" type="text/html"/>
      <link href="http://planet.mozilla.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Planet Mozilla - http://planet.mozilla.org/</subtitle>
      <title>Planet Mozilla</title>
      <updated>2008-03-09T20:59:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://blog.mozilla.com/rob-sayre/2008/03/08/blocker-report-for-march-08-2008/</id>
    <link href="http://blog.mozilla.com/rob-sayre/2008/03/08/blocker-report-for-march-08-2008/" rel="alternate" type="text/html"/>
    <title>Robert Sayre: Blocker Report for March 08, 2008</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><h3>Overall Status</h3>
<p>Blocking Firefox 3: 206 bugs found.<br/>
Blocking Gecko 1.9: 175 bugs found.</p>
<h3>Blockers fixed between 12:00am and 10:45pm</h3>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=421412">Bug 421412</a> Get rid of _adjustWidth hack. Patch by Edward Lee.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=396548">Bug 396548</a>. Star icon in url bar autocomplete is partly or completely buried under scrollbar (covered, hidden). Patch by Edward Lee.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=406373">Bug 406373</a>. Url bar results can be scrolled horizontally after scrolling vertically. Patch by Edward Lee.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=421490">Bug 421490</a>. wpad may be dangerous, and it is on by default. Patch by Michael Ventnor.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=415329">Bug 415329</a>. large toolbar buttons are vertically misaligned. Patch by Dão Gottwald.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=417421">Bug 417421</a>. Loss of back forward buttons when switching between 1.8 and 1.9. Patch by Dão Gottwald.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=405010">Bug 405010</a>. make column changes in places/library (session) persistent. Patch by Marco Bonardo.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=416225">Bug 416225</a>. Change “Unfiled bookmarks” to “Unsorted Bookmarks”. Patch by Kurt (supernova_00).</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=409215">Bug 409215</a>. Closing tabs quickly in succession causes the close button to “get stuck” (Minefield 3.0pre3, browser.tabs.closeButtons = 1). Patch by Gavin Sharp.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=412360">Bug 412360</a>. Download Manager remains empty, downloads don’t start, with this 3.0b2 downloads.sqlite. Patch by Edward Lee.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=418961">Bug 418961</a>. “Save Page As” “Text Files” saves file but Downloads window doesn’t show completion. Patch by Edward Lee.</p>
<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=421058">Bug 421058</a>.  Firefox won’t prompt to change stored passwords. Patch by Justin Dolske.</p></div>
    </summary>
    <updated>2008-03-09T20:59:50Z</updated>
    <author>
      <name>rsayre</name>
    </author>
    <source>
      <id>http://planet.mozilla.org/</id>
      <author>
        <name>Planet Mozilla</name>
      </author>
      <link href="http://planet.mozilla.org/" rel="alternate" type="text/html"/>
      <link href="http://planet.mozilla.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Planet Mozilla - http://planet.mozilla.org/</subtitle>
      <title>Planet Mozilla</title>
      <updated>2008-03-09T20:59:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://benjamin.smedbergs.us/blog/2008-03-09/has-gcc-dehydra-replaced-elsa/</id>
    <link href="http://benjamin.smedbergs.us/blog/2008-03-09/has-gcc-dehydra-replaced-elsa/" rel="alternate" type="text/html"/>
    <title>Benjamin Smedberg: Has GCC Dehydra Replaced Elsa?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>No.</p>
<p>GCC Dehydra allows us to do analysis passes on our existing code. In the far future it may also allow us to do optimization passes. But it does not have the ability to do code rewriting, and probably won’t gain that ability any time soon. In order to be able to do C++-&gt;C++ transformations, you have to have correct end positions for all statements/tokens, not just beginning positions. GCC does not track this information, and making it do so would be a massive undertaking.</p>
<p>Mozilla2 still lives in a dual world where automatic code refactoring is done using the elsa/oink toolchain, while static analysis is taking place using the GCC toolchain.</p></div>
    </summary>
    <updated>2008-03-09T20:59:50Z</updated>
    <author>
      <name>Benjamin Smedberg</name>
      <email>benjamin@smedbergs.us</email>
    </author>
    <source>
      <id>http://planet.mozilla.org/</id>
      <author>
        <name>Planet Mozilla</name>
      </author>
      <link href="http://planet.mozilla.org/" rel="alternate" type="text/html"/>
      <link href="http://planet.mozilla.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>Planet Mozilla - http://planet.mozilla.org/</subtitle>
      <title>Planet Mozilla</title>
      <updated>2008-03-09T20:59:50Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~ferreira/journal/35871?from=rss</id>
    <link href="http://use.perl.org/~ferreira/journal/35871?from=rss" rel="alternate" type="text/html"/>
    <title>Nancy: from Lua to Perl (2008.03.09 15:13)</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Some days before, Reuben Thomas (a known contributor to <a href="http://www.lua.org/">Lua</a> community) <a href="http://article.gmane.org/gmane.comp.lang.lua.general/46135">announced</a> the release of <a href="http://rrt.sc3d.org/Software/Nancy/">Nancy</a>, "a simple web site builder" at the <a href="http://www.lua.org/lua-l.html">Lua mailing list</a>.


</p><p>
For the dismay of Lua afficcionados, this release was not written in Lua.
</p> <p/><blockquote> <div><p> <em>
Oh, and it's written in Perl. I thought it might be interesting to say why.
The problem was not libraries (I used my pure-Lua stdlib and LuaFileSystem),
but deployment on Windows (I use Linux). I had previously built an
all-in-one binary for Windows using a cross-compiler. That worked fine but
made it hard to debug on Windows as I couldn't just edit-run, and also broke
nastily when the cross-compiler was upgraded. So, I switched to LuaBinaries.
That enabled me in the end to deploy only pre-built binaries, but at the
cost of having to install 2 binary packages, and then do manual fiddling to
get .lua files run as commands by the Windows shell.
</em> </p>

<p> <em>
ActivePerl does all this for me, and I was already using some Perl scripts
in the same system, so by rewriting Nancy in Perl I got down to "run the
Perl installer" as being the prerequisites for running Nancy.
</em> </p></div>
</blockquote>

<p>
Nancy begun its life as Lua code (and that's the reason Reuben announced this at Lua mailing list for the last time — unless it be written in Lua again in the future).
</p>

<p>
Perl still has an edge ahead before some of the popular dynamical languages out there, which (I hope) is not going away anytime soon in the future.
</p></div>
    </summary>
    <updated>2008-03-09T20:58:31Z</updated>
    <category term="journal"/>
    <author>
      <name>ferreira</name>
    </author>
    <source>
      <id>http://use.perl.org/search.pl</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/search.pl" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/search.pl?content_type=rss&amp;op=journals" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>use Perl Journal Search</subtitle>
      <title>use Perl Journal Search</title>
      <updated>2008-03-09T20:59:55Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/</id>
    <link href="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~3/248486264/" rel="alternate" type="text/html"/>
    <title>Talkcast reminder, 10 pm ET tonight</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Filed under: <a href="http://www.tuaw.com/category/tuaw-business/" rel="tag">TUAW Business</a>, <a href="http://www.tuaw.com/category/podcasts/" rel="tag">Podcasts</a></p><a href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=45077"><img align="right" alt="" border="0" height="168" hspace="8" src="http://www.blogsmithmedia.com/www.tuaw.com/media/2008/03/modernphone.jpg" vspace="8" width="225"/></a>If you haven't checked out last week's show yet, by all means grab a copy.  <span style="text-decoration: underline;"/><a href="http://iconfactory.com/home/permalink/1961">We were joined</a> by Craig Hockenberry and Gedeon Maheux from <a href="http://iconfactory.com/">Iconfactory</a>, who gave us the lowdown on the <a href="http://files.iconfactory.net/downloads/animations/Redesign/">history of the company,</a> the origins of <a href="http://iconfactory.com/twitterrific">Twitterrific</a>, the coevolution of <a href="http://twitter.com/tuaw">Twitter</a> with the now-dominant Mac client, and the promise of the upcoming <a href="http://www.tuaw.com/tag/iPhone/">iPhone</a> development explosion.  <a href="http://recordings.talkshoe.com/TC-45077/TS-95271.mp3">Download direct</a>, <a href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=45077">listen in your browser</a> or <a href="itpc://recordings.talkshoe.com/rss45077.xml">subscribe to the TalkShoe feed</a> in iTunes.<br/> <br/>Speaking of iPhone... <a href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=45077">We are live tonight (Sunday 3/9)</a> for this week's talkcast, 10 pm ET, talking about iPhone for enterprise and the SDK -- featuring a taped segment with <a href="http://ericasadun.com">Erica Sadun</a> and <a href="http://www.apolloapp.com/">Apollo IM developer Alex Schaefer,</a> who couldn't make the regular Sunday night show but felt they had to say something after 72+ hours deep in the SDK.<br/><br/>Join me, Scott, Dave and Mike Schramm tonight for the social. Bring your own ice cream!<p><a href="http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/" rel="bookmark">Continue reading <em>Talkcast reminder, 10 pm ET tonight</em></a></p><h6 style="clear: both; padding: 8px 0 0 0; height: 2px; font-size: 1px; border: 0; margin: 0; padding: 0;"/><a href="http://www.talkshoe.com/talkshoe/web/talkCast.jsp?masterId=45077&amp;cmd=tc">Read</a> | <a href="http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/" rel="bookmark" title="Permanent link to this entry">Permalink</a> | <a href="http://www.tuaw.com/forward/1135528/" title="Send this entry to a friend via email">Email this</a> | <a href="http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/#comments" title="View reader comments on this entry">Comments</a><br/><br/><p><map name="google_ad_map_16-1135528"><area coords="1,2,367,28" href="http://imageads.googleadservices.com/pagead/imgclick/16-1135528?pos=0" shape="rect"/><area coords="384,10,453,23" href="http://services.google.com/feedback/abg" shape="rect"/></map><img border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=ca-pub-3546992251556849&amp;channel=21&amp;output=png&amp;cuid=16-1135528&amp;url=http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/" usemap="http://feeds.tuaw.com/weblogsinc/tuaw#google_ad_map_16-1135528"/></p>
<p><a href="http://feeds.tuaw.com/~a/weblogsinc/tuaw?a=nlvCv3"><img border="0" src="http://feeds.tuaw.com/~a/weblogsinc/tuaw?i=nlvCv3"/></a></p><img height="1" src="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~4/248486264" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:57:26Z</updated>
    <category term="iphone sdk"/>
    <category term="IphoneSdk"/>
    <category term="podcast"/>
    <category term="talkcast"/>
    <category term="tweet-this"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.tuaw.com/2008/03/09/talkcast-reminder-10-pm-et-tonight/</feedburner:origlink>
    <author>
      <name>Michael Rose</name>
    </author>
    <source>
      <id>http://www.tuaw.com</id>
      <logo>http://www.tuaw.com/media/feedlogo.gif</logo>
      <link href="http://www.tuaw.com" rel="alternate" type="text/html"/>
      <link href="http://www.tuaw.com/rss.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008 Weblogs, Inc. The contents of this feed are available for non-commercial use only.</rights>
      <subtitle>The Unofficial Apple Weblog (TUAW)</subtitle>
      <title>The Unofficial Apple Weblog (TUAW)</title>
      <updated>2008-03-09T20:57:26Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.tuaw.com/2008/03/09/more-jim-henson-classics-on-itunes/</id>
    <link href="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~3/248493190/" rel="alternate" type="text/html"/>
    <title>More Jim Henson classics on iTunes</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Filed under: <a href="http://www.tuaw.com/category/itunes-store/" rel="tag">iTS</a></p><img align="right" alt="" border="1" hspace="8" src="http://www.blogsmithmedia.com/www.tuaw.com/media/2008/03/labyrinth.jpg" vspace="8"/>
<p>iTunes users who also happen to be fans of a goblin David Bowie, Gelflings, Skeksis, Mystics and/or <a href="http://en.wikipedia.org/wiki/Jim_Henson">Jim Henson</a> have reason to celebrate: two of Henson's cult classic films are now available on iTunes. <a href="http://www.imdb.com/title/tt0083791/">The Dark Crystal</a> and <a href="http://www.imdb.com/title/tt0091369/">Labyrinth</a> are now available for purchase at the iTunes Store. This comes on the heels of the <a href="http://www.tuaw.com/2008/01/28/fraggles-and-farscape-come-to-itunes/">Farscape and Fraggle Rock iTunes releases</a> in January.<br/></p>
<p>If you've never been able to get the cry of the <a href="http://en.wikipedia.org/wiki/Skeksis">Skeksis</a> or the image of a frighteningly glam Goblin King (with fantastic hair) out of your head, pop up iTunes and make some Jim Henson magic. While you're there, you can even grab the slightly watered-down musical numbers in the Labyrinth Soundtrack to go with it, as well as a copy of The Muppet Christmas Carol, just in case the kids need some lighter fare after The Dark Crystal. Can't beat that, right?</p><h6 style="clear: both; padding: 8px 0 0 0; height: 2px; font-size: 1px; border: 0; margin: 0; padding: 0;"/><a href="http://www.prxbuilder.com/link.aspx?id=104940b6-36ed-46c0-a5cd-fb4556c4aff9&amp;name=DarkCrystallabyrinth.xml&amp;xform=xslt%2flink.xslt&amp;perm=true">Read</a> | <a href="http://www.tuaw.com/2008/03/09/more-jim-henson-classics-on-itunes/" rel="bookmark" title="Permanent link to this entry">Permalink</a> | <a href="http://www.tuaw.com/forward/1133195/" title="Send this entry to a friend via email">Email this</a> | <a href="http://www.tuaw.com/2008/03/09/more-jim-henson-classics-on-itunes/#comments" title="View reader comments on this entry">Comments</a><br/><br/><p><map name="google_ad_map_16-1133195"><area coords="1,2,367,28" href="http://imageads.googleadservices.com/pagead/imgclick/16-1133195?pos=0" shape="rect"/><area coords="384,10,453,23" href="http://services.google.com/feedback/abg" shape="rect"/></map><img border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=ca-pub-3546992251556849&amp;channel=21&amp;output=png&amp;cuid=16-1133195&amp;url=http://www.tuaw.com/2008/03/09/more-jim-henson-classics-on-itunes/" usemap="http://feeds.tuaw.com/weblogsinc/tuaw#google_ad_map_16-1133195"/></p>
<p><a href="http://feeds.tuaw.com/~a/weblogsinc/tuaw?a=dwUxhQ"><img border="0" src="http://feeds.tuaw.com/~a/weblogsinc/tuaw?i=dwUxhQ"/></a></p><img height="1" src="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~4/248493190" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:57:26Z</updated>
    <category term="iTunes"/>
    <category term="Jim Henson"/>
    <category term="JimHenson"/>
    <category term="Movies"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.tuaw.com/2008/03/09/more-jim-henson-classics-on-itunes/</feedburner:origlink>
    <author>
      <name>Brett Terpstra</name>
    </author>
    <source>
      <id>http://www.tuaw.com</id>
      <logo>http://www.tuaw.com/media/feedlogo.gif</logo>
      <link href="http://www.tuaw.com" rel="alternate" type="text/html"/>
      <link href="http://www.tuaw.com/rss.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008 Weblogs, Inc. The contents of this feed are available for non-commercial use only.</rights>
      <subtitle>The Unofficial Apple Weblog (TUAW)</subtitle>
      <title>The Unofficial Apple Weblog (TUAW)</title>
      <updated>2008-03-09T20:57:26Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.tuaw.com/2008/03/09/macworld-posts-mac-snobbery-video/</id>
    <link href="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~3/248457653/" rel="alternate" type="text/html"/>
    <title>Macworld posts "Mac snobbery?" video</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Filed under: <a href="http://www.tuaw.com/category/cult-of-mac/" rel="tag">Cult of Mac</a></p><div align="center"><a href="http://www.macworld.com/article/132433/2008/03/mwvodcast41.html"><img alt="" border="1" hspace="4" src="http://www.blogsmithmedia.com/www.tuaw.com/media/2008/03/brian-chen-macworld-mac-users-snobs-video-_-cory-_-7128397392008sbm.jpg" vspace="4"/></a><br/>
<div align="left">You may recall us posting about a <a href="http://www.tuaw.com/2008/02/17/the-street-mac-owners-are-snobs/">recent study that found Mac users to be "Snobs."</a> Well, Macworld has <a href="http://www.macworld.com/article/132433/2008/03/mwvodcast41.html">taken this study a bit further</a>. Brian Chen, the Associate Editor, went around asking some of the staff at Macworld (including Jason Snell) what they thought about the study. They also went to the Apple store asking wandering customers outside the store what they thought about the study. </div>
</div><h6 style="clear: both; padding: 8px 0 0 0; height: 2px; font-size: 1px; border: 0; margin: 0; padding: 0;"/><a href="http://www.macworld.com/article/132433/2008/03/mwvodcast41.html">Read</a> | <a href="http://www.tuaw.com/2008/03/09/macworld-posts-mac-snobbery-video/" rel="bookmark" title="Permanent link to this entry">Permalink</a> | <a href="http://www.tuaw.com/forward/1135152/" title="Send this entry to a friend via email">Email this</a> | <a href="http://www.tuaw.com/2008/03/09/macworld-posts-mac-snobbery-video/#comments" title="View reader comments on this entry">Comments</a><br/><br/><p><map name="google_ad_map_16-1135152"><area coords="1,2,367,28" href="http://imageads.googleadservices.com/pagead/imgclick/16-1135152?pos=0" shape="rect"/><area coords="384,10,453,23" href="http://services.google.com/feedback/abg" shape="rect"/></map><img border="0" src="http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=ca-pub-3546992251556849&amp;channel=21&amp;output=png&amp;cuid=16-1135152&amp;url=http://www.tuaw.com/2008/03/09/macworld-posts-mac-snobbery-video/" usemap="http://feeds.tuaw.com/weblogsinc/tuaw#google_ad_map_16-1135152"/></p>
<p><a href="http://feeds.tuaw.com/~a/weblogsinc/tuaw?a=UDiPgj"><img border="0" src="http://feeds.tuaw.com/~a/weblogsinc/tuaw?i=UDiPgj"/></a></p><img height="1" src="http://feeds.tuaw.com/~r/weblogsinc/tuaw/~4/248457653" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:57:25Z</updated>
    <category term="Mac Snobbery"/>
    <category term="MacSnobbery"/>
    <category term="Macworld"/>
    <category term="snob"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://www.tuaw.com/2008/03/09/macworld-posts-mac-snobbery-video/</feedburner:origlink>
    <author>
      <name>Cory Bohon</name>
    </author>
    <source>
      <id>http://www.tuaw.com</id>
      <logo>http://www.tuaw.com/media/feedlogo.gif</logo>
      <link href="http://www.tuaw.com" rel="alternate" type="text/html"/>
      <link href="http://www.tuaw.com/rss.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008 Weblogs, Inc. The contents of this feed are available for non-commercial use only.</rights>
      <subtitle>The Unofficial Apple Weblog (TUAW)</subtitle>
      <title>The Unofficial Apple Weblog (TUAW)</title>
      <updated>2008-03-09T20:57:25Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.useit.com/alertbox/microcontent-brand-names.html</id>
    <link href="http://www.useit.com/alertbox/microcontent-brand-names.html" rel="alternate" type="text/html"/>
    <title>microcontent-brand-names.html</title>
    <summary>Company Name First in Microcontent?</summary>
    <updated>2008-03-09T20:56:38Z</updated>
    <source>
      <id>http://www.useit.com/alertbox/</id>
      <author>
        <name>Jakob Nielsen</name>
      </author>
      <link href="http://www.useit.com/alertbox/" rel="alternate" type="text/html"/>
      <link href="http://www.chrisdolan.net/rss/alertbox.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Current Issues in Web Usability</subtitle>
      <title>Alertbox</title>
      <updated>2008-03-09T20:56:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://perlbuzz.com/mechanix/2008/03/use-seq-or-jot-to-do-repetitiv.html</id>
    <link href="http://perlbuzz.com/mechanix/2008/03/use-seq-or-jot-to-do-repetitiv.html" rel="alternate" type="text/html"/>
    <title>Use seq or jot to do repetitive numbering</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
I just now had to clean up some tables in a PostgreSQL database.  The prior DBA thought that it would be good to split up tables into lx1, lx2, lx3 up to lx20.  After I combined all the tables together, I needed to drop the originals.  I could have written a Perl program to generate a series of <tt>drop table lx1;</tt> commands to feed into the <tt>psql</tt> command-line client, but instead I used the <tt>seq</tt> tool:
</p>
<pre>$ seq -f'drop table lx%g;' 1 20
drop table lx1;
drop table lx2;
...
drop table lx20;
</pre>
<p>
If you don't have <tt>seq</tt> on your system, as on Mac OS X, you probably have <tt>jot</tt>, as in:
</p>

<pre>jot -w'drop table lx%g;' 20 1
</pre>

<p>
Then again, if you just <i>have</i> to do it in Perl:
</p>
<pre>perl -le'print qq{drop table lx$_;} for 1..20'
</pre>
<p>
but I like to use other tools than the Swiss Army Chainsaw sometimes.
</p></div>
    </summary>
    <updated>2008-03-09T20:56:31Z</updated>
    <category scheme="http://www.sixapart.com/ns/types#category" term="Tools"/>
    <category scheme="http://www.sixapart.com/ns/types#tag" term="jot"/>
    <category scheme="http://www.sixapart.com/ns/types#tag" term="seq"/>
    <source>
      <id>http://perlbuzz.com/mechanix/</id>
      <author>
        <name>Perl Buzz Mechanix</name>
      </author>
      <link href="http://perlbuzz.com/mechanix/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/PerlBuzzMechanix" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008</rights>
      <subtitle>Code, tech and getting dirt under your fingernails</subtitle>
      <title>Mechanix</title>
      <updated>2008-03-09T20:56:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://yro.slashdot.org/article.pl?sid=08/03/09/1815205&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdot/~3/248496852/article.pl" rel="alternate" type="text/html"/>
    <title>German Police Raid 51 CeBIT Stands Over Patent Claims</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">LeCaddie writes "Last week German investigators raided 51 exhibitor stands at CeBIT, the German information technology fair in Hanover, looking for goods suspected of infringing patents. Some 183 police, customs officers, and prosecutors raided the fair on Wednesday and carried off 68 boxes of electronic goods and documents including cellphones, navigation devices, digital picture frames, and flat-screen monitors. Of the 51 companies raided, 24 were Chinese. Most of the patents concerned were related to devices with MP3, MP4, and DVB standard functions for digital audio and video, blank CDs, and DVD copiers, police said." In the US there are no criminal penalties associated with patents, and such a raid could not be conducted, especially in the absence of a court ruling of infringement.<p><a href="http://yro.slashdot.org/article.pl?sid=08/03/09/1815205&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=TxVsPW"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=TxVsPW"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/248496852" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:40:24Z</updated>
    <category term="patents"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://yro.slashdot.org/article.pl?sid=08/03/09/1815205&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://slashdot.org/rss/index.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot</title>
      <updated>2008-03-09T20:40:24Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://yro.slashdot.org/article.pl?sid=08/03/09/025222&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdot/~3/248322146/article.pl" rel="alternate" type="text/html"/>
    <title>Wikileaks Calls For Global Boycott Against eNom</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">souls writes "The folks at Wikileaks are calling for a boycott against eNom, Inc., one of the top internet domain registrars, which WikiLeaks claims is involved in systematic domain censoring. On Feb 28th eNom shut down wikileaks.info, one of the many Wikileaks mirrors held by a volunteer as a side-effect of the court proceedings around wikileaks.org. In addition, eNom was the registrar that shut off access to a Spanish travel agent who showed up on a US Treasury watch list. Wikileaks calls for a 'global boycott of eNom and its parent Demand Media, its owners, executives and their affiliated companies, interests and holdings, to make clear such behavior can and will not be tolerated within the boundaries of the Internet and its global community.'"<p><a href="http://yro.slashdot.org/article.pl?sid=08/03/09/025222&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=jhkmBs"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=jhkmBs"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/248322146" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:40:24Z</updated>
    <category term="censorship"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://yro.slashdot.org/article.pl?sid=08/03/09/025222&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://slashdot.org/rss/index.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot</title>
      <updated>2008-03-09T20:40:24Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://yro.slashdot.org/article.pl?sid=08/03/09/0146224&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdot/~3/248263584/article.pl" rel="alternate" type="text/html"/>
    <title>Olympic Web Site Features Pirated Content</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">An anonymous reader writes "Despite all the emphasis on protecting Olympic copyrights in China this year, the official web site of the Beijing Olympics features a Flash game that is a blatant copy of one of the games developed at The Pencil Farm. Compare the game on the Olympic site with 'Snow Day' at The Pencil Farm."<p><a href="http://yro.slashdot.org/article.pl?sid=08/03/09/0146224&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdot?a=Pd8bn7"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdot?i=Pd8bn7"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdot/~4/248263584" width="1"/></div>
    </summary>
    <updated>2008-03-09T20:40:24Z</updated>
    <category term="internet"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://yro.slashdot.org/article.pl?sid=08/03/09/0146224&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://slashdot.org/rss/index.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot</title>
      <updated>2008-03-09T20:40:24Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:daringfireball.net,2008:/linked//6.11147</id>
    <link href="http://www.codinghorror.com/blog/archives/001072.html" rel="alternate" type="text/html"/>
    <title>G-Archiver</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>So G-Archiver is a Windows app that lets you download your archived Gmail messages. It ends up that the app emails your Gmail username and password to the author. Crazy.</p>

<div>
<a href="http://daringfireball.net/linked/2008/march#sun-09-garchiver" title="Permanent link to &#x2018;G-Archiver&#x2019;"> ★ </a>
</div></div>
    </content>
    <updated>2008-03-09T20:36:28Z</updated>
    <author>
      <name>John Gruber</name>
      <uri>http://daringfireball.net/</uri>
    </author>
    <source>
      <id>http://daringfireball.net/feeds/combo</id>
      <link href="http://daringfireball.net/" rel="alternate" type="text/html"/>
      <link href="http://daringfireball.net/index.xml" rel="self" type="application/atom+xml"/>
      <rights>Copyright © 2008, John Gruber</rights>
      <subtitle>Mac and web curmudgeonry/nerdery. By John Gruber.</subtitle>
      <title>Daring Fireball</title>
      <updated>2008-03-09T20:36:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://weblogs.mozillazine.org/asa/archives/2008/03/webslices_and_a.html</id>
    <link href="http://weblogs.mozillazine.org/asa/archives/2008/03/webslices_and_a.html" rel="alternate" type="text/html"/>
    <title>Asa Dotzler: webslices and activites</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Just in case the power of the Firefox platform wasn't obvious already, check out the <a href="http://www.glazman.org/weblog/dotclear/index.php?post/2008/03/07/WebSlices-in-Firefox-2">Web Slices work from Daniel Glazman</a> and the <a href="http://www.kaply.com/weblog/2008/03/07/microsoft-activities-for-firefox-new-version/">Activities work Mike Kaply's doing</a>. </p></div>
    </summary>
    <updated>2008-03-08T22:00:02Z</updated>
    <source>
      <id>http://feedhouse.mozillazine.org/</id>
      <author>
        <name>Planet Mozillazine</name>
      </author>
      <link href="http://feedhouse.mozillazine.org/" rel="alternate" type="text/html"/>
      <link href="http://feedhouse.mozillazine.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>mozillaZine feedHouse - http://feedhouse.mozillazine.org/</subtitle>
      <title>mozillaZine feedHouse</title>
      <updated>2008-03-09T20:58:59Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.macrumors.com/2008/03/08/sun-bringing-java-to-iphone/</id>
    <link href="http://www.macrumors.com/2008/03/08/sun-bringing-java-to-iphone/" rel="alternate" type="text/html"/>
    <title>Sun Bringing Java to iPhone</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Sun announced that they are developing a Java Virtual Machine for Apple's iPhone with the newly released Software Development Kit (SDK).<p class="quote">"We're going to make sure that the JVM offers the Java applications as much access to the native ...</p></div>
    </summary>
    <updated>2008-03-08T21:57:28Z</updated>
    <source>
      <id>http://www.macrumors.com</id>
      <author>
        <name>Mac Rumors</name>
      </author>
      <link href="http://www.macrumors.com" rel="alternate" type="text/html"/>
      <link href="http://www.macrumors.com/macrumors.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2000 - 2005, MacRumors.com</rights>
      <subtitle>the mac news you care about</subtitle>
      <title>MacRumors : Mac News and Rumors</title>
      <updated>2008-03-09T20:56:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.macrumors.com/2008/03/08/iphone-sdk-limitations-multitasking-java-emulators/</id>
    <link href="http://www.macrumors.com/2008/03/08/iphone-sdk-limitations-multitasking-java-emulators/" rel="alternate" type="text/html"/>
    <title>iPhone SDK Limitations: Multitasking, Java, Emulators</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">As people delve into the details of Apple's iPhone SDK, a few interesting issues are emerging.  One developer guideline that is generating some concern is from Apple's Human Interface Guidelines for iPhone:<p class="quote">Only one iPhone application...</p></div>
    </summary>
    <updated>2008-03-08T21:57:25Z</updated>
    <source>
      <id>http://www.macrumors.com</id>
      <author>
        <name>Mac Rumors</name>
      </author>
      <link href="http://www.macrumors.com" rel="alternate" type="text/html"/>
      <link href="http://www.macrumors.com/macrumors.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2000 - 2005, MacRumors.com</rights>
      <subtitle>the mac news you care about</subtitle>
      <title>MacRumors : Mac News and Rumors</title>
      <updated>2008-03-09T20:56:34Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://use.perl.org/article.pl?sid=08/03/08/1937220&amp;from=rss</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/248029736/article.pl" rel="alternate" type="text/html"/>
    <title xml:lang="en-us">Vanilla Perl Build 15 - Loads of new toys</title>
    <content type="xhtml" xml:lang="en-us"><div xmlns="http://www.w3.org/1999/xhtml">http://ali.as/download/vanilla-perl-5.10.0-build-15.exe (14.4 MB) I'm happy to (FINALLY) release the new Vanilla Perl build 15. Vanilla Perl is the experimental Win32 Perl distribution with the mandate to do the absolute minimum amount of changes to the Perl core to get various features working. This latest experimental release contains most of the new tricks that will be in the upcoming April Strawberry Perl, and probably the biggest number of new features yet in a Vanilla release. XML::Parser This release comes with Expat and XML::Parser built in (since I still can't make XML::Parser install from CPAN itself and you can't upgrade it). So it should be possible to build a range of other stuff on top of it now (like PPM support, which is out of the scope of Vanilla). Win32::API Although it probably won't stay in Vanilla beyond this release, I've bundled in Win32::API out of the box. With Win32::API also comes (be necessity) with libwin32 bundled in as well (which is by far the biggest install from cpan.strawberryperl.com). With those two installed, most of the rest of the Win32:: family should install relatively easily. Relocation This release contains experimental patches for all three configuration files that contain hard-coded paths to make them capable or handling the Perl installation being shoved around. This should also be the first release usable for people interested in creating Portable Perl type distributions for flash drives, etc. Of course, this is still an .exe installer (which Portable Perl people don't want, cause it dumps crap into the registry). This particular feature WON'T be in Strawberry Perl, but it involved adding some extra capabilities in regards to tweaking installs. libwwwperl aka LWP Because I refuse to use FTP CPAN mirrors any more (HTTP being infinitely superior in every way) Vanilla now comes with LWP out of the box. This also means that the built in CPAN mirrors can be used now, intead of it falling back on the horrible FTP defaults. Righto then... So, with Vanilla 15 working, time to move on to getting a Strawberry Beta.<p><a href="http://use.perl.org/article.pl?sid=08/03/08/1937220&amp;from=rss">Read more of this story</a> at use Perl.</p><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/248029736" width="1"/></div>
    </content>
    <updated>2008-03-08T21:41:58Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://use.perl.org/article.pl?sid=08/03/08/1937220&amp;from=rss</feedburner:origlink>
    <author>
      <name>use.perl</name>
      <uri>http://use.perl.org/</uri>
    </author>
    <source>
      <id>http://use.perl.org/index.rss</id>
      <link href="http://use.perl.org/index.rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-us">use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle xml:lang="en-us">All the Perl that's Practical to Extract and Report</subtitle>
      <title xml:lang="en-us">use Perl</title>
      <updated>2008-03-09T03:41:42Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://use.perl.org/article.pl?sid=08/03/08/1936257&amp;from=rss</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/248029731/article.pl" rel="alternate" type="text/html"/>
    <title xml:lang="en-us">pmtools-1.10 Release</title>
    <content type="xhtml" xml:lang="en-us"><div xmlns="http://www.w3.org/1999/xhtml">Now at a CPAN mirror site near you — pmtools-1.10. Tom "spot" Callaway of Fedora Core let me know that the Fedora folks were concerned about the fact that pmtools was only licensed under the Perl 5 Artistic License (they were concerned about how well the Artistic License 1.0 would stand up in court). So, pmtools (starting with v1.10) is now dual-licensed like Perl (Artistic and GPL). (My other public Perl stuff is also dual-licensed.) I also added my copyright to pmtools, as I had not added my name to the copyright when I took it over. Off-hand, I don't recall why Tom Christiansen used only the Artistic License for pmtools. Anyone with a clue, please drop me a line. (That of course includes you, Tom.)<p><a href="http://use.perl.org/article.pl?sid=08/03/08/1936257&amp;from=rss">Read more of this story</a> at use Perl.</p><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/248029731" width="1"/></div>
    </content>
    <updated>2008-03-08T21:41:58Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://use.perl.org/article.pl?sid=08/03/08/1936257&amp;from=rss</feedburner:origlink>
    <author>
      <name>use.perl</name>
      <uri>http://use.perl.org/</uri>
    </author>
    <source>
      <id>http://use.perl.org/index.rss</id>
      <link href="http://use.perl.org/index.rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-us">use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle xml:lang="en-us">All the Perl that's Practical to Extract and Report</subtitle>
      <title xml:lang="en-us">use Perl</title>
      <updated>2008-03-09T03:41:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://games.slashdot.org/article.pl?sid=08/03/08/194249&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~3/248020903/article.pl" rel="alternate" type="text/html"/>
    <title>Donkey Kong and Me</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">MBCook sends us to the blog of one Landon Dyer, who posted an entry the other day entitled Donkey Kong and Me. It describes how he was offered at job at Atari after writing a Centipede clone and ended up programming Donkey Kong for the Atari 800. It's full of detail that will be fascinating to anyone who ever programmed assembly language that had to fit into 16K, as well as portents of what was to come at Atari. "My first officemate didn't know how to set up his computer. He didn't know anything, it appeared. He'd been hired to work on Dig Dug, and he was completely at sea. I had to teach him a lot, including how to program in assembly, how the Atari hardware worked, how to download stuff, how to debug. It was pretty bad."<p><a href="http://games.slashdot.org/article.pl?sid=08/03/08/194249&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?a=zdlQGY"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?i=zdlQGY"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~4/248020903" width="1"/></div>
    </summary>
    <updated>2008-03-08T21:40:22Z</updated>
    <category term="programming"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://games.slashdot.org/article.pl?sid=08/03/08/194249&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://developers.slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://developers.slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://developers.slashdot.org/developers.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot: Developers</title>
      <updated>2008-03-09T20:40:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://developers.slashdot.org/article.pl?sid=08/03/08/180252&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~3/248002734/article.pl" rel="alternate" type="text/html"/>
    <title>Sun Is Porting Java To the iPhone</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">krquet notes an InfoWorld article on Sun's plans for the iPhone. After studying Apple's newly released SDK docs for 24 hours, Sun decided it was feasible to develop a JVM, based on Java Micro Edition, for both the iPhone and the iTouch. An analyst is quoted: "I think going forward, with the SDK, it takes out of Apple's control which applications are 'right' for the iPhone." The article doesn't speculate on how Apple might to react to such a loss of control. "Apple had not shown interest in enabling Java to run on the iPhone, but Sun plans to step in and do the job itself... The free JVM would be made available via Apple's App Store marketplace for third-party applications."<p><a href="http://developers.slashdot.org/article.pl?sid=08/03/08/180252&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?a=WjUVt0"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?i=WjUVt0"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~4/248002734" width="1"/></div>
    </summary>
    <updated>2008-03-08T21:40:22Z</updated>
    <category term="java"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://developers.slashdot.org/article.pl?sid=08/03/08/180252&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://developers.slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://developers.slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://developers.slashdot.org/developers.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot: Developers</title>
      <updated>2008-03-09T20:40:38Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:daringfireball.net,2008:/linked//6.11145</id>
    <link href="http://mooseyard.com/Jens/2008/03/the-beauty-of-99%c2%a2-iphone-apps/" rel="alternate" type="text/html"/>
    <title>The Beauty of 99¢ iPhone Apps</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>$.99 or $1.99 is indeed low, but I think Jens Alfke may have a point. It’s not that bigger, serious apps will sell for prices that low, but smaller, simpler apps that might otherwise have been released for free might generate real money with “cup of coffee”-level prices. It’s the App Store that makes this possible.</p>

<div>
<a href="http://daringfireball.net/linked/2008/march#fri-07-99_cent" title="Permanent link to &#x2018;The Beauty of 99&#xA2; iPhone Apps&#x2019;"> ★ </a>
</div></div>
    </content>
    <updated>2008-03-08T03:35:11Z</updated>
    <author>
      <name>John Gruber</name>
      <uri>http://daringfireball.net/</uri>
    </author>
    <source>
      <id>http://daringfireball.net/feeds/combo</id>
      <link href="http://daringfireball.net/" rel="alternate" type="text/html"/>
      <link href="http://daringfireball.net/index.xml" rel="self" type="application/atom+xml"/>
      <rights>Copyright © 2008, John Gruber</rights>
      <subtitle>Mac and web curmudgeonry/nerdery. By John Gruber.</subtitle>
      <title>Daring Fireball</title>
      <updated>2008-03-09T20:36:28Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:daringfireball.net,2008:/linked//6.11143</id>
    <link href="http://arstechnica.com/staff/fatbits.ars/2008/03/07/cant-help-falling-in-love" rel="alternate" type="text/html"/>
    <title>Can’t Help Falling in Love</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>John Siracusa:</p>

<blockquote>
  <p>Skilled Mac developers are uniquely positioned to be the first to market with the iPhone applications they’ve been designing in their heads since last year. They know the tools, they know the technology, they even know a lot of the APIs already, and those they don’t know look a lot like the ones they do.</p>
</blockquote>

<div>
<a href="http://daringfireball.net/linked/2008/march#fri-07-siracusa" title="Permanent link to &#x2018;Can&#x2019;t Help Falling in Love&#x2019;"> ★ </a>
</div></div>
    </content>
    <updated>2008-03-08T03:35:11Z</updated>
    <author>
      <name>John Gruber</name>
      <uri>http://daringfireball.net/</uri>
    </author>
    <source>
      <id>http://daringfireball.net/feeds/combo</id>
      <link href="http://daringfireball.net/" rel="alternate" type="text/html"/>
      <link href="http://daringfireball.net/index.xml" rel="self" type="application/atom+xml"/>
      <rights>Copyright © 2008, John Gruber</rights>
      <subtitle>Mac and web curmudgeonry/nerdery. By John Gruber.</subtitle>
      <title>Daring Fireball</title>
      <updated>2008-03-09T20:36:28Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://lwn.net/Articles/272048/</id>
    <link href="http://lwn.net/Articles/272048/" rel="alternate" type="text/html"/>
    <title>GCC 4.3.0 exposes a kernel bug</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://lwn.net/Articles/272048/">http://lwn.net/Articles/272048/</a></div>
    </summary>
    <updated>2008-03-07T22:00:06Z</updated>
    <source>
      <id>http://lwn.net/</id>
      <author>
        <name>Linux Weekly News</name>
      </author>
      <link href="http://lwn.net/" rel="alternate" type="text/html"/>
      <link href="http://www.chrisdolan.net/rss/lwn.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Highlighted articles from LWN.net</subtitle>
      <title>LWN weekly news and features</title>
      <updated>2008-03-09T21:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://www.pbs.org/cringely/pulpit/2008/pulpit_20080307_004467.html</id>
    <link href="http://www.pbs.org/cringely/pulpit/2008/pulpit_20080307_004467.html" rel="alternate" type="text/html"/>
    <title>Antisocial</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Do you remember Citizens' Band radio?  Though established by the Federal Communications Commission in the 1950s, CB radio didn't become an overnight sensation until the 1970s when Moore's Law brought down the cost of radios to where it was economically viable to buy them solely for the purpose of breaking speed-limit laws.  President Nixon, who liked to wear a blue suit and keep a cozy fire burning in his White House hearth year round no matter what the outside temperature or impact on his (our) air conditioning bill, had decided we all should drive 55 miles per hour or less to save fuel following the energy crisis of 1973.  So, being true Americans, which is to say cranky and prone to complain, we en masse set out to break this new law using as our primary tool CB radio technology to warn us where Smokey was or had recently been or whether there was an eye in the sky.  Criminals bound by a criminal code, we flaunted CB license restrictions (you were supposed to use your Federally assigned call sign from that license you were also supposed to have but never got) and operated under handles like "Thunderchicken" and "Boot-licker." I was "asciiboy."  CB radio sales went from zero to tens of millions of units in under two years -- the highest rate of technology adoption ever seen in the U.S. before or since.  Soon there was CB lore and a CB culture.  CB was everywhere.  When not breaking the law with it we were using CB as a huge social network to find the cheapest gas, the best hamburger or even a date for the prom.  And then, quick as it started, CB was gone, worn to the bone from overuse and abuse and left to the truckers as it should have been all along.  What killed CB radio was that moment when its annoyance factor exceeded its utility -- a utility already driven down by low traffic conviction rates and the eventual understanding that if everyone were a speeder then most cops wouldn't stop anyone.</p>

<p>I am beginning to think that Internet social networking is another CB radio, destined to crash and burn.</p>

<p>Social networking has a lot of problems as both a business and a cultural phenomenon.  To start with there is generally no true business model.  This can vary a bit from application to application but most are vying simply for eyeballs and hoping for Google ads to pay the bills until Time Warner or News Corp make them an acquisition offer they can't refuse.  That might be okay for Facebook or MySpace and maybe Linked-In, but there are more than 350 general-purpose social networks out there and I will guarantee you that no more than 5 percent of those will be still operating two years from today.</p>

<p>If you are a social networking entrepreneur and your operation isn't among the top 10, I'd be either looking frantically for an acquirer or turning your site into a social networking aggregator, linking to many others in exactly the way the chat networks appear to be merging while still retaining their individual identities.</p>

<p>Then there is the annoyance factor, which for me is rapidly accelerating as the major social networks try to establish themselves as hosts for third-party applications.  This would appear to be a no-brainer tactic for the two or three social networks that are likely to survive.  In fact I could argue that what is more likely to survive than most social networks are the truly compelling applications that run upon them, eventually subsuming their hosts.  But in the meantime there is all this annoying crap.  How many groups do you have to join, how many causes do you have to support, how many silly applications do you have to run until you come to realize that you are being included TO DEATH?</p>

<p>My idea for the perfect Facebook app, for example, is one I call "I've Fallen and I Can't Get Up!"  It's a variation on Twitter that is activated ONLY when one participant needs other participants to call 9-1-1 on his or her behalf.  Maybe it could be linked to a panic button or to your cardiac pacemaker.  The perfect Facebook application, then, is one you hope you'll never have to use.  This is far better than the typical Facebook app, which is overused to the point where people withdraw or simply stop noticing.</p>

<p>It's not that I don't see value to social networks, it's that I generally don't see ENOUGH value.  Yes, keeping my address book synchronized with reality is nice, but isn't that likely to be shortly absorbed into the operating system or perhaps into networked applications like Gmail and Yahoo Mail?</p>

<p>This trend has happened over and over as hundreds of portals came and went, leaving a few survivors.  Same for hundreds of search engines, hundreds of free e-mail services, etc., etc.</p>

<p>Marshall McLuhan argued that obsolete communication technologies survive as art forms.  This is true, I'd say, for Morse code and movable type printing and perhaps even for your venerable Rolodex or typewriter.  But it isn't yet true for CB radio, nor for most Internet technologies.  Maybe they aren't old enough yet to be appreciated.  In the case of CB I think range of reception limits the possible population of players to something less than an artistic critical mass.</p>

<p>What will likely happen to social networking is that some applications will survive on a more modest basis than now (used by the trucker equivalents), others will morph into some new Next Big Thing as their more compelling sub-applications take over, and true hard-core social networkers will jump to more advanced technologies that eliminate the riff-raff.  In the meantime, 70 percent or so of most social networking functionality -- the really useful functionality -- will be sucked into the dominant portal/search/e-mail/chat/social networks like MSN and Yahoo.</p>

<p>This next transition will happen faster than most people realize.  Part of this is because Internet product cycles have been shortening for the past several years, so each generation is shorter than the one before.  This hasn't mattered much because the audience has continued to expand.  And even now as Internet growth in terms of new users is slowing, that's more than made up for by the shift of advertising budgets from print and broadcast to the net.  So while the growth in users is decreasing, the growth in total revenue PER user is increasing.  But so is the competition, hence the shorter product cycles.</p>

<p>The tip-off that we're nearing the end of a cycle is the flight to quality we're seeing from some of the bigger players.  At Facebook, for example, you can no longer register using an e-mail address from an anonymous mail site like Mailinator, Operamail, or Countermail.  Facebook demands that you take an extra three minutes and get a Yahoo Mail or AOL mail address for example.  This is clearly the company pruning its subscribers in anticipation of an acquisition in the next couple quarters.  There is no other reason to do it.  MySpace isn't doing it despite a very real sex offender scandal, but then MySpace has already been sold and Facebook hasn't yet.</p>

<p>Once Facebook has been taken and one or two others, the golden era of social networking acquisitions will be over and the entrepreneurs will be headed for that Next Big Thing.</p> 

<p>"Breaker Port 80!  Do you have your ears on?"</p></div>
    </summary>
    <updated>2008-03-07T21:58:55Z</updated>
    <source>
      <id>http://www.pbs.org/cringely/pulpit/</id>
      <author>
        <name>Bob Cringely</name>
      </author>
      <link href="http://www.pbs.org/cringely/pulpit/" rel="alternate" type="text/html"/>
      <link href="http://www.pbs.org/cringely/pulpit/rss2.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008 PBS Online</rights>
      <subtitle>I, Cringely is the blog of Robert X. Cringely. Copyright 2006 PBS Online.</subtitle>
      <title>I, Cringely . The Pulpit | PBS</title>
      <updated>2008-03-09T20:59:23Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.macrumors.com/2008/03/07/iphone-sdk-reactions-and-ongoing-questions/</id>
    <link href="http://www.macrumors.com/2008/03/07/iphone-sdk-reactions-and-ongoing-questions/" rel="alternate" type="text/html"/>
    <title>iPhone SDK Reactions and Ongoing Questions</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The release of the iPhone SDK provided a lot of answers, but has also raised a number of questions, many of which will not be answerable until the iTunes App Store launches in June 2008.<br/>
<br/>
The general sentiment, however, has been quite p...</div>
    </summary>
    <updated>2008-03-07T21:56:30Z</updated>
    <source>
      <id>http://www.macrumors.com</id>
      <author>
        <name>Mac Rumors</name>
      </author>
      <link href="http://www.macrumors.com" rel="alternate" type="text/html"/>
      <link href="http://www.macrumors.com/macrumors.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2000 - 2005, MacRumors.com</rights>
      <subtitle>the mac news you care about</subtitle>
      <title>MacRumors : Mac News and Rumors</title>
      <updated>2008-03-09T20:56:35Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.macrumors.com/2008/03/06/dvd-or-cd-sharing-setup-update-for-mac-pc/</id>
    <link href="http://www.macrumors.com/2008/03/06/dvd-or-cd-sharing-setup-update-for-mac-pc/" rel="alternate" type="text/html"/>
    <title>DVD or CD Sharing Setup Update for Mac/PC</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Apple has released DVD or CD Sharing Setup Update for Mac and PC.<p class="quote">This update installs software that enables remote disc sharing, system software restoration, and wireless migration with MacBook Air.</p><br/>
The Mac version require...<img height="1" src="http://feeds.macrumors.com/~r/MacRumors-Page2/~4/247043055" width="1"/></div>
    </summary>
    <updated>2008-03-07T21:56:05Z</updated>
    <source>
      <id>http://page2.macrumors.com</id>
      <author>
        <name>Mac Rumors, Page 2</name>
      </author>
      <link href="http://page2.macrumors.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.macrumors.com/MacRumors-Page2" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2003-2008, MacRumors.com</rights>
      <subtitle>more mac news and rumors</subtitle>
      <title>MacRumors Page 2</title>
      <updated>2008-03-09T20:56:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://developers.slashdot.org/article.pl?sid=08/03/07/1443208&amp;from=rss</id>
    <link href="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~3/247437060/article.pl" rel="alternate" type="text/html"/>
    <title>Little Demand Yet For Silverlight Developers</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">ericatcw writes "At its Mix08 Web development conference, Microsoft said that its Silverlight rich Internet application platform is downloaded and installed an average of 1.5 million times every day; Microsoft has a goal of 200 million installs by midyear. But Silverlight is at the beginning of a long slog towards gaining traction. Computerworld did a quick analysis of job listings at nine popular career sites and found that an average of 41 times more ads mentioned Adobe's Flash than mentioned Silverlight. As expected only 6 months after Silverlight's introduction, the number of programming books carried on Amazon.com was also heavily skewed in favor of Flash."<p><a href="http://developers.slashdot.org/article.pl?sid=08/03/07/1443208&amp;from=rss">Read more of this story</a> at Slashdot.</p>
<p><a href="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?a=difRvl"><img border="0" src="http://rss.slashdot.org/~a/Slashdot/slashdotDevelopers?i=difRvl"/></a></p><img height="1" src="http://rss.slashdot.org/~r/Slashdot/slashdotDevelopers/~4/247437060" width="1"/></div>
    </summary>
    <updated>2008-03-07T21:50:23Z</updated>
    <category term="windows"/><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://developers.slashdot.org/article.pl?sid=08/03/07/1443208&amp;from=rss</feedburner:origlink>
    <author>
      <name>kdawson</name>
    </author>
    <source>
      <id>http://developers.slashdot.org/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>help@slashdot.org</email>
      </author>
      <link href="http://developers.slashdot.org/" rel="alternate" type="text/html"/>
      <link href="http://developers.slashdot.org/developers.rss" rel="self" type="application/rdf+xml"/>
      <rights>Copyright 1997-2006, OSTG - Open Source Technology Group, Inc.  All Rights Reserved.</rights>
      <subtitle>News for nerds, stuff that matters</subtitle>
      <title>Slashdot: Developers</title>
      <updated>2008-03-09T20:40:38Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://use.perl.org/~Ovid/journal/35856?from=rss</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/247305442/35856" rel="alternate" type="text/html"/>
    <title xml:lang="en-us">Catalyst:  More Lessons in How Not To Write An Application</title>
    <content type="xhtml" xml:lang="en-us"><div xmlns="http://www.w3.org/1999/xhtml"><p>Trying to figure out the source of a method in one of our Catalyst controllers. Our controller inherited from one of our controller base classes.  That, in turn, inherited from the deprecated <tt>Catalyst::Base</tt> which, in turn, does nothing but inherit from <tt>Catalyst::Controller</tt>, which inherits from <em>three</em> different classes.  Two of those inherit from two classes each, which in turn ...</p>

<p>Let's see if I can figure this out our inheritance heirarchy so I can tell where that method is coming from:</p> <p/><blockquote> <div><tt>Our::Controller<br/>    Our::ControllerBase<br/>        Catalyst::Base (deprecated passthrough)<br/>            Catalyst::Controller<br/>                Catalyst::Component<br/>                    Class::Accessor::Fast<br/>                        Class::Accessor<br/>                    Class::Data::Inheritable<br/>                Catalyst::AttrContainer<br/>                    Class::Accessor::Fast<br/>                        Class::Accessor<br/>                    Class::Data::Inheritable<br/>                  Class::Accessor::Fast<br/>                      Class::Accessor<br/>    Catalyst::Controller::REST<br/>        Catalyst::Controller<br/>            Catalyst::Component<br/>                Class::Accessor::Fast<br/>                    Class::Accessor<br/>                Class::Data::Inheritable<br/>            Catalyst::AttrContainer<br/>                Class::Accessor::Fast<br/>                    Class::Accessor<br/>                Class::Data::Inheritable<br/>              Class::Accessor::Fast<br/>                  Class::Accessor</tt></div> </blockquote>  <p>Got that?</p>

<p>On the off chance that you're a Multiple Inheritance fanboy, I don't think I'm going to say anything right now.  I'm on the verge of profanity.  MI is a tool of <em>last</em> resort (no, I'm not saying it's always the wrong answer).  Today there are so many excellent alternatives that you really have no excuse for using MI other than "I don't like change".</p><p/><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/247305442" width="1"/></div>
    </content>
    <updated>2008-03-07T21:41:53Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://use.perl.org/~Ovid/journal/35856?from=rss</feedburner:origlink>
    <author>
      <name>Curtis Poe</name>
      <uri>http://use.perl.org/~Ovid/journal/</uri>
    </author>
    <source>
      <id>http://use.perl.org/~ovid/journal/rss</id>
      <link href="http://use.perl.org/~ovid/journal/rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-us">use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle xml:lang="en-us">Ovid's use Perl Journal</subtitle>
      <title xml:lang="en-us">Ovid's Journal</title>
      <updated>2008-03-09T15:41:07Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://use.perl.org/article.pl?sid=08/03/07/1725220&amp;from=rss</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/247518977/article.pl" rel="alternate" type="text/html"/>
    <title xml:lang="en-us">YAPC::NA 2008 CFP Deadline Quickly Approaching</title>
    <content type="xhtml" xml:lang="en-us"><div xmlns="http://www.w3.org/1999/xhtml">The CFP for YAPC::NA 2008 officially ends on March 15th, so get your submissions in soon. Though we actually have had an amazing number of pre-deadline submissions (typically the last few days are when the floodgates open), we could still use some more. There are spots open for talks ranging from 20 minute overviews to longer 90 minute sessions. This year, we are also doing hands-on workshops in the conference center computer lab. Any projects that want to try to recruit some new hackers should sign up for hosting one of these informal learning sessions.<p><a href="http://use.perl.org/article.pl?sid=08/03/07/1725220&amp;from=rss">Read more of this story</a> at use Perl.</p><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/247518977" width="1"/></div>
    </content>
    <updated>2008-03-07T21:41:53Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://use.perl.org/article.pl?sid=08/03/07/1725220&amp;from=rss</feedburner:origlink>
    <author>
      <name>use.perl</name>
      <uri>http://use.perl.org/</uri>
    </author>
    <source>
      <id>http://use.perl.org/index.rss</id>
      <link href="http://use.perl.org/index.rss" rel="self" type="application/atom+xml"/>
      <rights xml:lang="en-us">use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle xml:lang="en-us">All the Perl that's Practical to Extract and Report</subtitle>
      <title xml:lang="en-us">use Perl</title>
      <updated>2008-03-09T03:41:42Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://lwn.net/Articles/271240/</id>
    <link href="http://lwn.net/Articles/271240/" rel="alternate" type="text/html"/>
    <title>LWN.net Weekly Edition for March 6, 2008</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://lwn.net/Articles/271240/">http://lwn.net/Articles/271240/</a></div>
    </summary>
    <updated>2008-03-06T22:00:04Z</updated>
    <source>
      <id>http://lwn.net/</id>
      <author>
        <name>Linux Weekly News</name>
      </author>
      <link href="http://lwn.net/" rel="alternate" type="text/html"/>
      <link href="http://www.chrisdolan.net/rss/lwn.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Highlighted articles from LWN.net</subtitle>
      <title>LWN weekly news and features</title>
      <updated>2008-03-09T21:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://osnews.com/story/19435/Progress</id>
    <link href="http://osnews.com/story/19435/Progress" rel="alternate" type="text/html"/>
    <title>Progress</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><center><img alt="Progress." border="1" height="502" src="http://www.osnews.com/images/comics/progress.jpg" title="Progress." width="500"/></center></div>
    </summary>
    <updated>2008-03-06T21:59:48Z</updated>
    <category term="Focus Shift"/>
    <author>
      <name>Thom Holwerda</name>
      <email>donotreply@osnews.com</email>
    </author>
    <source>
      <id>http://www.osnews.com/comics</id>
      <logo>http://www.osnews.com/images/osnews.gif</logo>
      <link href="http://www.osnews.com/comics" rel="alternate" type="text/html"/>
      <link href="http://osnews.com/files/comics.xml" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2001-2008, David Adams</rights>
      <subtitle>OSNews Comics: the humorous side of technology news</subtitle>
      <title>OSNews Comics</title>
      <updated>2008-03-09T21:00:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://annocpan.org/~REATMON/Net-HTTPServer-1.1.1/lib/Net/HTTPServer.pm#note_1832</id>
    <link href="http://annocpan.org/~REATMON/Net-HTTPServer-1.1.1/lib/Net/HTTPServer.pm#note_1832" rel="alternate" type="text/html"/>
    <title>Net::HTTPServer</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Net::HTTPServer does not handle large responses. To enable this support by breaking up large responses, change the _send function within:
if (ref($data) eq "") { ...</p>
<p>to:
if (ref($data) eq "") 
{
        if (length($data) &gt; 1024) {
                my @data_chunks = unpack "a1024" x ((length($data)/1024)-1) . "a*", $data;
                foreach my $chunk (@data_chunks) {
                        $self-&gt;_debug("SEND","_send: $chunk");
                        return unless defined($self-&gt;_send_data($sock,$chunk));
                }
        }
        else {
                $self-&gt;_debug("SEND","_send: $data");
                return unless defined($self-&gt;_send_data($sock,$data));
        }
}
</p></div>
    </summary>
    <updated>2008-03-06T21:59:02Z</updated>
    <author>
      <name>NEinwechter</name>
    </author>
    <source>
      <id>http://annocpan.org</id>
      <category term="Perl"/>
      <author>
        <name/>
        <email>itub@cpan.org</email>
      </author>
      <link href="http://annocpan.org" rel="alternate" type="text/html"/>
      <link href="http://annocpan.org/recent.rss" rel="self" type="application/rdf+xml"/>
      <rights>Redistributable under the same terms as Perl itself</rights>
      <subtitle>AnnoCPAN Recent Notes</subtitle>
      <title>AnnoCPAN Recent Notes</title>
      <updated>2008-03-09T20:59:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://annocpan.org/~ABIGAIL/Regexp-Common-2.120/lib/Regexp/Common.pm#note_1831</id>
    <link href="http://annocpan.org/~ABIGAIL/Regexp-Common-2.120/lib/Regexp/Common.pm#note_1831" rel="alternate" type="text/html"/>
    <title>Regexp::Common</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>See also: <a href="http://annocpan.org/perldoc?Regexp::Common::Email::Address">Regexp::Common::Email::Address</a>.</p></div>
    </summary>
    <updated>2008-03-06T21:59:02Z</updated>
    <author>
      <name>pjf</name>
    </author>
    <source>
      <id>http://annocpan.org</id>
      <category term="Perl"/>
      <author>
        <name/>
        <email>itub@cpan.org</email>
      </author>
      <link href="http://annocpan.org" rel="alternate" type="text/html"/>
      <link href="http://annocpan.org/recent.rss" rel="self" type="application/rdf+xml"/>
      <rights>Redistributable under the same terms as Perl itself</rights>
      <subtitle>AnnoCPAN Recent Notes</subtitle>
      <title>AnnoCPAN Recent Notes</title>
      <updated>2008-03-09T20:59:36Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~jmcada/journal/35847?from=rss</id>
    <link href="http://use.perl.org/~jmcada/journal/35847?from=rss" rel="alternate" type="text/html"/>
    <title>Perl @ Flourish</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">The organizers of <a href="http://www.flourishconf.com/">Flourish</a> are of course looking for attendees for their conference, but they are also looking for something else... top-notch Perl web developers.  They are having a web programming showdown using a variety of languages and frameworks.  Perl is on the list, but is currently under-represented.  They are looking to invite the best-of-the-best in each language, preferably people who are noted contributors to the particular language or platform that they'll be developing in.  Because of this demanding criteria, they are willing to talk about helping out with travel, etc.  Please contact me, Josh McAdams (joshua dot mcadams at gmail dot com) if you are interested.</div>
    </summary>
    <updated>2008-03-06T21:58:56Z</updated>
    <category term="journal"/>
    <author>
      <name>jmcada</name>
    </author>
    <source>
      <id>http://use.perl.org/~jmcada/journal/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/~jmcada/journal/" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/~jmcada/journal/rss" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>jmcada's use Perl Journal</subtitle>
      <title>jmcada's Journal</title>
      <updated>2008-03-07T21:59:05Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://weblogs.mozillazine.org/asa/archives/2008/03/activities_for.html</id>
    <link href="http://weblogs.mozillazine.org/asa/archives/2008/03/activities_for.html" rel="alternate" type="text/html"/>
    <title>Asa Dotzler: "activities" for firefox</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>If you didn't think think IE 8's "activities" were a derivative of Mozilla's microformats work then check out <a href="http://www.kaply.com/weblog/2008/03/05/microsoft-activities-for-firefox/">Mike Kapley's add-on</a>. </p></div>
    </summary>
    <updated>2008-03-06T21:58:18Z</updated>
    <source>
      <id>http://feedhouse.mozillazine.org/</id>
      <author>
        <name>Planet Mozillazine</name>
      </author>
      <link href="http://feedhouse.mozillazine.org/" rel="alternate" type="text/html"/>
      <link href="http://feedhouse.mozillazine.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>mozillaZine feedHouse - http://feedhouse.mozillazine.org/</subtitle>
      <title>mozillaZine feedHouse</title>
      <updated>2008-03-09T20:59:00Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://weblogs.mozillazine.org/gerv/archives/2008/03/breathtaking_ui_award_linksys.html</id>
    <link href="http://weblogs.mozillazine.org/gerv/archives/2008/03/breathtaking_ui_award_linksys.html" rel="alternate" type="text/html"/>
    <title>Gervase Markham: Breathtaking UI Award: Linksys</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>Six months ago I had to set up a Linksys Access Point (WAP54G) as a wireless repeater in my house, to get the wireless signal from my Wireless-G Broadband Router (WRT54G) to reach the attic. It was a painful process, and the main reason it was painful was trying to get the correct value on the repeater for the setting labelled "Remote Access Point's LAN MAC Address". This is how it knows where to send all the relayed traffic to.</p>

<p>How hard can this be? You go to your WRT54G router, click "Status", and there it is: a field labelled "MAC Address". Just copy that in, right? However, that's the MAC address for the wired side. So, despite the fact that the field is labelled "LAN MAC address", if you enter the MAC address the router uses on the LAN, nothing works! It's not the "LAN MAC Address" at all - it's precisely the other one, the MAC address from the Status/Wireless subtab. Doh! A "Breathtaking UI" award to Linksys, I think.</p>

<p>(This is a bit geeky, but I also want to document it to try and avoid anyone else having to suffer through this.)</p></div>
    </summary>
    <updated>2008-03-06T21:58:14Z</updated>
    <source>
      <id>http://feedhouse.mozillazine.org/</id>
      <author>
        <name>Planet Mozillazine</name>
      </author>
      <link href="http://feedhouse.mozillazine.org/" rel="alternate" type="text/html"/>
      <link href="http://feedhouse.mozillazine.org/rss20.xml" rel="self" type="application/rss+xml"/>
      <subtitle>mozillaZine feedHouse - http://feedhouse.mozillazine.org/</subtitle>
      <title>mozillaZine feedHouse</title>
      <updated>2008-03-09T20:58:54Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://perlbuzz.com/mechanix/2008/03/develnytprof-is-the-hot-new-pr.html</id>
    <link href="http://perlbuzz.com/mechanix/2008/03/develnytprof-is-the-hot-new-pr.html" rel="alternate" type="text/html"/>
    <title>Devel::NYTProf is the hot new profiler in town</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Adam Kaplan has released a cool new profiling tool, <a href="http://search.cpan.org/dist/Devel-NYTProf/">Devel::NYTProf</a>.  It's apparently taken the formatting beauty of <a href="http://search.cpan.org/dist/Devel-Coverf/">Devel::Cover</a>, the code test coverage tool, and used it to identify hotspots in your code.  The results are beautiful: <a href="http://graphics8.nytimes.com/images/blogs/open/05screenshotindex.png">Overview</a> and <a href="http://graphics8.nytimes.com/images/blogs/open/05screenshotprofile.png">module-level detail</a>.  There's also a report writer that provides CSV output and lets you create your own output in your own format.
</p>
<p>
I ran into a divide-by-zero error that I patched in my local copy, but other than that the results seem good.  I look forward to whatever other improvements come.  I'm also glad it's been <a href="http://perlbuzz.com/2008/03/more-companies-openly-supporting-perl-projects.html">released with the support of the New York Times</a>.
</p></div>
    </summary>
    <updated>2008-03-06T21:56:25Z</updated>
    <category scheme="http://www.sixapart.com/ns/types#category" term="Tools"/>
    <category scheme="http://www.sixapart.com/ns/types#tag" term="Adam Kaplan"/>
    <category scheme="http://www.sixapart.com/ns/types#tag" term="Devel::Cover"/>
    <category scheme="http://www.sixapart.com/ns/types#tag" term="Devel::NYTProf"/>
    <source>
      <id>http://perlbuzz.com/mechanix/</id>
      <author>
        <name>Perl Buzz Mechanix</name>
      </author>
      <link href="http://perlbuzz.com/mechanix/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/PerlBuzzMechanix" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008</rights>
      <subtitle>Code, tech and getting dirt under your fingernails</subtitle>
      <title>Mechanix</title>
      <updated>2008-03-09T20:56:32Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://cosmos-liturgy-sex.com/2008/03/06/first-you-need-enlightenment-and-then-you-need-atonement/</id>
    <link href="http://cosmos-liturgy-sex.com/2008/03/06/first-you-need-enlightenment-and-then-you-need-atonement/" rel="alternate" type="text/html"/>
    <title>First You Need Enlightenment and Then You Need Atonement</title>
    <summary>In January, Shelray did a post about a San Francisco man suing a Catholic Hospital in Daly City for refusing to give him a sex change operation. Well apparently the hospital caved under the pressure of a court order according to an EWTN feed from CWN. This is most unfortunate but I suppose that it is encouraging that they resisted to start with. However, what is problematic is that the hospital is said to have released the following statement: “We regret any confusion that may have come from th</summary>
    <updated>2008-03-06T21:56:10Z</updated>
    <source>
      <id>http://technorati.com/search/%22chris+dolan%22</id>
      <logo>http://static.technorati.com/pix/logos/logo_sm.gif</logo>
      <author>
        <name>Other Chris Dolans</name>
      </author>
      <link href="http://technorati.com/search/%22chris+dolan%22" rel="alternate" type="text/html"/>
      <link href="http://www.technorati.com/watchlists/rss.html?wid=82555" rel="self" type="application/rss+xml"/>
      <subtitle>Technorati search for "chris dolan"</subtitle>
      <title>Technorati Search for: "chris dolan"</title>
      <updated>2008-03-09T20:56:12Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://www.macrumors.com/2008/03/05/apple-preparing-10-4-12-update-for-tiger/</id>
    <link href="http://www.macrumors.com/2008/03/05/apple-preparing-10-4-12-update-for-tiger/" rel="alternate" type="text/html"/>
    <title>Apple Preparing 10.4.12 Update For Tiger?</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Macenstein percolates a rumor that Apple is preparing a final update to Mac OS 10.4 "Tiger", bringing the system version to 10.4.12.<p class="quote">We have it on good authority (meaning this is a rumor, and “good authority” could mean anything) that...</p><img height="1" src="http://feeds.macrumors.com/~r/MacRumors-Page2/~4/246451798" width="1"/></div>
    </summary>
    <updated>2008-03-06T21:56:04Z</updated>
    <source>
      <id>http://page2.macrumors.com</id>
      <author>
        <name>Mac Rumors, Page 2</name>
      </author>
      <link href="http://page2.macrumors.com" rel="alternate" type="text/html"/>
      <link href="http://feeds.macrumors.com/MacRumors-Page2" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2003-2008, MacRumors.com</rights>
      <subtitle>more mac news and rumors</subtitle>
      <title>MacRumors Page 2</title>
      <updated>2008-03-09T20:56:05Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://taint.org/2008/03/06/124737a.html</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/246709681/124737a.html" rel="alternate" type="text/html"/>
    <title xml:lang="en">Announcing IrishPulse</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>As <a href="http://taint.org/2008/02/26/121227a.html">I previously threatened</a>, I’ve
gone ahead and created a “Microplanet” for Irish twitterers, similar to
Portland’s <a href="http://pulseofpdx.com/">Pulse of PDX</a> — an aggregator of the
“stream of consciousness” that comes out of our local Twitter community: <strong><a href="http://irishpulse.taint.org/">IrishPulse</a></strong>.</p>

<p>Here’s what you can do:</p>

<p><strong>Add yourself</strong>: if you’re an Irish Twitter user, <a href="http://twitter.com/irishpulse">follow the user ‘irishpulse’</a>.  This will add you to the sources list.</p>

<p><strong>Publicise it</strong>: feel free to pass on the URL to other Irish Twitter users, and blog about it.</p>

<p><strong>Read it</strong>: bookmark and take a look now and again!</p>

<p>In terms of implementation, it’s just a (slightly patched) copy of
<a href="http://intertwingly.net/code/venus/">Venus</a> and a perl script using
<a href="http://search.cpan.org/dist/Net-Twitter/">Net::Twitter</a> to generate an OPML file
of the Twitter followers.  <a href="http://taint.org/wk/PulseSource">Here’s the source</a>.  I’d love to see more “Pulse” sites using this…</p><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/246709681" width="1"/></div>
    </content>
    <updated>2008-03-06T21:43:49Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://taint.org/2008/03/06/124737a.html</feedburner:origlink>
    <author>
      <name>Justin Mason</name>
      <uri>http://taint.org</uri>
    </author>
    <source>
      <id>http://taint.org/feed/</id>
      <link href="http://taint.org/feed/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">incoherent ramblings about anti-spam, perl, software development, and the web</subtitle>
      <title xml:lang="en">taint.org: Justin Mason's Weblog</title>
      <updated>2008-03-09T20:21:31Z</updated>
    </source>
  </entry>

  <entry>
    <id>tag:perlbuzz.com,2008://1.362</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/246561362/more-companies-openly-supporting-perl-projects.html" rel="alternate" type="text/html"/>
    <title>More companies openly supporting Perl projects</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>
More companies are showing their support for open source projects, and I couldn't be happier about it.
</p>
<p>
Those of you following <a href="http://use.perl.org/~Ovid/journal/">Ovid's blog on use.perl.org</a>, or reading his code improvements in the <a href="http://lists.cpan.org/showlist.cgi?name=perl-qa">perl-qa mailing list</a>, should give thanks to the <a href="http://bbc.co.uk/">BBC</a> for supporting his Perl work.  It's not all philanthropic, of course, since the BBC wants good tools for themselves, but I love that they're letting Ovid hitch his stories to the BBC wagon.  That helps give Perl some credence in the eyes of open source skeptics.
</p>
<p>
Now, as you readers of <a href="http://perlbuzz.com/mechanix/">Mechanix</a> know, <a href="http://perlbuzz.com/mechanix/2008/03/develnytprof-is-the-hot-new-pr.html">Devel::NYTProf is the hot new profiler in town</a>.  Not only is the New York Times allowing code to be released, it turns out there's a blog, <a href="http://open.blogs.nytimes.com/">open.blogs.nytimes.com</a>, where <a href="http://open.blogs.nytimes.com/2008/03/05/the-new-york-times-perl-profiler/">Adam Kaplan announced the module</a>.  I love that a company that's not (exactly) in the software business is blogging about their open source software work.  Let's hope it's a light in the darkness that others will lend their illumination to as well.
</p>

        
    <img height="1" src="http://feeds.feedburner.com/~r/PerlBuzz/~4/246554808" width="1"/><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/246561362" width="1"/></div>
    </content>
    <updated>2008-03-06T21:43:49Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feeds.feedburner.com/~r/PerlBuzz/~3/246554808/more-companies-openly-supporting-perl-projects.html</feedburner:origlink>
    <author>
      <name>Andy Lester</name>
      <uri>http://perlbuzz.com/</uri>
    </author>
    <source>
      <id>tag:perlbuzz.com,2007-08-06://1</id>
      <link href="http://feeds.feedburner.com/PerlBuzz" rel="self" type="application/atom+xml"/>
      <subtitle>The newest and best of the Perl World.  Email your news updates to editors@perlbuzz.com</subtitle>
      <title>Perl Buzz</title>
      <updated>2008-03-08T18:21:15Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://blog.plover.com/2008/03/06#qmail-throttle</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/246872631/06" rel="alternate" type="text/html"/>
    <title xml:lang="en">Throttling qmail</title>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml">This may well turn out to be another oops.  Sometimes when I screw
around with the mail system, it's a big win, and <a href="http://blog.plover.com/oops/multiple-connections.html">sometimes it's a big
lose</a>.  I don't know yet how this will turn out.<p>

Since I moved house, I have all sorts of internet-related problems
that I didn't have before.  I used to do business with a small ISP,
and I ran my own web server, my own mail service, and so on.  When
something was wrong, or I needed them to do something, I called or
emailed and they did it.  Everything was fine.</p><p>

Since moving, my ISP is Verizon.  I have great respect for Verizon as a
provider of telephone services.  They have been doing it for over a
hundred years, and they are good at it.  Maybe in a hundred years they
will be good at providing computer network services too.  Maybe it
will take less than a hundred years.  But I'm not as young as I once
was, and whenever that glorious day comes, I don't suppose I'll be around
to see it.</p><p>

One of the unexpected problems that arose when I switched ISPs was
that Verizon helpfully blocks incoming access to port 80.  I had moved
my blog to outside hosting anyway, because the blog was consuming too
much bandwidth, so I moved the other plover.com web services to the
same place.  There are still some things that don't work, but I'm
dealing with them as I have time.</p><p>

Another problem was that a lot of sites now rejected my SMTP
connections.  My address was in a different netblock.  A Verizon DSL
netblock.  Remote SMTP servers assume that anybody who is dumb enough
to sign up with Verizon is also too dumb to run their own MTA.  So any
mail coming from a DSL connection in Verizonland <i>must</i> be spam,
probably generated by some Trojan software on some infected Windows
box.</p><p>

The solution here (short of getting rid of Verizon) is to relay the
mail through Verizon's SMTP relay service.  <tt>mail.plover.com</tt>
sends to <tt>outgoing.verizon.net</tt>, and
let <tt>outgoing.verizon.net</tt> forward the mail to its final
destination.  Fine.</p><p>

But but but. </p><p>

If my machine sends more than <i>X</i> messages per
<i>Y</i> time, <tt>outgoing.verizon.net</tt> will assume that
<tt>mail.plover.com</tt> has been taken over by a Trojan spam
generator, and cut off access.  All outgoing mail will be rejected with a
permanent failure.</p><p>

So what happens if someone sends a message to one of the
500-subscriber email lists that I host here?  <tt>mail.plover.com</tt>
generates 500 outgoing messages, sends the first hundred or so through
Verizon.  Then Verizon cuts off my mail service.  The mailing list
detects 400 bounce messages, and unsubscribes 400 subscribers.  If any
mail comes in for another mailing list before Verizon lifts my ban,
<i>every</i> outgoing message will bounce and <i>every</i> subscriber
will be unsubscribed.</p><p>

One solution is to get a better mail provider.  Lorrie has an
Earthlink account that comes with outbound mail relay service.  But
they do the same thing for the same reason.  My Dreamhost subscription
comes with an outbound mail relay service.  But they do the same thing
for the same reason.  My <tt>Pobox.com</tt> account comes with an
<i>unlimited</i> outbound mail relay service.  But they require SASL
authentication.  If there's SASL patch for <tt>qmail</tt>, I haven't been able
to find it.  I could implement it myself, I suppose, but I don't
wanna.</p><p>

So far there are at least five solutions that are on the "eh, maybe,
if I have to" list:</p><p>

</p><ul>
  <li>Get a non-suck ISP
  </li><li>Find a better mail relay service
  </li><li>Hack SASL into <tt>qmail</tt> and send mail through <tt>Pobox.com</tt>
  </li><li>Do some skanky thing with <tt>serialmail</tt>
  </li><li>Get rid of <tt>qmail</tt> in favor of postfix, which presumably supports SASL
</li></ul>

(Yeah, I know the Postfix weenies in the audience are shaking their
heads sadly and wondering when the scales will fall from my eyes.
They show up at my door every Sunday morning in their starched white
shirts and their pictures of DJB with horns and a pointy tail...)<p>



It also occurred to me in the shower this morning that the old ISP might be
willing to sell me mail relaying and nothing else, for a small fee.
That might be worth pursuing.  It's gotta be easier than turning <tt>qmail-remote</tt>
into a
SASL mail client.</p><p>




The <tt>serialmail</tt> thing is worth a couple of sentences, because there's an
autoresponder on the <tt>qmail-users</tt> mailing-list that replies with "Use <tt>serialmail</tt>.  This is discussed
in the archives." whenever someone says the word "throttle".  The <tt>serialmail</tt>
suite, also written by Daniel J. Bernstein, takes a
maildir-format directory and posts every message in it to some remote
server, one message at a time.  Say you want to run <tt>qmail</tt> on your laptop.
Then you arrange to have <tt>qmail</tt> deliver all its mail into a maildir, and
then when your laptop is connected to the network, you run <tt>serialmail</tt>, and it
delivers the mail from the maildir to your mail relay host.  <tt>serialmail</tt> is
good for some throttling problems.  You can run <tt>serialmail</tt> under control of a
daemon that will cut off its network connection after it has written a
certain amount of data, for example.  But there seems to be no easy
way to do what I want with <tt>serialmail</tt>, because it always wants to deliver
<i>all</i> the messages from the maildir, and I want it to deliver
<i>one</i> message.</p><p>

There have been some people on the <tt>qmail-users</tt> mailing-list asking for something close to
what I want, and sometimes the answer was "<tt>qmail</tt> was designed to deliver
mail as quickly and efficiently as possible, so it won't do what you
want."  This is a variation of "Our software doesn't do what you want,
so I'll tell you that you shouldn't want to do it."  That's another
rant for another day.  Anyway, I shouldn't badmouth <tt>qmail-users</tt> mailing-list, because the
archives did get me what I wanted.  It's only a stopgap solution, and
it might turn out to be a big mistake, but so far it seems okay, and
so at last I am coming to the point of this article.</p><p>

I hacked <tt>qmail</tt> to support outbound message rate throttling.  Following <a href="http://www.gossamer-threads.com/lists/qmail/users/121426#121426">a
suggestion of Richard Lyons</a> from the <tt>qmail-users</tt> mailing-list, it was much easier to do than I had
initially thought.</p><p>

Here's how it works.  Whenever <tt>qmail</tt> wants to try to deliver a message to
a remote address, it runs a program called <tt>qmail-remote</tt>.  <tt>qmail-remote</tt> is responsible for
looking up the MX records for the host, contacting the right server,
conducting the SMTP conversation, and returning a status code back to
the main component.  Rather than hacking directly on <tt>qmail-remote</tt>, I've
replaced it with a wrapper.  The real <tt>qmail-remote</tt> is now in
<tt>qmail-remote-real</tt>.  The <tt>qmail-remote</tt> program is now written in Perl.
It maintains a log file recording the times at which the last few
messages were sent.  When it runs, it reads the log file, and a policy
file that says how quickly it is allowed to send messages.  If it is
okay to send another message, the Perl program appends the current
time to the log file and invokes the real <tt>qmail-remote</tt>.  Otherwise, it sleeps
for a while and checks again.</p><p>

The program is not strictly correct.  It has some race conditions.
Suppose the policy limits <tt>qmail</tt> to sending 8 messages per minute.  Suppose
7 messages have been sent in the last minute.  Then six instances of
<tt>qmail-remote</tt> might all run at once, decide that it is OK to send a message, and send
one.  Then 13 messages have been sent in the last minute, which
exceeds the policy limit.  So far this has not been much of a
problem.  It's happened twice in the last few hours that the system
sent 9 messages in a minute instead of 8.  If it worries me too much,
I can tell <tt>qmail</tt> to run only one <tt>qmail-remote</tt> at a time, instead of 10.  On a normal
<tt>qmail</tt> system, <tt>qmail</tt> speeds up outbound delivery by running multiple <tt>qmail-remote</tt>
processes concurrently.  On my crippled system, speeding up outbound
delivery is just what I'm trying to avoid.  Running at most one <tt>qmail-remote</tt> at
a time will cure all race conditions.  If I were doing the project
over, I think I'd take out all the file locking and such, and just run
one <tt>qmail-remote</tt>.   But I didn't think of it in time, and for now I think I'll
live with the race conditions and see what happens.</p><p>

So let's see?  What else is interesting about this program?  I made
at least one error, and almost made at least one more.</p><p>



The almost-error was this:  The original design for the program was
something like:</p><p>

</p><ol>
<li>        do
  <ul>
  <li>        lock the history file, read it, and unlock it
  </li></ul>
        until it's time to send a message

</li><li>        lock the history file, update it, and unlock it

</li><li>        send the message
</li></ol>

This is a classic mistake in writing programs that run concurrently
and update a file.  The problem is that process <i>A</i>
update the file after  process <i>B</i> reads but before <i>B</i>
updates it.  Then <i>B</i>'s update will destroy <i>A</i>'s.<p>

One way to fix this is to have the processes append to the history
file, but never remove anything from it.  That is clearly not a
sustainable strategy.    Someone must remove expired entries from the
history file.</p><p>

Another fix is to have the read and the update in the same critical
section:</p><p>

</p><ol>
<li>        lock the history file
</li><li>        do
<ul><li>          read the history file
</li></ul>        until it's time to send a message

</li><li>        update the history file and unlock it
</li><li>        send the message
</li></ol>

But that loop could take a long time, during which no other <tt>qmail-remote</tt> process
can make progress.  I had decided that I wanted to try to retain the
concurrency, and so I wasn't willing to accept this.<p>

Cleaning the history file could be done by a separate process that
periodically locks the file and rewrites it.  But instead, I have the <tt>qmail-remote</tt>
processes to it on the fly:</p><p>

</p><ol>
<li>        do
<ul><li>          lock the history file, read it, and unlock it
</li></ul>        until it's time to send a message

</li><li>        lock the history file, read it, update it, and unlock it

</li><li>        send the message
</li></ol>

I'm happy that I didn't actually make this mistake.  I only thought
about it.<p>

Here's a mistake that I <i>did</i> make.    This is the block of code
that sleeps until it's time to send the message:</p><p>

</p><pre>          while (@last &gt;= $msgs) {
            my $oldest = $last[0];
            my $age = time() - $oldest;
            my $zzz = $time - $age + int(rand(3));
            $zzz = 1 if $zzz  1;
       #    Log("Sleeping for $zzz secs");
            sleep $zzz;
            shift @last while $last[0] &lt; time() - $time;
            load_policy();
          }
</pre>

The throttling
policy is expressed by two numbers, <tt>$msgs</tt> and <tt>$time</tt>,
and the program tries to send no more than <tt>$msgs</tt> messages per
<tt>$time</tt> seconds.  The <tt>@last</tt> array contains a list of
Unix epoch timestamps of the times at which the messages of the last
<tt>$time</tt> seconds were sent.
So the loop condition checks to see if fewer than <tt>$msgs</tt>
messages were sent in the last <tt>$time</tt> seconds.  If not, the
program continues immediately, possibly posting its message.  (It
rereads the history file first, in case some other messages have been
posted while it was asleep.)
<p>

Otherwise the program will sleep for a while.  The first three lines
in the loop calculate how long to sleep for.  It sleeps until the time
the oldest message in the history will fall off the queue, possibly
plus a second or two.  Then the crucial line:</p><p>

</p><pre>            shift @last while $last[0] &lt; time() - $time;
</pre>

which discards the expired items from the history.  Finally, the call
to <tt>load_policy()</tt> checks to see if the policy has changed, and
the loop repeats if necessary.<p>

The bug is in this crucial line.  if <tt>@last</tt> becomes  empty,
this line turns into an infinite busy-loop.  It should have been:</p><p>

</p><pre>            shift @last while @last &amp;&amp; $last[0] &lt; time() - $time;
</pre>

Whoops.  I noticed this this morning when my system's load was around
12, and eight or nine <tt>qmail-remote</tt> processes were collectively eating 100% of
the CPU.  I would have noticed sooner, but outbound deliveries hadn't
come to a complete halt yet.<p>

Incidentally, there's another potential problem here arising from the
concurrency.  A process will complete the sleep loop in at most
<tt>$time</tt>+3 seconds. But then it will go back and reread the history
file, and it may have to repeat the loop.  This could go on
indefinitely if the system is busy.  I can't think of a good way to
fix this without getting rid of the concurrent <tt>qmail-remote</tt> processes.</p><p>

<a href="http://pic.blog.plover.com/Unix/qmail-throttle/qmail-remote-throttle">Here's the code</a>.  I
hereby place it in the public domain.  It was written between 1 AM and
3 AM last night, so don't expect too much.</p><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><p/><img height="1" src="http://feeds.feedburner.com/~r/PlanetPerl/~4/246872631" width="1"/></div>
    </content>
    <updated>2008-03-06T21:43:49Z</updated><feedburner:origlink xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://blog.plover.com/2008/03/06#qmail-throttle</feedburner:origlink>
    <author>
      <name>Mark Jason Dominus</name>
      <uri>http://blog.plover.com</uri>
    </author>
    <source>
      <id>http://blog.plover.com/index.rss</id>
      <link href="http://blog.plover.com/index.rss" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">The Universe of Discourse (Mark Dominus Blog)</subtitle>
      <title xml:lang="en">The Universe of Discourse</title>
      <updated>2008-03-09T13:01:43Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://webkit.org/blog/158/the-acid-3-test/</id>
    <link href="http://webkit.org/blog/158/the-acid-3-test/" rel="alternate" type="text/html"/>
    <title xml:lang="en">The Acid 3 Test</title>
    <summary xml:lang="en">The Acid 3 Test has been officially released.  The test has been in development for some time, with much of that development happening in the open.
The Acid 3 test is far more complex than the Acid 2 test.  It covers a wider range of standards and consists of many more individual tests.  [...]</summary>
    <content type="xhtml" xml:lang="en"><div xmlns="http://www.w3.org/1999/xhtml"><p>The <a href="http://acid3.acidtests.org/">Acid 3 Test</a> has been <a href="http://www.webstandards.org/press/releases/20080303/">officially released</a>.  The test has been in development for some time, with much of that development happening in the open.</p>
<p>The Acid 3 test is far more complex than the Acid 2 test.  It covers a wider range of standards and consists of many more individual tests.  Browsers have to render a sequence of boxes that display dynamically in a stairstep pattern.  For every cluster of tests passed successfully, the boxes will fill in with a color, which signifies that all of the tests covered by that block have passed.</p>
<p>If you run Acid 3 on the shipping versions of current browsers (Firefox 2, Safari 3, Opera 9, IE7), you’ll see that they all score quite low.  For example Safari 3 scores a 39/100.  This percentage score is a bit misleading however.  The situation with all four browser engines really isn’t that bad.</p>
<p>You can think of the Acid 3 test as consisting of 100 individual test suites.  In order for a browser engine to claim one of these precious 100 points, it has to pass a whole battery of tests around a specific standard.  In other words it’s like the browser is being asked to take 100 separate exams and score an A+ on each test in order to get any credit at all.  </p>
<p>The reality is that all of the browsers are doing much better than their scores would have you believe, since the engines are often passing a majority of the subtests and experiencing minor failures that cost them the point for that section.</p>
<p>Shipping Safari scores a 39/100 with some significant rendering errors.  We’ve been working hard since the test surfaced and are pleased to report that we’ve entered the “A” range on the test with a score of 90/100.  </p>
<p>So what did we fix to gain so many points?</p>
<p><a href="http://bugs.webkit.org/showdependencytree.cgi?id=17064">Bug 17064</a> has all the details, but here are the highlights.</p>
<p><b>Support for CSS3 Selectors</b><br/>
We added support for all of the remaining CSS3 selectors.  These include selectors like nth-child, nth-of-type, last-child, last-of-type, etc.  These selectors were already implemented in KHTML, and the KHTML developers had even kindly provided patches for us in the relevant WebKit bugs.  Therefore it was a simple matter of taking those patches, updating them to the WebKit codebase, and then merging them in.  A big thanks to the KHTML developers for their hard work in this area.</p>
<p><b>Parsing Bugs</b><br/>
WebKit had a number of minor parsing bugs that Acid 3 targeted.  The boxes did not render properly because of an obscure parsing bug that the test exploited (thanks, Hixie).  In addition a number of other parsing bugs kept us from completely passing individual tests.  We have updated our parser to be much closer to the HTML5-specified parsing rules.</p>
<p>WebKit has also never parsed DOCTYPEs before.  I re-wrote WebKit’s DOCTYPE parsing to match the HTML5 specification, and so now if you put a DOCTYPE into your page it will be present in the DOM.  In addition many bugs centered around proper mode resolution (quirks vs. strict) have now been fixed.  You can document.write a DOCTYPE for example in a new document and have the correct mode be selected.</p>
<p><b>SVG</b><br/>
Acid3 has many SVG tests.  We’ve been hard at work making these tests pass.  In particular SVG font support and other aspects of the SVG DOM have been tested.  Many of the remaining 10 points are SVG failures.  We’ll be working on SVG animation in order to pass the last few SVG tests.</p>
<p><b>DOM</b><br/>
Acid3 tests a lot of DOM level 2 features, like traversal and ranges.  It particularly focuses on the “liveness” of objects, e.g., making sure everything updates properly when you dynamically change a document by adding/removing nodes.  Most of our failures in this area had to do with not behaving properly in the presence of these dynamic changes (even though we tended to pass the more static tests).</p>
<p>Now that we’re closing in on 100%, we’ll be blogging about each fix as it happens, so that you can follow our progress from the blog.</p></div>
    </content>
    <updated>2008-03-06T20:29:55Z</updated>
    <category scheme="http://webkit.org/blog" term="Uncategorized"/>
    <author>
      <name>Dave Hyatt</name>
    </author>
    <source>
      <id>http://webkit.org/blog/feed/atom/</id>
      <link href="http://webkit.org/blog" rel="alternate" type="text/html"/>
      <link href="http://webkit.org/blog/feed/atom/" rel="self" type="application/atom+xml"/>
      <subtitle xml:lang="en">All about WebKit development</subtitle>
      <title xml:lang="en">Surfin' Safari</title>
      <updated>2008-03-06T20:29:55Z</updated>
    </source>
  </entry>

  <entry>
    <id>urn:uuid:1a8dee3a-eb06-11dc-a302-b36c00dd6d4c</id>
    <link href="http://plasmasturm.org/log/496/" rel="alternate" type="text/html"/>
    <title>No credit where no credit is due</title>
    <summary>Internet Explorer 8 and the mercy of Microsoft</summary>
    <content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p><cite><a href="http://daringfireball.net/linked/2008/march#wed-05-z" title="Zeldman on Microsoft&#x2019;s IE8 Version Targeting Reversal">John Gruber</a></cite>:</p>
    <blockquote cite="http://daringfireball.net/linked/2008/march#wed-05-z"><p>I do think the <abbr title="Internet Explorer">IE</abbr> team deserves credit for having floating the idea for opt-in version targeting rather than just going ahead and implementing it.</p></blockquote>
    <p>Err, “floated the idea?” I thought what I read was an announcement of fait accompli. At no time did it strike me as though Microsoft left the issue open-ended. That they subsequently revoked their proclaimed decision came out of left field; would this have been the case if what they first did was in fact merely “floating the idea?”</p>
    <p>I’m glad that someone inside Microsoft apparently somehow managed to overrule someone else (whoever the people involved are), but I can find no way to interpret Microsoft’s initial course of action as commendable.</p>
    <p>Furthermore, <a href="http://meyerweb.com/eric/thoughts/2008/03/04/principles-and-legality/" title="Eric Meyer: Principles and Legality">the question Eric Meyer asked</a> is still open: even though Microsoft reneged on the most objectionable part of the announcement, the fact that <abbr title="Internet Explorer">IE</abbr> 8 will have three rendering modes, including a frozen-in-time one with all its implications for competitors, still stands.</p></div>
    </content>
    <updated>2008-03-05T22:47:16Z</updated>
    <source>
      <id>urn:uuid:41632386-0f0d-11da-9fcb-dd680b0526e0</id>
      <author>
        <name>Aristotle Pagaltzis</name>
        <email>pagaltzis@gmx.de</email>
      </author>
      <link href="http://plasmasturm.org/" rel="alternate" type="text/html"/>
      <link href="http://plasmasturm.org/feeds/plasmasturm/" rel="self" type="application/atom+xml"/>
      <subtitle>musings in human and machine language</subtitle>
      <title>plasmasturm.org</title>
      <updated>2008-03-05T22:47:16Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://lwn.net/Articles/271762/</id>
    <link href="http://lwn.net/Articles/271762/" rel="alternate" type="text/html"/>
    <title>NDISwrapper dodges another bullet</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><a href="http://lwn.net/Articles/271762/">http://lwn.net/Articles/271762/</a></div>
    </summary>
    <updated>2008-03-05T22:00:25Z</updated>
    <source>
      <id>http://lwn.net/</id>
      <author>
        <name>Linux Weekly News</name>
      </author>
      <link href="http://lwn.net/" rel="alternate" type="text/html"/>
      <link href="http://www.chrisdolan.net/rss/lwn.rss" rel="self" type="application/rss+xml"/>
      <subtitle>Highlighted articles from LWN.net</subtitle>
      <title>LWN weekly news and features</title>
      <updated>2008-03-09T21:00:38Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~ferreira/journal/35842?from=rss</id>
    <link href="http://use.perl.org/~ferreira/journal/35842?from=rss" rel="alternate" type="text/html"/>
    <title>Abusing "Memoize"</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
A few days ago, I was writing a code (namely the <a href="http://search.cpan.org/dist/Path-Classy">Path-Classy</a> dist) and stared at the code that produced the file size in raw bytes or "humanized" (28300 or 28K).
</p> <p/><blockquote> <div><tt>sub _format_size {<br/>  my ($sz, $opt) = @_;<br/> <br/>  my $format = $opt-&gt;{format};<br/>  if ( $format eq 'h' ) {<br/>    require Numbers::Bytes::Human;<br/>    return Number::Bytes::Human-&gt;new-&gt;format( $sz );<br/>  }<br/>  else { # raw bytes<br/>    return $sz;<br/>  }<br/>}</tt></div> </blockquote>  <p>
Of course, loading <code>Number::Bytes::Human</code> and creating a instance every time <code>$f-&gt;size({ format =&gt; 'h' })</code> was invoked seemed overkill. But saving the <code>N::B::H</code> into a class/instance variable seemed overkill too: it has nothing to do with <code>Path::Classy</code> (which are <code> <a href="http://search.cpan.org/perldoc?Path::Class">Path::Class</a> </code>) objects but for that instant relationship to format a file property, size.
</p>
<p>
Hey, that's a chance to use <a href="http://search.cpan.org/perldoc?Memoize">memoization</a>, splitting the formatter creation into a function and then memoizing it (so that we don't need to create a [reusable] object with the same capabilities over and over), we come to this code.
</p> <p/><blockquote> <div><tt>use Memoize;<br/> <br/>sub _size_formatter {<br/>  require Number::Bytes::Human;<br/>  return Number::Bytes::Human-&gt;new;<br/>}<br/>memoize('_size_formatter');<br/> <br/>sub _format_size {<br/>  my ($sz, $opt) = @_;<br/> <br/>  my $format = $opt-&gt;{format};<br/>  if ( $format eq 'h' ) {<br/>    return _size_formatter-&gt;format( $sz );<br/>  ...</tt></div> </blockquote>  <p>
That looked elegant to me. To make it even more tight (and to require yet another CPAN module ;-) ), using <code> <a href="http://search.cpan.org/perldoc?Attribute::Memoize">Attribute::Memoize</a> </code> seemed right. It avoids the need to repeat the function name in the <code>memoize</code> call and it anticipated the wrapping up of the sub to BEGIN time (a free bonus of <code> <a href="http://search.cpan.org/perldoc?Attribute::Handlers">Attribute::Handlers</a> </code> in the backstage).
</p> <p/><blockquote> <div><tt>use Attribute::Memoize;<br/> <br/>sub _size_formatter :Memoize {<br/>  require Number::Bytes::Human;<br/>  return Number::Bytes::Human-&gt;new;<br/>}</tt></div> </blockquote>  <p>
That's it! Efficient code, localized behavior, no need for extra variables. Will people understand that for maintenance? I hope so.
</p></div>
    </summary>
    <updated>2008-03-05T21:58:16Z</updated>
    <category term="journal"/>
    <author>
      <name>ferreira</name>
    </author>
    <source>
      <id>http://use.perl.org/~ferreira/journal/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/~ferreira/journal/" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/~ferreira/journal/rss" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>ferreira's use Perl Journal</subtitle>
      <title>ferreira's Journal</title>
      <updated>2008-03-09T20:58:31Z</updated>
    </source>
  </entry>

  <entry xml:lang="en-us">
    <id>http://use.perl.org/~Alias/journal/35841?from=rss</id>
    <link href="http://use.perl.org/~Alias/journal/35841?from=rss" rel="alternate" type="text/html"/>
    <title>Win32::File::Object - Rounding out the Win32 "experience"</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">I've had pretty much all the basic modules I need for a while now, which has put a damper on my release rate. No bad thing, since when you are looking after 100+ you tend to end up doing a lot more maintenance and feature additions than new coding.<br/><br/>I'm by and large completely happy coding Perl on Unix now.<br/><br/>Unfortunately, as I start to do more coding on Windows (in this case, funky Perl::Dist internals magic) I find myself back in the past a bit.<br/><br/>Win32::File, for example, is a horrible piece of API ugliness. It's all CamelCase and return-by-param and bit fields. Ugh...<br/><br/>So here I am again writing simple usability wrappers about code that does the right thing but makes you feel dirty while doing it.<br/><br/><a href="http://search.cpan.org/perldoc?Win32::File::Object">Win32::File::Object</a> is a wrapper around <a href="http://search.cpan.org/perldoc?Win32::File">Win32::File</a>, which is basically only a thin Perl/XS wrapper around the raw C API.<br/><br/>So now if you have some code that needs to remove a readonly flag, you can just go...<br/><code><br/>Win32::File::Object-&gt;new('file.txt', 'autowrite')-&gt;readonly(0);<br/></code><br/><br/>The only downside of this module is that my release code can't deal with Windows code, so I'm stuck with an absolutely tortuous release process.<br/><br/>And given the state of Win32:: I've got a feeling this won't be the first Win32:: module I'm going to be forced to write to feel like a human being when I'm coding on Win32.</div>
    </summary>
    <updated>2008-03-05T21:57:08Z</updated>
    <category term="journal"/>
    <author>
      <name>Alias</name>
    </author>
    <source>
      <id>http://use.perl.org/~Alias/journal/</id>
      <category term="Technology"/>
      <author>
        <name/>
        <email>pudge@perl.org</email>
      </author>
      <link href="http://use.perl.org/~Alias/journal/" rel="alternate" type="text/html"/>
      <link href="http://use.perl.org/~Alias/journal/rss" rel="self" type="application/rdf+xml"/>
      <rights>use Perl; is Copyright 1998-2006, Chris Nandor. Stories, comments, journals, and other submissions posted on use Perl; are Copyright their respective owners.</rights>
      <subtitle>Alias's use Perl Journal</subtitle>
      <title>Alias's Journal</title>
      <updated>2008-03-07T21:57:02Z</updated>
    </source>
  </entry>

  <entry xml:lang="en">
    <id>http://perlbuzz.com/mechanix/2008/03/the-worst-way-to-shorten-names.html</id>
    <link href="http://perlbuzz.com/mechanix/2008/03/the-worst-way-to-shorten-names.html" rel="alternate" type="text/html"/>
    <title>The worst way to shorten names</title>
    <summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><p>
Dropping vowels to shorten names is a terrible practice.  Quick, someone give me an idea what <tt>$hdnchgdsp</tt> means, an Actual Variable from some Bad Code I'm working on today.
</p>
<p>
It's not just variables names, either.  Filenames often need to be shortened, but dropping vowels is not the way to do it.  You're left with unpronounceable names that are annoying to type.
</p>
<p>
The key to effective abbreviation is not removal of letters from the middle of the words, but from the end.  Sometimes, it doesn't make sense to shorten a word at all, like "post". If you have a file that is supposed to "post audit transactions", call it "post-aud-trans" or "post-aud-trx", not "pst_adt_trns".
</p></div>
    </summary>
    <updated>2008-03-05T21:56:24Z</updated>
    <category scheme="http://www.sixapart.com/ns/types#category" term="Code craft"/>
    <source>
      <id>http://perlbuzz.com/mechanix/</id>
      <author>
        <name>Perl Buzz Mechanix</name>
      </author>
      <link href="http://perlbuzz.com/mechanix/" rel="alternate" type="text/html"/>
      <link href="http://feeds.feedburner.com/PerlBuzzMechanix" rel="self" type="application/rss+xml"/>
      <rights>Copyright 2008</rights>
      <subtitle>Code, tech and getting dirt under your fingernails</subtitle>
      <title>Mechanix</title>
      <updated>2008-03-09T20:56:31Z</updated>
    </source>
  </entry>

  <entry>
    <id>http://use.perl.org/~rjbs/journal/35844?from=rss</id>
    <link href="http://feeds.feedburner.com/~r/PlanetPerl/~3/246361480/35844" rel="alternate" type="text/html"/>
    <title xml:lang="en-us">hiveminder integration with jott</title>
    <content type="xhtml" xml:lang="en-us"><div xmlns="http://www.w3.org/1999/xhtml"><p> <a href="http://jott.com/">Jott</a> is a really neat service that lets you Do Stuff via
your cell phone.  The default Stuff you can do is "send email and SMS" and
"setup a reminder."  There's also a very <a href="http://jott.com/jotters/index.php/developers">simple
API</a> for writing your own
applications (called Jott Links).  It works something like this:</p> <ol> <li>you call the toll-free Jott number</li> <li>you speak the name of the Jott Link you've set up</li> <li>you speak a message</li> <li>Jott issues a web request with data including your id and the message</li> <li>the service does something and replies to Jott</li> <li>Jott sends you a reply</li> </ol> <p>There are Jott Links for Twitter and other things that I don't care about.
There isn't one for Hiveminder.  Zak Greant made a <a href="http://jott.com/jotters/index.php/developers">video demonstrating
Hiveminder and Jott together</a>,
which has Jott send mail to the task-by-email interface of Hiveminder.  This
isn't bad at all, but it puts all kinds of crap into your task, because Jott
sends pretty chatty email.</p> <p>I wrote a Jott Link service in about ten minutes (much of which was test time,
waiting for Jott to transcribe my messages).  It uses CGI.pm and
Net::Hiveminder to create a very conci