<?xml version="1.0" encoding="US-ASCII" ?>
<rss version="2.0" 
   xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" 
   xmlns:html="http://www.w3.org/1999/html" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
   <title>Brian Slesinsky</title>
   <link>http://slesinsky.org/brian</link>
   <description>Occasional essays, often concerning software development in Java.</description>
   <language>en</language>
   <copyright>Copyright 2003-2007 Brian Slesinsky</copyright>
   <ttl>60</ttl>
   <pubDate>Fri, 02 May 2008 08:00 GMT</pubDate>
   <managingEditor>brian-web@slesinsky.org</managingEditor>
   <generator>PyBlosxom http://pyblosxom.sourceforge.net/ 1.4.1 7/27/2007</generator>
<item>
   <title>PixelToy Returns</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/code/pixeltoy_on_google_app_engine.html</guid>
   <link>http://slesinsky.org/brian/code/pixeltoy_on_google_app_engine.html</link>
   <description><![CDATA[
<p>
With the launch of <a href="http://code.google.com/appengine/">Google App Engine</a>,
I decided to give it a spin by rewriting
<a href="http://slesinsky.org/brian/code/pixeltoy.html">PixelToy</a>, a Java Applet
(and backend server) that I wrote more than a decade ago to learn Java.  This time, the
technologies I'm trying out are jQuery, Ajax, and Python.
</p>

<p>
PixelToy is a simple paint program where everyone who visits paints on the same
canvas.  The new Pixeltoy also lets you take a snapshot of your painting and see a
<a href="http://pixeltoypixeltoy.appspot.com/gallery">gallery</a> of
pictures others have made; the gallery also has a
<a href="http://feeds.feedburner.com/PixeltoyGallery">feed</a>.
</p>

<p>
How it works: the PixelToy web page sends each brush stroke to the server when you release the
mouse button and polls the server for updates.  The polling gets slower for inactive users.
</p>

<p>
(Warning: since anyone can paint anything they like and painting is anonymous, you never know what
you'll find when you visit.  I ask that visitors keep things generally "safe for work," but can't
monitor it all the time.)
</p>

<div>
<a href="http://pixeltoypixeltoy.appspot.com/"
><img src="http://slesinsky.org/brian/images/pixeltoy_squid.png"></a>
</div>

<p>
(And yes, this is also an excuse to post a gratuitious squid picture.)
</p>
]]></description>
   <category domain="http://slesinsky.org/brian">/code</category>
   <pubDate>Fri, 02 May 2008 08:00 GMT</pubDate>
</item>
<item>
   <title>Why can't Wall Street plan for emergencies?</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/misc/wall_street_and_emergencies.html</guid>
   <link>http://slesinsky.org/brian/misc/wall_street_and_emergencies.html</link>
   <description><![CDATA[
<p>
When not following the election, I've found the latest financial crisis to be
pretty interesting; how can so many smart people be collectively
so stupid as to put the entire system at risk?   I don't pretend to fully
understand this stuff, but here are a few thoughts, from a spectator.
</p>

<p><a href="http://slesinsky.org/brian/misc/wall_street_and_emergencies.html?seemore=y" class="seemore">Read more</a></p>

]]></description>
   <category domain="http://slesinsky.org/brian">/misc</category>
   <pubDate>Sun, 06 Apr 2008 21:30 GMT</pubDate>
