<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rexmere.com &#187; Internet</title>
	<atom:link href="http://rexmere.com/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://rexmere.com</link>
	<description>Technical Arcana, Software Ephemera and Miscellaneous Bits. Keith R. Fieldhouse proprietor.</description>
	<lastBuildDate>Wed, 18 Mar 2009 00:36:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cappuccino and CherryPy</title>
		<link>http://rexmere.com/2008/12/20/cappuccino-and-cherrypy/</link>
		<comments>http://rexmere.com/2008/12/20/cappuccino-and-cherrypy/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 23:54:10 +0000</pubDate>
		<dc:creator>Keith Fieldhouse</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[development python cherrypy cappuccino]]></category>

		<guid isPermaLink="false">http://rexmere.com/?p=72</guid>
		<description><![CDATA[Cappuccino is a JavaScript toolkit for building application like experiences on the web.  It's developed (and used) by the folks who produced 280 Slides, a rather amazing presentation package for the web.
I've been doing a fair bit of of Mac development and have come to appreciate the syntax of Objective-C.  One of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cappuccino.org/">Cappuccino</a> is a JavaScript toolkit for building application like experiences on the web.  It's developed (and used) by the folks who produced <a href="http://280slides.com/">280 Slides</a>, a rather amazing presentation package for the web.</p>
<p>I've been doing a fair bit of of Mac development and have come to appreciate the syntax of Objective-C.  One of the more interesting aspects of Cappuccino is that it has created a new dialect of JavaScript that they call Objective-J.  <a href="http://cappuccino.org/discuss/2008/12/08/on-leaky-abstractions-and-objective-j/">This blog post</a> explains some of the motivations they had for doing this.  In any event, I decided that I'd like to give Cappuccino a spin.</p>
<p>My "go to" language for server back ends is <a href="http://www.python.org">Python</a>.   I also like <a href="http://www.cherrypy.org/">CherryPy</a>, a Python server framework that makes it easy to attach Python code to web requests.  Since Cappuccino is designed to make it easy to build an application inside a browser window, the back end mostly needs to be able to serve up <a href="http://www.json.org/">JSON</a> data for the Cappuccino application to present.  CherryPy makes this fairly easy.</p>
<p>To get started, I downloaded the the Cappuccino "<a href="http://cappuccino.org/download/">Starter Package</a>".  Inside that zip file is a "NewApplication" directory.  I copied that directory as a directory called "static" in the my Application directory.  If you open the supplied index.html, you are presented with a very basic "Hello World" application written in Cappuccino.  In order to to build the application I have in mind though, I want that index.html to come from my CherryPy server so that the Cappuccino application can easily request information.  </p>
<p>To do this, I configured my CherryPy application to server the contents of my Application/static directory.   This is readily accomplished by creating a CherryPy configuration file cherrycappuccino.ini:</p>
<pre class="ini">&nbsp;
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>global<span style="">&#93;</span></span>
tools.staticdir.<span style="color: #000099;">root </span>= <span style="color: #933;">&quot;/Users/keith/Projects/CherryCappuccino/Application&quot;</span>
&nbsp;
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>/<span style="">&#93;</span></span>
tools.staticdir.<span style="color: #000099;">on </span>=<span style="color: #660066;"> True</span>
tools.staticdir.<span style="color: #000099;">dir </span>= <span style="color: #933;">&quot;static&quot;</span>
&nbsp;</pre>
<p>This tells CherryPy to server the contents of my "static" directory statically.  </p>
<p>What remains is the Python code that builds the CherryPy application.    At this point it's quite simple.  We create one object that's mounted on the root of the CherryPy server.   It's index method simply returns the contents of the index.html file in the static directory (there might be other ways to accomplish this but this was expedient.  Here's the Python code from cherrycappuccino.py in my Application directory:</p>
<pre class="python">&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> cherrypy
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> CherryCappuccino:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">indexText</span> = <span style="color: #008000;">None</span>
&nbsp;
    @cherrypy.<span style="color: black;">expose</span>
    <span style="color: #ff7700;font-weight:bold;">def</span> index<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">indexText</span>:
            indexFileName = <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">dirname</span><span style="color: black;">&#40;</span>__file__<span style="color: black;">&#41;</span>,<span style="color: #483d8b;">&quot;static&quot;</span>,<span style="color: #483d8b;">&quot;index.html&quot;</span><span style="color: black;">&#41;</span>
            indexFile = <span style="color: #008000;">open</span><span style="color: black;">&#40;</span>indexFileName<span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">indexText</span> = indexFile.<span style="color: black;">read</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">indexText</span>
&nbsp;
cherrypy.<span style="color: black;">quickstart</span><span style="color: black;">&#40;</span>CherryCappuccino<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>,<span style="color: #483d8b;">'/'</span>,<span style="color: #483d8b;">&quot;cherrycappuccino.ini&quot;</span><span style="color: black;">&#41;</span>
&nbsp;</pre>
<p>This reads the cherrycappuccino.ini file to configure the application and starts the server with our single application object.    Starting the server with "python cherrycappuccino.py" sets up the server that can be browsed to at http://localhost:8080.</p>
<p>In a future post, I'll show how to configure the Cappuccino view based on data returned from the server.</p>
]]></content:encoded>
			<wfw:commentRss>http://rexmere.com/2008/12/20/cappuccino-and-cherrypy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Professionalism</title>
		<link>http://rexmere.com/2008/02/13/professionalism/</link>
		<comments>http://rexmere.com/2008/02/13/professionalism/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 18:00:13 +0000</pubDate>
		<dc:creator>Keith Fieldhouse</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://rexmere.com/2008/02/13/professionalism/</guid>
		<description><![CDATA[One of the unexpected benefits of my interest in the recent WGA strike was my discovery of a number of screenwriters who maintain quite interesting blogs.   One such was John August, who wrote the screenplays for "Big Fish" and "Charlie and the Chocolate Factory" among others.  His blog was an excellent source [...]]]></description>
			<content:encoded><![CDATA[<p>One of the unexpected benefits of my interest in the recent WGA strike was my discovery of a number of screenwriters who maintain quite interesting blogs.   One such was <a href="http://johnaugust.com/">John August</a>, who wrote the screenplays for "<a href="http://imdb.com/title/tt0319061/">Big Fish</a>" and "<a href="http://imdb.com/title/tt0472063/">Charlie and the Chocolate Factory</a>" among others.  His blog was an excellent source of information on the strike from a writer's perspective.  It is also a treasure trove of information for anyone interested in the screenwriting process or story telling in general.</p>
<p>Mr. August has the text of a speech he gave at Trinity University in San Antonio, "<a href="http://johnaugust.com/archives/2006/professional-writing-and-the-rise-of-the-amateur">Professionalism and the Rise of the Amateur</a>", posted on his site.  In it, he meditates on the distinction between "amateurs" and "professionals".  The core of his thesis is that a "professional" is characterized by professional behavior more than anything else.  He elaborates on that quite a bit in his speech and I recommend that you read his text.</p>
<p>This is relevant to me in light of the sorts of things that I've been seeking out on the Interenet of late.   All of the items in my last post are, in my view, "professional" as described my Mr. August.  Indeed the "New Voyages" folks specfically can't make any money (often used as the measure of a professional) lest the dogs of Paramount be set on.  Money or not, the "New Voyages" episodes are done with an attention to detail and affection of the source material that would be difficult to describe as anything but professionally done.</p>
<p>The folks at Decoder Ring Theatre went on a marathon binge of writing and producing their shows so that their producer's pending paternity leave did not interfere with their release schedule.I was willing to start listening to "Playing for Keeps" before it had been completed because Ms. Lafferty's reputation in the Podosphere was such  that I was confident that I wouldn't be left "hanging" before the story was completed.</p>
<p>All done very professionally despite the fact that they aren't the product of the traditional sources of media in are world, and in fact come to me very nearly directly straight from the artist's brush as it were.In a recent email to a friend, I observed that in the old equation:Talent + Discipline + Luck == Success  The mechanics of the Internet are diminishing the importance of the "Luck" component.  What I'm coming to realize is that that comes with a corresponding rise in the importance of the "Discipline" component.   Perhaps the crux of the good that the Internet does lies in the fact that the component least under an individual's control, "Luck" is being replaced in importance by the component most under and individual's control, "Discipline".  "Talent" of course, remains the wildcard.</p>
]]></content:encoded>
			<wfw:commentRss>http://rexmere.com/2008/02/13/professionalism/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grassroots Content</title>
		<link>http://rexmere.com/2008/02/08/grassroots-content/</link>
		<comments>http://rexmere.com/2008/02/08/grassroots-content/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 18:40:59 +0000</pubDate>
		<dc:creator>Keith Fieldhouse</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://rexmere.com/2008/02/08/grassroots-content/</guid>
		<description><![CDATA[One of my favorite things about the Internet is the vast quantity of interesting content available through it.  And yes, I'm rather a big fan of water's wetness too.That said, it's still hard to find the good amongst the not so good, even harder to find the things that are personally appealing.  By [...]]]></description>
			<content:encoded><![CDATA[<p>One of my favorite things about the Internet is the vast quantity of interesting content available through it.  And yes, I'm rather a big fan of water's wetness too.That said, it's still hard to find the good amongst the not so good, even harder to find the things that are personally appealing.  By far the most reliable way I've found is read blog posts or comments like this one that detail some of the things the author likes and way.    Sometimes what I find isn't all that interesting and sometimes I get lucky.  Here's a contribution to the other end of that equation.</p>
<p>I've always been a fan of Old Time Radio shows.   I'm still a bit creeped out by an episode of the <a href="http://en.wikipedia.org/wiki/CBS_Radio_Mystery_Theater">CBS Radio Mystery Theater</a> interpretation of "<a href="http://en.wikipedia.org/wiki/The_Cask_of_Amontillado">The Cask of Amontillado</a>" that aired when I was a kid.  When my first daughter was born, she had a confused notion of what one did during the day (sleep) and at night (play).  I spent a lot of time rocking her while listening to downladed episodes of "<a href="http://en.wikipedia.org/wiki/Yours_Truly,_Johnny_Dollar">Yours Truly, Johny Dollar</a>".  (Note to parents:  downloaded episodes of "<a href="http://en.wikipedia.org/wiki/Jack_Armstrong%2C_the_All-American_Boy">Jack Armstrong</a>" or "<a href="http://en.wikipedia.org/wiki/The_Adventures_of_Superman_%28radio%29">The Adventures of Superman</a>" make long car trips seem much quicker).   </p>
<p>Which brings me to <a href="http://decoderring.libsyn.com/">Decoder Ring Theater</a>.  Lead by Gregg Taylor, this troupe puts together two full cast original dramas "The Red Panda" -- a Canadian crime fighter in the mold of the Green Hornet and "Black Jack Justice" -- a hard boiled PI show.   Both shows are written and produced by Taylor and both are excellent.  Taylor's ear for snappy banter, especially between Jack Justice and his partner Trixie Dixon is terrific and I look forward to new episodes of each.</p>
<p>I found about this next item  not through some blog or other Internet artifact but through an article in our local "pennysaver" type newspaper.    About two hours north of where I live in upstate New York, there's a old car dealship that's been converted to a television sound stage.   The set?  Af faithful reproduction of the bridge of the Startship Enterprise, serial number NCC-1701.  No -D, no -A, just NCC-1701:  the original.  The set was built by the folks at <a href="http://www.startreknewvoyages.com/">Star Trek: New Voyages</a>.  They're busily producing what they descirbe as the 4th and 5th seasons of the original  5 year mission.  For the most part, the parts of the original crew are played by new actors.  I say "for the most part" because George Takei and Walter Koenig have both reprised their original roles, as have a number of guest stars from the series' original run.    The episodes are great fun to watch, though if you have no interest in original Star Trek episodes, you won't like these either.</p>
<p>Finally, <a href="http://www.murlafferty.com/">Mur Lafferty</a> is podcasting a novel, <a href="http://www.playingforkeepsnovel.com/">Playing for Keeps</a>, that she's written.   It's set in a super-hero universe of her creation (with a source for super powers marginally more "realistic" than a "strange visitor from another planet").  Her focus is on a group of characters with rather limited powers as they try to make their way safely through a crisis between more conventionally powered super-heros and super-villans.  One of the pleasures of the book is watching how the characters learn to use their limited powers more effectively.  You wouldn't think that super-waitress powers (can always balance a serving tray) could be much good in a fight, but then, you haven't lstened to "Playing for Keeps" yet.   Lafferty's done some other interesting things with her book, including making the printed version available from LuLu and opening up her universe to other writers.    It's a pretty interesting experiment and one that I'm enjoying watching.That'll do for now.  Enjoy...</p>
]]></content:encoded>
			<wfw:commentRss>http://rexmere.com/2008/02/08/grassroots-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
