<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Ted Leung on the Air</title>
	
	<link>http://www.sauria.com/blog</link>
	<description>Open Source, Modern Programming Languages, OS X, Photography, and ...</description>
	<lastBuildDate>Sat, 04 Jul 2009 23:37:20 PDT</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TedLeungOnTheAir" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site.</feedburner:browserFriendly><item><title>Neighborhood Fireworks [Flickr]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/GccYtjSAkZk/</link><category>fireworks fourthofjuly bainbridgeisland</category><dc:creator>Ted Leung</dc:creator><pubDate>Sat, 04 Jul 2009 23:37:20 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2004:/photo/3688759459</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/twleung/"&gt;Ted Leung&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/twleung/3688759459/" title="Neighborhood Fireworks"&gt;&lt;img src="http://farm3.static.flickr.com/2484/3688759459_af8f9aac4a_m.jpg" width="160" height="240" alt="Neighborhood Fireworks" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These were taken off my back deck.&lt;/p&gt;</description><dc:date.Taken>2009-07-04T21:27:03-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/twleung/3688759459/</feedburner:origLink></item><item><title>Neighborhood Fireworks [Flickr]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/XHaLS356d7I/</link><category>fireworks fourthofjuly bainbridgeisland</category><dc:creator>Ted Leung</dc:creator><pubDate>Sat, 04 Jul 2009 23:36:49 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2004:/photo/3688758541</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/twleung/"&gt;Ted Leung&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/twleung/3688758541/" title="Neighborhood Fireworks"&gt;&lt;img src="http://farm3.static.flickr.com/2660/3688758541_112d3e0fde_m.jpg" width="160" height="240" alt="Neighborhood Fireworks" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These were taken off my back deck.&lt;/p&gt;</description><dc:date.Taken>2009-07-04T21:16:27-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/twleung/3688758541/</feedburner:origLink></item><item><title>Neighborhood Fireworks [Flickr]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/4R51wfjEP1E/</link><category>fireworks fourthofjuly bainbridgeisland</category><dc:creator>Ted Leung</dc:creator><pubDate>Sat, 04 Jul 2009 23:36:19 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2004:/photo/3688757629</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/twleung/"&gt;Ted Leung&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/twleung/3688757629/" title="Neighborhood Fireworks"&gt;&lt;img src="http://farm4.static.flickr.com/3642/3688757629_5e8cd6d412_m.jpg" width="160" height="240" alt="Neighborhood Fireworks" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These were taken off my back deck.&lt;/p&gt;</description><dc:date.Taken>2009-07-04T21:06:25-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/twleung/3688757629/</feedburner:origLink></item><item><title>Bainbridge Island Fourth of July Parade [Flickr]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/wSkzGYZD2F8/</link><category>parade fourthofjuly bainbridgeisland</category><dc:creator>Ted Leung</dc:creator><pubDate>Sat, 04 Jul 2009 23:35:44 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2004:/photo/3688756541</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/twleung/"&gt;Ted Leung&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/twleung/3688756541/" title="Bainbridge Island Fourth of July Parade"&gt;&lt;img src="http://farm4.static.flickr.com/3628/3688756541_946a5de1b2_m.jpg" width="160" height="240" alt="Bainbridge Island Fourth of July Parade" /&gt;&lt;/a&gt;&lt;/p&gt;

</description><dc:date.Taken>2009-07-04T13:12:43-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/twleung/3688756541/</feedburner:origLink></item><item><title>Bainbridge Island Fourth of July Parade [Flickr]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/_PILL4TS5Eg/</link><category>parade fourthofjuly bainbridgeisland</category><dc:creator>Ted Leung</dc:creator><pubDate>Sat, 04 Jul 2009 23:35:14 PDT</pubDate><guid isPermaLink="false">tag:flickr.com,2004:/photo/3688755577</guid><description>&lt;p&gt;&lt;a href="http://www.flickr.com/people/twleung/"&gt;Ted Leung&lt;/a&gt; posted a photo:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/twleung/3688755577/" title="Bainbridge Island Fourth of July Parade"&gt;&lt;img src="http://farm3.static.flickr.com/2568/3688755577_5e715aa4ea_m.jpg" width="160" height="240" alt="Bainbridge Island Fourth of July Parade" /&gt;&lt;/a&gt;&lt;/p&gt;