</item>
<item>
   <title>Capsule reviews of a few web comics I like</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/misc/webcomic_reviews.html</guid>
   <link>http://slesinsky.org/brian/misc/webcomic_reviews.html</link>
   <description><![CDATA[
<p>
Maybe it's just that I haven't found the right web site yet, but discovering good web comics
online seems a little harder than it ought to be.  I went looking for new comics the other day,
and found that lots of people make lists of their favorite comics but provide too little
information: who wants to follow a blind link from a long list created by someone they don't know?
On the other hand, there are a few websites that publish fairly serious critical articles about
comics, but that's too much information when you're just looking for a new comic to read.
And then there are the websites that review online and offline comics together, so you have to
wade through stuff you can't read <i>right now</i> to get to the good stuff.
</p>

<p>
How is it possible that in the year 2008, a really good web comic review site hasn't spontaneously
appeared out of the sea of obsession that is the Internet?  It's a clear-cut case of market
failure (or maybe just laziness on my part) that I could remain unaware of Girl Genius
for <i>several years</i> after it started.
</p>

<p>
Until someone does start that website, I'll post a few reviews here and leave it to Google to get
them to people who might find them useful:
</p>

<p><a href="http://slesinsky.org/brian/misc/webcomic_reviews.html?seemore=y" class="seemore">Read more</a></p>

]]></description>
   <category domain="http://slesinsky.org/brian">/misc</category>
   <pubDate>Mon, 31 Mar 2008 01:00 GMT</pubDate>
</item>
<item>
   <title>Guice callbacks should take parameters</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/code/guice_callbacks_should_take_parameters.html</guid>
   <link>http://slesinsky.org/brian/code/guice_callbacks_should_take_parameters.html</link>
   <description><![CDATA[
<p>
Guice is easy to use when you want to
<a href="http://slesinsky.org/brian/code/guice_puzzle_factory.html">build a web of objects</a> based
on a static configuration.  However, it gets awkward when you want to create multiple, similar webs
of objects, where only a few nodes vary.
</p>

<p>
This is because Guice has no direct support for callbacks that take parameters.  The only callback
that's built into Guice is <tt>Provider.get()</tt>.
</p>

<p>
I would like to see full support for callbacks with parameters in the next version of Guice.  In
this article, I'll sketch out how we could do it.
</p>

<p><a href="http://slesinsky.org/brian/code/guice_callbacks_should_take_parameters.html?seemore=y" class="seemore">Read more</a></p>

]]></description>
   <category domain="http://slesinsky.org/brian">/code</category>
   <pubDate>Sun, 17 Feb 2008 22:45 GMT</pubDate>
</item>
<item>
   <title>Suspicion</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/quotes/unremitting_suspicion.html</guid>
   <link>http://slesinsky.org/brian/quotes/unremitting_suspicion.html</link>
   <description><![CDATA[
<div class="quote">

<p>
"There is the dangerous clich&eacute; in the financial world [that] everything depends on confidence. One
could better argue the importance of unremitting suspicion."
</p>

<p>
<a href="http://www.economist.com/finance/displaystory.cfm?story_id=10278667">- John Kenneth Galbraith</a>
</p>

</div>
]]></description>
   <category domain="http://slesinsky.org/brian">/quotes</category>
   <pubDate>Sun, 27 Jan 2008 05:30 GMT</pubDate>
</item>
<item>
   <title>Inject is the new import</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/code/inject_is_the_new_import.html</guid>
   <link>http://slesinsky.org/brian/code/inject_is_the_new_import.html</link>
   <description><![CDATA[
<table>
<tr><td>
<pre>
import com.example.Thing;
&nbsp;
...
&nbsp;
Thing.go();
&nbsp;
</pre>
</td><td>
<pre>
import com.example.Thing;
...
@Inject
private Thing thing;
...
thing.go()
</pre>
</td></tr>
</table>

<p>
I've written before about <a href="/brian/code/guice_puzzle_factory.html">how Guice works</a>,
but didn't explain why you would want to use it.  Here's one way to think about it.
</p>

<p><a href="http://slesinsky.org/brian/code/inject_is_the_new_import.html?seemore=y" class="seemore">Read more</a></p>

]]></description>
   <category domain="http://slesinsky.org/brian">/code</category>
   <pubDate>Wed, 23 Jan 2008 09:13 GMT</pubDate>