</description><dc:date.Taken>2009-07-04T12:58:50-08:00</dc:date.Taken><feedburner:origLink>http://www.flickr.com/photos/twleung/3688755577/</feedburner:origLink></item><item><title>Links for 2009-07-02 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/Ig5lfJgT1YA/twleung</link><pubDate>Fri, 03 Jul 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-07-02</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.engadget.com/2009/07/01/olympus-e-p1-hands-on-test-shots-and-mini-review/"&gt;Olympus E-P1 hands-on, test shots, and mini-review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gadling.com/2009/07/01/gadling-gear-review-olympus-e-p1-the-second-week/"&gt;Gadling gear review - Olympus E-P1 - the second week | Gadling.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.photographybay.com/2009/06/26/olympus-there-is-lots-more-to-come-to-m43rds/"&gt;Olympus: There is Lots More to Come to M4/3rds &amp;raquo; Photography Bay | Digital Camera Reviews, News and Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.terracotta.org/web/display/docs/Configuring+Terracotta+For+High+Availability"&gt;Configuring Terracotta For High Availability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-07-02</feedburner:origLink></item><item><title>Links for 2009-06-30 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/kyjG7HR1vNk/twleung</link><pubDate>Wed, 01 Jul 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-30</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://news.cnet.com/8301-13580_3-10267588-39.html"&gt;Olympus's compact E-P1: A breath of fresh air | Underexposed - CNET News&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.duncandavidson.com/2009/06/quick-olympus-e-p1-hands-on.html"&gt;Quick Olympus E-P1 Hands On - James Duncan Davidson - James Duncan Davidson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://svn.terracotta.org/svn/forge/projects/tim-messaging/trunk/tim-messaging-spider-sample/"&gt;forge - Revision 16865: /projects/tim-messaging/trunk/tim-messaging-spider-sample&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.evernote.com/2008/11/10/tarpipe-integration/"&gt;Evernote Blogcast &amp;raquo; Blog Archive &amp;raquo; Evernote Integration Spotlight: Tarpipe&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://reborg.github.com/pomodori/"&gt;Welcome to Pomodori!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.genunix.org/"&gt;Genunix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx"&gt;Scott Hanselman's Computer Zen - Less Virtual, More Machine - Windows 7 and the magic of Boot to VHD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pixelbeat.org/cmdline.html"&gt;Linux Commands - A practical reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.steve.org.uk/Reference/rosetta.html"&gt;Rosetta Stone for Unix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://pomodoro.ugolandini.com/"&gt;Pomodoro | Pomodoro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pomodorotechnique.com/"&gt;The Pomodoro Technique&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cocos2d-iphone.org/wiki/doku.php/"&gt;start [cocos2d for iPhone]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-30</feedburner:origLink></item><item><title>Links for 2009-06-27 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/Kwm1f2l2ZLA/twleung</link><pubDate>Sun, 28 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-27</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://svn.terracotta.org/svn/forge/projects/tim-messaging/trunk/tim-messaging-echo-sample/"&gt;forge - Revision 16816: /projects/tim-messaging/trunk/tim-messaging-echo-sample&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-27</feedburner:origLink></item><item><title>Links for 2009-06-23 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/qmmtETrz8Yc/twleung</link><pubDate>Wed, 24 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-23</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.ismashphone.com/2009/06/how_to_use_best_40_features_of_iphone_3.html"&gt;How To Use The Best 40 Features of iPhone 3.0 : iSmashPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.engadget.com/2009/06/16/olympus-e-p1-video-samples-posted-camera-turns-up-in-ad-within/"&gt;Olympus E-P1 video samples posted, camera turns up in ad-within-an-ad Blendtec spot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://thru-the-zuiko.blogspot.com/2009/06/e-p1-short-review.html"&gt;Thru the eye of the Zuiko: E-P1: A Short Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.macworld.com/article/141244/2009/06/ep1_firstlook.html?lsrc=rss_main"&gt;First Look: Olympus E-P1 digital camera | Cameras | Macworld&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://kenrockwell.com/olympus/e-p1.htm"&gt;Olympus PEN E-P1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.wired.com/gadgetlab/2009/06/hands-on-with-the-smart-retro-olympus-e-p1/"&gt;Hands-On With the Smart, Retro Olympus E-P1 | Gadget Lab | Wired.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://thedigitalstory.com/2009/06/meet_the_olympus_e-p.html"&gt;&amp;quot;Meet the Olympus E-P1 Digital Camera&amp;quot; - Photography Podcast 181 - The Digital Story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fromtheinside.us/thinking/Groundspeed_Check.htm"&gt;&amp;ldquo;ASPEN 20&amp;rdquo; &amp;ndash; SR-71 &amp;ndash; Groundspeed Check&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-23</feedburner:origLink></item><item><title>Links for 2009-06-17 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/qA_c7QnmAwc/twleung</link><pubDate>Thu, 18 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-17</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://thedigitalstory.com/2009/06/iso_comparison_for_o.html"&gt;ISO Comparison for Olympus E-P1 Micro Four Thirds DSLR - The Digital Story&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pdngearguide.com/gearguide/content_display/news/e3i5be7ed32070f58803cd01082b91fe1d9"&gt;Testing Out the Olympus EP-1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-17</feedburner:origLink></item><item>
		<title>Bar Camp Seattle 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/WKG-gWSx2Rk/</link>
		<comments>http://www.sauria.com/blog/2009/06/17/bar-camp-seattle-2009/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 05:58:00 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Seattle]]></category>
		<category><![CDATA[barcamp]]></category>
		<category><![CDATA[bcs09]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/06/17/bar-camp-seattle-2009/</guid>
		<description><![CDATA[This past Saturday I hopped over to Seattle for Bar Camp Seattle 2009. I wasn&#8217;t able to make it to last year&#8217;s event, and since we haven&#8217;t had many Bar Camp&#8217;s in Seattle, I wanted to see what was happening. As usual, there was a wall where the schedule was developed as the day went [...]]]></description>
			<content:encoded><![CDATA[<p>This past Saturday I hopped over to Seattle for Bar Camp Seattle 2009. I wasn&#8217;t able to make it to last year&#8217;s event, and since we haven&#8217;t had many Bar Camp&#8217;s in Seattle, I wanted to see what was happening. As usual, there was a wall where the schedule was developed as the day went on.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3631679676/"><img src="http://farm4.static.flickr.com/3365/3631679676_ba92b98343.jpg" height="500" width="333" alt="BarCamp Seattle 2009" /></a></p>
<p style="text-align: left;">I was happy to see that there were a number of people involved in organizing the event. Those folks were easily distinguishable by their red and yellow propellor beanies.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3631674768/"><img src="http://farm4.static.flickr.com/3334/3631674768_7aea9c7310.jpg" height="500" width="333" alt="BarCamp Seattle 2009" /></a></p>
<p style="text-align: left;">The Bar Camp / Foo Camp structure for a conference is pretty liberating when compared to the usual pre-planned, eyes forward conference. However, it&#8217;s not enough to guarantee a good event. I&#8217;ve attended a number of these kinds of events, and in my view, who actually turns up is just as important as how the event is structured. Bar Camp Seattle had a lot of people who were interested in talking about various social media related topics. I have no idea if any of those sessions were any good, because I didn&#8217;t end up going to any of them. I ran into and met some developer type people, but not as many as I hoped to. Despite the use of Pathable&#8217;s cool <a href="http://barcampseattle-09.pathable.com/">registration / attendee matchmaking system</a>, I didn&#8217;t find it that easy to make use of the information printed on my badge. I would have loved some clever mixer based on the badge labels or something along those lines.</p>
<p style="text-align: left;"><a href="http://www.briantrice.com/">Brian Rice</a> and I (but really mostly Brian) ran a session a session for people interested in programming languages. I was pretty happy because the session was very interactive, but the session length of 30 minutes made it hard to get very far during the allotted time.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3630870253/"><img src="http://farm3.static.flickr.com/2434/3630870253_34816211a6.jpg" height="333" width="500" alt="BarCamp Seattle 2009" /></a></p>
<p style="text-align: left;">The best session that I attended was a session that was literally and figuratively off the grid. Brian Dorsey put up a session for sitting outside under the nearby bridge. The weather in Seattle was really beautiful last Saturday, so it really begged for being outside. There were about 9 or 10 of us who wandered out and sat talking about a wide range of topics. I enjoyed the sense of flowing from topic to topic, shifting naturally with the flow of conversation, the changing of roles of various participants as the topics changed, and so forth.</p>
<p style="text-align: left;">I think that I am at a crossroads as to the value of these generic, unstructured events. I helped organize the first Seattle Mind Camp, and I am glad to see that there is now a Bar Camp in Seattle as well. At the same time, I&#8217;ve frequently left these events feeling unsatisfied. Beforehand I am filled with excitement at the possibility of meeting new people from other tribes / fields and somehow stirring the pot of creative juices. Most of the time, I end up leaving without that stirring having occurred. If I look back over the last four or five years worth of conferences that I&#8217;ve attended, only a handful of &#8220;unstructured&#8221; events really stand out. Those events were Foo Camp and the Scala Liftoff, and in both cases, I would say that the particular sets of people involved made a huge difference. &nbsp;&nbsp;</p>
<p style="text-align: left;"></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/06/17/bar-camp-seattle-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/06/17/bar-camp-seattle-2009/</feedburner:origLink></item>
		<item><title>Links for 2009-06-16 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/uM6ZAmErzMk/twleung</link><pubDate>Wed, 17 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-16</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.pdngearguide.com/gearguide/content_display/news/e3iecfa450e38f03b77a0c31d7386afc7aa"&gt;New Retro-Inspired Olympus Shoots HD Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pdngearguide.com/gearguide/content_display/news/e3iecfa450e38f03b77a0c31d7386afc7aa?pn=2"&gt;New Retro-Inspired Olympus Shoots HD Video&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dpreview.com/news/0906/09061601olympusep1.asp"&gt;Olympus E-P1 'digital Pen' - in depth preview + samples: Digital Photography Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dpreview.com/previews/olympusep1/"&gt;Olympus E-P1 Hands-on Preview: 1. Introduction: Digital Photography Review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dcresource.com/reviews/olympus/e_p1-review"&gt;Olympus E-P1 First Look | Digital Camera Resource Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.enduserblog.com/2009/06/the-pen-again.html"&gt;End User: The Pen, Again&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://digital-photography-school.com/olympus-e-p1-digital-pen"&gt;Olympus E-P1 (Digital Pen)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.duncandavidson.com/2009/06/olympus-digital-pen-launched.html"&gt;Olympus Digital PEN Launched - James Duncan Davidson - James Duncan Davidson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://news.cnet.com/8301-17938_105-10265063-1.html"&gt;Olympus' E-P1 message: It's not your father's Olympus, but remember that he had one | Crave - CNET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pdnpulse.com/2009/06/early-impressions-of-the-olympus-ep1.html"&gt;PDNPulse: Early Impressions of the Olympus E-P1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.crunchgear.com/2009/06/16/olympus-e-p1-first-hands-on/"&gt;Olympus E-P1 first hands-on&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonlinephotographer.typepad.com/the_online_photographer/2009/06/olympus-e-p1-digital-pen-officially-announced.html"&gt;The Online Photographer: Olympus E-P1 'Digital Pen' Officially Announced&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://theonlinephotographer.typepad.com/the_online_photographer/2009/06/the-olympus-ep1-briefly-held.html"&gt;The Online Photographer: The Olympus E-P1, Briefly Held&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-16</feedburner:origLink></item><item><title>Links for 2009-06-15 [del.icio.us]</title><link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/I4Wk82ZQUQc/twleung</link><pubDate>Tue, 16 Jun 2009 00:00:00 PDT</pubDate><guid isPermaLink="false">http://del.icio.us/twleung#2009-06-15</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.quahog.org/factsfolklore/index.php?id=43"&gt;Quahog.org: Quahog.org Guide to Rhode Island Language Stuff&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><feedburner:origLink>http://del.icio.us/twleung#2009-06-15</feedburner:origLink></item><item>
		<title>Thoughts on WWDC</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/kodJ9RHW1Xo/</link>
		<comments>http://www.sauria.com/blog/2009/06/09/thoughts-on-wwdc/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 01:25:43 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/06/09/thoughts-on-wwdc/</guid>
		<description><![CDATA[Some thoughts on yesterday&#8217;s announcements:
MacBook Pros
The laptop refresh was a surprise to me. I wasn&#8217;t expecting anything until Intel&#8217;s Nehalem based laptop CPU&#8217;s and chipsets hit the market late summer or early fall. The basics of the machines haven&#8217;t improved that much, and won&#8217;t until that happens. I&#8217;m wary of the unibody built in battery [...]]]></description>
			<content:encoded><![CDATA[<p>Some thoughts on yesterday&#8217;s announcements:</p>
<p><strong>MacBook Pros</strong></p>
<p>The laptop refresh was a surprise to me. I wasn&#8217;t expecting anything until Intel&#8217;s Nehalem based laptop CPU&#8217;s and chipsets hit the market late summer or early fall. The basics of the machines haven&#8217;t improved that much, and won&#8217;t until that happens. I&#8217;m wary of the unibody built in battery &#8211; I had to have my MacBook Pro batteries replaced recently, and the built-in battery would make that a lot harder. As a photographer, I like the wider color gamut of the LCD, but I don&#8217;t like the glossy finish. I also find there replacement of the ExpressCard slot with an SD card slot odd. It would have been more &#8220;Pro&#8221; to at least use a Compact Flash slot. &nbsp;&nbsp;</p>
<p>In any case, I&#8217;m not in the market for a new laptop, so the minor changes and the nice price reduction don&#8217;t mean much to me at the moment.</p>
<p><strong>Snow Leopard</strong></p>
<p>Snow Leopard, on the other hand, is of great interest to me now that my primary box is a Mac Pro. I&#8217;m eager to have OS X taking better advantage of the all the hardware threads in the box. I was disappointed that there wasn&#8217;t more discussion of this in the keynote, but I also understand that having more than 2 cores is still a bit out there. I&#8217;m also disappointed that there was no mention of ZFS in either the workstation or server editions of Snow Leopard.</p>
<p>I guess that Snow Leopard is not as ready as many people (including me) thought. It won&#8217;t be shipping until September. Apple has taken a very reasonable approach to pricing the upgrade. The biggest issue for me is that I&#8217;ve been having problems with 10.5.7. I uninstalled it from the MacPro, and my work laptop wigged out on me last week during JavaOne, and I am very suspicious that the problems are 10.5.7 related. Jeffrey Zeldman is <a href="http://www.zeldman.com/2009/06/04/os-x-1057-update-unsafe-at-any-speed/">chronicling</a> his own set of problems with the update. It&#8217;s going to be a long time between now and September if Apple doesn&#8217;t sort this out.</p>
<p><strong>iPhone 3.0</strong></p>
<p>The iPhone 3.0 stuff was pretty much a rehash of what was previewed back in March. The only surprise was the &#8220;Find My iPhone&#8221; feature, which really ought to be a standard feature. I&#8217;m not sure if I&#8217;m going to buy MobileMe just to get this ability. Everybody is going to get an upgrade to this version of the software so there&#8217;s nothing but happiness all around.</p>
<p>What&#8217;s not so happy is that some of the features will be unavailable because AT&amp;T isn&#8217;t ready to support them: MMS and Tethering. I&#8217;m not really sure that I would actually use the MMS. I do most of my picture sharing via Twitter or Facebook. I am pretty sure that I would use tethering, either when riding the ferry or when traveling for work. However, if AT&amp;T adds another $30 a month for the privilege, I probably won&#8217;t do it. I can get a Boingo account form $10 a month. True that it won&#8217;t work everywhere, but it will work on the ferry and in major airports. Does AT&amp;T really think that we don&#8217;t know how to comparison shop?</p>
<p><strong>iPhone 3GS</strong></p>
<p>The iPhone 3GS is a nice upgrade. I&#8217;d be happy with the speed, but I&#8217;m going to get a speed increase (supposedly) from the iPhone 3.0 software. Faster 3G data would also be nice. The battery life improvements don&#8217;t cover the 3G radio usage, which is how I pound my iPhone. &nbsp;&nbsp;</p>
<p>There are two features which really stand out to me: the compass and the camera.</p>
<p>I travel a lot, and I get mixed up a lot. Having the compass to help decipher directions would really be a help to me. I can think of several occasions in the last 6 months, where I could have saved some aggravation if I knew what direction I was pointed in.</p>
<p>The improvements to the camera look really good. Chase Jarvis is <a href="http://blog.chasejarvis.com/blog/2009/06/iphone-3gs-is-photographers-iphone.html">calling</a> it the photographer&#8217;s iPhone, which is pretty much a no brainer. There was no mention of speeding up the amount of time it takes to get the camera to come on, which is one of my biggest gripes with it. Is it really a decisive moment camera? No way. But it looks like it is a much better camera than what we have now. I could probably justify $199 to upgrade my 16G iPhone 3G &#8211; it&#8217;d be a lot cheaper than a camera.</p>
<p>Unfortunately, I&#8217;m not going to get to do that. At least not until December 2009, due to the subsidized pricing of the iPhone. Lots of people are complaining about this, but that&#8217;s the way that the carriers have always worked. It&#8217;s not something new, in fact, its a sign that AT&amp;T has a little more pull on Apple that we thought. So I&#8217;ll be waiting at least until December. The problem is that if I wait till December, I&#8217;m only 6 months away from the next iPhone product launch (if they keep to the current schedule), and as TechCrunch <a href="http://www.techcrunch.com/2009/06/08/why-the-iphone-3g-s-may-be-a-suckers-bet-right-now/?awesm=tcrn.ch_3PJ&amp;utm_campaign=techcrunch&amp;utm_content=techcrunch-sharebutton&amp;utm_medium=tcrn.ch-twitter&amp;utm_source=direct-tcrn.ch">points out</a>, if Apple lets its exclusive contract with AT&amp;T expire in 2010, then you&#8217;d actually have carrier choice. That would be a good thing, and since getting onto Verizon&#8217;s huge network can only help iPhone sales, I&#8217;d bet that the iPhone is on Verizon in 2010. That&#8217;s not an impossible thing. Verizon made its first appearance ever at JavaOne this year, a sign that things are starting to change over there. I guess I&#8217;m going to wait and see how AT&amp;T treats me between now and then. But they should be painfully aware that people are buying the iPhone, not the carrier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/06/09/thoughts-on-wwdc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/06/09/thoughts-on-wwdc/</feedburner:origLink></item>
		<item>
		<title>CommunityOne / JavaOne 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/rrM7f29mFHY/</link>
		<comments>http://www.sauria.com/blog/2009/06/08/communityone-javaone-2009/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 23:39:35 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Sun]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[communityone2009]]></category>
		<category><![CDATA[javaone2009]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/?p=260</guid>
		<description><![CDATA[This was my second year attending these events as a Sun employee. Everything in software at Sun seems to revolve around these two events. For quite some time before the show, people are working away furiously getting things ready to be unveiled, myself included.
CommunityOne
For me, the big theme at CommunityOne was cloud computing. Sun itself [...]]]></description>
			<content:encoded><![CDATA[<p>This was my second year attending these events as a Sun employee. Everything in software at Sun seems to revolve around these two events. For quite some time before the show, people are working away furiously getting things ready to be unveiled, myself included.</p>
<p><strong>CommunityOne</strong></p>
<p>For me, the big theme at CommunityOne was cloud computing. Sun itself was emphasizing cloud stuff and the latest release of OpenSolaris, 2009.06, which were the main topics of the CommunityOne general session. The Sun Cloud is due out sometime this summer, so much of the cloud part of the session was having partners come up and tell about their experiences working with our cloud. The OpenSolaris team has done a huge amount of work in 2009.06. The feature that stuck out to me the most is &#8220;<a href="http://opensolaris.org/os/project/crossbow/">Crossbow</a>&#8220;, which is a completely rewritten networking stack. Solaris already had CPU virtualization technology built into it via the zones feature. Crossbow makes it possible to virtualize networking configurations. This means that you could run an instance of OpenSolaris on your laptop (either natively or via VirtualBox, VMWare or whatever) and actually have a virtualized data center configuration running right there. That&#8217;s pretty interesting stuff.</p>
<p>I went to several cloud sessions, and I&#8217;d have to say that the current state of cloud computing is pretty rough. At least that&#8217;s true at the Infrastructure as a Service level where Amazon and the Sun Cloud are. As an example, I went to a good presentation by fellow Sun employees on <a href="http://wikis.sun.com/display/cloud/Patterns">cloud computing patterns</a>. I happened to be sitting with James Governor and Stephen O&#8217;Grady of Redmonk, and I turned to Stephen and said &#8220;these patterns are all at a level that I never want to have to worry about&#8221;. The patterns themselves were fine, but I personally don&#8217;t want to have to deal with things at that level in a cloud platform. There is lots of room for improvement and innovation in this space.</p>
<p>My CommunityOne talk was called &#8220;Programming Languages for the Cloud&#8221;.</p>
<div id="__ss_1550943" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Programming Languages For The Cloud" href="http://www.slideshare.net/twleung/programming-languages-for-the-cloud?type=powerpoint">Programming Languages For The Cloud</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=programminglanguagesforthecloud-090608164735-phpapp02&amp;stripped_title=programming-languages-for-the-cloud" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=programminglanguagesforthecloud-090608164735-phpapp02&amp;stripped_title=programming-languages-for-the-cloud" /><param name="allowfullscreen" value="true" /></object></div>
<p>The talk is based on my experience as a language guy who has been asked to work on cloud computing stuff. As such, I&#8217;m really trying to raise questions (for which I don&#8217;t yet have answers) about places where work on programming languages might usefully intersect with cloud computing. I figured that this would be a niche kind of talk, so I was very surprised to find myself in one of the larger rooms at Moscone, complete with a live video feed. I was even more surprised to see that the room was pretty full. After the presentation, one of the Salesforce.com engineers working on Apex (their domain specific language for the cloud) came up to the front. We ended up having lunch and I learned a bunch interesting stuff about their experience withe Apex. This sort of thing is what makes conferences worthwhile.</p>
<p><strong>JavaOne</strong></p>
<p>I spent the first day of JavaOne prepping for my presentation, &#8220;Seeding the Cloud&#8221;, which was about some ways that tools could help developers who choose to build applications in the cloud.</p>
<div id="__ss_1551026" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Seeding The Cloud" href="http://www.slideshare.net/twleung/seeding-the-cloud?type=presentation">Seeding The Cloud</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seedingthecloud-090608170829-phpapp02&amp;stripped_title=seeding-the-cloud" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seedingthecloud-090608170829-phpapp02&amp;stripped_title=seeding-the-cloud" /><param name="allowfullscreen" value="true" /></object></div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">Ashwin Rao and I had some pretty interesting demos lined up, but we had problems with the internet connection in the room so a number of the demos failed. I learned later that the internet connection for all of Moscone Center had gone out, which made me feel slightly better. As someone commented to me, it was a good illustration of some of the weak points of the cloud (web, really) model.</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">The demonstration that I really wanted to show was an extension of some work that the <a href="http://kenai.com/">Kenai</a> team has done. Kenai is going to have support for doing continuous integration via Hudson, and the machines for doing that can be allocated as cloud instances. This is great if you have a project in Java or some other language that has major build steps. Another use for a dynamically allocated farm of machines is to do web UI testing on browser combinations. Back at PyCon, I put a bug into <a href="http://adamchristian.com/">Adam Christian</a> and <a href="http://www.mikealrogers.com/">Mikeal Roger</a>&#8217;s ears about this. Adam and Mikeal are the primary guys behind the <a href="http://www.getwindmill.com/">Windmill</a> web UI testing framework. Adam has been working with <a href="https://hudson.dev.java.net/">Hudson</a> author <a href="http://weblogs.java.net/blog/kohsuke/">Kohsuke Kawaguchi</a>, and between the two of them they came up with a way for Hudson to start up a bunch of different browsers on different operating systems. If my demo had worked, people would have seen me kick off a Hudson build from inside of Netbeans 6.7, and then we would have watched (via RDC) the various browsers running though some UI tests on a web application. Oh well.</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">I spent the rest of JavaOne ducking into various language and concurrency talks. Jonas Boner gave a very nice talk comparing some of the concurrency mechanisms that are available on the JVM. Alex Miller gave a talk on Java concurrency gotchas. The net effect of Alex&#8217;s talk was to reinforce the fact that we need one or more of the mechanisms that Jonas covered in his talk. Also in the concurrency vein, I stopped in on Philipp Haller and Frank Sommer&#8217;s &#8217;s talk on Scala Actors. Probably the most fun concurrency thing was a random conversation with Clojure author Rich Hickey and Jonas Boner in the speaker room.</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">JavaOne is big on the keynote / general sessions. I only went to two, the opening session, and Bob Brewin&#8217;s technical keynote. The big news (to me) in Bob&#8217;s keynote was Mark Reinhold&#8217;s demonstration of a modularized JDK. This is cool for a variety of reasons, like reducing the footprint of the downloads, ability to build distribution packages trivially, and so forth. But the thing that made me happies was news that the CLASSPATH is finally going way, to be replaced by a module-info.java file.</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">The opening general session was very subdued. There were a variety of partner / sponsor segments, but things were really running at a low energy level until the end when Scott McNealy took the stage and then introduced Oracle CEO Larry Ellison. Despite Ellison&#8217;s reassurances to the Java community, it was a sad moment. I&#8217;ve only been at Sun for a little over a year, but my history with the company is pretty long. When I was in grad school, Brown was on of the first large installations of Solaris (replacing SunOS). Like many developers, I&#8217;ve used Java over the years. Sun has made a number of very important contributions to the computer industry, and it&#8217;s sad to me that a company so full of innovation was unable to remain independent.</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;"><strong>Photography</strong></div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="font-family: Helvetica; font-size: 12px;">This year things were so busy and frenetic that I really didn&#8217;t have much time to pull out the camera. Between presentations and meeting up with Sun people from all over the world, there just wasn&#8217;t time. Here are a few from the few times that my camera escaped its bag:</div>
<div style="font-family: Helvetica; font-size: 12px;"></div>
<div style="text-align: center;"><a title="View 'JavaOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608978606"></a><a title="View 'JavaOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608978606"><img src="http://farm4.static.flickr.com/3415/3608978606_39606a4f53.jpg" border="0" alt="JavaOne 2009" width="500" height="333" /></a></div>
<p><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608943462"></a></p>
<div style="text-align: center;">Bob Brewin&#8217;s Technical Keynote</div>
<div style="text-align: center;"></div>
<div style="text-align: center;"><img src="http://farm4.static.flickr.com/3399/3608906776_fe67193bbc.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></div>
<div style="text-align: center;">The Extra Action Marching Band on the CommunityOne Expo Floor</div>
<div style="text-align: center;"></div>
<div style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608943462"></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608943462"><img src="http://farm4.static.flickr.com/3413/3608943462_d82a5e3bf0.jpg" border="0" alt="CommunityOne 2009" width="500" height="333" /></a></div>
<p><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608123991"></a></p>
<p style="text-align: center;">The CommunityOne Party</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608123991"></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608123991"><img src="http://farm4.static.flickr.com/3608/3608123991_b8a98c18d7.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></a></div>
<p><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608094975"></a></p>
<p style="text-align: center;">The CommunityOne Party</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608094975"></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608094975"><img src="http://farm3.static.flickr.com/2442/3608094975_fb344912eb.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></a></div>
<p><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608906776"></a></p>
<div style="text-align: center;">The CommunityOne Party</div>
<div style="text-align: center;"></div>
<div style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608925748"></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608925748"><img src="http://farm4.static.flickr.com/3608/3608925748_677ee2a24c.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></a></div>
<p><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608936878"></a></p>
<p style="text-align: center;">The CommunityOne Party</p>
<p style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608936878"><img src="http://farm4.static.flickr.com/3559/3608936878_d79d6a3ecc.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608930464"></a><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608930464"></a></p>
<p style="text-align: center;">The CommunityOne Party</p>
<p style="text-align: center;"><a title="View 'CommunityOne 2009' on Flickr.com" href="http://www.flickr.com/photos/51035696189@N01/3608930464"><img src="http://farm4.static.flickr.com/3355/3608930464_cd9fabe365.jpg" border="0" alt="CommunityOne 2009" width="333" height="500" /></a></p>
<p style="text-align: center;">The CommunityOne Party</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/06/08/communityone-javaone-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/06/08/communityone-javaone-2009/</feedburner:origLink></item>
		<item>
		<title>CommunityOne and JavaOne</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/Ead11CaT7js/</link>
		<comments>http://www.sauria.com/blog/2009/06/01/communityone-and-javaone/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 15:59:34 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/06/01/communityone-and-javaone/</guid>
		<description><![CDATA[I&#8217;m here in San Francisco for CommunityOne and the first 3 days (Tuesday through Thursday) of JavaOne.
Today at CommunityOne I&#8217;ll be giving a talk called &#8220;Programming Languages for the Cloud&#8220;. This is an exploration of areas where programming languages might intersect cloud computing.
Tuesday afternoon at JavaOne Ashwin Rao and i I will be giving a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m here in San Francisco for CommunityOne and the first 3 days (Tuesday through Thursday) of JavaOne.</p>
<p>Today at CommunityOne I&#8217;ll be giving a talk called &#8220;<a href="https://www28.cplan.com/cc239/session_details.jsp?isid=307153&amp;ilocation_id=230-1&amp;ilanguage=english">Programming Languages for the Cloud</a>&#8220;. This is an exploration of areas where programming languages might intersect cloud computing.</p>
<p>Tuesday afternoon at JavaOne Ashwin Rao and i I will be giving a talk called &#8220;<a href="http://www28.cplan.com/cc230/session_details.jsp?isid=304762&amp;ilocation_id=230-1&amp;ilanguage=english">Seeding the Cloud</a>&#8220;, where we&#8217;ll be giving a developer centric view of cloud computing and cloud computing issues. We&#8217;ll also have demos of some of the cloud developer stuff we&#8217;ve been working on.</p>
<p>If you are around and want to meetup, you can always get a hold of me via <a href="http://twitter.com/twleung">Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/06/01/communityone-and-javaone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/06/01/communityone-and-javaone/</feedburner:origLink></item>
		<item>
		<title>On Twitter Data</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/ze2s_35VDaw/</link>
		<comments>http://www.sauria.com/blog/2009/05/26/on-twitter-data/#comments</comments>
		<pubDate>Tue, 26 May 2009 16:23:20 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/05/26/on-twitter-data/</guid>
		<description><![CDATA[I&#8217;ve been getting various kinds of private communication about this, so it&#8217;s probably worth some commentary&#8230;
For some time now, I&#8217;ve been wondering when someone would start to use systems like Twitter as a way to deliver information between programs. A few weeks ago, Todd Fast, a colleague at Sun gave me a preview of what [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been getting various kinds of private communication about this, so it&#8217;s probably worth some commentary&#8230;</p>
<p>For some time now, I&#8217;ve been wondering when someone would start to use systems like Twitter as a way to deliver information between programs. A few weeks ago, <a href="http://blogs.sun.com/toddfast/">Todd Fast</a>, a colleague at Sun gave me a preview of what is now the <a href="http://twitterdata.org/">Twitter Data</a> proposal. Todd and Jiri Kopsa have done all the heavy lifting on this, so if you have substantive comments or requests, they are really the people you should be dealing with. They were kind enough to recognize me as a reviewer of their work, but the initial idea is theirs.</p>
<p>Twitter Data is a bit different than what I was envisioning. I was thinking more along the lines of jamming JSON or XML data into a Twitter message as a starting point for program level data exchange. That would allow us to leverage existing tools and libraries and make the entire thing straight forward. The interesting part, then, would be in the distribution network that arose from programs following other programs. This could also be embedded into a person&#8217;s Twitter feed by allowing clients to ignore tweet payloads that were structured data.</p>
<p>Twitter Data proposes a way to annotate the data oriented parts of a regular Tweet in order to make it easier for machines to extract the data. Some people think this is a good idea, and some people think it&#8217;s a terrible idea. It&#8217;s easy to see the arguments on both sides. Pro, is that you could turn your Tweet stream into a way to deliver information about you to programs, and that Twitter Data would make it that much easier to do. The Cons (that I&#8217;ve seen so far) are that people don&#8217;t want to have this kind of data exchange mixed into their Twitter stream, or that parsing the natural language that appears in the 140 characters of a tweet shouldn&#8217;t be that hard.</p>
<p>So we have two dimensions (at least) to the problem that Twitter Data is trying to address:</p>
<ol>
<li>Is it a useful thing to have structured or semi structured information about a person included in their Twitter feed?</li>
<li>If so, should that data be out of band, mixed in, or extracted (natural language processing)?</li>
</ol>
<p>Independent of the merits of the specific Twittter Data proposal (and I definitely think that there are merits), I think that these two questions are worth some discussion and pondering.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/05/26/on-twitter-data/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/05/26/on-twitter-data/</feedburner:origLink></item>
		<item>
		<title>Mac Pro time</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/IyADpQYQNyA/</link>
		<comments>http://www.sauria.com/blog/2009/05/25/mac-pro-time/#comments</comments>
		<pubDate>Tue, 26 May 2009 06:40:13 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[lightroom]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/05/25/mac-pro-time/</guid>
		<description><![CDATA[For the past three or four years, I&#8217;ve been promising myself that I was going to buy myself a Mac Pro. This mostly a result of digital photography, which makes rapacious demands on computer systems. In the last 9 months or so, it&#8217;s also been because I am doing more work using virtualized machine images. [...]]]></description>
			<content:encoded><![CDATA[<p>For the past three or four years, I&#8217;ve been promising myself that I was going to buy myself a Mac Pro. This mostly a result of digital photography, which makes rapacious demands on computer systems. In the last 9 months or so, it&#8217;s also been because I am doing more work using virtualized machine images. In any case, every time Apple had an event, I was telling myself that I was going to buy the machine, but there was always some reason why it never happened. The announcement of the Nehalem based Mac Pro earlier this year finally pushed me over the edge. And pushing was required. There&#8217;s been a lot of benchmarking which casts the performance of these machines in questionable light when compared with the machines that they replaced. Until a bunch of applications are rewritten to take advantage of the large number of cores in Nehalem based systems, these boxes are only slightly better than the ones they replaced, and a bit more expensive.</p>
<p>I ended up getting an 8 core machine, because these are the machines that can be expanded to an outrageous amount of memory, something which is a necessity for systems doing a lot of Photoshop. Due to the benchmarking controversy, I got the 2.66GHz processors, so that single threaded programs wouldn&#8217;t suffer as much. Here&#8217;s a quick rundown on my experience after having the machine for a few weeks.</p>
<p><strong>Hardware</strong></p>
<p>All of my hardware moved over without a hiccup, except for my Logitech Z-5500 speakers. I needed a TOSLINK to TOSLINK cable, which was rectified by a trip to Radio Shack (yes, we have one on Bainbridge Island. It&#8217;s not Fry&#8217;s but once a year or so they save my bacon.). The machine is much quieter than I expected. The last desktop machine that I owned was a homebuilt Windows box, and that thing was really loud. The Mac Pro is quieter than some of the external FireWire drives that are plugged into it. Heat would be a different story. My office is already several degrees warmer than the rest of the house, and now it&#8217;s probably another several degrees warmer. I&#8217;m having to be very careful about leaving my office doors open in order for things to cool down. Figuring out how this works in the summer is going to be interesting.</p>
<p>Performance wise I am pretty happy. Things are definitely snappier than my Sun supplied 2.6GHz MacBook Pro. I moved some external disks off of Firewire and into the Mac Pro&#8217;s internal SATA drive bays, and I am sure that the change in interface made a big contribution to the improved speed. The machine has 12GB of Other World Computing RAM in it, so it basically doesn&#8217;t page unless I am doing something big in Photoshop or have several VirtualBox VMs open at the same time.</p>
<p>There are some things that I miss:</p>
<p>We don&#8217;t have TV, so we do a lot of NetFlix and other DVD&#8217;s. This happened mostly on the MacBook Pro via Front Row and the Apple Remote. The Mac Pro doesn&#8217;t talk to the Apple remote, and I miss that. If people have suggestions for controlling Front Row on a Mac Pro, please leave them in the comments.</p>
<p>I got used to having the laptop hooked up to the LCD display, and using the laptop LCD as my &#8220;communications display&#8221; for IM, IRC, Twitter and so forth. Now I&#8217;m back down to a single display and missing it. I&#8217;m also missing it in Lightroom.</p>
<p>The Mac Pro came with an Apple keyboard, and the keyboard I was using was a Microsoft Natural Keyboard from 2000, and some of the keys were starting to get hard to push. So I figured that I would try the Apple keyboard. So far I don&#8217;t mind it, but keys are in different places, and the new keyboard has 9 years of muscle memory working against it. But that would be true of just about any keyboard.</p>
<p><strong>Software</strong></p>
<p>Any time I get a new machine I update my <a href="http://www.sauria.com/blog/mac-tips-and-tricks/">Macintosh Tips and Tricks</a> page. I definitely have some updates that I could make, and I might make some of them after JavaOne. The rumor mill is suggesting that MacOS 10.6 Snow Leopard is going to ship this summer, so I might just wait until that happens, since I expect a lot of things to need updating, rearranging, etc.</p>
<p>I did have a problem when I tried to update the machine to 10.5.7. Things were behaving very oddly, so I restored the machine back to 10.5.6 with Time Machine. Time Machine backups on an internal SATA drive take less time (and make less noise) than on an external FireWire drive. I&#8217;m going to give this another try after JavaOne. And for prospective commenters, yes, I repaired permissions and used the Combo Updater.</p>
<p>Photoshop occasionally makes use of the additional cores, but it&#8217;s the large amount of RAM that is really making the difference at the moment. The same is true for Lightroom. Perhaps the next editions of these programs, coupled with 10.6, will do a better job of keeping multiple cores busy. In the meantime, my Lightroom to Photoshop batch jobs are definitely running quite a bit faster than before.</p>
<p><strong>On the whole</strong></p>
<p>On the whole, I am happy with the machine, and I expect to be a lot happier when 10.6 ships this summer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/05/25/mac-pro-time/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/05/25/mac-pro-time/</feedburner:origLink></item>
		<item>
		<title>Erlang Factory 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/oDB-FvKDJY4/</link>
		<comments>http://www.sauria.com/blog/2009/05/04/erlang-factory-2009/#comments</comments>
		<pubDate>Tue, 05 May 2009 00:29:17 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[concurrency]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[dynamic languages]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[functional programming]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/05/04/erlang-factory-2009/</guid>
		<description><![CDATA[I spent Thursday and Friday of last week at the Erlang Factory in San Francisco (although the event was actually in Palo Alto).
Why did I go?
I&#8217;ve written about Erlang in this space before. Erlang is having a major influence on other languages, such as Scala on the JVM side and Axum on the CLR side. [...]]]></description>
			<content:encoded><![CDATA[<p>I spent Thursday and Friday of last week at the <a href="http://www.erlang-factory.com/conference/SFBayAreaErlangFactory2009">Erlang Factory</a> in San Francisco (although the event was actually in Palo Alto).</p>
<p><strong>Why did I go?</strong></p>
<p>I&#8217;ve written about Erlang in this space before. Erlang is having a major influence on other languages, such as <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.scala-lang.org%2F&amp;ei=6Hn_SZH3K4SmM9_5rM0E&amp;usg=AFQjCNGYBCTSNmB7f0MMI09DwW_uK_f65w">Scala</a> on the JVM side and <a href="http://blogs.msdn.com/maestroteam/">Axum</a> on the CLR side. In addition every language seems to have several implementation of Erlang style &#8220;actors&#8221; (despite the fact that this is historically incorrect). Erlang has been around for a long time, and has seen industrial usage in demanding telecom applications. As a dynamically typed functional language with good support for concurrency and distribution, it is (if nothing else) a source of interesting ideas. Earlier this year, my boss asked me to start doing some thinking about cloud computing in addition to the stuff that I was already doing around dynamic languages &#8212; another good match for Erlang. This was the first large scale gathering of Erlang people in the US (at least that I am aware of), so I wanted to drop in and see what was going on, what the community is like, and so on.</p>
<p><strong>Talks</strong></p>
<p>The program at the Erlang Factory was very strong. In many of the slot sessions, there were 3 excellent talks to choose from. Every single talk that I went to was of very high quality. It was so bad that I wasn&#8217;t able to explore all the areas that I wanted to. Fortunately, the sessions were videotaped and are supposed to be made available on the web. Also, there was a decent amount of twittering going on, so a <a href="http://twitter.com/#search?q=erlangfactory">Twitter search for #erlangfactory</a> will turn up some useful information.</p>
<p>I attended a number of &#8220;experience&#8221; talks by companies / individuals. There were experience talks from Facebook, SAP, Orbitz, and Kreditor (the fastest growing company in Sweden). I made it to the Facebook talk and the Kreditor talk. Facebook&#8217;s usage/deployment is on the order of 100 machines, which provide the chat facility for Facebook. Erlang is doing all the heavy lifting, and PHP is doing the web UI part. There was a lot of this kind of architecture floating around the conference. It seemed like the most popular combination was Ruby/Erlang, but there was definitely Python and PHP as well. The Kreditor talk was interesting because their site has been running for 3 years with very small amounts of downtime. Unfortunately, their entire deployment is probably less than 10 machines, so that blunts the impressiveness of what they have done. Still it was interesting to hear how they accomplished this using features of Erlang. In addition to the talks, I spoke with many attendees who are using Erlang in their companies. One such person was eBay founder Pierre Omidyar, who is running <a href="http://ginx.com/">Ginx</a>, a web based Twitter client. Pierre is doing the coding and deployment of the site, and was well versed in the Erlang way of doing things. An interesting data point.</p>
<p>The Erlang community (like all communities) has it&#8217;s old guard. These are folks who have worked with Erlang for years, before its recent burst of interest. There were a pair of keynotes by Erlang long-timers Robert Virding (The Erlang Rationale) and Ulf Wiger (Mulitcore Programming in Erlang). Both of these talks shared a common trait &#8212; the speakers were pretty honest about what was good about Erlang, and where there were problems. Given how prone the computing business is to fashion, I found this to be refreshing. Virding talked about the reasons why Erlang is designed the way it is. He accepted the blame for inconstencies in the libraries, talked about the need to avoid the process dictionary, and agreed that &#8220;a char type is probably not wrong&#8221;. Wiger&#8217;s talk was about why parallelizing code is hard (even with Erlang). He used the example of parallelizing map to demonstrate this, and showed the use of the <a href="http://www.cs.chalmers.se/~rjmh/ErlangQC/">QuickCheck</a> testing tool to aid in finding parallelism bugs. The Erlang version of QuickCheck was inspired by the <a href="http://haskell.org/haskellwiki/Introduction_to_QuickCheck">Haskell version of QuickCheck</a>, and it&#8217;s a very very useful tool. The adaptations for parallelism look very nice. It&#8217;s a shame that the Erlang version is commercial software. I don&#8217;t grudge the authors the right to charge money for their software, but I do think that this will hold back adoption of this important tool.</p>
<p>There were many talks on what I would describe as &#8220;cloud problems&#8221;. For example, Ezra Zygmutowicz&#8217;s &#8220;You got your Erlang in my Ruby&#8221; was really about how he built a self assembling cluster of Ruby daemon&#8217;s (<a href="http://github.com/ezmobius/nanite/tree/master/">Nanite</a>), Dave Fayram and Abhay Kumar&#8217;s &#8220;Building Reliable Distributed Heterogenous Services with <a href="http://github.com/KirinDave/fuzed/tree/master">Katamari/Fuzed</a>&#8220;, and Lennart Ohman&#8217;s &#8220;A service fail over and take-over system for Erlang/OTP&#8221;. Like PyCon, there was a lot of interested in eventually consistent databases/key-value stores/non-relational databases. Cliff Moon&#8217;s talk on <a href="http://github.com/cliffmoon/dynomite/tree/master">dynomite</a> (a clone of Amazon&#8217;s <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">Dynamo</a> system), was particularly encouraging because he was reaching out to other people in the audience (and there were a decent number of them) to try an consolidate all their efforts into a single project. From what I could tell, people seemed receptive to that idea.</p>
<p><a href="http://couchdb.apache.org">CouchDB</a> also fits into that last category of non-relational databases, but it gets it&#8217;s own paragraph. One reason is that I helped mentor the project through the Apache Incubator (and chauffeured those CouchDB committers who were present). Another is that CouchDB creator Damien Katz got a keynote. Third is that there was basically a CouchDB track on the second day of the conference. There was a lot of interest in CouchDB, and a lot of activity as well. I was told that some of the people who took the CouchDB training during the training days had actually submitted patches on the project already. Damien&#8217;s talk was not about the technical details of CouchDB, but about his personal journey to CouchDB, which included selling his house and living off his savings in order to see CouchDB come to life.</p>
<p>Activity has really picked up in the Erlang web framework space. In addition to <a href="http://www.erlang-web.org/">Erlang Web</a>, and Yariv Sadan&#8217;s <a href="http://erlyweb.org/">Erlyweb</a>, there is also Rusty Klophaus&#8217; <a href="http://nitrogenproject.com/">Nitrogen</a>. Nitrogen focuses more on the UI side of the web framework, omitting any kind of data storage. It&#8217;s very easy to create an AJAX based user interface using Nitrogen, and there is nice support for Comet. As part of his presentation, Rusty showed his slides on a Nitrogen based webcast reflector. You specify the UI using Erlang terms, which then causes HTML/Javascript/etc to be generated, which caused a stir in part of the Twitter peanut gallery. I was mostly happy to see people focusing on solving the current generation of problems. My favorite web space talk was probably Justin Sheehy&#8217;s talk on <a href="http://bitbucket.org/justin/webmachine/wiki/Home">Webmachine</a>. I think that I prefer the description of WebMachine as a REST or HTTP toolkit. Webmachine gives you what you need to implement any HTTP method correctly, and then provided a set of callback functions that can be implemented to customize that processing to do actual work. One of the coolest things about Webmachine is it&#8217;s ability to visually show you that path taken in processing a particular HTTP request, and being able to inspect/dump data at various points in the diagram. It makes for a very nice demo.</p>
<p>There were not that many &#8220;language geek&#8221; talks. This contrasts with the early years of PyCon (at least for as long as I have attended) where there were quite a number. I missed Robert Virding&#8217;s talk on <a href="http://github.com/rvirding/lfe/tree/master">Lisp Flavored Erlang</a> (but I saw some example usage in a CouchDB talk), because it overlapped the dynomite talk. I was able to attend Tony Arcieri&#8217;s talk on &#8220;Building Languages on Erlang (and an introduction to Reia)&#8221;. During the first part of his talk, Tony showed how to construct an Erlang module on the fly in the Erlang shell. He then discussed some tools which are useful to people trying to build languages on top of BEAM, the Erlang virtual machine:</p>
<ul>
<li>Robert Virding has written <a href="http://github.com/rvirding/leex/tree/master">leex</a>, a lexical analyzer generator</li>
<li>yecc, a Yacc style parser generator is included in the Erlang distribution</li>
<li>the erl_syntax_lib library aids in constructing Erlang abstract syntax trees, which can then be compiled to Erlang bytecode.</li>
<li>Erlyweb contains the <a href="http://erlyweb.org/doc/smerl.html">smerl</a> (simple metaprogramming) library for creating and manipulating Erlang modules at runtime.</li>
</ul>
<p>After that, he launched into a description of REiA. I&#8217;m not sure that I agree with some of the choices that he has made, but I am happy to see people experimenting with languages on top of BEAM, and in keeping with Erlang&#8217;s process model and the OTP infrastructure. One of the things that Tony mentioned was abandoning indentation based syntax. He wrote an entire <a href="http://unlimitednovelty.com/2009/03/indentation-sensitivity-post-mortem.html">postmortem</a> on that experience in his blog. Python&#8217;s indentation based syntax has won me over and made me a fan, and I am sad to see that indentation syntax, blocks/closures, and expression orientation continue to be at odds.</p>
<p><strong>Coda</strong></p>
<p>It looks like Erlang is starting to find a home. Companies are using it in production. There are books starting to be written about it. Many (not all) of the things which make Erlang seem odd to &#8220;mainstream&#8221; programmers also appear in languages like Scala, Haskell, and F#. At the same time, Erlang has a long history of industrial deployment, albeit in a single (large) market segment. Many of the problems which we now face in large web systems (and the cloud): concurrency, distribution, high availability, and scalability are strengths for Erlang. Indeed, many of the people that I heard from or talked to basically said that they couldn&#8217;t solve their problem with any other technology, or that their solutions were dramatically simpler than the technologies that they already knew. Will that be enough to propel Erlang into the mainstream? I don&#8217;t know. I also don&#8217;t know if our current state of mainstreamness is going to remain. More and more I&#8217;m seeing an attitude of &#8220;let&#8217;s use the best tool for the job&#8221;, not only in languages, but in all parts of (web) applications.</p>
<p>There&#8217;s also the issue of the Erlang community itself. &nbsp;&nbsp;Around 120 people showed up for the conference. As I mentioned previously, there are the folks who have been doing Erlang for years. Then there are the relative newcomers, who are web oriented/web savvy, and solving problems in very different domains than the original problem domain of Erlang and it&#8217;s inventors. Thus far, the two segments seem to be getting along fine. I hope that will continue &#8212; success or the potential for success has a tendency to bend relationships.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/05/04/erlang-factory-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/05/04/erlang-factory-2009/</feedburner:origLink></item>
		<item>
		<title>Why I finally believe in hashtags</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/ayQqx2tRaQA/</link>
		<comments>http://www.sauria.com/blog/2009/04/25/why-i-finally-believe-in-hashtags/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 16:48:39 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/04/25/why-i-finally-believe-in-hashtags/</guid>
		<description><![CDATA[I&#8217;ve been using Twitter for a while now, but I&#8217;ve never really used hashtags much. I&#8217;ve never been much for doing the stuff it takes to get a highly promoted blog or twitter stream. I figure that if my content is worthwhile, that should be enough. At PyCon I found the compelling hashtag use case [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Twitter for a while now, but I&#8217;ve never really used hashtags much. I&#8217;ve never been much for doing the stuff it takes to get a highly promoted blog or twitter stream. I figure that if my content is worthwhile, that should be enough. At PyCon I found the compelling hashtag use case for me.</p>
<p>There were a lot of people using hashtags in their PyCon tweets, and Jacob Kaplan-Moss showed me <a href="http://twitterfall.com/">Twitterfall</a>, which made it easy to keep track of uses of the tag. That made it *much* easier to find the virtual twitter stream for PyCon. This was also true at Lang.NET, the DSL DevCon, and the MySQL conference. This week(end) I&#8217;ll be using hashtags to track the progress of <a href="http://www.jsconf2009.com/">JSConf</a>. &nbsp;&nbsp;From now on I&#8217;ll always use hashtags when I&#8217;m at a conference or event.</p>
<p>One reason that it&#8217;s taken me so long to get the hash tag thing is that I use Twitter primarily via rich desktop (or iPhone) clients. Until recently I wasn&#8217;t using clients that could do searching. I had tried <a href="http://www.tweetdeck.com/">TweetDeck</a>, and it never stayed with me. When <a href="http://www.nambu.com/">Nambu</a> came along, I was pretty enthusiastic because it was a native TweetDeck. Unfortunately, I had crashing problems with it at Lang.Net (since fixed, I think), and I put it aside when I realized that <a href="http://mrrsoftware.com/MRRSoftware/Syrinx_Beta.html">Syrinx 2.0</a> had searches. While Syrinx doesn&#8217;t save searches across restarts, its memory use is tolerable enough to leave it running all the time, so it&#8217;s not a big problem, and I am hopeful that MRR will include saved searches in a future version. Commenters: yes, I tried Tweetie for Mac, and I didn&#8217;t like it. I love Tweetie for iPhone, though. Go figure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/04/25/why-i-finally-believe-in-hashtags/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/04/25/why-i-finally-believe-in-hashtags/</feedburner:origLink></item>
		<item>
		<title>MySQL Conference 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/m28ceb5tNpA/</link>
		<comments>http://www.sauria.com/blog/2009/04/24/mysql-conference-2009/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 23:33:02 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[computers]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[mysqlconf]]></category>
		<category><![CDATA[mysqlconf09]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/04/24/mysql-conference-2009/</guid>
		<description><![CDATA[I spent most of this week at the MySQL Conference. I was giving a talk on Python and MySQL, which came about as a favor to some folks in the marketing department at Sun. This was a fair exchange, because I&#8217;ve been curious about the MySQL community. MySQL is at the other end of the [...]]]></description>
			<content:encoded><![CDATA[<p>I spent most of this week at the MySQL Conference. I was giving a talk on Python and MySQL, which came about as a favor to some folks in the marketing department at Sun. This was a fair exchange, because I&#8217;ve been curious about the MySQL community. MySQL is at the other end of the open source spectrum from the ASF, so I wanted to see for myself what it was like. The MySQL conference is the MySQL community&#8217;s equivalent of ApacheCon. There is a mix of talks, some aimed at users of MySQL, and others aimed at developers of MySQL or related products.</p>
<p>There is a sizeable ecosystem around MySQL. There are extension patches from <a href="http://code.google.com/p/google-mysql-tools/">Google</a> and <a href="http://www.percona.com/percona-lab.html">Percona</a>, which were mentioned in many talks that I was in. There&#8217;s <a href="http://askmonty.org/wiki/index.php/MariaDB">MariaDB</a>, Monty&#8217;s community oriented fork of MySQL. There&#8217;s the <a href="https://launchpad.net/drizzle">Drizzle</a> project, which looks really interesting. There&#8217;s lots going on, and I got the feeling that there&#8217;s lots of innovation happening in various parts of the ecosystem. It feels energetic and fun, and what I would expect of a big open source community, despite it being a long way from Apache or Python.</p>
<p>I attended all kinds of talks. I went to a number of talks about analyzing performance and monitoring, including 3 talks on DTrace. Sadly, these talks were sparsely attended, which is a symptom of some of the problems that Solaris/OpenSolaris has been having. What was interesting was that all of these talks were given by former MySQL employees, and all of them were genuinely enthusiastic about DTrace. The best of these talks was Domas Mituzas&#8217; <a href="http://www.mysqlconf.com/mysql2009/public/schedule/detail/6046">Deep-inspecting MySQL with DTrace</a>, where he showed some very cool MySQL specific DTrace scripts. If DTrace got ported to Linux as a result of the Oracle/Sun acquisition, that would be a good outcome for the world.</p>
<p>I also went to several cloud computing talks, where the topics was how to run MySQL in the cloud. These were pretty interesting because it turns out that there is a bunch of stuff that you need to do and be aware of when running the current versions of MySQL in a cloud environment. I hope that the Drizzle folks are aware of some of these issues and are able to solve some of these problems so that running in the cloud us pretty simple.</p>
<p>Here are my 3 favorite talks:</p>
<ul>
<li>Don MacAskill&#8217;s <a href="http://www.mysqlconf.com/mysql2009/public/schedule/detail/8232">The SmugMug Tale</a> &#8211; I&#8217;m a photo guy, but not a SmugMug customer. Don&#8217;s been tweeting his experiences using Amazon Web Services to build SmugMug, and he&#8217;s been blogging his experiences with ZFS, the Sun Storage 7000, and so forth. I&#8217;ve been following his stuff for a while, so this was mostly a chance to see an in person rendering of an on line personality.</li>
<li>One talk that I didn&#8217;t expect to enjoy was Mark Madden&#8217;s <a href="http://www.mysqlconf.com/mysql2009/public/schedule/detail/8870">Using Open Source BI in the Real World</a>. I&#8217;m not really a Business Intelligence guy per se, but the world of blogging and twittering and so forth starts to make you attuned to the usefulness of various kinds of analytics. Anyone building any kind of non-trivial web software need analytics capabilities, so having open source solutions for this is good. It probably also didn&#8217;t hurt that I talked to several BI vendors on the expo floor the night before. What I really enjoyed about the talk was the beginning sections on how to be an analyst, think about and project the future. I&#8217;m given to a bit of that now and then, so I found this part of the talk pretty interesting.</li>
<li>The best talk that I went to was Yoshinori Matsunobu&#8217;s <a href="http://www.mysqlconf.com/mysql2009/public/schedule/detail/6661">Mastering the Art of Indexing</a>. The speaker pretty much covered all the kinds of indexing in MySQL, which indexes work best in which conditions (both for selecting and inserting &#8212; there were some interesting surprises for insert), and even tested the differences between hard disks and solid state drives. Maybe I loved this talk because it brought back all the research that I did in query optimization back in graduate school. But that wouldn&#8217;t explain all the other people in the room, which was standing room only.</li>
</ul>
<p>Based on what I saw this week, I&#8217;m not in any way worried about the future of MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/04/24/mysql-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/04/24/mysql-conference-2009/</feedburner:origLink></item>
		<item>
		<title>DSLDevCon 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/9y7EsKqsmaE/</link>
		<comments>http://www.sauria.com/blog/2009/04/20/dsldevcon-2009/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 18:12:20 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/04/20/dsldevcon-2009/</guid>
		<description><![CDATA[I&#8217;ve been having trouble coming up with a good summary of the (Domain Specific Language) DSL DevCon. That&#8217;s partly because there was a lot of information to absorb between Lang.NET and the DevCon. Even more so, I&#8217;m finding it hard to distill what I saw, what I didn&#8217;t see, what I wanted to see, and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been having trouble coming up with a good summary of the (Domain Specific Language) <a href="http://www.sellsbrothers.com/conference/">DSL DevCon</a>. That&#8217;s partly because there was a lot of information to absorb between Lang.NET and the DevCon. Even more so, I&#8217;m finding it hard to distill what I saw, what I didn&#8217;t see, what I wanted to see, and what I think we need to see next. That&#8217;s odd because I&#8217;ve accepted the notion of DSL&#8217;s should be a part of the programmer&#8217;s toolbox ever since I sat through the &#8220;metalinguistic abstraction&#8221; section of Sussman and Abelson&#8217;s MIT class in 1984.</p>
<p><strong>Reporting</strong></p>
<p>I&#8217;m going to call out four talks that really stood out for me. There were more than just these four, but it was either these four or all of them, and all of them is too much work.</p>
<ul>
<li>
<p>Guillaume LaForge&#8217;s talk on Groovy DSL&#8217;s was important because he not only showed how to build DSL&#8217;s using Groovy, but he&#8217;s actually working with real customers, like Mutual of Omaha, who are using those DSL&#8217;s in production. &nbsp;&nbsp;</p>
</li>
<li>
<p>I was happy to hear Markus Voelter&#8217;s talk Textual DSL&#8217;s and Code Generation with Eclipse Tools because a lot of the noise that I&#8217;ve heard on the DSL front has been coming from the Ruby and .NET side of the world. One thing that got my attention at the DevCon was the importance of tooling, so it was good to see that there are some tooling efforts in the Java space. It&#8217;s too bad that no one from JetBrains was there to present on <a href="http://www.jetbrains.com/mps/index.html">MPS</a>.</p>
</li>
<li>
<p>Brad Cross and Ted Neward did a talk entitled &#8220;Functional vs. Dynamic DSLs: The Smackdown&#8221;. I came away from this talk wanting more, and not in a good way. Brad and Ted really needed about 2 hours in order to give all the relevant background a chance to settle in. During the talk they presented a set of things which differentiated the functional programming and dynamic language styles of creating &#8220;Internal&#8221; (I really dislike the Internal/External terms) DSLs. Unfortunately, there wasn&#8217;t enough time to really dig in and explore the meat of what they said. I think that a deep addressing of the points that they made would be a very important contribution to the DSL topic. Maybe we&#8217;ll get to see a series of blog posts, developerWorks articles, or even an academic paper of some kind.</p>
</li>
<li>
<p>I view <a href="http://www.intentsoft.com/">Intentional Software</a> as one of those grand computer science projects. Having worked on Chandler, I have an appreciation for the perils of large, grand efforts. This is the first time that I had a chance to see a presentation by anyone from Intentional Software, and it is just as well that it was a demo of their just shipped product. I took note when the Intentional Software project was started back in 2002, but I&#8217;ve not heard a lot about their progress since then. What we saw was a demonstration of a production version of their &#8220;Domain Workbench&#8221; which is a system for allowing domain experts and programmers to work together to build a system which domain experts can then use to write software. Instead of writing programs, the programmers write the generator which takes the domain language (which can be visual) and then generates code. The system represents the domain information in a way that allows multiple, editable, &#8220;projections&#8221; (views). The demonstrations that we saw included an actuarial workbench, complete with mathematical notation, and an electronics workbench, expressed as circuit diagrams. If you are interested, your best bet is to watch the <a href="http://msdn.microsoft.com/en-us/oslo/dd727740.aspx">video</a> when the videos are posted.</p>
<p>I am pretty impressed with what I saw, but there are lots of questions. How many domains can this actually work for? How hard is it to write generators? What&#8217;s the business model for domain workbenches? It seems pretty clear to me that for the domains and organizations where this can work, this approach is going to have a pretty sizable impact. Perhaps not this year, but within the next 5 years. I have to hand it to the Intentional Software guys. Their presentation was pretty low key, and they are going out of their way to not hype their stuff. They plan to work with a small number of customers to gradually prove out their approach. In an area which is highly susceptible to hype, it was refreshing to see people trying to keep expectations to a reasonable level.</p>
</li>
</ul>
<p>The DevCon (and Lang.NET) were also my chance to meet two people who I&#8217;ve followed for sometime from afar: <a href="http://blogs.tedneward.com/">Ted Neward</a>, and <a href="http://www.knowing.net/">Larry O&#8217;Brien</a>. Ted is well known and I&#8217;ve been following his blog for some time. He&#8217;s local to the Puget Sound area, and it&#8217;s probably just bad timing that we never met before this week. Larry O&#8217;Brien has been a commenter on my blog, as well as a responder on Twitter. I&#8217;ve appreciated his blog as well as the columns that he&#8217;s written over the years. It was great fun to run to the back of the room after each talk and see what the Twitter cabal (which included Larry) had to say about the material we had just seen.</p>
<p><strong>Analysis</strong></p>
<p>I think that DSL&#8217;s are inevitable. It&#8217;s remarkable to me how prescient Abelson and Sussman were when they defined three categories of abstraction: control abstraction, data abstraction, and metalinguistic abstraction. If you look at some of the recent frenzies in languages, you&#8217;ll see that we are mostly improving the ability of various languages to perform various kinds of abstraction. These concepts are not new, but they are appearing in languages which are approachable by today&#8217;s practitioners. Object oriented programming? Data abstraction. Closures? Control Abstraction. Pattern Matching/Algebraic datatypes? Data and control abstraction. DSLs and the capabilities needed to enable them? Metalinguistic abstraction.</p>
<p>Language as an abstraction is very powerful, and requires support from the underlying language as well as the tools. These two topics (as well as specific examples of domain specific languages) were the focus of the DevCon. The audience makeup appeared to be mostly language and compiler geeks. There were a few people (mostly consultants as far as I could tell) who write business applications, but this group was pretty small. This is important because most of the DSL&#8217;s presented were aimed at very computer science kinds of domains. If DSL&#8217;s are to have a broader impact, then it would be great to see more business people at events like this.</p>
<p>One thing which was not addressed at all was the process end of this. In order to build DSL&#8217;s for non computer domains, there has to be a collaboration between developers and domain experts. The Intentional Software guys recognize this via some &#8220;groupware&#8221; to facilitate this process. However, tooling alone is not enough to bridge this gap. I hope that we&#8217;ll be hearing reports on the process of collaboration between developers and domain experts as more and more people build DSL&#8217;s.</p>
<p>This is an interesting space, from a technical point of view. There is lots of cool language design and compiler stuff, some of my favorite topics. &nbsp;&nbsp;On the business end, it seems like there are some decent sized opportunities here, and that tooling is going to play a very large role &#8212; language support for DSL&#8217;s will be important, but may be overshadowed by the importance of good tools.</p>
<p><strong>Update</strong>: the <a href="http://msdn.microsoft.com/en-us/oslo/videos.aspx#dsl">videos</a> are now avaiable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/04/20/dsldevcon-2009/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/04/20/dsldevcon-2009/</feedburner:origLink></item>
		<item>
		<title>Lang.NET 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/6dxfaQY7TjY/</link>
		<comments>http://www.sauria.com/blog/2009/04/16/langnet-2009/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 04:31:44 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/04/16/langnet-2009/</guid>
		<description><![CDATA[Back in September, I attended the JVM Language Summit. This week I&#8217;ve been doing the Bainbridge Island to Redmond ferry commute in order to attend the Lang.NET symposium. Here&#8217;s some of the stuff that stood out to me.
Hopscotch
Gilad Bracha talked about Hopscotch, the IDE for Newspeak. Newspeak is one of those things that&#8217;s on my [...]]]></description>
			<content:encoded><![CDATA[<p>Back in September, I attended the <a href="http://www.sauria.com/blog/2008/09/27/the-first-annual-jvm-language-summit/">JVM Language Summit</a>. This week I&#8217;ve been doing the Bainbridge Island to Redmond ferry commute in order to attend the <a href="http://langnetsymposium.com/">Lang.NET</a> symposium. Here&#8217;s some of the stuff that stood out to me.</p>
<p><strong>Hopscotch</strong></p>
<p>Gilad Bracha talked about <a href="http://www.langnetsymposium.com/2009/speakers.aspx#newspeak">Hopscotch</a>, the IDE for <a href="http://newspeaklanguage.org/">Newspeak</a>. Newspeak is one of those things that&#8217;s on my very long list of things to look at. For a Smalltalk or Lisp developer, much of the talk was familiar &#8212; an illustration of the power of writing the IDE for a dynamic language in a dynamic language. In fact Bracha asserted that the true power of Smalltalk is the dynamism in the IDE itself. I think that&#8217;s probably true today, since almost all popular IDE&#8217;s are written in a static language. The other interesting feature of Hopscotch is the pervasive use of a web browser style UI in the IDE. This looks promising, and gives me hope that a web browser based IDE might be feasible.</p>
<p>Newspeak is implemented atop the Squeak VM, and when questioned about this choice, Bracha said that it would be much harder to implement Newspeak on either the CLR or JVM (and he&#8217;d be a position to know about the JVM in particular). He was hopeful that John Rose&#8217;s <a href="http://openjdk.java.net/projects/mlvm/">work</a> on dynamic extensions for the JVM would take out some (but not all) of the pain.</p>
<p><strong>Powershell</strong></p>
<p>At the JVM Language Summit, Rich Hickey gave a 15 minute talk that left me wishing he had been given 30 minutes. Jeffrey Snover&#8217;s 15 minute <a href="http://www.langnetsymposium.com/2009/speakers.aspx#powershell-v2">talk</a> on <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">Powershell</a> left me feeling the same way. Powershell may not be a monad toting concurrency friendly uber functional language on the CLR, but it was compelling to me because of it&#8217;s sheer practicality and usefulness. I&#8217;ve been following Powershell via blog posts since it was announced, but seeing it demoed by its designer is another thing altogether. The Powershell folks have done some nice work to present shell users with a very consistent user interface. A side effect of this work makes it easy to make GUI&#8217;s that can output Powershell commands, and apparently in future versions of Windows, the GUI admin tools will do this. In addition to rationalizing the user visible behavior of the shell, Powershell is able to do some very impressive stuff in terms of remote execution, limited/secure execution, single machine transactions, and more.</p>
<p>I spent some time talking with Snover later in the day, and he seemed to think that UNIX shells could gain a fair amount of PowerShell&#8217;s capabilities by recognizing that pipes ship bytestreams, adopting a data format (like JSON or XML) for those byte streams, and proceeding from there. That might be true technically, but that would be a huge cultural change for that community. &nbsp;&nbsp;</p>
<p><strong>Lars Bak on V8</strong></p>
<p>Lars Bak <a href="http://www.langnetsymposium.com/2009/speakers.aspx#javascript">talked</a> about his work on V8. V8 is the nth VM that Bak has worked on, and my main takeaway from his talk was that the V8 team has tried to do a lot of careful measurement of real (and anticipated future) Javascript programs. They&#8217;ve then turned around and used those measurements to guide them in selecting from the techniques developed for Self, StrongTalk, and Hotspot. None of those techniques would be a mystery to people familiar with the literature. But the insight into this all applies to Javascript was pretty interesting.</p>
<p>Since this is all about performance, it&#8217;s interesting to note that V8 has just about doubled its performance during its one year life. Bak predicted that by 3-4 years in perrformance will have quadupled. There was a funny moment where someone asked about comparison&#8217;s with Firefox&#8217;s TraceMonkey tracing JIT. Bak&#8217;s reply was &#8220;let&#8217;s run the (Google V8) <a href="http://v8.googlecode.com/svn/data/benchmarks/v3/run.html">benchmarks</a>&#8220;, which he then proceeded to do (V8 won). Bak is clearly competitive about this, which can only mean good things for Javascript users.</p>
<p><strong>F#</strong></p>
<p>F# is something that&#8217;s been at the edge of my radar because of asynchronous workflows. Lang.NET was a chance for me to get a quick education on what that&#8217;s all about. It turns out that <a href="http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx">async workflows</a> are an application of <a href="http://en.wikibooks.org/wiki/F_Sharp_Programming/Computation_Expressions">computation expressions</a>, which are a way of doing monadically inspired language extension. Async workflows end up being a way of using CPS style tasking but with a nice syntax. Most of this became clear during Tomas Petricek&#8217;s talk on <a href="http://www.langnetsymposium.com/2009/speakers.aspx#reactive-pattern-matching-for-f">Reactive pattern matching for F#</a>. The code that Petricek showed was very evocative of actor style code and the use of F# pattern matching was evocative of Erlang&#8217;s use of the same. One interesting point was the use of join patterns, something that doesn&#8217;t have a direct analog in either Erlang or typical actor implementations.</p>
<p><a href="http://www.pandamonial.com/">Amanda Laucher</a>&#8217;s talk <a href="http://www.langnetsymposium.com/2009/speakers.aspx#concurrency-in-f">Concurrency for F#</a> was a discussion of a client engagement that she did using F# and the concurrency features of the language. The application in question was an insurance application, and the speedup numbers looked pretty interesting. This is notable because most of the concurrency examples that you can find are outside the domain of &#8220;business programming&#8221;. Having this kind of data is really useful for people interested in the concurrency space. Amanda&#8217;s work was done as a Microsoft case study, and published version will be available at some point.</p>
<p><strong>Erik Meijer</strong></p>
<p>Erik pretty much gets his own section because he&#8217;s that entertaining/interesting. This time he was talking about the <a href="http://www.langnetsymposium.com/2009/speakers.aspx#livelabs-reactive-framework">Livelabs Reactive Framework</a>, where he described a way to use LINQ for distributed computations, using the specific example of an AJAX dictionary based suggestion function. Erik started by using (throwing) coins to illustrate the IEnumerable and IObservable interfaces. He then used mindless symbol pushing to demonstrate that these two interfaces were duals of each other, and that they obeyed the rules for monads. That being true, he then showed how you could define observable collections which could be used with LINQ.</p>
<p><strong>Tidbits</strong></p>
<p>Herman Venter talked about a <a href="http://www.langnetsymposium.com/2009/speakers.aspx#compiler-infrastructure">Common Compiler Infrastructure</a> for the CLR. There&#8217;s some nice stuff in here if you are implementing a language on the CLR. One user of this infrastructure is the <a href="http://blogs.msdn.com/kaelr/archive/2009/03/26/code-canvas.aspx">Code Canvas</a>, a &#8220;spatial development environment&#8221;. It&#8217;s good to see that people are stretching the notion of what a development environment should be. The thing that stuck out to me most from this talk was not the technology (which is good), but Venter&#8217;s call to action at the end. The CCI is being open sourced, and Venter&#8217;s call for participation and contribution was indistinguishable from the same end of talk call at any open source conference. A sign of changes underway.</p>
<p>Joshua Goodman did a product rundown on <a href="http://www.langnetsymposium.com/2009/speakers.aspx#clr-4">What&#8217;s new in CLR V4 for Languages</a>. There&#8217;s several years worth of changes to the CLR queued up for V4, which will be a big update. Most interesting to me was the inclusion of a Hill Climbing algorithm for allocating / managing threads. This strikes me as a kind of policy decision, something which you might want to plug into the CLR as opposed to having it installed under the hood. It will be interesting to see how this ends up working out in production settings.</p>
<p><strong>Deja Vu</strong></p>
<p>In a previous life, I did some work on database programming languages, and I experienced deja vu twice during the conference. The first was during Philip Wadler&#8217;s <a href="http://www.langnetsymposium.com/2009/speakers.aspx#links">Links: Web programming without tiers</a>. The goal of <a href="http://groups.inf.ed.ac.uk/links/">Links</a> is enable front end and back end web programming using a single language. Wadler didn&#8217;t discuss the front end part during his talk. He focused on the back end, particularly on the ability to translate programming language code into SQL, in a fashion slightly beyond LINQ. This is done using a combination of the monadic techniques used for LINQ, as well as a type/effect system which is used to help determine whether a piece of code is SQLizable or not. The work was eerily familiar, and when Wadler quoted Limsoon Wong and Leonid Libkin&#8217;s work on <a href="http://www.comp.nus.edu.sg/~wongls/projects/kleisli/index.html">Kleisi</a>, I knew why. We looked at their work on structural recursion (and comprehension notation) for our <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.50.5267">work</a> on list and tree queries.</p>
<p>The last talk(s) of Lang.NET was a double header talk on <a href="http://msdn.microsoft.com/en-us/oslo/default.aspx">Oslo/M</a> by Paul Vick and <a href="http://www.davidlangworthy.com/">David Langworthy</a>. David and I were officemates while we were graduate students at Brown. Even more deja vu was induced when I saw David demoing how the M toolchain could generate SQL schemas and queries. As he put it to me afterwards &#8211; &#8220;this is all that stuff we were talking about 10 years ago&#8221;. Well, closer to 20 now, but who&#8217;s counting. M is in its very early days &#8211; I think it will be more interesting when it can generate CLR code to match the SQL.</p>
<p><strong>Last bits</strong></p>
<p>Thanks to <a href="http://www.devhawk.net/">Harry Pierson</a> for making sure that I got an invitation to Lang.Net. People were very welcoming, even though I had to ask questions about various bits of Microsoft alphabet soup. I suspect that this is the only conference I will go to all year where Macs are the minority. It&#8217;s probably good for me to get out of the bubble every once in a while&#8230; &nbsp;&nbsp;</p>
<p>Overall, I found the topics to be a little more broad ranging than the JVM Summit. There were quite a few talks on tools, while there were comparatively fewer at the JVM summit, and those tools discussed at the JVM summit were really aimed at language implementors. One thing that worked well with the JVM Summit was allowing for some open space sessions so that attendees could get together and discuss topics of mutual interest, often based on what had been presented during the sessions. I think that some similar time slots would have enhanced the experience.</p>
<p>I definitely came away impressed by some of the work going on in the CLR ecosystem, and I hope that the exchange between the JVM and CLR communities will continue and expand.</p>
<p><strong>Update</strong>: <a href="http://langnetsymposium.com/2009/talks.aspx">Videos</a> of the talks are now available.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/04/16/langnet-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/04/16/langnet-2009/</feedburner:origLink></item>
		<item>
		<title>Best PyCon Evar</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/cM56nzD-8jU/</link>
		<comments>http://www.sauria.com/blog/2009/04/03/best-pycon-evar/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 21:27:41 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[community]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[dynamic languages]]></category>
		<category><![CDATA[pycon]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/04/03/best-pycon-evar/</guid>
		<description><![CDATA[I probably should have chosen a different title for this post, because at the rate things are going for PyCon, I&#8217;ll just have to use the same title again for the next few years. This year, PyCon happened during the same week as ApacheCon EU (the 10th anniversary of the ASF), and EclipseCon. I have [...]]]></description>
			<content:encoded><![CDATA[<p>I probably should have chosen a different title for this post, because at the rate things are going for PyCon, I&#8217;ll just have to use the same title again for the next few years. This year, PyCon happened during the same week as ApacheCon EU (the 10th anniversary of the ASF), and EclipseCon. I have a slight bit of regret that I wasn&#8217;t at ApacheCon for the 10 year anniversary, but I&#8217;m planning to be at the 10th anniversary celebration at ApacheCon US in Oakland, in November. That roughly corresponds to the time when first got involved with Apache and open source, so it will be pretty meaningful. Beyond that, it was hands down for PyCon, my favorite conference. Even if the PyCon organizers hadn&#8217;t invited me to speak on a topic of my choosing, there are just so many things to love about PyCon.</p>
<p><strong>The Talks</strong></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3395599212/"><img src="http://farm4.static.flickr.com/3596/3395599212_6facfa8446.jpg" height="500" width="333" alt="PyCon 2009" /></a></p>
<p>Despite a very active and fun hallway track, I did go to a number of talks. &nbsp;&nbsp;</p>
<p>I went to <a href="http://adamchristian.com/">Adam Christian</a> and <a href="http://www.mikealrogers.com/">Mikeal Rogers</a>&#8216; <a href="http://us.pycon.org/2009/conference/schedule/event/9/">talk</a> on <a href="http://www.getwindmill.com/">Windmill</a> mostly for moral support. We worked together at OSAF, and I like Windmill, and it&#8217;s really good to see Windmill picking up steam in the Python and other communities. If you are looking for a web testing framework, particularly one that is string at AJAX applications, you owe it to yourself to look at Windmill.</p>
<p>There were a few tools talks that I attended. I use IPython, so I was curious to see how <a href="http://us.pycon.org/2009/conference/schedule/event/23/">Reinteract: a better way to interact with Python</a>, would improve on IPython. I like the Visicalc/TkSolver like worksheet that allows you to change values in a Python interpreter history and have values propage forward. I&#8217;d love to see all these REPL tools come together in an integrated way. We might finally get back to the functionality of the Lisp Machine REPLs someday. I also attended <a href="http://us.pycon.org/2009/conference/schedule/event/48/">How AlterWay releases web applications using &#8220;zc.buildout&#8220;</a> since Jacob Kaplan-Moss warned me that the zc.buildout documentation was sorely lacking. Even that talk wasn&#8217;t enough to get me going, but the sprints produced some great new <a href="http://www.buildout.org/">documentation</a> for buildout. I&#8217;m looking forward to digging into that.</p>
<p>Some talks dealt directly with topics that are relevant to work, particularly now that the dynamic languages folks at Sun are now a part of the Cloud Computing division. These talks included:</p>
<ul>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/28/">Twisted AMQP and Thrift: Bridging Messaging and RPC for building scalable distributed applications</a> &#8211; Twisted bridges to AMQP and Thrift.</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/69/">Concurrency and Distributed Computing with Python Today</a> &#8211; Jesse Noller did a great job surveying the various offerings available in Python today. There&#8217;s a lot of stuff there, but I think that there&#8217;s still quite some way to go yet. That&#8217;s not picking on Python, that&#8217;s just my general view of this space.</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/64/">Drop ACID and think about data</a> &#8211; Bob Ippolito did a really nice survey of the various non-relational/non-transactional data storage options out there. Bob actually tried many of these, so the survey is useful for weeding out systems aren&#8217;t really ready for prime time. A must view if you haven&#8217;t been paying attention to this space.</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/49/">Pinax: a platform for rapidly developing websites</a> &#8211; I&#8217;ve been following Pinax via Twitter for some time now, and James Tauber and I were involved at the beginning of the Apache XML project almost 10 years ago. Despite all that, we&#8217;ve never actually met in person until this week. James had a tough job with his talk. Pinax is very new, so he could either talk for the people who didn&#8217;t know what Pinax is, or he could talk to people wanted to know where things were. James knew this was going to be a problem and said so in his talk. And it was, at least for me. Fortunately, I managed to sit down with James at the sprints and get my questions answered. Zed Shaw recently wrote a (very positive) <a href="http://zedshaw.com/blog/2009-03-20.html">review</a> of Django. That&#8217;s interesting since Zed was a hard core Rails guy. It&#8217;s also interesting because he called out Django&#8217;s emphasis on modularity and Pinax as an example of that modularity. My questions about Pinax were mostly about what (if anything) Pinax has done to build on the modularity provided by Django. At the moment, the various Pinax components cooperate mostly via conventions. Things are still early in Pinax, and I wasn&#8217;t surprised to hear this. James did say that some conventions were close to getting codified/documented/supported by the framework, which is what I am really interested in. In some ways, the data representation and modularity problems are similar to the kinds of problems that we were trying to solve for Chandler. Pinax is in the social application domain and Chandler is in the PIM domain, so while there are some similarities there are also differences. I&#8217;ll definitely be sticking my nose a bit deeper into the Pinax checkout that&#8217;s been sitting on my hard disk.</p>
</li>
</ul>
<p>The most entertaining talk that I attended was Ian Bicking&#8217;s <a href="http://us.pycon.org/2009/conference/schedule/event/76/">Topics of Interest</a>. Ian took the invitation to speak on something of interest quite literally which created an air of mystery. In the end, Ian prepared some slides (some of which were quite thoughtful and introspective), used an instance of the new Google Moderator to queue up some audience questions, and created an IRC backchannel which he kept on the screen during his talk. The result has to be watched (and the video is already up) to be understood. It was quite hilarious, with the exception of some unpleasant commentary after someone in IRC asked &#8220;why aren&#8217;t there more women at PyCon&#8221;. The resulting IRC conversation only serves as an explanation for why. Many people felt this way, and discussion of this spilled out into Twitter, and I hope that perhaps we can change things for the better.</p>
<p>I gave my talk, <a href="http://us.pycon.org/2009/conference/schedule/event/37/">Challenges and Opportunities for Python</a>, and got a pretty good reception. I had a number of hallway and other conversations with people based on the content. I think that I was successful in giving people a perspective on the dynamic language world as a whole, on Python&#8217;s place in it, and some things that we might be able to do in order to grow. You can watch the <a href="http://blip.tv/file/1947412">video</a> and make your own assessment, and decide if there are actions worth taking.</p>
<p>This year the conference is benefitting from a great new website (built in Django), and you&#8217;ll find the slides and video for each talk on the links. The video team is doing a great job of cranking out the video, so all of them should be up soon, or you can go to <a href="http://pycon.blip.tv/">pycon.blip.tv</a> to see them all together. Here are some talks that I am going to be checking out:</p>
<ul>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/7/">About Python Namespaces (and Code Objects</a>)</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/26/">Coverage testing, the good and the bad</a>. (And for the nth PyCon, I managed to not meet Ned Batchedler! &#8211; I miss the CrowdVine that was used last year, along with &#8220;meet the author&#8221; button that would send you to CrowdVine)</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/36/">Behind the scenes of EveryBlock.com</a> &#8211; plug GeoDjango</p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/51/">Lack of design patterns in Python</a></p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/55/">Class Decorators: Radically Simple</a></p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/75/">Abstraction as Leverage</a></p>
</li>
<li>
<p><a href="http://us.pycon.org/2009/conference/schedule/event/82/">Paver: easy build and deployment automation for Python projects</a> &#8211; (I didn&#8217;t meet up with Kevin Dangoor either)</p>
</li>
</ul>
<p><strong>The Lightning Talks</strong></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3394780299/"><img src="http://farm4.static.flickr.com/3649/3394780299_016252fef2.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p>I put the lightning talks in a separate category from the talks because they are a phenomenon at PyCon. This year there were two lightning talk sessions, one at the beginning of each day and one at the end of each day. That&#8217;s 6 sessions of lightning talks! Jacob Kaplan-Moss only allowed signups for the next session, and it was truly first come first serve (without last year&#8217;s arrangement with the sponsors). There were a number of really good lightning talks. There really isn&#8217;t a good record of what got presented except perhaps on Twitter. A search for #pycon should get most of it.</p>
<p><strong>Update</strong>: the lightning talks were also video&#8217;ed and will be posted on <a href="http://pycon.blip.tv/">pycon.blip.tv</a></p>
<p><strong>The Sprints</strong></p>
<p>The PyCon sprints remain a phenomenon. While I don&#8217;t think quite as many people stayed this year as last year, there were still a lot of people &#8212; enough to fill the basement conference rooms at the Crowne Plaza hotel, and enough to need one of the ballrooms to serve lunch and dinner in. Once again, I hung at the Jython sprint, and wandered in and out of the Django and Pinax sprints. During the two days of sprints that I stayed for, I observed the folks working on ctypes for Jython actually crashing the JVM. SQLAlchemy started to really run on Jython and so did Twisted. Four days of hacking with the core developers of a project generally tends to produce results. So does spending time to bring new people from the community into your project.</p>
<p>I reported a bug in Django as I tried to get buildout setup to do Django on MySQL. I&#8217;m talking about Python and MySQL at the MySQL conference in a few weeks, so I was working on my example code. Turns out that MySQLdb doens&#8217;t build cleanly on the Mac. The trunk version almost builds cleanly, so I used that, but that version chokes something in Django. Before I discovered that I had done some gymnastics involving a git-svn clone of MySQLdb, a push of that to github, and a git recipe for buildout. I never quite got the git/buildout part working and I decided that it was overkill and that&#8217;s when I finally discovered that the trunk didn&#8217;t work with Django.</p>
<p>Of course, the sprints are also a time to catchup with/meet people in the community. It&#8217;s a time when there are friendly rivalries, joking, and alcohol. One of the momentous occasions during 2008, was that Django got a pony.</p>
<p style="text-align: center;"><img src="http://dl-client.getdropbox.com/u/10320/django/wallpaper/magic-django-pony-iphone.png" width="320" height="480" /></p>
<p>The exuberant Django people decided to bring the pony to PyCon&#8230;</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3395817282/"><img src="http://farm4.static.flickr.com/3577/3395817282_9e27aab762.jpg" height="500" width="333" alt="PyCon 2009" /></a></p>
<p>Guido decided that he wanted the pony&#8230;</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3401670115/"><img src="http://farm4.static.flickr.com/3569/3401670115_54e1d32200.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p>This all made for great fun and entertainment, which then spilled over into the sprints as a three way Python Core/Django/Pinax feud, which lead to things like <a href="http://ponysex.us">this</a> and <a href="http://www.pinaxenvy.com/">this</a>. This is hard core fun, people.</p>
<p><strong>Overall Conference Commentary</strong></p>
<p style="text-align: left;">The organizers estimated the attendance for this year&#8217;s PyCon at around 900 people. That&#8217;s a slight decline from last year, but the economic situation is much much worse than it was last year. I think that a 10% decline is a huge success, and a testament to the growth of interest in Python and it&#8217;s surrounding ecosystem.</p>
<p style="text-align: left;">From an organizational point of view, PyCon is continuing its tradition of being a mostly volunteer organized conference. It this respect it is a tour de force, at least in the space of open source conferences. PyCon is using a production company to assist, just as ApacheCon is, but the on site footprint of that company is much smaller than the on site footprint of the company for ApacheCon. Moreover, the number of volunteers helping with things is just enormous. Session chairs, runners to escort speakers from the green room to their sessions, a web site builder, lightning talk coordinator, open spaces coordinator, greeters at the conference desk, photographers, and I&#8217;m sure there are a bunch more people whose roles I didn&#8217;t even get to hear about. Absent a fancy lighted stage display for keynotes, production value wise, I feel that PyCon is operating at the same level of quality as any of the O&#8217;Reilly conferences. The program was excellent &#8211; tutorials, keynotes, invited talks, regular talks, open spaces, and lightning talks.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3394789447/"><img src="http://farm4.static.flickr.com/3441/3394789447_845aef0439.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p>With PyCon, the Python community is getting way more mileage out of its face to face time than any other open source community. The combination of lightning talks, open space, and sprints creates a powerful feedback loop within the conference proper, which then extends into the sprint days. This dynamic has evolved over the years as PyCon attendees have come to understand the role of these vehicles. Here&#8217;s how it works:</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3394779629/"><img src="http://farm4.static.flickr.com/3643/3394779629_69cf76e71c.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p>The lightning talks allow anyone, regardless of stature, influence, or reputation to get in front of the entire conference. People now recognize that some of the most interesting, surprising, and entertaining moments of PyCon take place during the lightning talks. It&#8217;s a measure of the influence of the lightning talks that even the 8AM morning lightning talk sessions were well attended. At other conferences the morning sessions are reserved for keynote presentations by paying sponsors. I usually skip these because the content value is low. But I definitely got up to make sure that I hit those 8AM lightning talks. If you&#8217;ve gotten in front of the community with a lightning talk, you can extend your reach by scheduling an open space session.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3402476098/"><img src="http://farm4.static.flickr.com/3601/3402476098_6592a9b9f3.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p style="text-align: left;">Above is a shot of the open space board for Saturday. Note that the time slots go from 10AM to 10PM. There were a few prank type sessions, but for the most part, that board really is full all day long with 10 rooms available during each one hour time slot. Consider that there were 4 ballrooms for the talks, and that the talks went from 10:20AM till 5PM. There was way more air time in the open space sessions, and people certainly made use of it. This is why PyCon is a working conference &#8211; it&#8217;s not only about transfer of information, real work gets done there.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3395601136/"><img src="http://farm4.static.flickr.com/3428/3395601136_80161ee135.jpg" height="500" width="333" alt="PyCon 2009" /></a></p>
<p>The only tricky thing with open space is that it would be great to have electronic access to the contents of the open space board during the conference. That would help make the open spaces a first class citizen in the minds of attendees. This is an interesting problem, because part of the value of the open space is the physical board, so turning it all electronic wouldn&#8217;t be a good idea. I wonder if <a href="http://www.unconference.net/">Kaliya Hamlin</a> has an experience with this sort of thing.</p>
<p>Used well, the open space sessions are great for organizing your little (or big) slice of the world wide Python community. They are also great as a prelude to a sprint once the conference has finshed. And as I&#8217;ve already mentioned, the sprints are a great time to reinforce a project&#8217;s community as well as move it forward.</p>
<p style="text-align: center;"><img src="http://farm4.static.flickr.com/3630/3394788801_4b8fe9e4e1.jpg" height="333" width="500" alt="PyCon 2009" /></p>
<p>All of this notwithstanding, the PyCon organizers are not sitting on their laurels. They keep on looking for ways to improve the conference. The buckets you see above are an example of this. Instead of paper or electronic surveys, attendees were asked to vote for talks by taking a red chip and tossing it a bucket on their way out the door. Green for good, yellow for &#8216;meh&#8217;, and red for bad. This is way less effort than the surveys, and I observed a decent number of people putting in their chips. Doug Napoleone has <a href="http://www.dougma.com/archives/160">more</a> on the origins of this system, as well as a pointer to the raw data on the results. &nbsp;&nbsp;</p>
<p>Twitter is now in the mainstream at PyCon. Guido mentioned Twitter during his keynote, and used it to ask questions during the conference. One of James Tauber&#8217;s first slides told people which <a href="http://hashtags.org/">hashtag</a> to use when covering his talk. I&#8217;d guess that I got at least 20 new followers each day of PyCon, and I think that I might even be trained to use hashtags now. #pycon was in the top 10 Twitter during the days of the conference. The takeway is that if you are going to a conference and you are not on twitter, you are missing out. The corollary is that if you are a conference, and you aren&#8217;t making use of twitter, you need to pay attention. Ian Skerrett has an interesting <a href="http://ianskerrett.wordpress.com/2009/03/30/creating-a-conference-twitter-community/">post</a> on how they used Twitter during EclipseCon. One thing that was missing was a video display of the search for #pycon. I know from talking with Doug Napoleone that he has some wonderful ideas for taking all the social networking stuff to the next level. I&#8217;m really looking forward to seeing that next year.</p>
<p><strong>Photography</strong></p>
<p style="text-align: left;">I&#8217;ve been to a lot of conferences over the last few years, always with a camera in hand. At each conference I shoot less and less. There are now lots of people swarming around with cameras, and I feel a bit done out with shots of people speaking from the front of a room, rows of white male attendees listening to a talk, and the rest of the usual conference shots. The same thing happpend with me and liveblogging conferences. Also, it&#8217;s hard to do the hallway track and do decent photography. &nbsp;&nbsp;Last year, the PyCon organizers asked me to take some official pictures, which I was happy to do. This year they didn&#8217;t (which was fine by me), but I had planned to bring the camera anyway, because PyCon is PyCon, and photographing there is one way that I try to give back to the community.</p>
<p style="text-align: left;">It turns out that the organizers were way more organized about photography this year. They actually had someone to coordinate the photography for the conference. <a href="http://www.flickr.com/photos/wilcoxzone/">Steven Wilcox</a> had a last minute emergency and couldn&#8217;t make it. I found out about all of this just a half an hour before I left for the airport. Steven had planned to do headshots of Pythonistas, and was planning to get studio lighting equipment and so on. All of that was now up in the air. Since I had done a bunch of headshots of ASF people at ApacheCon, I tossed some Strobist lighting gear into my suitcase, just in case. By the time I landed in O&#8217;Hare, Erich Heine had stepped up to replace Steven, and I joined the &#8220;Python Paparazzi&#8221; or &#8220;pyparazzi&#8221;, along with Erich, <a href="http://www.flickr.com/photos/jsamsa">Jason Samsa</a>, <a href="http://www.flickr.com/photos/daninrgb">Dan Ryder</a>, and <a href="http://www.flickr.com/photos/pictonyme/">Stéphane Jolicoeur-Fidelia</a>.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3407416605/"><img src="http://farm4.static.flickr.com/3385/3407416605_eae393f7a6.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p>Since PyCon was in Chicago last year, I was familiar with the Crowne Plaza Hotel, which is a decent hotel, but nothing to write home about. This year the conference proper moved to the Hyatt Regency down the street. PyCon has a tradition of trying to keep costs low in order to keep the conference accessible to the community, so I was expecting something like the Crowne Plaza. I couldn&#8217;t have been more wrong. The Hyatt is a photographer&#8217;s paradise. There are lots of interesting colors, textures, and some areas with beautiful overhead natural light. If you were going to photograph a wedding, you would die for settings like these for the bridal portraits.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3394782399/"><img src="http://farm4.static.flickr.com/3111/3394782399_6f2d0d3d9f.jpg" height="333" width="500" alt="PyCon 2009" /></a></p>
<p style="text-align: left;">This tiled inset in wall turned into the backdrop for James Tauber&#8217;s headshot.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3402285687/"><img src="http://farm4.static.flickr.com/3427/3402285687_de6107e48e.jpg" height="500" width="333" alt="James Tauber" /></a></p>
<p style="text-align: left;">It doesn&#8217;t have to be strobe(ist) to be a good headshot!</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3407415771/"><img src="http://farm4.static.flickr.com/3352/3407415771_f58bdd6680.jpg" height="500" width="333" alt="PyCon 2009" /></a></p>
<p style="text-align: left;">This orange lit panel behind a bench seat turned into the backdrop for Jim Baker&#8217;s headshot.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3402288735/"><img src="http://farm4.static.flickr.com/3578/3402288735_ff7695e937.jpg" height="500" width="333" alt="Jim Baker" /></a></p>
<p>In addition to the pyparazzi, there were plenty of other cameras floating around the conference. <a href="http://www.flickr.com/photos/termie/">Andy Smith</a> decided to do a photographic project called the &#8220;<a href="http://www.flickr.com/photos/termie/sets/72157616044454732/">Beards of Python</a>&#8220;. When this set was announced on Flickr, it caused some Twitter buzzing amongst some of the female attendees of the conference. One thing about photographers is that we (or at least I) are always willing to take some interesting photos. So when the Twitter buzzing reached me, I offered to photograph any interested Geek Girls. James Duncan Davidson and I have discussed the value of trying to photograph female attendees at technology conferences. Since our photographs are often used for advertising, this can be a way of helping women feel more comfortable about attending &#8212; knowing that there will be other women there can be a help. So not only did I get to shoot more pictures of interesting people, I hope that in some small way this will contribute to making PyCon friendlier to women.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3403093542/"><img src="http://farm4.static.flickr.com/3425/3403093542_ae1077b3e1.jpg" height="500" width="333" alt="Catherine Devlin" /></a></p>
<p>This is Catherine Devlin, a contributor to <a href="http://pypi.python.org/pypi/sqlpython/">sqlpython</a>. Go read her post &#8220;<a href="http://catherinedevlin.blogspot.com/2009/03/five-minutes-at-pycon-change-everything.html">Five minutes at PyCon change everything</a>&#8221; for an actual example of the lightning talk/open space/sprint scenario that I described above.</p>
<p>The entire set of <a href="http://www.flickr.com/photos/twleung/sets/72157616081778414/">Pythonista headshots</a>, as well as the rest of my <a href="http://www.flickr.com/photos/twleung/sets/72157616080795506/">conference coverage</a> are up on Flickr. Who knows what we&#8217;ll come up with for next year in Atlanta&#8230;</p>
<p><strong>Travel</strong></p>
<p>Regular readers will know that a trip to PyCon traditionally involves some kind of travel mishap. This year was pretty minor compared to previous years. &nbsp;&nbsp;United lost my luggage for the flight from Seattle to O&#8217;Hare, despite the fact that I arrived 2.5 hours early, and checked in at the &#8220;Premier&#8221; checkin line. I got my bag the next day, so it wasn&#8217;t really that bad. Maybe next year will be the PyCon with no travel glitches.</p>
<p><strong><br /></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/04/03/best-pycon-evar/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/04/03/best-pycon-evar/</feedburner:origLink></item>
		<item>
		<title>The PyCon Summits</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/nihkpRHErqI/</link>
		<comments>http://www.sauria.com/blog/2009/03/28/the-pycon-summits/#comments</comments>
		<pubDate>Sat, 28 Mar 2009 16:29:19 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[pycon]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/03/28/the-pycon-summits/</guid>
		<description><![CDATA[This year at PyCon there are two new events, a Dynamic Language Virtual Machine Summit, and a Python Language Summit. Each summit lasted one day, and occurred during the tutorial program of the main PyCon conference. I am really happy to see these events happen, to take advantage of people all being in one place.
Dynamic [...]]]></description>
			<content:encoded><![CDATA[<p>This year at PyCon there are two new events, a <a href="http://us.pycon.org/2009/about/summits/vm/">Dynamic Language Virtual Machine Summit</a>, and a <a href="http://us.pycon.org/2009/about/summits/language/">Python Language Summit</a>. Each summit lasted one day, and occurred during the tutorial program of the main PyCon conference. I am really happy to see these events happen, to take advantage of people all being in one place.</p>
<p><strong>Dynamic Language Summit</strong></p>
<p>The organizers of this summit invited a broad variety of virtual machine implementors to meet and discuss their successes and challenges in implementing various dynamic languages. &nbsp;&nbsp;</p>
<p>Sun has hosted a similar <a href="http://openjdk.java.net/projects/mlvm/jvmlangsummit/">summit</a> for people implementing languages on the JVM, and Microsoft&#8217;s <a href="http://www.langnetsymposium.com/">Lang.NET</a>, which is their corresponding event for the CLR, is in a few weeks. There&#8217;s been a nice cross pollination of people between those summits. The PyCon event is the corresponding event for people working on non-JVM/CLR virtual machines. I would love to see all of these communities cross pollinating each other eventually.</p>
<p>The VM&#8217;s represented were <a href="http://python.org/">CPython</a>, <a href="http://codespeak.net/pypy/dist/pypy/doc/">PyPy</a>, <a href="http://www.jython.org/Project/">Jython</a>, <a href="http://jruby.codehaus.org/">JRuby</a>, <a href="http://www.parrot.org/">Parrot</a>, <a href="http://openjdk.java.net/projects/mlvm/">MLVM/Da Vinci Machine</a>, <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython">IronPython</a>, <a href="http://www.codeplex.com/dlr">DLR</a>, <a href="http://factorcode.org/">Factor</a>, <a href="https://wiki.mozilla.org/JavaScript:TraceMonkey">TraceMonkey</a>, Cog, <a href="http://code.google.com/p/unladen-swallow/">unladen_swallow</a>, <a href="http://rubini.us/">Rubinius</a>, and <a href="http://maglev.gemstone.com/">MagLev</a>. Since this was the first time this group of people met together, we spent the morning doing brief introductions of the various projects. From there the room exploded into a bunch of small unstructured discussions. There were many of these, and they are hard to summarize, so I am going to pass on trying to summarize this any further. I really would have liked to see representatives from PHP, Erlang, io, Newspeak, SquirrelFish, and V8. &nbsp;&nbsp;</p>
<p>Disclosure: I was involved in getting Sun to sponsor this summit (and PyCon)</p>
<p><strong>Python Language Summit</strong></p>
<p>The Python Summit was focused on bringing together developers of Python implementations and the Python standard library in order to discuss issues of importance to Python. &nbsp;&nbsp;Major scheduled topics included the roadmap for Python 2.x/3.x (including release scheduling), cross-implementation issues, and package distribution and installation.</p>
<p>During the 2.x/3.x section, there was some question about whether or not &#8220;batteries included&#8221; was still the right approach for the standard library or whether improvements to packaging mechanisms might lead to a different approach. Since packaging still has some major issues, there wasn&#8217;t a lot of progress on this front. There was also some discussion on the merits of using C++ in the Python compiler. Again not much of a conclusion here, but the majority of the thought in the room was to use a few C++ features as possible. There was also discussion of including some improvements to unittest.<br />
The largest discussion during that section, was of course, the roadmap for 2.x versus 3.x, and how to encourage people to move from 2.x to 3.x. It looks like there is (good) reluctance to keep the 2.x series moving forward, so there may be a long (possibly infinitely long) gap between 2.7 and 2.8. At the same time, it seems clear that 3.1, which is currently in alpha, will be the first truly usable release in the 3.x line. The goal is to get 3.1 out pretty quickly and deprecate 3.0 &#8211; an odd and one time practice for the Python community. There was also a discussion of what could be done to help library and framework developers jump to 3.x. One concrete outcome was agreement to start work on a 3to2 tool which would allow developers to develop on 3.x and then backport to 2.x, thus helpoing developers to flipp their effort into (in my opinion) the correct release stream</p>
<p>The cross implementation session was uncontroversial and very friendly. One thing that I love about the Python community is the openness to alternate implementations of the language. Implementors of the alternate implementations were encouraged to just go and do what was needed to accommodate their needs. One item that came up was the utility of splitting the standard lib, the unit tests, and (perhaps) the docs, so that all implementations could reuse them. Everyone agreed that this was a good idea, so look for this to happen soon. Also, developers of the alternate implementations were given commit bits to CPython and told to make the necessary changes. One phrase that I heard during the discussion was &#8220;putting CPython on an equal footing with the other implementations&#8221;. Based on the decisions and actions during the session, I&#8217;d say this is way more than lip service.</p>
<p>The last planned session covered the issue of packaging. Tarek Ziade presented the <a href="http://tinyurl.com/packaging-results">results</a> of his packaging survey. After that there were introductions of a few of the isolation tools, <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a>, and <a href="http://pypi.python.org/pypi/zc.buildout">zc.buildout</a>. I&#8217;d never taken a serious look at zc.buildout, but Jacob Kaplan-Moss convinced me to take a serious look by showing a sample buildout file. Apparently the documentation for zc.buildout is sorely lacking, so if any readers are zc.buildout experts or fans, please leave a comment with pointers. From there, discussion went on to a very good list that Tarek assembled. You can read his final <a href="http://mail.python.org/pipermail/python-dev/2009-March/087834.html">summary</a> of the discussion as well as what should happen next.</p>
<p><strong>unladen_swallow</strong></p>
<p>One unscheduled item that got a lot of buzz was the <a href="http://code.google.com/p/unladen-swallow/">unladen_swallow</a> project. This is a branch of CPython (2.6 initially, but eventually forward ported to 3.x) initiated by people at Google, with the goal of improving CPython&#8217;s performance by 5X. A 5X speedup would be pretty amazing &#8211; the details of how they plan to accomplish this are in the project plan. Apparently it is already 30% faster than CPython, and this version is being used to run some of the Python code on YouTube. They have yet to embark on the task of integrating <a href="http://llvm.org/">LLVM</a> as JIT for Python. I am also happy to see that they are going to tackle removal of Python&#8217;s global interpreter lock (GIL). The team at Google is planning to merge their code back into the main CPython implementation, and have been discussing this in detail with the existing core Python developers. The unladen_swallow is focusing on Linux, but they told me that they would gladly accept community help for testing on Macintosh, Windows, and other platforms.</p>
<p>Ever since the Javascript engine arms race started earlier this year, I&#8217;ve been concerned about the lack of a similar situation in the various dynamic language communities. It appears that things in the Python world are starting to heat up.</p>
<p>On the whole, I found these two summits to be highly useful. I hope that the PyCon organizers will do them again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/03/28/the-pycon-summits/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/03/28/the-pycon-summits/</feedburner:origLink></item>
		<item>
		<title>Lifestreaming, round 2</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/Z7Uaoib6eik/</link>
		<comments>http://www.sauria.com/blog/2009/03/23/lifestreaming-round-2/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 19:11:46 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[community]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/03/23/lifestreaming-round-2/</guid>
		<description><![CDATA[Macintosh
MRR Software has released a beta of Syrinx 2.0 just in time for PyCon this week (or ApacheCon EU or EclipseCon, if you are at one of those events). My biggest complaint with Syrinx 1.0 was that it was using up a lot of memory and CPU. That&#8217;s totally fixed in Syrinx 2.0. I&#8217;ve left [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Macintosh</strong></p>
<p>MRR Software has released a beta of <a href="http://mrrsoftware.com/MRRSoftware/Syrinx_Beta.html">Syrinx 2.0</a> just in time for PyCon this week (or ApacheCon EU or EclipseCon, if you are at one of those events). My biggest <a href="http://www.sauria.com/blog/2008/11/25/lifestreaming-clients/">complaint</a> with Syrinx 1.0 was that it was using up a lot of memory and CPU. That&#8217;s totally fixed in Syrinx 2.0. I&#8217;ve left Syrinx running for over a day with very little discernable growth in memory. I used to have to restart it several times a day. Scrolling and searching are both much faster as well. Retweet and URL shortening have been added, which pretty much takes care of me featurewise, although I&#8217;d like a retweet button in the button bar of a tweet, and I&#8217;d prefer <a href="http://bit.ly/">bit.ly</a> as the URL shortening service. Minor complaints to be sure. The last UI issue for me is that Syrinx 2.0 now expands the current tweet from it&#8217;s slightly compressed list element version. This is a problem for tweets that contain links (the best kind), because you have to click once to zoom the tweet, and then click again to open the link. I know that MRR is working on this one.</p>
<p><strong>iPhone</strong></p>
<p>Several week ago I also switch my iPhone client from Twitterific to <a href="http://www.atebits.com/software/tweetie/">Tweetie</a>. I love everything about Tweetie except for 2 things:</p>
<p>1. Tweetie goes to the network all the time. This wouldn&#8217;t be a problem if iPhone latency was just a bit better.</p>
<p>2. I don&#8217;t like the way the Tweetie segments replies and direct messages. I like having tabs to see just those things, but I don&#8217;t like it that they no longer appear in the main view. Syrinx is doing it the way that I prefer.</p>
<p>My favorite features about Tweetie are:</p>
<p>1. Network lag aside, Tweetie is speedy.</p>
<p>2. The swipe actions, particularly favorites &#8211; I now favorite a lot more. This saves me from losing tweets with interesting links when I am in a hurry. I fave them on the phone and then read the faves from the desktop.</p>
<p>3. Instapaper support. I&#8217;m glad this is here, but I use it less than I thought I would, because of favorites</p>
<p>4. The landscape mode keyboard &#8211; This is taking some getting used to, but it&#8217;s good practice for iPhone 3.0</p>
<p>5. Ability to say how many tweets to load &#8211; good for making sure you don&#8217;t miss anything</p>
<p>6. Retweeting &#8211; too bad it doesn&#8217;t fit in the swipe bars.</p>
<p>There&#8217;s still no direct message rolodex, something that I am sure I will be wishing for this week at PyCon. &nbsp;&nbsp;</p>
<p>At least I&#8217;ll be well armed for the next few months, where I&#8217;ll be at a number of conferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/03/23/lifestreaming-round-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/03/23/lifestreaming-round-2/</feedburner:origLink></item>
		<item>
		<title>Why I haven’t bought a Kindle</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/KYt6dJgfRck/</link>
		<comments>http://www.sauria.com/blog/2009/03/05/why-i-havent-bought-a-kindle/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 16:54:18 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[books]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/03/05/why-i-havent-bought-a-kindle/</guid>
		<description><![CDATA[I&#8217;m going to spend a significant portion of the next 10 weeks on an airplane or away from home. I also have a large stack of technical papers (in PDF form), and a few books (also in PDF) that I&#8217;d like to read. My travel bag is a very decent size, since it has to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to spend a significant portion of the next 10 weeks on an airplane or away from home. I also have a large stack of technical papers (in PDF form), and a few books (also in PDF) that I&#8217;d like to read. My travel bag is a very decent size, since it has to accommodate camera equipment, so the last thing that I want is to stuff a bunch of paper into it. I would be a perfect candidate for a Kindle. &nbsp;&nbsp;</p>
<p>The Kindle appears to make PDF reading a second (or more like 10th) class activity. E-mailing large PDF files to get them converted to the Amazon format? Sounds very unpleasant to say the least. I&#8217;m also not thrilled about the price, the inability to expand storage, or the inability to manage what could grow to be a very large book/document collection.</p>
<p>Kindle lovers, this is your change to speak up and correct my misconceptions, or to confirm them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/03/05/why-i-havent-bought-a-kindle/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/03/05/why-i-havent-bought-a-kindle/</feedburner:origLink></item>
		<item>
		<title>Planets, planets, and more planets</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/anQFxqmqa88/</link>
		<comments>http://www.sauria.com/blog/2009/03/04/planets-planets-and-more-planets/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 06:48:49 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/03/04/planets-planets-and-more-planets/</guid>
		<description><![CDATA[Blog aggregators based on the planet software are a staple of open source projects these days. Nonetheless, there are little gotcha&#8217;s here and there.
Thom May and I have run the PlanetApache blog aggregator for Apache Software Foundation committers for some time now. It looks like that planet is finally going to move onto official ASF [...]]]></description>
			<content:encoded><![CDATA[<p>Blog aggregators based on the <a href="http://www.planetplanet.org/">planet</a> software are a staple of open source projects these days. Nonetheless, there are little gotcha&#8217;s here and there.</p>
<p>Thom May and I have run the PlanetApache blog aggregator for Apache Software Foundation committers for some time now. It looks like that planet is finally going to move onto official ASF infrastructure where it belongs (in my opinion). If you want a preview, point your aggregator at <a href="http://planet.apache.org/committers/">planet.apache.org/committers</a>. This planet is using Sam Ruby&#8217;s refactored planet code, which is known as <a href="http://intertwingly.net/code/venus/">Venus</a>.</p>
<p>Over in Python land, there are two different and non-overlapping planets: <a href="http://planet.python.org/">http://planet.python.org/</a>, and <a href="http://www.planetpython.org/">http://www.planetpython.org/</a>, as a reader of both of these planets, I would love to see them consolidated so I could stop seeing the articles that are on both planets.</p>
<p>In any case, planets are a great way to get a sense of what is happening in the various communities. If your project doesn&#8217;t have one, you should think about starting one. If you have one, make sure it is working super smoothly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/03/04/planets-planets-and-more-planets/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/03/04/planets-planets-and-more-planets/</feedburner:origLink></item>
		<item>
		<title>The Third Bucket of Transformation</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/dRtDxo4h3gw/</link>
		<comments>http://www.sauria.com/blog/2009/02/21/the-third-bucket/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 17:53:36 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/02/21/the-third-bucket/</guid>
		<description><![CDATA[A few days ago, Duncan Davidson wrote a great piece called The Third Bucket where he broke down photography skills into three buckets: soft skills (craft), hard skills (science), and a third bucket, which you might call &#8220;art&#8221;. &#160;&#160;

For a while, I’ve personally been focused at thinking about photography in these two buckets, craft and [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, Duncan Davidson wrote a great piece called <a href="http://duncandavidson.com/2009/02/the-three-buckets.html">The Third Bucket</a> where he broke down photography skills into three buckets: soft skills (craft), hard skills (science), and a third bucket, which you might call &#8220;art&#8221;. &nbsp;&nbsp;</p>
<blockquote cite="http://feeds.duncandavidson.com/~r/duncandavidson/~3/542060360/the-three-buckets.html">
<p>For a while, I’ve personally been focused at thinking about photography in these two buckets, craft and science if you will. But, just as I got too comfortable with that thought, something in the back of my head sits up and points out that I’m missing something important. There are skills that don’t fall into either the craft or science buckets. These skills include the ability to conceptualize what you want to communicate in a photograph, the ability to provoke an emotional response in a viewer of the work, the vision to look at things in a way that is intriguing, or the ability to suss out what is important in a fast moving and world changing event. This is the real art of photography. It’s what transcends simple documentation into an image with the power to either move one to tears or a smile, or even to change the world.</p>
</blockquote>
<p>&#8230;</p>
<blockquote>
<p>Duh! How could I miss that one for so long. Maybe because it was so obvious? Sort of like air? It was surprising to me, considering all those years I spent in architecture school.</p>
<p>The problem with this last bucket is that it’s really hard to talk about. It’s full of things that are hard to describe in words. The je ne sais quoi. Exposure? Easy to communicate in words on a variety of levels. The feeling of a photo of a baby? Obvious, so obvious that words aren’t necessary. What makes a photograph from a war zone make people want to stop making war? An awful sublime, but so very hard to put words to.</p>
</blockquote>
<p>This is something I&#8217;ve been pondering myself. I&#8217;ve gone from taking pictures, simply reacting to what is around me, to making pictures &#8211; working to arrange the circumstances (as much as possible) to create a picture. Once you make this jump, you are soon confronted with some of the questions that are in Duncan&#8217;s third bucket. I&#8217;d also put the whole question of artistic vision into that bucket as well. What am I trying to say? To who? And what is my style of saying it? I&#8217;ve gotten into a stereotypical artist&#8217;s funk about all of this, with not quite an end in sight.</p>
<p>Fortunately, the day after I read Duncan&#8217;s piece, I saw <a href="http://www.zarias.com/">Zack Arias&#8217;</a> video &#8220;<a href="http://www.scottkelby.com/blog/2009/archives/3433">Transform</a>&#8221; over at Scott Kelby&#8217;s blog. It&#8217;s strangely comforting to know that someone of Zack&#8217;s caliber has some of the same feelings. It obviously touched a chord with many other people as well, judging from the comments and the Twitter reaction.</p>
<p>Back into it&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/02/21/the-third-bucket/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/02/21/the-third-bucket/</feedburner:origLink></item>
		<item>
		<title>Refactoring in the Functional Programming world</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/BZA-TKDbu50/</link>
		<comments>http://www.sauria.com/blog/2009/02/20/refactoring-in-the-functional-programming-world/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 01:23:36 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[functional programming]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/02/20/refactoring-in-the-functional-programming-world/</guid>
		<description><![CDATA[I&#8217;m an Emacs guy. I was first exposed to Emacs back in 1984 on a VAX running BSD. This was prior to GNU Emacs, so the Emacs that I saw was James Gosling&#8217;s Emacs. At the time, I was working on a compiler for a functional programming language called SUPER, which was evaluated using combinator [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m an Emacs guy. I was first exposed to Emacs back in 1984 on a VAX running BSD. This was prior to GNU Emacs, so the Emacs that I saw was James Gosling&#8217;s Emacs. At the time, I was working on a compiler for a functional programming language called SUPER, which was evaluated using combinator graph reduction.</p>
<p>For many years, and across many languages, including Scheme, C, C++, Perl, TCL, and Java, Emacs was my tool of choice. My hands had the muscle memory for the keystrokes, and over those years I accumulated a file full of Emacs-Lisp customizations for Emacs (by this time, mostly GNU Emacs). When Eclipse started to support refactoring I started using Eclipse as my primary tool for editing Java programs. Refactoring is an example of the kind of high leverage features that I want in my programming tool set.</p>
<p>A few days ago I found some gems <a href="http://www.nabble.com/Re%3A--scala--Re%3A-Scala%3A-Great-potential%2C-but-not-ready-for-production-p22082676.html">buried</a> in a thread on the Scala mailing list. Dave Griffith has been accumulating a list of refactorings for Scala. Here&#8217;s his complete list:</p>
<blockquote>
<p>Curry Method (split a parameter list, and the arg lists of all callers).</p>
<p>Uncurry Method (merge split parameter list, including merging the arg lists of callers. If method is called with partial args, either complain or automatically create a helper method which represents the partial application, and replace partial calls with it.)</p>
<p>Extract Trait (including searching for other classes which can have the same trait extracted. Tricky with super calls, but not impossible)</p>
<p>Split Trait (splits trait into two traits (putting in self-types if needed), change all extending classes to extend both traits)</p>
<p>Extract Extractor (select a pattern, automatically create an extractor)</p>
<p>Extract Closure (similar to extract method, but creating a function object)</p>
<p>Introduce by-name parameter</p>
<p>Extract type definition (obvious)</p>
<p>Merge nested for-comprehensions into single for-comprehension (and converse)</p>
<p>Split guard from for-comprehension into nested if (and converse)</p>
<p>Convert for-comprehension into map/filter/flatmap chain (and converse)</p>
<p>Wrap parameter as Option (converting null checks, etc.)</p>
<p>Convert instanceOf/asInstance pair to match</p>
<p>Replace case clause with if body to guarded case clause(s)</p>
</blockquote>
<p>I was particularly interested in those refactorings related to functional/higher-order programming and pattern matching. Between the surge of interest in Scala, F# and Haskell, it looks like there&#8217;s room for some more work in refactoring.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/02/20/refactoring-in-the-functional-programming-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/02/20/refactoring-in-the-functional-programming-world/</feedburner:origLink></item>
		<item>
		<title>Py3k sprints</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/J5eDyznyLDE/</link>
		<comments>http://www.sauria.com/blog/2009/02/18/py3k-sprints/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 07:43:24 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/02/18/py3k-sprints/</guid>
		<description><![CDATA[The call for sprints at this year&#8217;s PyCon 2009 is now up.
If you are involved with a Python project and you are going to be at PyCon this year, may I suggest that one topic for your sprint be porting your code to Python 3000? This is the perfect opportunity to work with other people [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://us.pycon.org/2009/sprints/call-for-projects/">call for sprints</a> at this year&#8217;s PyCon 2009 is now up.</p>
<p>If you are involved with a Python project and you are going to be at PyCon this year, may I suggest that one topic for your sprint be porting your code to Python 3000? This is the perfect opportunity to work with other people who will likely be doing the same, while having access to the Python 3000 developers. Transitioning to Python 3000 is one of the opportunities/challenges for the Python community in the next two years. <a href="http://us.pycon.org/2009/conference/keynotes/">More</a> about that at the conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/02/18/py3k-sprints/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/02/18/py3k-sprints/</feedburner:origLink></item>
		<item>
		<title>Register for PyCon 2009</title>
		<link>http://feedproxy.google.com/~r/TedLeungOnTheAir/~3/dGcCNzkyKE4/</link>
		<comments>http://www.sauria.com/blog/2009/02/03/register-for-pycon-2009/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 17:03:03 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[pycon]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/02/03/register-for-pycon-2009/</guid>
		<description><![CDATA[Registration is now open for PyCon US 2009. Like last year, PyCon is being held in Chicago, and the official program looks pretty good. As is true with all conferences, the unofficial program (the hallway track) is always great at PyCon. I am also going to make a concerted effort in the Open Spaces portion [...]]]></description>
			<content:encoded><![CDATA[<p>Registration is now open for <a href="http://us.pycon.org/2009/about/">PyCon US 2009</a>. Like last year, PyCon is being held in Chicago, and the official program looks pretty good. As is true with all conferences, the unofficial program (the hallway track) is always great at PyCon. I am also going to make a concerted effort in the Open Spaces portion of the conference.</p>
<p>There will be a week of sprints held after the conference, so if you are looking to get involved with a Python project, those are a great opportunity to get a quick start while sitting side by side with some of the project developers.</p>
<p>I&#8217;ve gone to quite a number of conferences due to my job responsibilities over the last few years, and PyCon is definitely my favorite conference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/02/03/register-for-pycon-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.sauria.com/blog/2009/02/03/register-for-pycon-2009/</feedburner:origLink></item>
	</channel>
</rss>