</item>
<item>
   <title>Northern California</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/pictures/northern_california_2007.html</guid>
   <link>http://slesinsky.org/brian/pictures/northern_california_2007.html</link>
   <description><![CDATA[
<table>
<tr class='picture'>
<td>
<a href="http://picasaweb.google.com/bslesinsky/NorthernCalifornia2007"
>Vacation pictures!</a>  These are from Mount Lassen, Mount Shasta, Redwood National Park, and the
Charles M. Schultz museum in Santa Rosa.
</td>
<td align=right><a href="http://picasaweb.google.com/bslesinsky/NorthernCalifornia2007"
><img alt="Silhouette of Tree"
  src="http://lh5.google.com/bslesinsky/RwnTs5vxKvE/AAAAAAAABOY/eak4UHmOgYs/s160-c/NorthernCalifornia2007.jpg"
  width="160" height="160">
</a>

</td></tr></table>
]]></description>
   <category domain="http://slesinsky.org/brian">/pictures</category>
   <pubDate>Sun, 21 Oct 2007 01:00 GMT</pubDate>
</item>
<item>
   <title>Switched to Pyblosxom</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/code/blogging_again.html</guid>
   <link>http://slesinsky.org/brian/code/blogging_again.html</link>
   <description><![CDATA[
<p>
No, I didn't fall off the face of the earth.  I haven't posted because
I've been busy, and also had a case of the blog migration blues.  If
everything has gone smoothly, the website should look exactly the same.
(Attention conservation notice: lots of boring tech detail below.)
</p>

<p><a href="http://slesinsky.org/brian/code/blogging_again.html?seemore=y" class="seemore">Read more</a></p>

]]></description>
   <category domain="http://slesinsky.org/brian">/code</category>
   <pubDate>Sun, 21 Oct 2007 00:25 GMT</pubDate>
</item>
<item>
   <title>Proposed Hanson Quarry Expansion</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/misc/hanson_quarry_expansion.html</guid>
   <link>http://slesinsky.org/brian/misc/hanson_quarry_expansion.html</link>
   <description><![CDATA[
<p>
Someone sent me an email in response to my <a
href="http://slesinsky.org/brian/misc/permanente.html">article
on Permanente Creek</a>.  Hanson Permanente Cement is requesting
approval for a plan to "include an additional 917 acres of mining and
reclamation activity and extend the termination date by 25 years."
There is a <a
href="http://www.sccgov.org/portal/site/planning/menuitem.244564f66e6d425580b558bb35cda429/?path=%2Fv7%2FPlanning%2C%20Office%20of%20%28DEP%29%2FProperty%20Info%20%26%20Development%2FEnvironmental%20Protection%2FEnvironmental%20Documents">public
meeting</a> on Thursday, July 26th, and the public is invited to
submit topics to be considered in the Environmental Impact Report by
August 1.  A volunteer group called <a
href="http://www.stevenscreekparents.org/">AD-HOC</a> is opposing the
expansion.
</p>
]]></description>
   <category domain="http://slesinsky.org/brian">/misc</category>
   <pubDate>Sun, 22 Jul 2007 02:54 GMT</pubDate>
</item>
<item>
   <title>Posts I Liked</title>
   <guid isPermaLink="true">http://slesinsky.org/brian/misc/posts_i_liked.html</guid>
   <link>http://slesinsky.org/brian/misc/posts_i_liked.html</link>
   <description><![CDATA[
<p>
I don't know whether anyone has noticed it, so I'll mention it here:
for a while now, I've been sharing links to blog posts and other web
pages I liked in a widget at the bottom-right of each page on this
website.  You can see the whole list on <a
href="http://www.google.com/reader/shared/03932811802545124106">this
page</a>, and there is also a <a
href="http://www.google.com/reader/public/atom/user/03932811802545124106/state/com.google/broadcast">feed</a>.
</p>
]]></description>
   <category domain="http://slesinsky.org/brian">/misc</category>
   <pubDate>Sun, 08 Jul 2007 06:48 GMT</pubDate>
</item>
</channel>
</rss>
