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

<channel>
	<title>Ted Leung on the Air</title>
	<atom:link href="http://www.sauria.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sauria.com/blog</link>
	<description>Open Source, Modern Programming Languages, OS X, Photography, and ...</description>
	<lastBuildDate>Tue, 31 Aug 2010 06:10:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iPhone 4 and iPad update</title>
		<link>http://www.sauria.com/blog/2010/08/30/iphone-4-and-ipad-update/</link>
		<comments>http://www.sauria.com/blog/2010/08/30/iphone-4-and-ipad-update/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 03:18:38 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/08/30/iphone-4-and-ipad-update/</guid>
		<description><![CDATA[I&#8217;ve been using my iPhone 4 and iPad for several months now, so I thought I would give a hard real use experience report.
iPhone 4
I love the phone. I do see the much written about antenna attenuation problem, but day to day it doesn&#8217;t affect me as much as AT&#38;T&#8217;s network does. One of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using my iPhone 4 and iPad for several months now, so I thought I would give a hard real use experience report.</p>
<p><b>iPhone 4</b><br />
I love the phone. I do see the much written about antenna attenuation problem, but day to day it doesn&#8217;t affect me as much as AT&amp;T&#8217;s network does. One of the prime times for me to use my phone is while standing in line waiting for the ferry. The worst time is during the afternoon, because there are several hundred people all packed into the ferry terminal, all trying to pull data on their iPhones. The antenna has nothing to do with this.</p>
<p>In every other way, the phone is fantastic. My iPhone 3G would frequently hit the red line on the battery indicator by the time I hit the afternoon ferry, and that was after I had carefully managed my use of the device during the day. With the iPhone 4, I don&#8217;t have to worry about managing the battery. That alone has made the upgrade worth it for me.</p>
<p>The upgraded camera has been a huge success for me. I attribute this to a single factor &#8211; startup time. I was always reluctant to pull out my iPhone 3G for use as a camera, because quite frequently I would miss the moment by the time the camera came up. I&#8217;ve been using Tap Tap&#8217;s excellent Camera+ and I like it quite a bit. Unfortunately, you can&#8217;t get it on the app store right now, because the developer inserted an easter egg that would allow you to use one of the volume buttons to trigger the shutter. Apple then pulled the app from the store. This is the first time that App Store policy has affected an app that I care about, and I&#8217;m obviously not happy about it. It seems to me that Camera+ could have a preference that controlled this feature, and that users would have to turn it on. Since the user would have turned on that feature, they would&#8217;t be confused about the takeover of the volume button. It seems simple to me. I really like Camera+&#8217;s light table feature, but I really hate the way that it starts up trying to imitate the look of a DSLR rangefinder. The other area where Camera+ could use improvement is in the processing / filters area. It has lots of options, but most of them don&#8217;t work for me. I have better luck with Chase Jarvis&#8217; Best Camera on this front. In any case, I&#8217;m very happy with the camera as &#8221; the camera that is always always with me&#8221;. The resolution is also very good, and I&#8217;ve been using it to photograph whiteboards into Evernote quite successfully.</p>
<p><b>iPad</b></p>
<p>I&#8217;ve been carrying my iPad on a daily basis. I&#8217;m using it enough that when I forgot it one day, it made a difference. One thing that I&#8217;ve learned is that the iPad really needs a case. I got much more relaxed about carrying mine once it was inside a case. Originally, I thought that I would wait for one of the third party cases, but all of the ones that looked like a fit for me were out of stock, so I broke down and ordered the Apple case. It does the job, but I am not crazy about the material, and I wish that it had one or two small pockets for a pen, a little bit of paper, and perhaps some business cards.</p>
<p>I am pretty much using the iPad as my &#8220;away from my desk device&#8221; when I am in the office. Our office spans 5 floors in a skyscraper, and I have meetings on several floors during the course of a day. The iPad&#8217;s form factor and long battery life, make it well suited as a meeting device. I have access to my e-mail and calendar, and I&#8217;m using the iPad version of OmniFocus to keep my tasks and projects in sync with my laptop. I&#8217;ve written some py-appscript code that looks at the day&#8217;s calendar in Entourage and then kicks out a series of preformatted Evernote notes so that I can pull those notes on my iPad and have notes for the various events of the day. This kind of Mac GUI to UNIX to Mac GUI scripting is something that I&#8217;ve commented on before. Thanks to multi-device application families like Evernote, I expect to be doing some more of this hacking to extend my workflow onto the iOS devices. I don&#8217;t have a huge need for sharing files between the iPad and the laptop, but Dropbox has done a great job of filling in the gap when I&#8217;ve needed to share files.</p>
<p>Several people have asked me about OmniFocus on the iPad, and whether or not it is worth it. I have a large number of both work and personal projects, so being able to use the extra screen real estate on the iPad definitely does help. I have come to rely on several features in OmniFocus for iPad which are not in the desktop version. There is a great UI for bumping the dates for actions by 1 day or 1 week, which I use a lot. I am also very fond of the forecast view, which lets you look at the actions for a give day, with a very quick glance at the number of actions for each day of a week. Both of these features are smart adaptations to the iPad touch interface, and are examples of iPad apps coming into a class of their own.<br />
Another application that I&#8217;ve been enjoying is Flipboard. Flipboard got a bunch of hype when it launched back in July, and things have died down because they couldn&#8217;t keep up with the demand. Conceptually, Flipboard is very appealing, but the actual implementation still has some problems as far as I am concerned. I can use Flipboard to read my Facebook feed, because Facebook&#8217;s timeline is just highly variable in terms of including stuff from my friends. I don&#8217;t feel that I can read Twitter via Flipboard, because it can&#8217;t keep up with the volume, so I end up missing stuff, and I hate that. Some of the provided curated content is reasonable, but not quite up to what I&#8217;d like. Flipboard is falling down because there&#8217;s not a good way for me to get the content that I want. I want Flipboard to be my daily newspaper or magazine app. But I can&#8217;t get the right content feed(s) to put into it. &nbsp;&nbsp;</p>
<p>As far as the iOS goes, my usage of the iPad is making me horribly impatient for iOS 4. I would use task switching all the time. Of course, then I would be unhappy because the iPad doesn&#8217;t have enough RAM to keep my working set of applications resident. Text editing on iOS is very painful on the iPad. I&#8217;m not sure what a good solution would be here, but it definitely is a problem that I am running into on a daily basis &#8211; perhaps I need to work on my typing. There is also the issue of better syncing/sharing. My phone and iPad are personal devices, so they sync to my iTunes at home. I use both devices at work, where I have a different computer. This is definitely an area that Apple needs to improve significantly. At the moment, though, the fact that I am using my iPad hard enough to really be running into the problem means that the iPad has succeeded in legitimizing the tablet category &#8211; at least for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/08/30/iphone-4-and-ipad-update/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>OSCON 2010</title>
		<link>http://www.sauria.com/blog/2010/07/28/oscon-2010/</link>
		<comments>http://www.sauria.com/blog/2010/07/28/oscon-2010/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 23:40:59 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[languages]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/07/28/oscon-2010/</guid>
		<description><![CDATA[It&#8217;s nearing the end of July, which means that OSCON has come and gone. Here are my observations on this year&#8217;s event.
Talks
As always, there are a huge number of talks at OSCON, and this year I found it particularly hard to choose between sessions, though in several cases, hallway track conversations ended up making those [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s nearing the end of July, which means that OSCON has come and gone. Here are my observations on this year&#8217;s event.</p>
<p><b>Talks</b></p>
<p>As always, there are a huge number of talks at OSCON, and this year I found it particularly hard to choose between sessions, though in several cases, hallway track conversations ended up making those choices for me. There wasn&#8217;t a theme to my talk attending this year, because a lot of topics are relevant to the work that I am doing now.</p>
<p>I attended a talk about <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13049">Face Recognition on the iPhone</a>. Sadly this turned out to be very focused on setting up for and calling the <a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=1&amp;ved=0CB8QFjAA&amp;url=http%3A%2F%2Fopencv.willowgarage.com%2F&amp;ei=Hc5NTPCPJozanAeIsZzYCw&amp;usg=AFQjCNHKQyxLTokkWwMduBlxPcGy22h9gw">OpenCV</a> library and less about face recognition, UI, or integrating face recognition into applications. As I&#8217;ve <a href="http://www.sauria.com/blog/2010/06/04/iphone-next/">written</a> previously, I think that new interface modalities may be arriving along with new devices, so I was hoping for a bit more than I got.</p>
<p>Big Data is also a topic of interest for me, so I went to <a href="http://www.oscon.com/oscon2010/public/schedule/detail/12552">Hadoop, Pig, and Twitter</a>, and <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13693">Mahout: Mammoth Scale Machine Learning</a>. Hadoop, Pig, and Mahout are all projects at Apache, and each of them have an important part to play in the emerging Big Data story. The sort of analytics that people will be using these technologies for are part of the reason that data is now the big area of concern when discussing lock in.</p>
<p>The open source guy in me likes the idea of <a href="http://www.oscon.com/oscon2010/public/schedule/detail/15327">WebM</a>, but it looks to me like there&#8217;s quite a way to go before it will be replacing H.264. I was surprised that the speaker didn&#8217;t have a better answer than &#8220;our lawyers must have checked this when we acquired On2&#8243;. More than anything else, getting clarity on the patent provenance for VP8 is what would make me feel good about WebM.</p>
<p>Robert Lefkowitz (the r0ml), is always an entertaining and thought provoking speaker. His OSCON presentations are not to be missed. This year he gave <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13891">two</a> <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13395">talks</a>, and you can read some of my commentary in my <a href="http://twitter.com/twleung">twitter stream</a>. Unfortunately, r0ml picked licensing as the topic of his second presentation, and his talk was interrupted by an ill-tempered and miffed free software enthusiast, thus proving r0ml&#8217;s earlier solution that open source conferences are really legal conferences.</p>
<p>I&#8217;ve been following / predicting the server side javascript space for several years now. One of the issues with that space is the whole event based programming model, which caused mortal Python programmers headaches when dealing with the Twisted Python framework. Erik Meijer&#8217;s group at Microsoft has been grabbing techniques from functional program to try to make the programming model a bit more sane. I had heard most of the content in his <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13547">Reactive Extensions For JavaScript</a> talk before, and I&#8217;m generally enthusiastic about the technology. The biggest problem that I have is that RxJS is not licensed under an open source license. At JSConf I was told that this is being worked on, so I dropped in for the second half of Erik&#8217;s talk hoping to hear an announcement about the licensing. It was OSCON after all, and the perfect place to make such an announcement, but no announcement was made. I hope that Microsoft won&#8217;t wait until next year&#8217;s OSCON to get this done.</p>
<p>This year there were two of the keynote presentations that made enough of an impression to write about. The first was Rob Pike&#8217;s <a href="http://www.oscon.com/oscon2010/public/schedule/detail/13423">keynote on Go</a>, where he eloquently noted some of the problems with mainstream programming languages. There was no new information here, but I liked the approach that he took in his analysis. The second was Simon Wardley&#8217;s <a href="http://www.oscon.com/oscon2010/public/schedule/detail/14836">Situation Normal, Everything Must Change</a> . Simon is an excellent presenter and full of insight. While his talk was ostensibly about cloud computing, I think it was a little deeper than that. His story about the cloud is the story about commoditization of technologies, and since one of the roles of open source is commoditization of technology, I felt that there was some nice insight there for those of us working in open source. Simon also discussed the mismatch between innovation and mature organizations, another issue that people in open source often run into. The <a href="http://www.youtube.com/watch?v=5Oyf4vvJyy4">video</a> is already up on YouTube, so you can make your own assessment of the talk.</p>
<p>The size and breadth of OSCON gives it one of the richest hallway tracks of any conference. This year was no exception &#8211; the hallway track started on the train from Seattle to Portland, and extended all the way through the return train trip as well. I always look forward to these discussions and to connecting with old friends. One friend that I caught up with was Cliff Schmidt, now executive director of <a href="http://www.literacybridge.org/">Literacy Bridge</a>, which is working to make knowledge accessible to people in poor rural communities throughout the world via their Talking Book device. Cliff had one with him, and this was the first time I had seen one. Just in case you haven&#8217;t, here&#8217;s what they look like:</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4820772182/"><img src="http://farm5.static.flickr.com/4077/4820772182_3c25436264.jpg" height="375" width="500" alt="Dailyshoot 249" /></a></p>
<p><b>Languages</b></p>
<p>OSCON began as a language conference, and this year, there were two special events in that space, the Scala Summit and the Emerging Languages Camp.</p>
<p>I have followed the Scala community pretty closely, because they are quickly accumulating real-world experience with functional programming. There are lots of cool tricks that remind me of stuff that I played with when I was in graduate school, and there are lots of bright people. But there are some things that I find worrying. For example, one of the speakers was touting the fact that Scala&#8217;s type system is now Turing complete. If I&#8217;m using Scala, one reason is that I want my programs to type check at compile time. Having the type checker go off and fail to halt is not what I had in mind. I recognize that you&#8217;d have to write some gnarly type declarations for this to happen, but still.</p>
<p>This was the first year for Emerging Languages Camp, and from what I can tell it was a roaring success. I didn&#8217;t attend as many sessions as I would have liked. This was due to a combination of factors &#8211; other talks that I wanted to see, being the biggest. The other factor was that the first talk I attended was Rob Pike&#8217;s talk on Go, and the room was very full, which made it hard for me to concentrate (probably had more to do with me than the room). When I saw that all the talks were being recorded and that the video folks promised to have them up in 2-4 weeks, it made it seem less urgent to try to pop in and out and fight the crowd. Still, this is a sign of success, and I hope that the minimum, the Emerging Language Camp will be given a larger room next year. Part of me would like to see it be a completely separate event from OSCON, but that&#8217;s probably not realistic.</p>
<p>Of the talks that I was able to attend, I found the Caja and BitC talks to be the most relevant. Fixing Javascript to have security is important for both client and the burgeoning server applications of Javascript. I wish that I had seen the talk on Stratified Javascript, since concurrency is ever the hot topic these days. As far as BitC goes, we are well beyond the time when we should have had a safe systems programming language. As much as C has contributed to the world, we really need to move on.</p>
<p><b>What is OSCON for?</b></p>
<p>I had a few discussions along the lines of &#8220;What is OSCON for?&#8221;, and Tim Bray <a href="http://www.tbray.org/ongoing/When/201x/2010/07/25/Five-Photos-of-OSCON">shared some thoughts</a> in his OSCON wrap up. As I have <a href="http://www.sauria.com/blog/2010/03/25/job-search-insights/">written before</a>, I think that open source has &#8220;won&#8221;, in the sense that we no longer need to prove that open source software is useful, or that the open source development process is viable. There are still questions about open source business models, but that&#8217;s a topic that I&#8217;m not as interested in these days. Open source having &#8220;won&#8221; doesn&#8217;t mean that our ideas have permeated the entire world of computing yet, so there is still a need for a venue to discuss these kinds of topics. OSCON is more than that, though. It&#8217;s also a place where hackers (in the good sense) have a chance to showcase their work, and to exchange ideas. In that sense, part of OSCON is like a computing focused eTech. Apparently O&#8217;Reilly is no longer running eTech, which is fine &#8211; the one time that I attended, I was underwhelmed. I think that perhaps what is happening in the Emerging Languages Camp might be an example of how things might move in the future.</p>
<p>Of course, there&#8217;s a larger question, which is why do we have conferences at all anymore? Many conferences now produce video content of the sessions. I don&#8217;t really think there&#8217;s a lot of value in having an event to do product launches or announcements. The big thing is the hallway track, which allows for realtime interchange of ideas and opinions, and in the case of open source, provides a dosage of high bandwidth, high touch interaction that helps keep the communities running smoothly. We&#8217;re in the 21st century now. Is there something better that we can do?</p>
<p><b><br /></b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/07/28/oscon-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone.next?</title>
		<link>http://www.sauria.com/blog/2010/06/04/iphone-next/</link>
		<comments>http://www.sauria.com/blog/2010/06/04/iphone-next/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 15:52:36 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[gadgets]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/06/04/iphone-next/</guid>
		<description><![CDATA[Apple&#8217;s WWDC is next week, and I&#8217;ll be attending for the first time. There&#8217;s a lot of speculation swirling around the next iPhone, especially given the prototype obtained by Gizmodo. As I wrote previously, having an iPad has definitely cut into my iPhone use, and at the same time has raised the bar on my [...]]]></description>
			<content:encoded><![CDATA[<p>Apple&#8217;s WWDC is next week, and I&#8217;ll be attending for the first time. There&#8217;s a lot of speculation swirling around the next iPhone, especially given the prototype obtained by Gizmodo. As I wrote previously, having an iPad has definitely cut into my iPhone use, and at the same time has raised the bar on my expectations for my next phone, iPhone or otherwise.</p>
<p><b>iPhone</b></p>
<p>I am using a 3G iPhone now, and I&#8217;m not having the best user experience at the moment. There are lots of lags and stutters at inopportune moments, both in the user interface and in the performance of AT&amp;T&#8217;s 3G network. I&#8217;ve grown used to the briskness of the iPad, and I expect that on my phone now. Apple has set their own bar here. So getting me to iPad level responsiveness is job one. Job two is to get me decent battery life. My iPad lasts way longer than my iPhone. I understand why, but I don&#8217;t like it. I really, really want to be able to use my phone without redlining it every day. The last of the big items has to do with AT&amp;T or a rumored second carrier. I want to be able to rely on the phone for accessing data. Right now it&#8217;s not as reliable as it needs to be, and I think that everyone knows that. It&#8217;s not at all clear to me that a second carrier will do any better, because I doubt that they are prepared for the level of traffic that is coming their way once they get the iPhone. Sprint and Verizon crumbled at Google IO, so let&#8217;s not kid ourselves that the other carriers are going to magically fix things. But maybe if a bunch of people jump ship to another carrier, things will get better on AT&amp;T.</p>
<p>There are some secondary issues: &nbsp;&nbsp; 16GB has turned out to be less space than I anticipated, but since the 3GS already comes in a 32GB size, I expect the next generation to come in at 64GB, although I won&#8217;t be disappointed if it doesn&#8217;t. I expect there to be camera upgrades, and I am pretty sure that I&#8217;ll be happy with what happens there. The real trick in cameras is the lenses not the megapixels, and all camera phones are on the same footing there.</p>
<p>This time around, there&#8217;s a &#8220;but&#8221;.</p>
<p><b>Android</b></p>
<p>After the Android 2.2 (Froyo) announcements, I am considering an Android phone as my next phone. There&#8217;s no question that today, the iPhone user interface is more highly developed, polished and intuitive than Android. At the moment fragmentation of the Android platform is a reality, despite Google&#8217;s assurances that this will get cleaned up in the future. There are numerous good apps in the Android Marketplace, but some of the applications that I use the most are not there, because they are the iPhone counterparts of Mac desktop applications. That&#8217;s a fairly large problem. These are all good reasons to stick with the iPhone.</p>
<p>There are two big reasons that I am looking more closely at Android. The first is that Android has much much better &#8220;integration with the cloud&#8221;. One of the biggest annoyances that I have with my iPad is the hassle of moving PDF ebook files from my Macintosh to the iPad. I shouldn&#8217;t have to use a cord, and I shouldn&#8217;t have to use iTunes. 1Password can implement wireless syncing to the iPad and iPhone, why won&#8217;t Apple? The second and more important reason is that I like what I see in some of the directions that Google is taking the user interface. Specifically, I&#8217;m talking about use use of voice and (possibly) the use of computer vision as demonstrated in Google Goggles. The iPhone, and more recently, the iPad have done something very interesting with multitouch/gestural interfaces. If you subscribe to the theory that science fiction influence science fact, then we could look at Iron Man 2 for some examples of future interfaces. Tony Stark interacts with his computer via a combination of gestures and voice commands, and from the content of the voice commands, it is clear that the computer is employing something like vision in order to resolve references in Stark&#8217;s words. As great as Apple&#8217;s advances in multitouch have been, they have done very little in terms of voice. Perhaps their acquisition of Siri is a step in that direction, but Apple&#8217;s famed secrecy makes it hard to know. The same is true in vision, except that Apple has made no such acquisition. There&#8217;s quite some distance to go before Android&#8217;s speech and vision could bring about a multimodal interface like the one in Iron Man, but at least I can see the signs that Google is going that direction. Of course, I could just wait it out on a few more generations of iPhone while Google engineers work all these issues out, but I see signs of Google acting like a leader instead of a catch up player, and I like that.</p>
<p>What about Apple&#8217;s recent behavior with regard to languages other than Objective-C? Yes, I am bothered by it, but it&#8217;s not as big an issue to me as working well in an internet centric world, or working towards a much more multimodal user interface. Nobody is leaving the web platform because they are unable to write in-browser applications in their favorite language, and lots of people are delivering all kinds of interesting stuff in that space. More choice would definitely be nice, but if choice or freedom are your high order bit, that&#8217;s what Android is for.</p>
<p>If nothing else, I think it&#8217;s a good sign that there are two mobile platforms good enough to put me in this conundrum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/06/04/iphone-next/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Thoughts on Open Source and Platform as a Service</title>
		<link>http://www.sauria.com/blog/2010/05/31/thoughts-on-open-source-and-platform-as-a-service/</link>
		<comments>http://www.sauria.com/blog/2010/05/31/thoughts-on-open-source-and-platform-as-a-service/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 04:38:36 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/05/31/thoughts-on-open-source-and-platform-as-a-service/</guid>
		<description><![CDATA[The question
Last week there were some articles, blog posts and tweets about the relationship between Platform as a Service (PaaS) offerings and open source. The initial framing of the conversation was around PaaS and the LAMP (Linux/Apache/MySQL/{PHP/Perl/Python/Ruby}) stack. An article on InfoQ gives the jumping off points to posts by Geva Perry and James Uruqhardt. [...]]]></description>
			<content:encoded><![CDATA[<p><b>The question</b></p>
<p>Last week there were some articles, blog posts and tweets about the relationship between Platform as a Service (PaaS) offerings and open source. The initial framing of the conversation was around PaaS and the LAMP (Linux/Apache/MySQL/{PHP/Perl/Python/Ruby}) stack. An <a href="http://www.infoq.com/news/2010/05/LAMP-PaaS">article</a> on InfoQ gives the jumping off points to posts by <a href="http://gigaom.com/2010/05/22/who-will-build-the-lamp-cloud/">Geva Perry</a> and <a href="http://news.cnet.com/8301-19413_3-20005709-240.html?part=rss&amp;subj=news&amp;tag=2547-1_3-0-20">James Uruqhardt</a>. There&#8217;s a lot of discussion which I&#8217;m not going to recapitulate, but Uruqhardt&#8217;s post ends with the question</p>
<blockquote>
<p>I&#8217;d love to hear your thoughts on the subject. Has cloud computing reduced the relevance of the LAMP stack, and is this indicative of what cloud computing will do to open-source platform projects in general?</p>
</blockquote>
<p>Many PaaS offerings are based on open source software. Heroku is based on Ruby and is now doing a beta of Node.js. Google&#8217;s App Engine was originally based on Python, and later on Java (the open sourceness of Java can be debated). Joyent&#8217;s Smart Platform is based on Javascript and is open source. Of the major PaaS offerings, only Force.net and Azure are based on proprietary software. I don&#8217;t have hard statistics on market share or number of applications, but from where I sit, open source software still looks pretty relevant.</p>
<p>Also I think it&#8217;s instructive to look at how cloud computing providers are investing in open source software. Rackspace is a big sponsor of the Drizzle project, and of Cassandra, both directly and indirectly through its investment in Riptano. EngineYard hired key JRuby committers away from Sun. Joyent has hired the lead developer of node.js, and VMWare bought SpringSource and incorporated it into VMForce. That doesn&#8217;t sound to me like open source software is less relevant.</p>
<p><b>Cloud computing is destined to become a commodity</b></p>
<p><b><span style="font-weight: normal;">The end game for cloud computing is to attain commodity status. I expect to see markets in the spirit of <a href="http://www.cloudexchange.org/">CloudExchange</a>, but instead of trading in EC2 spot instances, you will trade in the ability to run an application with specific resource requirements. In order for this to happen, there needs to be interoperability. In the limit, that is going to make it hard for PaaS vendors to build substantial platform lockin, because businesses will want the ability to bid out their application execution needs. Besides, as Tim O&#8217;Reilly has been pointing out for years, there&#8217;s a much more substantial lock in to be had by holding a business&#8217;s data as opposed to a platform lock. This is all business model stuff, and the vendors need to work this out prior to large scale adoption of PaaS.<br />
<b><br /></b><strong>Next Generation Infrastructure Software</strong><br /></span></b></p>
<p>The more interesting question for developers has to do with infrastructure software. In my mind LAMP is really a proxy for &#8220;infrastructure software&#8221; If you&#8217;ve been paying any attention at all to the development of web application software, you know that there is a lot happening with various kinds of infrastructure software. Kiril Shenynkman, one of the commenters on Geva Perry&#8217;s post wrote:</p>
<blockquote>
<p>Yes, yes, yes. PHP is huge. Yes, yes, yes. MySQL has millions of users. But, the “MP” part of LAMP came into being when we were hosting, not cloud computing. There are alternative application service platforms to PHP and alternatives to MySQL (and SQL in general) that are exciting, vibrant, and seem to have the new developer community’s ear. Whether it’s Ruby, Groovy, Scala, or Python as a development language or Mongo, Couch, Cassandra as a persistence layer, there are alternatives. MySQL’s ownership by Oracle is a minus, not a plus. I feel times are changing and companies looking to put their applications in the cloud have MANY attractive alternatives, both as stacks or as turnkey services s.a. Azure and App Engine.</p>
</blockquote>
<p>How many of the technologies that Shenykman lists are open source? All of them. &nbsp;&nbsp;</p>
<p>Look at Twitter and Facebook, companies whose application architecture is very different from traditional web applications. They&#8217;ve developed a variety of new pieces of infrastructure. Interestingly enough, many of these technology pieces are now open source (<a href="http://twitter.com/about/opensource">Twitter</a>, <a href="http://developers.facebook.com/opensource/">Facebook</a>). Open source is being used in two ways in these situations. It is being used as a distribution mechanism, to propagate these new infrastructure pieces throughout the industry. But more importantly (and for those observing more closely, quite imperfectly), open source is being used as a development methodology. The use of open source as a development methodology (also known as <a href="http://en.wikipedia.org/wiki/Commons-based_peer_production">commons-based peer production</a>) is definitely contributing to these innovative technologies. Open source projects are driving innovation (this also happened in the Java space. Witness the disasters of EJB 1.0 and 2.0 which lead to the development of EJB 3.0 using open source technologies like Hibernate, and which provided the impetus for the development of Spring). Infrastructure software is a commons, and should be developed as a commons. The cloud platform vendors can (and are) harvesting these innovations into their platforms, and then finding other axes on which to compete. I want this to continue. As I mentioned in my <a href="http://www.sauria.com/blog/2009/09/12/djangocon-2009/">DjangoCon keynote</a> last year, I also want open source projects to spend more time thinking about how to be relevant in a cloud world. &nbsp;&nbsp;</p>
<p>My question on PaaS is this: Who will build a PaaS that consolidates innovations from the open source community, and will remain flexible enough to continue to integrate those innovations as they continue to happen?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/05/31/thoughts-on-open-source-and-platform-as-a-service/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JSConf US Gear Report</title>
		<link>http://www.sauria.com/blog/2010/04/22/jsconf-us-gear-report/</link>
		<comments>http://www.sauria.com/blog/2010/04/22/jsconf-us-gear-report/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 15:19:51 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[photography]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/04/22/jsconf-us-gear-report/</guid>
		<description><![CDATA[JSConf was my trial run for a bunch of new equipment, so here&#8217;s a separate report on those experiences.
iPad
Conference like settings are one of the situations where I felt that I could make the best of the iPad. Apparently, I was not alone, because there were probably somewhere between 5 and 10 iPads at the [...]]]></description>
			<content:encoded><![CDATA[<p>JSConf was my trial run for a bunch of new equipment, so here&#8217;s a separate report on those experiences.</p>
<p><strong>iPad</strong></p>
<p>Conference like settings are one of the situations where I felt that I could make the best of the iPad. Apparently, I was not alone, because there were probably somewhere between 5 and 10 iPads at the event.</p>
<p>My flights from Seattle to JSConf included 6 hours of flying time, and hour and a half of layovers, plus the usual waiting around time in airports. During that time I read some e-mail, watched about 90 minutes of video, and read several PDF books / documents. By the time I finally ended up in my hotel room, I still had around 80% of the battery charge remaining. I used the iPad as much as possible during the first day of JSConf, and the battery finished at 49% at the end of the first day. Thus far, the battery life is beyond my expectations.</p>
<p>During the conference, the primary activities that I was doing were e-mail reading, web browsing, twittering, and taking notes. For the first two activities, I used the built in Mail and Safari. For Twitter, I switched back and forth between Twitterific and TweetDeck. I used Evernote as my primary note taking tool.</p>
<p>I started out using Twitterific, but at some point it stopped working and was giving a message about an nvalid server certificate error. Echofon on the Mac was having a similar problem. I had TweetDeck installed on the iPad as a leftover from trying it on the iPhone, so I gave it a try and it worked. On the desktop I am not a fan of Tweetdeck&#8217;s AIR based user interface, which outweighs it&#8217;s advantage of having columns. When I use Syrinx on the desktop, I just open a stack of windows and that works fine. But on the iPad, Tweetdeck&#8217;s column based model makes a lot of sense, especially if you hold the iPad in landscape mode. I was mostly happy with the experience, although Tweetdeck has some weird UI in places:</p>
<ul>
<li>It&#8217;s hard to get a sense of when the various columns refresh, and there doesn&#8217;t appear to be a way to get individual columns to refresh. I&#8217;d love to be able to use Tweetie 2&#8217;s pull down to refresh gesture to do this.</li>
<li>Favoriting tweets (which is how I keep track of interesting information on a mobile device) takes over the whole screen for a moment, causing an annoying flash/blink effect.</li>
<li>In Landscape mode you can&#8217;t click links or view profiles (the latest update to TweetDeck has added support for link clicking)</li>
<li>If you select a tweet and then discover that you need the additional menus popup, then you need to select another tweet and then reselect the tweet you want to act on</li>
</ul>
<p>I love Evernote, and I&#8217;ve <a href="http://www.sauria.com/blog/2008/11/24/evernote-and-other-applications-that-are-getting-a-workout/">written</a> about that before. The iPad version of Evernote is fantastic, with perhaps one exception. If you try to edit a rich text note, you are put into a weird append only kind of mode. I have some Python scripts that create rich text notes from items on my calendar, so it&#8217;s annoying to go back to Evernote on the iPad and then be put into append mode. I would love to see a full rich text editing capability come to a future version of Evernote for iPad (and sure, iPhone). Other than that, it was a workhorse at JSConf.</p>
<p>At many conferences, there are multiple WiFi networks, and you have to switch among them as you go from room to room. This was the case at JSConf. On the iPad, this meant a trip to the Settings app in order to select a new network. It would be great if the iPad would switch among multiple known networks based on signal strength. I can think of some reasons why you might not want to do this, but in my situation, it would have been really convenient.</p>
<p>All in all I had a pretty good experience with the iPad as my primary device. I can definitely see it as my primary conference machine, as well as my &#8220;in a meeting&#8221; machine. iPhone OS 4.0&#8217;s &#8220;multitasking&#8221; will reduce the annoyance associated with waiting for apps to restart on switching.</p>
<p><strong>MacBook Pro</strong></p>
<p>At work they issued me a unibody MacBook Pro 15&#8243;. These are supposed to have much better battery life than their pre-unibody forbears. As far as I can see this is true. I imagine that the recently refreshed models are even better on this count. The only other thing that I noticed was that the power adapter gets pretty hot while recharging the machine. &nbsp;&nbsp;</p>
<p><strong>GF1</strong></p>
<p>Like many photographers, I&#8217;ve been looking for a small, high quality, camera that I could carry with me almost all the time. I have my cell phone at all times, and in a pinch, a cell phone picture is better than nothing. But a cell phone camera, regardless of megapixels lacks the controls that I&#8217;ve grown used to when making pictures. I&#8217;ve started carrying a Panasonic GF1 with the 20mm lens. The wide aperture prime suits the style that I like to shoot in, and the Micro 4/3 sensor gives pretty decent looking pictures. The GF1 produces 12 megapixel RAW files, which in principle is the same as my D3. Of course, there&#8217;s a vast difference in quality of those pixels, but thus far I am pretty happy. It has all the controls that I was looking for, as well as a hot shoe for Strobist shenanigans. It&#8217;s going to take me a while to master the controls, but I&#8217;m in no hurry. It did seem odd to be setting around with the tiny GF1 while the DSLR toting strobists were doing the photos of JSConf. I&#8217;ll be doing most of <a href="http://www.flickr.com/photos/twleung/sets/72157622998233771/">my Dailyshoot assignments</a> with the GF1 &#8212; I&#8217;m looking forward to drawing material from downtown Seattle. Here are a few of the shots so far:</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4526313366/"><img src="http://farm5.static.flickr.com/4038/4526313366_7461e3c61d.jpg" height="375" width="500" alt="Dailyshoot 152" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4528830808/"><img src="http://farm5.static.flickr.com/4012/4528830808_3da2e3a08e.jpg" height="375" width="500" alt="Dailyshoot 153" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4528830808/"></a><a href="http://www.flickr.com/photos/51035696189@N01/4533915513/"><img src="http://farm3.static.flickr.com/2773/4533915513_fc406faa64.jpg" height="375" width="500" alt="Dailyshoot 155" /></a></p>
<p><strong>Bose QuietComfort 15</strong></p>
<p>I am pretty sensitive to noise. Between commuting on the ferry every day, working in a building with thin walls, and spending time on airplanes, I decided that I needed help in coping with all the noise. Ever since the Bose noise canceling headsets came out, I&#8217;ve been interested in them for cutting the noise and helping me concentrate. I&#8217;ve started carrying a set of the Bose QuietComfort 15 headphones. These do a great job of cutting out noise. Most kinds of background noise gets cut out, but you can still hear human voices, albeit at a reduced volume. A little bit of music takes care of that quite easily. Like many people who reviewed these headphones, I do experience the sensation of pressure while wearing them, but these headphones are much more wearable than the earplug style Etymotic headphones that they are replacing. The only other drawback that I&#8217;ve found is that they don&#8217;t appear to built super well, so I am taking care to carry them in the semi hard case that they came in, which makes them a little less convenient. &nbsp;&nbsp;</p>
<p>I think that I am well equipped to survive commuting and office life.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/04/22/jsconf-us-gear-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSConf US</title>
		<link>http://www.sauria.com/blog/2010/04/19/jsconf-us/</link>
		<comments>http://www.sauria.com/blog/2010/04/19/jsconf-us/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 22:17:47 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[internet]]></category>
		<category><![CDATA[dynamic languages]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/04/19/jsconf-us/</guid>
		<description><![CDATA[I spent the weekend in Washington, DC attending JSConf.US 2010. I wasn&#8217;t able to attend last year, due to scheduling conflicts. Javascript is a bit higher on my radar these days, so this was a good year to attend.
The program
The JSConf program was very high quality. Here are some of the talks that I found [...]]]></description>
			<content:encoded><![CDATA[<p>I spent the weekend in Washington, DC attending <a href="http://jsconf.us/2010">JSConf.US 2010</a>. I wasn&#8217;t able to attend last year, due to scheduling conflicts. Javascript is a bit higher on my radar these days, so this was a good year to attend.</p>
<p><strong>The program</strong></p>
<p>The JSConf program was very high quality. Here are some of the talks that I found most interesting.</p>
<p>Yahoo&#8217;s Douglas Crockford was up first and describe Javascript as a &#8220;a functional language with dynamic objects and a familiar syntax&#8221;. He took a some time to discuss some of the features being considered for the next version of Javascript. Most of his talk was focused on the cross site scripting (XSS) problem. He believes the solving the XSS problem should be the top priority of the next version of Javascript, and he feels that this is so urgent that we ought to do a reset of HTML5 in order to focus on this problem. Crockford thinks that HTML5 is only going to make things worse, because it adds new features / complexity. He called out local storage as one feature that would introduce lots of opportunity for XSS exploits. I was very surprised to hear him advocating a security approach based on capabilities. He mentioned the <a href="http://code.google.com/p/google-caja/">Caja</a> project and his own proposal at <a href="http://www.adsafe.org/">www.adsafe.org</a>. He stated that &#8220;ECMAScript is being transformed into an Object Capability Language; the Browser must be transformed into an Object Capability system&#8221;. This was a very good talk, and it caused a swirl of conversation during the rest of the conference.</p>
<p>Jeremy Ashkenas talked about <a href="http://jashkenas.github.com/coffee-script/">Coffeescript</a>, which is a language that compiles into Javascript. It has a very functional flavor to it, which was interesting in light of Crockford&#8217;s description of Javascript. It also seemed to be influenced by some ideas from Python, at least syntactically. I really liked what I saw, but I&#8217;m wary of the fact that it compiles to Javascript. I am not bothered by languages that compile to JVM bytecode, but somehow that feels different to me than compiling to Javascript. I&#8217;m going to spend some time playing with it &#8211; maybe I&#8217;ll get over the compilation thing.</p>
<p><a href="http://github.com/tobeytailor/gordon">Gordon</a> is a Flash runtime that is implemented in Javascript. &nbsp;&nbsp;Tobias Schneider caused quite a stir with his talk. He showed several interesting demos of Gordon playing Flash files that were directly generated by tools in the Adobe toolset. Tobias was careful to say that he doesn&#8217;t yet implement all of flash, although he definitely wants to get full support for Flash 7 level features. It&#8217;s not clear how Gordon would handle newer versions of Flash, because of the differences beween Javascript and Actionscript. Bridging that gap is probably a whole lot of work.</p>
<p>Since 2008 I&#8217;ve had <a href="http://www.sauria.com/blog/2008/09/27/the-first-annual-jvm-language-summit/">several</a> <a href="http://www.sauria.com/blog/2009/04/16/langnet-2009/">opportunities</a> to hear Erik Meijer talk about his work on Reactive Programming at Microsoft. He&#8217;s talked about this work in the context of AJAX, and a common example that he uses is autocompletion in the browser. Jeffrey Van Gogh came to JSConf to talk about <a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx">RxJS</a> , a library for Javascript which implements these ideas and provides a better experience for doing asynchronous programming, both on the client and server side. In his talk Jeffrey described <a href="http://blogs.msdn.com/jeffva/archive/2010/04/14/node-js-bindings-for-rxjs.aspx">RxJS bindings for Node.js</a>.&nbsp;&nbsp;I also met <a href="http://twitter.com/mattpodwysocki">Matt Podwysocki</a>, who I&#8217;ve been following on Twitter for some time. Matt has been writing a <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/04/14/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-2.aspx">series of blog posts</a> examining the Reactive Extensions. One hitch in all of this is that the licensing of RxJS is unclear. You can use RxJS in your programs and extend it but it&#8217;s not open source, and you can&#8217;t distribute RxJS code as part of an open source project. I&#8217;m interested in the ideas here, but I haven&#8217;t decided whether I am going to actually click on the license.</p>
<p>I dont&#8217; remember the first time that I heard about <a href="http://www.sproutcore.com/">SproutCore</a>, but I really started paying attention to it when I saw Erich Ocean&#8217;s presentation at DjangoCon last year. The original speaker for SproutCore couldn&#8217;t make it, but Mike Ball and Evin Grano, two local members of the SproutCore community stepped in to give the talk. Their talk was heavy on demonstrations along with updates on various parts of SproutCore. They showed some very interesting UI&#8217;s that were built using SproutCore. The demo that really got my attention was related to the work on touch/multiouch interfaces. NPR had their iPad applications in the App Store on the iPad launch day. Mike and Evin showed a copy of the NPR application that had been built in 2 weeks using SproutCore. The SproutCore version can take advantage of hardware acceleration, and seemed both polished and responsive. Dion Almaer has a <a href="http://ajaxian.com/archives/sproutcore-2010">screenshot</a> of the NPR app up at Ajaxian.</p>
<p><a href="http://www.sproutcore.com/"></a></p>
<p><a href="http://raphaeljs.com/">Raphaël</a> is a Javascript toolkit for doing vector based drawing. It sits on top of either SVG or VML depending on what browser is being used. In the midst of all the hubub about Flash on Apple devices, Dmitry Baranovskiy, the author of Raphaël pointed out that Android devices don&#8217;t include SVG, and thus cannot run Raphaël. Apparently people think of Raphaël as something to be used for charts but Baranoskiy showed a number of more general usages of vector drawing that would be applicable to every day web applications.</p>
<p>Steve Souders works on web client performance at Google and has written several books about this topic. His <a href="http://www.slideshare.net/souders/jsconf-us-2010">presentation</a> was a conglomeration of material from other talks that he has done. There were plenty of useful tidbits for those looking to improve the performance of their Javascript applications.</p>
<p><a href="http://twitter.com/zoompf">Billy Hoffman</a>&#8217;s talk on security was very sobering. While Crockford was warning about the dangers of XSS in the abstract, Hoffman presented us with many concrete examples of the ways that Javascript can be exploited to circumvent security measures. A simple example of this was a simple encoding of javascript code as whitespace, so that inspection of a page&#8217;s source code would show nothing out of the ordinary to either an uninformed human or to a security scanner.</p>
<p>In the past, Brendan Eich and I have had some conversations in the comments of my blog, but I don&#8217;t recall meeting him in person until this weekend. Chris Williams snuck Brendan into JSConf as a surprise for the attendees, and many people were excited to have him there. Brendan covered a number of the features being worked on for the ECMAScript Harmony project, and he feels that the outlook for Javascript as a language is improving. Someone did ask him about Crockford&#8217;s call to fix security, and Brendan replied that you can&#8217;t just stop and fix security once for all time, but that you need to fix things at various levels all the time. His position was that we need more automation that helps with security, and that the highest leverage places were in the compiler and VM.</p>
<p>I&#8217;ve been keeping an eye on the server-side Javascript space. Ever since the competition between Javascript engines heated up two years ago, I&#8217;ve been convinced that Javascript on the server could leverage these new Javascript engines and disrupt the PHP/Ruby/Python world. If you subscribe to that line of thinking, then Ryan Dahl&#8217;s <a href="http://nodejs.org/">Node.js</a> is worth noting. Node uses V8 to provide a system to build asynchronous servers. It arrived in the scene last year, and has built up a sizable community despite the fact that It is changing extremely rapidly &#8211; Ryan said he would like to &#8220;stop breaking the API every day&#8221;. In his presentation Ryan showed some benchmarks of Node versus Tornado and nginx, and Node compared pretty favorably. It&#8217;s not as fast as nginx, but it&#8217;s not that much slower, and it was handily beating Tornado. He showed a case where Node was much slower because V8&#8217;s generational garbage collector moves objects in memory. In the example, node was being asked to serve up large files, but because of the issue with V8, it could only write to the result socket indirectly. Ryan added a non-moving Buffer type to Node, which then brought it back to being a close second behind nginx. I was pleased to see that Ryan is very realistic about where Node is at the moment. At one point he said that noone has really built anything on Node that isn&#8217;t a toy. If he gets his wish to stabilize the API for Node 0.2, I suspect that we&#8217;ll see that change.</p>
<p>Jed Schmidt is a human language translator for his day job. In his off hours he&#8217;s created <a href="http://github.com/jed/fab">fab.js</a> a DSL for creating asynchronous web applications in Node. Fab is pretty interesting. It has a functional programming flavor to it. I&#8217;m interested in comparing it with the RxJS bindings for Node. It&#8217;s interesting to see ideas from functional programming (particularly functional reactive programming) percolating into the Javascript server side space. In some ways it&#8217;s not surprising, since the event driven style of Node (and Twisted and Tornado) basically forces programmers to write their programs in continuation passing style.</p>
<p>I didn&#8217;t get to see Jan Lehnardt&#8217;s talk on evently, which is another&nbsp;&nbsp;interesting application of Javascript (via JQuery) on the server side. I need to make some time to go back and watch Chris Anderson&#8217;s <a href="http://blog.couch.io/post/399191405/screencast-demoing-some-new-couchapp-jquery">screencast</a> on it.</p>
<p><strong>The conference</strong></p>
<p>As far as the conference itself goes, JSConf was well organized, and attendees were well taken care of. The conference reminds me of PyCon in its early days, and that&#8217;s my favorite kind of conference to go to. There was very little marketing, lots of technical content, presented by the people that are actually doing the work. I heard lots of cross pollination of ideas in the conversations I participated in, and in conversations that I heard as I walked the halls. I especially liked the idea of &#8220;Track B&#8221; which was a track that got assembled just in time. It&#8217;s not quite the same thing as PyCon&#8217;s open spaces, but it was still quite good. Chris and Laura Williams deserve a big hat tip for doing this with a 10 person staff, while closing on a house and getting ready for their first child to arrive.</p>
<p><b>Last thoughts</b></p>
<p>The last two years have been very exciting in the Javascript space, and I expect to see things heating up quite a bit more in the next few years. In his closing remarks, Chris Williams noted that last year, there was a single server side Javascript presentation, and this year the content was split 50/50. This is an area that you ignore at your own risk.</p>
<p><b><br /></b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/04/19/jsconf-us/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>iPad = Newton 3.0</title>
		<link>http://www.sauria.com/blog/2010/04/07/ipad-newton-3-0/</link>
		<comments>http://www.sauria.com/blog/2010/04/07/ipad-newton-3-0/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 21:20:27 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[misc]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/04/07/ipad-newton-3-0/</guid>
		<description><![CDATA[On Saturday (iPad day), I had a brief twitter exchange with someone comparing the iPad to Newton 2.0. Of course, this was inaccurate, because the Newton Operating System actually reached version 2.1. But in spirit, at least to me, this was correct.

The User Experience
After playing with my iPad for a bit, I feel that it [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">On Saturday (iPad day), I had a brief twitter exchange with someone comparing the iPad to Newton 2.0. Of course, this was inaccurate, because the Newton Operating System actually reached version 2.1. But in spirit, at least to me, this was correct.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4495543745/"><img src="http://farm5.static.flickr.com/4026/4495543745_b06043873d.jpg" height="333" width="500" alt="" /></a></p>
<p><b>The User Experience</b></p>
<p>After playing with my iPad for a bit, I feel that it has captured some of the things that I envisioned in an ideal Newton experience. The form factor is right &#8211; we had had slate sized Newton prototypes that were never produced. The MessagePad 2000/2100, which you can see next to my iPad, was both too small and too large. The split between the iPhone and iPad form factors is closer to the right set of tradeoffs, at least for me. The achievements in hardware are impressive. The A4 powering the iPad can trace its lineage to the StrongARM powering the MessagePad 2xxx&#8217;s, and the ARM 6xx&#8217;s that powered the original Newton. The iPad is very responsive, much more so than my iPhone 3G or the MessagePad. That makes a huge contribution to the overall experience when you use the device. Performance is part of the user experience. Going back to the iPhone after using the iPad is a very frustrating experience. I hope that Apple will be announcing an A4 powered iPhone on Thursday. A4 and the rest of the hardware design have pushed iPad&#8217;s battery life over a key threshold. The 10-12 hour lifetimes being reported mean that the iPad should easily be able to run all day on a single battery charge. It also means that I can use the device all day without worrying about whether the battery is going to die on me. In contrast, if I am using wireless data on my iPhone, human power management is part of the user experience. Internet access is also part of the user experience. The iPad is significantly less valuable without a network connection &#8211; the Newton barely had any connectivity.</p>
<p><strong>The Hardware</strong></p>
<p>As happy as I am with the performance and the battery life, there are some aspects of the hardware that could be improved. The iPad screen has a glossy finish, a featured shared by my new work MacBook Pro and LED Cinema Display. Much as I love the way that photographs and colors render on these displays, the reflections and glare are problems that I haven&#8217;t been able to get over. I would have preferred a matte screen. The iPad casing is a machined single block of aluminum, again, like the MacBook Pro. I have no problems walking around carrying the MacBook Pro (at last with the display closed). When carrying the iPad in the halls in the office, I have this feeling that it might just slip out of my hand. The MessagePad 2000 series had a special rubberized paint (which was expensive) which made it easy to grip. It also had a fold over plastic cover for the screen. This version of the iPad really needs some kind of case to overcome these two issues.</p>
<p>The iPad has an issue when charging from non &#8220;high-power&#8221; USB ports. When attached to one of these ports, the iPad will only charge when it is asleep. If you charge your iPad overnight, this shouldn&#8217;t be a big issue, but it would have been nice to find this out from the Apple documentation rather than one of the Mac news sites.</p>
<p><strong>The Software/Apps</strong></p>
<p>The iPad software is largely like the iPhone software with some additional interface elements to deal with the larger screen. On the surface this just doesn&#8217;t seem like a big deal, but it is. The combination of the large screen and the performance, along with those new elements yields a much better experience. This is obvious if you run the iPhone only version of an application and then try the iPad version. In every case where I did this, I much preferred the iPad version. It is true that iPhone applications run just fine on the iPad, and that you can use pixel doubling to make them fill the full screen. But compared to a native iPad version, apps running in compatibility mode are a joke. This puts the truth to the idea that there is a new form factor in between the smart phone and the desktop/laptop. I know that in any place where I have WiFi, I will reach for the iPad instead of my iPhone. Going back to doing things on the iPhone after using the iPad seems like a kind of torture.</p>
<p>I wish that there were more iPad applications out there. Many of the ones that I use regularly have not been updated yet. Some of the applications that I like at the moment:</p>
<ul>
<li>Evernote &#8211; this is my go-to note taker on the Mac, mostly because of the syncing to iPhone. The iPad version really takes advantage of the new form factor, and I&#8217;m looking forward to being able to use the iPad as a real replacement for a paper notebook.</li>
<li>Instapaper &#8211; I love Instapaper, and I&#8217;d definitely prefer to read my Instapaper articles on the iPad&#8217;s larger screen. My need for it has gone down a little bit because I signed up for Boingo in order to use WiFi on the ferry to work, so I have connectivity in many more of the situations when I would have used Instapaper</li>
<li>Goodreader &#8211; This is a big one. The e-reader that I want can show me my Manning MEAP editions, the research papers from the ACM Digital Library, and MIT PhD dissertations from 1978. That means it has to do PDF. Unfortunately, the iPad doesn&#8217;t come with a PDF reader built in, which seems nuts to me. Goodreader was only a dollar and seems to have more features that an iPad of Preview might, but still.</li>
<li>AccuWeather Cirrus &#8211; This is a flashy weather display program. It looks cool. And I love the little clock based UI for the hourly forecast. Yes, it&#8217;s eye candy.</li>
<li>MindNode &#8211; MindNode Pro on the Mac is my program of choice for Mind Mapping, and the iPad is great form factor for mindmapping, especially that stage where you are trying to organize jumbled up thoughts</li>
<li>Adobe Ideas &#8211; This is a cool little visual sketchbook application &#8211; I&#8217;m sure it will be good for doodling and quick napkin type sketches. For the heavy duty diagramming, I&#8217;m probably going to end up at OminGraffle.</li>
<li>The Elements &#8211; This is an &#8220;interactive&#8221; book rendition of the paper book &#8220;The Elements&#8221; which is about the periodic table. Thus far, this is the best example of what books could become on a device like the iPad. That said, I think that we are just at the beginning of what will be possible &#8211; we&#8217;re going to see a lot of exploration and experimentation in this area over the next several years, I am sure.</li>
</ul>
<p>In my <a href="http://www.sauria.com/blog/2010/01/28/ipad/">original post on the iPad</a>, I was inspired by the UI interactions that I saw in iWork. Of the three programs in the suite, I&#8217;ve only downloaded Keynote. I am still impressed by the UI, but I am not impressed by the compatibility restrictions. When I imported my <a href="http://www.slideshare.net/twleung/presentations">presentations from 2009</a>, Keynote reported a number of problems. Some of the fonts that I used were not present on the iPad, but more importantly, Keynote stripped out all my speaker notes. I hope that Apple will be adding speaker note support in a future update. On the font side, it seems like it ought to be possible to package the needed fonts as part of the Keynote presentation itself. I&#8217;m less hopeful that this will happen since there is probably some legal restriction on the ability to &#8220;distribute&#8221; fonts in this way. Keynote and iWork also showcase an area which I am unhappy about, which is integration with the filesystem on the Mac (or PC, if you must). It is very annoying to have to use iTunes to manage the files that are going in and out of iWork. It&#8217;s even more annoying when you consider something like Dropbox. I&#8217;d really like to see Apple improve this part of the experience. At the moment it feels like a copy of the Newton Connection Kit, and unforunately, that&#8217;s not a compliment.</p>
<p>Many applications developers still haven&#8217;t finished their iPad versions. Here&#8217;s are some of the applications that I am still waiting for:</p>
<ul>
<li>Either Tweetie or Echofon. I am using Twitterific at the moment, and it&#8217;s good, but on the iPhone, both Tweetie and Echofon are better. As in worth paying for better.</li>
<li>Dropbox</li>
<li>Facebook, Foursquare, and Yelp</li>
<li>Tripit</li>
<li>Meebo</li>
<li>Airsharing</li>
<li>Darkslide</li>
<li>Google Earth</li>
<li>Almost the entire Omni Group&#8217;s product line. Ok well really OmniOutliner and OmniFocus</li>
</ul>
<p>The Omni apps are particularly important to me because they will be ports / companions of their desktop versions, which should make the iPad more usable for me in a work setting.</p>
<p><strong>Open Issues</strong></p>
<p>There are some other issues with the iPad which are getting a lot of discussion.</p>
<p>First there is the issue of freedom or openness, depending on where you come from. This has been beaten to death already. I would certainly prefer a more open ecosystem on the iPad, and I don&#8217;t think that there is an enormous amount that would need to change in order to satisfy me. After a few days of playing with a production iPad, I am convinced that this is an important device, and that the iPad is the first entrant in a mass market tablet space. I also believe that it is likely to be the most innovative because of Apple&#8217;s ability to integrate the hardware and software. There is plenty of room in the space for other players, and I believe that in the end Apple will need to make some concessions if they want to be the high volume player in the space.</p>
<p>The next issue is the &#8220;multitasking&#8221; issue. I remember the MacOS when there was no multitasking, then cooperative multitasking, and finally in OS X, true preemptive multitasking. At the end of the day, I want to be able to switch between multiple applications without them losing their context. I do use a few applications that could benefit from running in the background all the time, but that&#8217;s not a huge number. I would happily trade a hour of the iPad&#8217;s 10-12 hour battery life to get this capability. I am sure that the Apple team knows how to implement both the low level functionality needed as well as a good end user interface for this functionality. Multitasking is just a matter of time. It&#8217;s inevitable. Maybe it&#8217;s even tomorrow.</p>
<p>For those in the ebook side of the world, there&#8217;s a different sort of issue. I&#8217;ve heard several people pontificating about the difficulty and cost of creating / producing interactive books. As far as I can tell, the toolchain for this is non-existent. It looks to me that iLife includes many of the applications that someone might need in order to produce an interactive or multimedia book. Conventional wisdom used to be that it took a big movie studio to produce a decent movie. The advent of consumer HD cameras and the broadening availability of powerful computers and production is changing that. Expect the same thing to happen to interactive books.</p>
<p><b>It&#8217;s the beginning</b></p>
<p>I look at the iPad and I see the beginning of something. Even though it appears polished, I think that we have a lot more to learn about the form factor, size appropriate UI&#8217;s, the more intimate experience that tablets create, and other attributes of the platform. I for one, am looking forward to learning the lessons.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/04/07/ipad-newton-3-0/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>What I am going to do next&#8230;</title>
		<link>http://www.sauria.com/blog/2010/03/26/what-i-am-going-to-do-next/</link>
		<comments>http://www.sauria.com/blog/2010/03/26/what-i-am-going-to-do-next/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 17:03:56 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Seattle]]></category>
		<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/03/25/what-i-am-going-to-do-next/</guid>
		<description><![CDATA[On Monday morning I&#8217;ll be down in Burbank, CA at the Walt Disney Studios getting ears fitted for my new job. I&#8217;ll be working in the Disney Interactive Media Group as Director of Advanced Technology. The advanced technology group has a fairly broad scope, and a few of the things that we&#8217;ll be looking at [...]]]></description>
			<content:encoded><![CDATA[<p>On Monday morning I&#8217;ll be down in Burbank, CA at the Walt Disney Studios getting ears fitted for my new job. I&#8217;ll be working in the Disney Interactive Media Group as Director of Advanced Technology. The advanced technology group has a fairly broad scope, and a few of the things that we&#8217;ll be looking at include devices such as tablet computers / e-book readers, HTML5, and cloud computing fabrics. The world of media is being reshaped by technology, and I am excited to have the chance to help Disney navigate those changes.</p>
<p>The Disney Interactive Media Group is located in downtown Seattle, a few blocks from the ferry terminal. So after nine years of working at home, I&#8217;ll be going to work in a &#8220;normal&#8221; office setting. I had several work at home offers, but I have been feeling restless about working at home, so I&#8217;ve decided to shake things up a bit on that front. Seattle locals, I&#8217;d love to catch lunch or coffee with you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/03/26/what-i-am-going-to-do-next/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Job Search Insights</title>
		<link>http://www.sauria.com/blog/2010/03/25/job-search-insights/</link>
		<comments>http://www.sauria.com/blog/2010/03/25/job-search-insights/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 22:08:39 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[misc]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/03/25/job-search-insights/</guid>
		<description><![CDATA[One interesting part about looking for a job is that you end up talking to lots of people and companies. As I&#8217;ve been doing this, I&#8217;ve noticed some interesting patterns.
Companies
&#8220;Services&#8221; are more interesting than &#8220;pure software&#8221;. Many of the companies that I found most interesting were not creating software for distribution, but were creating or [...]]]></description>
			<content:encoded><![CDATA[<p>One interesting part about looking for a job is that you end up talking to lots of people and companies. As I&#8217;ve been doing this, I&#8217;ve noticed some interesting patterns.</p>
<p><strong>Companies</strong></p>
<p>&#8220;Services&#8221; are more interesting than &#8220;pure software&#8221;. Many of the companies that I found most interesting were not creating software for distribution, but were creating or modifying software in the course of providing some other service. This is a trend that has been going on for some time, arguably since the arrival of the web, but for some reason, this stood out to me in a way that it hadn&#8217;t before.</p>
<p><b>Open Source</b></p>
<p>Open source has won, at least for the companies that I&#8217;ve talked to. Most of them were using infrastructure mostly based on open source software. Many had people contributing changes back to various open source projects. A few were looking to open source their internal software as a way of defraying development costs, increasing adoption, and/or many of the other known benefits of open source software.</p>
<p>There&#8217;s still some ways left to in terms of people understanding the world of open source software. Several interviewers thought that I worked for (as in got paid by) Apache. That&#8217;s probably partially LinkedIn&#8217;s fault, but it also shows that while people are eager to use open source software, they do so without an understanding of the nature and role of open source foundations. &nbsp;&nbsp;</p>
<p>Nonetheless, I&#8217;m happy to see evidence that open source software is coming closer to being standard operating procedure.</p>
<p><b>Technologies</b></p>
<p>Of course it is always interesting to hear about the technologies that people are working with, especially if they have put them into production. Here are some technologies or areas which appeared often enough to be notable: Cassandra, Redis, Hadoop, mobile devices, good analytics, machine learning / prediction, and &#8220;cloud computing&#8221;.</p>
<p><strong>Peopleware</strong></p>
<p>I was definitely surprised by the number of companies, particularly startup companies, that were willing to take on a remote employee, especially given the state of the economy.</p>
<p><b>Process</b></p>
<p>I&#8217;ve accepted an offer for a job, and I&#8217;ll be writing about that tomorrow. For now, I&#8217;d like to say thank you to everyone who contacted me with a job opportunity. It&#8217;s nice to know that there are jobs out there, since much of what we hear about the economy is quite negative. Even more than that, I am grateful that people extended themselves to help someone (in this case me) in need. &nbsp;&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/03/25/job-search-insights/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Macintosh Tips and Tricks revised</title>
		<link>http://www.sauria.com/blog/2010/03/11/macintosh-tips-and-tricks-revised-2/</link>
		<comments>http://www.sauria.com/blog/2010/03/11/macintosh-tips-and-tricks-revised-2/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 01:10:29 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Macintosh]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/03/11/macintosh-tips-and-tricks-revised-2/</guid>
		<description><![CDATA[For years I&#8217;ve maintained a page of Macintosh Tips and Tricks. It&#8217;s one of the most referenced pages on my blog, so someone must be using it, despite the fact that it was only up to date for Mac OS 10.5. I&#8217;ve finally gotten around to updating it for my current world. I hope it [...]]]></description>
			<content:encoded><![CDATA[<p>For years I&#8217;ve maintained a page of <a href="http://www.sauria.com/blog/mac-tips-and-tricks/">Macintosh Tips and Tricks</a>. It&#8217;s one of the most referenced pages on my blog, so someone must be using it, despite the fact that it was only up to date for Mac OS 10.5. I&#8217;ve finally gotten around to updating it for my current world. I hope it continues to be useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/03/11/macintosh-tips-and-tricks-revised-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lifestreaming clients round N</title>
		<link>http://www.sauria.com/blog/2010/03/10/lifestreaming-clients-round-n/</link>
		<comments>http://www.sauria.com/blog/2010/03/10/lifestreaming-clients-round-n/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 01:08:19 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/?p=292</guid>
		<description><![CDATA[I guess two posts on lifestreaming clients isn&#8217;t&#160;enough?.
Yesterday&#160;MacHeist started offering pre public beta access to Tweetie 2 for Mac. &#160; That caught my eye because Syrinx, my primary Twitter client has been a little slow at keeping up with Twitter features. &#160; I didn&#8217;t really want to get the MacHeist bundle (don&#8217;t want to hassle [...]]]></description>
			<content:encoded><![CDATA[<p>I guess <a href="http://www.sauria.com/blog/2008/11/25/lifestreaming-clients/">two</a> <a href="http://www.sauria.com/blog/2009/03/23/lifestreaming-round-2/">posts</a> on lifestreaming clients isn&#8217;t&nbsp;enough?.</p>
<p>Yesterday&nbsp;<a href="http://www.macheist.com/#tweetie">MacHeist</a> started offering pre public beta access to <a href="http://www.atebits.com/tweetie-mac/">Tweetie</a> 2 for Mac. &nbsp; That caught my eye because <a href="http://www.mrrsoftware.com/MRRSoftware/Syrinx.html">Syrinx</a>, my primary Twitter client has been a little slow at keeping up with Twitter features. &nbsp; I didn&#8217;t really want to get the MacHeist bundle (don&#8217;t want to hassle with packages that I don&#8217;t want) just to get the private beta, but I mentioned on Twitter that I was thinking about it. &nbsp; Several folks suggested that I try <a href="http://echofon.com/">Echofon</a>. &nbsp; I gave it a whirl, found some things that I like and other that I didn&#8217;t. &nbsp; I started keeping notes about Syrinx vs Echofon, and now it&#8217;s turned into a blog post.</p>
<p><strong>My usage style / requirements</strong></p>
<p>I follow a bunch of people, including many people who live in Europe who tweet while I am asleep. &nbsp; I need a client that can remember unread tweets from overnight. &nbsp; &nbsp;I&#8217;ve found very few clients that are able to do this. &nbsp; &nbsp; My reading style tends to be bursty as well, so I want the client to do a good job of keeping track of what I&#8217;ve read and what I have not. &nbsp; &nbsp;These two requirements are what has kept me on Syrinx &#8211; it can hold days worth of tweets without a problem. &nbsp; Syrinx&#8217;s bookmark also gives me definite way of marking what has been read and what has not, and puts control of that mark directly in my hands.</p>
<p>The other major requirement is that I spend some time (probably too much) on airplanes, without net access. &nbsp; I want a client (mostly on my iPhone) that can go back in fill in the gaps left by being in the air. &nbsp; Tweetie 2 for the iPhone can do this, but the experience of switch back and forth between reading the stream on desktop Syrinx and iPhone Tweetie 2 is annoying.</p>
<p>A minor requirement is to be able to monitor a number of Twitter searches at once &#8211; that means opening a window for each search, something that Syrinx also does.</p>
<p>Now, let&#8217;s have a look at how Syrinx and Echofon stack up for me.</p>
<p><strong>Syrinx</strong></p>
<p>The obvious things that I like about Syrinx are that it can hold as many tweets as I want, as well as the bookmark. &nbsp; &nbsp;I&#8217;ve also grown accustomed to the way that it displays time in absolute format, something which Tweetie 2 / iPhone also does. &nbsp; One other nicety in Syrinx is that it can display real names in addition to Twitter handles, because sometimes handles and people are hard to match up. &nbsp; When you have tons of tweets lying around in&nbsp;the? client, sometimes you want to go back to one, and Syrinx obliges with the ability to search all the tweets that it currently has in memory.</p>
<p>So what are the problems with Syrinx?  It&#8217;s been occasionally unstable, but not in a show stopping fashion.  It doesn&#8217;t have good support for lists, but I still haven&#8217;t made much use of lists. Syrinx does great on opening windows for searches, but it doesn&#8217;t remember what searches you have open, so you have to keep track of that yourself. Probably the biggest drawback of Syrinx is that its development is going slowly because its author has a day job.</p>
<p><strong>Echofon</strong></p>
<p>When I compare Echofon and Syrinx, I realize that a lot of the things that I prefer in Echofon are niceties.  I like that it can open browser links in the background.  I like the way that the drawer is used for dealing with Twitter users and profiles and for displaying conversations. &nbsp; I just wish it could display more than one conversation at once &#8211; but that&#8217;s hard in the drawer model. The ability to colorize tweets matching keywords makes it easier to pick out tweets on high priority topics. &nbsp; &nbsp;As a photographer, I appreciate the ability to display pictures without going all the way to the browser. &nbsp; &nbsp;I do wish there was a way to get some kind of preview of those pictures right in the tweet stream. &nbsp; Echofon does this clever thing where it combines &#8220;rapid-fire&#8221; tweets from the same person. &nbsp; This seems to work really well, and the visual cue is definitely helpful. &nbsp;</p>
<p>Looking at the tweet authoring side, &nbsp;I love the &#8220;retweet with comment&#8221; option. &nbsp; One reason that I stopped commenting on retweets was that it was annoying to do it. &nbsp;No more. &nbsp; Echofon can tab complete Twitter id&#8217;s when @replying or direct messaging. &nbsp; &nbsp;I still wish for a direct message &#8220;rolodex&#8221; &#8211; there are some people who have hard to remember Twitter id&#8217;s. &nbsp; bit.ly is my preferred URL shortener because of the analytics, but you have to be logged in to bit.ly in order for that to work well. &nbsp; Fortunately Echofon is able to log into bit.ly accounts so that your analytics work.</p>
<p>In theory, I like the idea of an Echofon ecosystem that syncs the desktop and mobile clients. &nbsp; I haven&#8217;t tried this yet because I have iPhone Twitter client fatigue, and because as much as I like Echofon, there are some issues that make it hard for me to switch over.</p>
<p>The first of these issues is that Echofon won&#8217;t hold all of the tweets that happen overnight. &nbsp;It looks like Echofon will hold about 5 hours of tweets before it starts to drop them on the floor. &nbsp;There go some of those European tweets.</p>
<p>The next big issue is that marking read/unread doesn&#8217;t work for me. &nbsp;If I am scrolling up through my home tweets and I hit the top, everything gets marked read. &nbsp; It&#8217;s easy to do that by accident. &nbsp; Switching to the @, DM, or search tabs also marks my home tweets as all read, and that doesn&#8217;t work for me at all.</p>
<p>Compared to those two issues, everything else is just nits, but here goes, just to be complete. &nbsp; Echofon doesn&#8217;t display absolute time or real names. &nbsp; &nbsp;Also, Echofon doesn&#8217;t let you search your home tweets.</p>
<p><strong>Wild and crazy wishes</strong></p>
<p>Certain URL shortening services (su.pr and ow.ly come to mind) wrap the page in a header bar, which is annoying. &nbsp;I&#8217;d love if my client would route through those services so that the URL that I got in the browser was the actual content.</p>
<p>Sometimes there are links that are retweeted a bunch. &nbsp; I would love it if a client could compress all those retweets into a single entry which showed how many / which people I follow retweeted a link, along with an indication of whether or not I had already &#8220;read&#8221; an earlier retweeter (which would mean I had already read the link).</p>
<p>I guess I&#8217;ll have to do another version of this post when Tweetie 2 for Mac finally ships. &nbsp; Or maybe it&#8217;s still early enough for some of these ideas to make the cut.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/03/10/lifestreaming-clients-round-n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Sun sets on me</title>
		<link>http://www.sauria.com/blog/2010/02/02/the-sun-sets-on-me/</link>
		<comments>http://www.sauria.com/blog/2010/02/02/the-sun-sets-on-me/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 12:56:53 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Sun]]></category>
		<category><![CDATA[programming languages]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/02/02/the-sun-sets-on-me/</guid>
		<description><![CDATA[On Friday I was notified that I will not be making the transition from Sun to Oracle. Sun was a company filled with talented and energetic people, and I am grateful for the chance to work with them.
Pythonistas (and others) may be wondering what this means for dynamic languages at Oracle. I wish I knew. [...]]]></description>
			<content:encoded><![CDATA[<p>On Friday I was notified that I will not be making the transition from Sun to Oracle. Sun was a company filled with talented and energetic people, and I am grateful for the chance to work with them.</p>
<p>Pythonistas (and others) may be wondering what this means for dynamic languages at Oracle. I wish I knew. I don&#8217;t have any direct knowledge of this, since I&#8217;ve never actually spoken to anyone at Oracle about the topic. &nbsp;&nbsp;</p>
<p>I am definitely looking for another opportunity. During my time at Sun I&#8217;ve worked on a bunch of Python related stuff, as well as a few things related to cloud computing. Other skills in my repertoire include server side development (Java and Python), open source community work, and engineering management. I&#8217;m definitely open to different possibilities. The <a href="http://www.sauria.com/blog/about/">about</a> page of this blog has my contact information, and my <a href="http://www.linkedin.com/in/tedleung">LinkedIn profile</a> is a pretty good summary of my credentials.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/02/02/the-sun-sets-on-me/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>A Few Thoughts on the iPad</title>
		<link>http://www.sauria.com/blog/2010/01/28/ipad/</link>
		<comments>http://www.sauria.com/blog/2010/01/28/ipad/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 19:56:55 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[Macintosh]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2010/01/28/ipad/</guid>
		<description><![CDATA[Here is a jumble of thoughts about the iPad, after finally getting a chance to watch the Stevenote last night. If you haven&#8217;t watched it, I think that there are some parts of it that are worth watching, particularly the app developer parts. When I first saw the online coverage of the iPad announcement, I [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a jumble of thoughts about the iPad, after finally getting a chance to watch the Stevenote last night. If you haven&#8217;t watched it, I think that there are some parts of it that are worth watching, particularly the app developer parts. When I first saw the <a href="http://www.engadget.com/2010/01/27/live-from-the-apple-tablet-latest-creation-event/">online coverage</a> of the iPad announcement, I wasn&#8217;t that impressed. On the surface, the iPad is pretty unsurprising. It&#8217;s a tablet and it&#8217;s based on the iPhone OS (or may be we should really be calling it OS X Touch). &nbsp;&nbsp;</p>
<p><b>User Interface</b></p>
<p>One the one hand, the iPad is the same iPhone OS that is familiar to 70 million iPhone users. On the other hand, some of the keynote demos show that the larger form factor is going to have some interesting UI potential.</p>
<p>I usually try to pay careful attention to presentations by game developers. It&#8217;s not because I am a big gamer myself, but it&#8217;s because the people doing games are usually doing some of the most insane, crazy, and interesting things in the business, and it&#8217;s worth paying attention to the things that they say are important. Both of the game demos for the iPad had some pretty interesting UI and commentary on the experience of the machine as a whole.</p>
<p>The other really interesting part of the keynote was the iWork demo. I am very impressed with the way that iWork has been adapted to the touch screen. There are a number of really cool multitouch gestures that were demonstrated. This is going to be the beginning of some very interesting user interface stuff.</p>
<p><b>Integration</b></p>
<p>I spent most of yesterday watching the Oracle/Sun strategy webcast, and a major theme was the way that Oracle plans to tightly integrate Sun&#8217;s hardware, and to optimize the entire hardware and software stack. The Oracle <a href="http://www.oracle.com/us/products/database/exadata/index.htm">Exadata</a> database machine was repeatedly touted as an example of this kind of integration. If the benchmarks and early customer experiences are indicative, this integration has paid off handsomely, as it has also with the Sun Storage 7000.</p>
<p>The new A4 processor powering the iPad received only brief mention during the keynote, but here too is the same kind of integration. Details on the A4 are very scarce, but speculation is that it was done by the team that Apple acquired from PA semiconductor. It appears to be an ARM compatible (iPhone apps do run) system on a chip design, and I would bet that it is contributing to the (relatively) low price, long battery life, and high performance (according to <a href="http://daringfireball.net/2010/01/ipad_big_picture">Gruber</a>) of the device.</p>
<p>I think that it&#8217;s worth noting that companies like Google are also doing this kind of vertical integration, building their own custom PC designs, having custom Linux kernels and other software. Many of us in the &#8220;open&#8221; world decry vertical integration because it is almost inevitably closed, but the kind of engineering virtuosity that is on display does impress.</p>
<p><b>Wireless</b></p>
<p>Apple appears to have gotten iPad users a deal on 3G pricing from AT&amp;T. I am not really sure that this is a step in the right direction. If Apple is to believed, we are entering a world where a person could have no less that 3 devices (phone, pad, laptop) in need of wireless data (and voice) connectivity. A contract/plan for each device might be great for the carriers, but it is horrible for the users. Since even Apple has backed down in the face of the carriers, it doesn&#8217;t look like this is going to change much, but it ought to.</p>
<p><b>Me</b></p>
<p>Will I buy one? I&#8217;ve been toying with the idea of buying Kindle for some time now. I wanted the size of the Kindle DX, since I wanted to read PDFs of books and research papers, but I felt that $499 for the DX was too much to pay for a book reader. The iPad is obviously a much more capable device than a Kindle, and I&#8217;d expect Amazon to upgrade their Kindle iPhone app to run on the iPad. &nbsp;&nbsp;</p>
<p>I think that the iPad would be vastly superior to my iPhone as a means of showing my photographic portfolio. I can also imagine using an iPad as a tethered shooting target, which would definitely be interesting. The tablet form factor could lead to some pretty interesting photography applications, and the iPad CPU appears to be reasonably capable.</p>
<p>I&#8217;ll say this much &#8211; I definitely want to play with one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2010/01/28/ipad/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>2009 in Photography</title>
		<link>http://www.sauria.com/blog/2009/12/30/2009-in-photography/</link>
		<comments>http://www.sauria.com/blog/2009/12/30/2009-in-photography/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 03:58:47 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/12/30/2009-in-photography/</guid>
		<description><![CDATA[Here&#8217;s a roundup of what I saw through the lens in 2009.
January
This year I did a lot more work with local and regional dancers. Here&#8217;s a danceseattle rehearsal shot.

February
I continued my role as the official photographer for Bainbridge Island Chinese Connection&#8217;s Chinese New Year Celebration.

March
I caught this shot of Guido van Rossum at PyCon by [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a roundup of what I saw through the lens in 2009.</p>
<p><b>January</b></p>
<p>This year I did a lot more work with local and regional dancers. Here&#8217;s a danceseattle rehearsal shot.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3218880373/"><img src="http://farm4.static.flickr.com/3451/3218880373_278d2f5c57.jpg" height="500" width="333" alt="danceseattle rehearsal" /></a></p>
<p><b>February</b></p>
<p>I continued my role as the official photographer for Bainbridge Island Chinese Connection&#8217;s Chinese New Year Celebration.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3276287730/"><img src="http://farm4.static.flickr.com/3463/3276287730_ec76d88876.jpg" height="500" width="333" alt="Seattle Chinese Orchestra" /></a></p>
<p><b>March</b></p>
<p>I caught this shot of Guido van Rossum at PyCon by being in the right place at the right time. My camera was lying on the table next to me when Guido suddenly grabbed the Django Pony and started running down the aisle. He was moving fast enough that I had to snap off a bunch of frames to catch him in focus.</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><b>April</b></p>
<p>April was busy dance month. The Olympic Performance Group put on &#8220;The Toymaker&#8217;s Doll&#8221; (also known as Coppelia).</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3419893267/"><img src="http://farm4.static.flickr.com/3550/3419893267_22971c1418.jpg" height="500" width="333" alt="OPG Toymaker's Doll 2009" /></a></p>
<p>danceseattle had their first ever performance.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3454212783/"><img src="http://farm4.static.flickr.com/3557/3454212783_8213cf7a56.jpg" height="500" width="333" alt="danceseattle Looking Glass Glimpses 2009" /></a></p>
<p>For the first time in a long time, I actually was able to show up to a Seattle Flickr Garage shoot.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3440096119/"><img src="http://farm4.static.flickr.com/3630/3440096119_b2d8dab3b5.jpg" height="333" width="500" alt="UW Garage Shoot 9" /></a></p>
<p><strong>May</strong></p>
<p>May is when the weather in the Seattle area starts to get decent, so I was able to get some nature subjects in front of the lens.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3550924142/"><img src="http://farm4.static.flickr.com/3383/3550924142_fc310d6890.jpg" height="410" width="500" alt="Focus stacking experiments" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3571943171/"><img src="http://farm4.static.flickr.com/3341/3571943171_70f4ab6319.jpg" height="333" width="500" alt="Memorial Day Low Tide Beach walk" /></a></p>
<p><b>June</b></p>
<p>I headed to San Francisco for JavaOne in early June.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3608125931/"><img src="http://farm3.static.flickr.com/2421/3608125931_0a1c26362d.jpg" height="500" width="333" alt="CommunityOne 2009" /></a></p>
<p>I finished out June with Bainbridge Ballet&#8217;s end of year recital.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3637261785/"><img src="http://farm4.static.flickr.com/3337/3637261785_6f879a41fa.jpg" height="500" width="333" alt="Bainbridge Ballet Recital 2009" /></a></p>
<p><a href="http://www.flickr.com/photos/51035696189@N01/3637261785/"></a><strong>July</strong></p>
<p>The Bainbridge Island Fourth of July Parade is always a family and photographic staple.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3688746827/"><img src="http://farm3.static.flickr.com/2447/3688746827_48210d04d9.jpg" height="500" width="333" alt="Bainbridge Island Fourth of July Parade" /></a></p>
<p>Also in July, we had the first guinea pig born in our house.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3710453552/"><img src="http://farm4.static.flickr.com/3472/3710453552_b95fdbc738.jpg" height="500" width="333" alt="The latest addition to the family" /></a></p>
<p><b>August</b></p>
<p>I made it to a second Seattle Flickr garage shoot.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3835544985/"><img src="http://farm4.static.flickr.com/3500/3835544985_eacf428bce.jpg" height="333" width="500" alt="UW Garage Shoot 10" /></a></p>
<p><strong>September</strong></p>
<p>Senior pictures for Bainbridge High School are due at the end of September, and I did 4 sessions in the space of 12 days or so.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3956393445/"><img src="http://farm3.static.flickr.com/2563/3956393445_12ec13a1d9.jpg" height="333" width="500" alt="Blake - Class of 2009" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3957172672/"><img src="http://farm3.static.flickr.com/2526/3957172672_6b70c74271.jpg" height="500" width="333" alt="Blake - Class of 2009" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3976477536/"><img src="http://farm3.static.flickr.com/2436/3976477536_791c376663.jpg" height="500" width="333" alt="Stefan - Class of 2010" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3985782557/"><img src="http://farm3.static.flickr.com/2616/3985782557_5a75e1578f.jpg" height="500" width="333" alt="Matt - Class of 2010" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/3994158167/"><img src="http://farm4.static.flickr.com/3482/3994158167_317ccb9cc1.jpg" height="500" width="333" alt="Michael - Class of 2010" /></a></p>
<p><b>October</b></p>
<p>School was in full swing in October, and one of the science lessons that Julie did with the girls involved extracting DNA using Bacardi 151 rum.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4012710331/"><img src="http://farm4.static.flickr.com/3519/4012710331_682c1283fd.jpg" height="500" width="333" alt="Homeschool: Extracting DNA with Bacardi 151" /></a></p>
<p><b>November</b></p>
<p>This year was the 10th Anniversary of the Apache Software Foundation (and my involvement with it). I did take a few shots while I was at ApacheCon.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4110016787/"><img src="http://farm3.static.flickr.com/2711/4110016787_3c0a22e97e.jpg" height="500" width="333" alt="ApacheCon US 2009" /></a></p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4110797160/"><img src="http://farm3.static.flickr.com/2710/4110797160_94802922e4.jpg" height="500" width="333" alt="ApacheCon US 2009" /></a></p>
<p>I was also fortunate enough to get a slot to <a href="http://www.pocketwizard.com/news_events/event/markwallace_meetup_tour_/">J. Mark Wallace&#8217;s US Meetup Tour</a> when it hit Seattle.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4168563936/"><img src="http://farm3.static.flickr.com/2731/4168563936_3cb6b2f33d.jpg" height="500" width="333" alt="Images from the Mark Wallace US Meetup Tour" /></a></p>
<p><strong>December</strong></p>
<p>Photographically, December is dominated by the Olympic Performance Group&#8217;s production of the Nutcracker.</p>
<p style="text-align: center;"><b><a href="http://www.flickr.com/photos/51035696189@N01/4225338573/"><img src="http://farm3.static.flickr.com/2794/4225338573_444d9be670.jpg" height="333" width="500" alt="OPG Nutcracker 2009" /></a></b></p>
<p style="text-align: center;"><b><a href="http://www.flickr.com/photos/51035696189@N01/4226102500/"><img src="http://farm5.static.flickr.com/4069/4226102500_d323be5bc7.jpg" height="333" width="500" alt="OPG Nutcracker 2009" /></a><br /></b></p>
<p><b><br /></b></p>
<p><b><br /></b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/12/30/2009-in-photography/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ApacheCon US 2009</title>
		<link>http://www.sauria.com/blog/2009/11/16/apachecon-us-2009/</link>
		<comments>http://www.sauria.com/blog/2009/11/16/apachecon-us-2009/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 01:22:35 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/11/16/apachecon-us-2009/</guid>
		<description><![CDATA[[This post is late because I came down with the flu right after I got back from ApacheCon. I guess next year I will get a flu shot]
Talks
This year I was unable to attend all of the conference due to some scheduling problems, so I can&#8217;t give an in depth report on talks. I used [...]]]></description>
			<content:encoded><![CDATA[<p>[This post is late because I came down with the flu right after I got back from ApacheCon. I guess next year I will get a flu shot]</p>
<p><b>Talks</b></p>
<p>This year I was unable to attend all of the conference due to some scheduling problems, so I can&#8217;t give an in depth report on talks. I used some of the time that I might normally have spent in talks to catch up with people that I haven&#8217;t seen in a while. I was able to attend a good number of the talks in the Hadoop track. The track was larger than last year&#8217;s track (due in part to a larger room), but I felt that last year&#8217;s track was stronger. It might also be that I&#8217;ve become a bit more familiar with Hadoop, making it harder to make a bing impression. It&#8217;s definitely the case that there was a lot of interest in Hadoop, and I expect that to continue.</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4110005817/"><img src="http://farm3.static.flickr.com/2671/4110005817_228e68bc56.jpg" height="333" width="500" alt="ApacheCon US 2009" /></a></p>
<p>Unfortunately, I missed the NoSQL meetup during the Apache BarCamp. I think that there could/should have been an entire NoSQL track, especially given the fact that Cassandra and CouchDB are both frequently mentioned NoSQL technologies, and both are housed at Apache.</p>
<p>One talk that surprised me was Ross Gardler&#8217;s talk <a href="http://www.us.apachecon.com/c/acus2009/sessions/295">Teaching and Learning about Open Development</a>, originally I didn&#8217;t think that I would have time to stay for that talk slot, but a rearrangement of my return flight loosened my schedule so that I could stick around. Ross is the chairman of the newly created Community Development PMC at Apache. This is a new effort aimed at improving the experience of contributors and new committers. Some of the people on the PMC have been heavily involved in the ASF&#8217;s Google Summer of Code outreach, and will be bringing their experiences over with them. It seems like this PMC will also be a good place for people concerned about diversity issues to dig in and help in a concrete fashion.</p>
<p><b>Celebration</b></p>
<p>This year&#8217;s ApacheCon&#8217;s have been a celebration of the 10 year anniversary of the founding of the Apache Software Foundation. At Oakland, there was a cake, a proclamation from the Mayor of Oakland, and (I didn&#8217;t get to see this) a letter of congratulations from the Governor of California. Rather than try and describe the festivities in prose, I&#8217;ll leave you with some photos:</p>
<div style="text-align: center;">
  <a href="http://www.flickr.com/photos/51035696189@N01/4110013133/"><img src="http://farm3.static.flickr.com/2785/4110013133_bc9cffde57.jpg" height="333" width="500" alt="ApacheCon US 2009" /></a>
</div>
<div style="text-align: center;">
  
</div>
<div style="text-align: center;">
  <a href="http://www.flickr.com/photos/51035696189@N01/4110012105/"><img src="http://farm3.static.flickr.com/2492/4110012105_3b74d6497c.jpg" height="333" width="500" alt="ApacheCon US 2009" /></a>
</div>
<div style="text-align: center;">
  
</div>
<div style="text-align: center;">
  <a href="http://www.flickr.com/photos/51035696189@N01/4110022037/"><img src="http://farm3.static.flickr.com/2507/4110022037_365069224d.jpg" height="500" width="333" alt="ApacheCon US 2009" /></a>
</div>
<div style="text-align: center;">
  
</div>
<div style="text-align: center;">
  <a href="http://www.flickr.com/photos/51035696189@N01/4110031267/"><img src="http://farm3.static.flickr.com/2666/4110031267_0154f67e78.jpg" height="333" width="500" alt="ApacheCon US 2009" /></a>
</div>
<div style="text-align: center;">
  
</div>
<div style="text-align: center;">
  <a href="http://www.flickr.com/photos/51035696189@N01/4110797160/"><img src="http://farm3.static.flickr.com/2710/4110797160_94802922e4.jpg" height="500" width="333" alt="ApacheCon US 2009" /></a>
</div>
<p>The <a href="http://www.flickr.com/photos/twleung/sets/72157622694214679/">entire set</a> of photos is up on Flickr.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/11/16/apachecon-us-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Years of Apache</title>
		<link>http://www.sauria.com/blog/2009/10/30/10-years-of-apache/</link>
		<comments>http://www.sauria.com/blog/2009/10/30/10-years-of-apache/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 22:27:59 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/10/30/10-years-of-apache/</guid>
		<description><![CDATA[
  

November is just around the corner, which means that once again it&#8217;s time for ApacheCon US. This year is a special year for the Apache Software Foundation &#8211; its 10 year anniversary. Since I got involved with Apache just a few months after the foundation was created, it is also my 10 year [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
  <a href="http://www.us.apachecon.com/c/acus2009/"><img src="http://www.us.apachecon.com/page_attachments/0000/0199/10th_Anniversary_logo_final_w_URL.gif" width="155" height="92" alt="10th_Anniversary_logo_final_w_URL.gif" /></a>
</div>
<p>November is just around the corner, which means that once again it&#8217;s time for <a href="http://us.apachecon.com/c/acus2009/">ApacheCon US</a>. This year is a special year for the Apache Software Foundation &#8211; its 10 year anniversary. Since I got involved with Apache just a few months after the foundation was created, it is also my 10 year anniversary of being involved in open source software.</p>
<p>This year I am going to be speaking twice. On Wednesday I&#8217;ll be speaking on the <a href="http://www.us.apachecon.com/c/acus2009/activities/67">Apache Pioneers Panel</a>, and on Thursday I&#8217;ll be giving a talk titled <a href="http://www.us.apachecon.com/c/acus2009/sessions/296">How 10 years of Apache has changed my life</a>. I owe a huge professional debt to the ASF and its members and committers, so in my talk I&#8217;ll be interweaving important events in the life of the foundation with my own personal experiences and lessons learned.</p>
<p>Unfortunately, I&#8217;m not going to be there for all of the conference this year &#8211; I&#8217;ll be arriving Tuesday afternoon and flying out on Thursday evening. If you want to meet up, I&#8217;m in the <a href="http://apacheconus2009.crowdvine.com/">ApacheCon Crowdvine</a>, and I&#8217;ll be around with camera in hand (and on the <a href="http://www.sauria.com/blog/2009/10/29/the-lumaloop/">LumaLoop</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/10/30/10-years-of-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The LumaLoop</title>
		<link>http://www.sauria.com/blog/2009/10/29/the-lumaloop/</link>
		<comments>http://www.sauria.com/blog/2009/10/29/the-lumaloop/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 05:53:57 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/10/29/the-lumaloop/</guid>
		<description><![CDATA[Back in September, my friend James Duncan Davidson stopped to visit me and the family here on Bainbridge Island. Duncan has been working on a new design for a camera strap, and during that visit he showed me one of the prototypes of the LumaLoop. I spent a good portion of our time playing with [...]]]></description>
			<content:encoded><![CDATA[<p>Back in September, my friend <a href="http://blog.duncandavidson.com/">James Duncan Davidson</a> stopped to visit me and the family here on Bainbridge Island. Duncan has been working on a new design for a camera strap, and during that visit he showed me one of the prototypes of the LumaLoop. I spent a good portion of our time playing with the strap, and was quite taken with the design. Needless to say, I didn&#8217;t really want to give it back to him when it was time for him to go.</p>
<p>The following week at DjangoCon, I lost the strap portion of my Upstrap quick release strap. I liked the Upstrap, but it wasn&#8217;t ideal. The Upstrap was great because of the non stick rubber pad that they use &#8211; it really won&#8217;t move. But like most other camera straps, I found that I was constantly getting it fouled in my arms or something, especially between landscape and portrait modes.</p>
<p>Duncan had promised me one of the early prototypes of the LumaLoop, so I put the official black and neon yellow strap on the D3 and waited patiently. Yesterday, my LumaLoop arrived, and I quickly installed it in place of the Nikon strap. The LumaLoop is a &#8220;sling strap&#8221; similar to the Black Rapid R-Straps that have become popular recently. The Black Rapid straps screw into the tripod socket on your camera, which is a problem if you have any kind of heavy duty tripod plate mounted on your camera, or if you shoot vertically a lot (this is even more of a problem if you have small hands and a camera with a battery grip). The LumaLoop attaches to one of the regular strap mounts on your camera, and once attached, you can slide the camera up and down the strap. The mounting loop is attached with a quick release clip, so swapping cameras/straps is easy as well. Duncan has a series of blog posts that detail the reasoning behind the design:</p>
<ul>
<li><a href="http://blog.duncandavidson.com/2009/02/hacking-the-r-strap.html">Hacking the R-Strap</a></li>
<li><a href="http://blog.duncandavidson.com/2009/03/camera-strap-update.html">Camera Strap Update 1</a></li>
<li><a href="http://blog.duncandavidson.com/2009/05/camera-strap-update-2.html">Camera Strap Update 2</a></li>
</ul>
<p>Here&#8217;s a quick snapshot of mine:</p>
<p style="text-align: center;"><a href="http://www.flickr.com/photos/51035696189@N01/4057041163/"><img src="http://farm3.static.flickr.com/2712/4057041163_001bc443d3.jpg" height="333" width="500" alt="My Luma Labs LumaLoop camera strap" /></a></p>
<p style="text-align: left;">You can see the loop part that goes on the camera, as well as the quick release between the loop and the rest of the strap. It&#8217;s a bit harder see the padded non-slip shoulder pad.</p>
<p>The LumaLoop is going to be available from <a href="http://www.luma-labs.com">Luma Labs</a> sometime very soon (Duncan gave me perimission to talk about the LumaLoop in advance of its general availability). You can <a href="http://twitter.com/lumalabs">follow Luma Labs on Twitter</a> to keep up with all of the news and the official announcement. I&#8217;m excited to have a strap that both holds my camera securely and stays out of my way when the action gets going.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/10/29/the-lumaloop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Concurrency =&gt; Parallelism</title>
		<link>http://www.sauria.com/blog/2009/10/06/concurrency-parallelism/</link>
		<comments>http://www.sauria.com/blog/2009/10/06/concurrency-parallelism/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 06:44:26 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[concurrency]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/10/06/concurrency-parallelism/</guid>
		<description><![CDATA[I wanted to clarify a point from my post The Cambrian Period of Concurrency.
I made the statement

From where I sit, this is all about exploiting multicore hardware

because I&#8217;ve seen a pile of actor and other concurrency libraries which have not taken parallel execution of the concurrent program seriously. If I am going to go to [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to clarify a point from my post <a href="http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/">The Cambrian Period of Concurrency</a>.</p>
<p>I made the statement</p>
<blockquote>
<p>From where I sit, this is all about exploiting multicore hardware</p>
</blockquote>
<p>because I&#8217;ve seen a pile of actor and other concurrency libraries which have not taken parallel execution of the concurrent program seriously. If I am going to go to the trouble of writing a concurrent program, then I want that execution to be parallel, especially in a multicore world.</p>
<p>Simon Marlow from the GHC team <a href="http://ghcmutterings.wordpress.com/2009/10/06/parallelism-concurrency/">said</a> that if programming multicore machines is the only goal we ought to be looking at parallelism first and concurrency only as a last resort. Haskell has some nice features for taking advantage of parallelism. However, I explicitly stated that I was not as interested in highly regular or data parallel computations, which is what Haskell&#8217;s parallelism tools are aimed at. These are fine ways to get parallelism, but I am interested in problems which are genuinely concurrent, not just parallel. In a Van Roy hierarchy, these are the problems with observable nondeterminism. I also specifically called out reduction of latency as one of my goals, something which Marlow says is a possible benefit of concurrency. The GHC team is interested in a different mix of problems than I am.</p>
<p><strong>Van Roy in short</strong></p>
<p>I also forgot to mention Peter Van Roy&#8217;s paper <a href="http://lambda-the-ultimate.org/node/3465">Programming Paradigms for Dummies: What Every Programmer Should Know</a>, which includes an overview of his stratification of concurrency and parallelism (and other stuff). If you don&#8217;t have time to read his book, the paper is shorter and more digestible.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/10/06/concurrency-parallelism/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Cambrian Period of Concurrency</title>
		<link>http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/</link>
		<comments>http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 16:33:38 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[concurrency]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[programming languages]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/</guid>
		<description><![CDATA[Back in July, I gave an OSCON talk that was a survey of language constructs for concurrency. That talk has been making the rounds lately. Jacob Kaplan-Moss made referred to it in a major section of his excellent keynote Snakes on the Web, and Tim Bray has cited it as a reference in his Concur.next [...]]]></description>
			<content:encoded><![CDATA[<p>Back in July, I gave an OSCON <a href="http://www.slideshare.net/twleung/a-survey-of-concurrency-constructs">talk</a> that was a survey of language constructs for concurrency. That talk has been making the rounds lately. Jacob Kaplan-Moss made referred to it in a major section of his excellent keynote <a href="http://jacobian.org/writing/snakes-on-the-web/">Snakes on the Web</a>, and Tim Bray has <a href="http://kenai.com/projects/divide-and-conquer/pages/Home">cited</a> it as a reference in his <a href="http://www.tbray.org/ongoing/When/200x/2009/09/27/Concur-dot-next">Concur.next</a> series. It seems like a good time for me to explain some of the talk content in writing and add my perspective on the current conversations.</p>
<p><b>The Cambrian</b></p>
<p>The Cambrian period was marked by a rapid diversification of lifeforms. I think that we are in a similar situation with concurrency today. Although many of the ideas that are being tossed around for concurrency have been around for some time, I don&#8217;t think that we really have a broad body of experience with any of them. So I&#8217;m less optimistic than Tim and Bruce Tate, at least on time frame. I think that we have a lot of interesting languages, embodying a number of interesting ideas for working with concurrency. I think that some of those languages have gained enough interest/adoption that we are now in a position to get a credible amount of experience so that we can start evaluating these ideas on their merits. But I think that the window for doing that is pretty large, on the order of 5 to 10 years. &nbsp;&nbsp;</p>
<p><b>What kinds of problems</b></p>
<p>The kinds of problems I am interested in are general purpose programming problems. I&#8217;m specifically not interested in scientific, numeric, highly regular kinds of computations or data parallel computations. Unlike Tim, I do think that web systems are a valid problem domain. I see this being driven by the need to drive down latency to provide good user response time, not to provide additional scalability (although it probably will).</p>
<p><b>It&#8217;s not like Java</b></p>
<p><a href="http://erikengbrecht.blogspot.com/">Erik Engbrecht</a>, one of Tim&#8217;s commenters said:</p>
<blockquote>
<p>To get Java, you basically take Smalltalk and remove all of the powerful concepts from it while leaving in the benign ones that everyday developers use.</p>
<p>I think there&#8217;s something to be learned from that.</p>
</blockquote>
<p>This presupposes that you know what all the good concepts are and what the benign ones are. It doesn&#8217;t seem like we are at that point. When Java was created, both Lisp and Smalltalk had existed for quite sometime and it was possible to do this kind of surgery. I don&#8217;t have a clear sense of what actually works well, much less what is powerful or benign.</p>
<p><b>The hardware made me do it</b></p>
<p>From where I sit, this is all about exploiting multicore hardware, and when I say this I mean machines with more than 4 or 8 hardware threads (I say threads, not cores &#8211; actual parallelism is what is important). The <a href="http://www.sun.com/servers/coolthreads/t5440/index.xml">Sun T5440</a> is a 256 thread box. Intel&#8217;s <a href="http://www.intel.com/pressroom/archive/releases/20090526comp.htm">Nehalem EX</a> will let you build a 128 thread box later this year. Those are multicore boxes. If you look at experiments, you see that systems that seem to work well at 2 or 4 threads don&#8217;t&#8217; work well at 16 or 64 threads. Since there&#8217;s not a huge amount of that kind of hardware around yet, it&#8217;s hard for people to run experiments at larger sizes. Experiments being run on 2 thread MacBook Pro&#8217;s are probably not good indicators of what happens at even 8 threads.. This is partially because dealing with more hardware threads requires more administrative overhead, and as the functional programming people found out, that overhead is very non-trivial. The point is, you have to run on actual hardware to have believable numbers. &nbsp;&nbsp;This makes it hard for me to take certain kinds of systems seriously, like concurrency solutions running on language implementations with Global Interpreter Locks. See David Beazley&#8217;s <a href="http://www.dabeaz.com/python/GIL.pdf">presentation</a> on Python&#8217;s Global Interpreter Lock, for an example.</p>
<p><b>Comments on specific languages</b></p>
<p>At this point I am more interested in paradigms and constructs as opposed to particular languages. However, the only way to get real data on those is for them to be realized in language designs and implementations.</p>
<ul>
<li>Haskell &#8211; Functional Laziness aside, the big concurrency thing in Haskell is Software Transactional Memory (STM). There are other features in Haskell, but STM is the big one. STM is an active research field in computer science, and I&#8217;ve read a decent number of papers trying to make heads from tails. Among the stack that I have read, it seems to be running about even between the papers touting the benefits of STM and the the papers saying that STM cannot scale and will not work in practice. The jury is very much out on this one, at least in my mind.</li>
<li>Erlang &#8211; I like Erlang. It&#8217;s been in production use for a long time, and real systems have been built using it. In addition to writing some small programs and reviewing some <a href="http://www.sauria.com/blog/2008/05/28/notes-on-a-history-of-erlang/">papers</a> by Erlang&#8217;s designers, I spent a few days at the <a href="http://www.sauria.com/blog/2009/05/04/erlang-factory-2009/">Erlang Factory</a> earlier this year trying to get a better sense of what was really happening in the Erlang community. While there&#8217;s lots of cool stuff happening in Erlang, I observed two things. First, the biggest Erlang systems I heard described (outside of Facebook&#8217;s) are pretty small compared to a big system today. Second, and more importantly, SMP support in Erlang is still relatively new. Ulf Wiger&#8217;s <a href="http://ulf.wiger.net/weblog/wp-content/uploads/2009/01/damp09-erlang-multicore.pdf">DAMP09 presentation</a> has a lot of useful information in it. On the other hand, BEAM, the Erlang VM is architected specifically for the Erlang process/actor model. This feels important to me, but we need some experimental evidence.</li>
<li>Clojure &#8211; Clojure as a ton of interesting ideas in it. Rich Hickey has really done his homework, and I have a lot of respect for the work that he is doing. Still it&#8217;s the early days for Clojure, and I want to see more data. I know Rich has run some stuff on one of those multiple hundred core Azul boxes, but as far as I know, there&#8217;s not a lot of other data.</li>
<li>Scala &#8211; The big thing in Scala for concurrency is Actors, but if you compare to Erlang, Actors are the equivalent of Erlang processes. A lot of the leverage that you get in Erlang comes from OTP, and to get that in Scala, you need to look at Jonas Boner&#8217;s highly interesting <a href="http://akkasource.org/">Akka</a> Actor Kernel project. Akka also includes an implementation of dataflow variables, so Akka would give you a system with Actors, supervision, STM, and Dataflow (when it&#8217;s done). &nbsp;&nbsp;</li>
<li>libdispatch/Grand Central Dispatch &#8211; Several of Tim&#8217;s commenters brought up Apple&#8217;s Grand Central Dispatch, now open sourced as libdispatch. This is a key technology for taking advantage of multicore in Snow Leopard. GCD relies on programmers to create dispatch queues which are then managed by the operating system. Programmers can send computations to these queues via blocks (closures), which are a new extension to Objective-C. When I look at Apple&#8217;s <a href="http://developer.apple.com/mac/library/documentation/General/Conceptual/ConcurrencyProgrammingGuide/ThreadMigration/ThreadMigration.html#//apple_ref/doc/uid/TP40008091-CH105-SW1">guide to migrating to GCD from threads</a>, I do see a model that I prefer to threads, but it is not as high level as some of the others. Also, the design seems oriented towards very loosely coupled computations. &nbsp;&nbsp;It will be several years before we can really know how well GCD is working. I am typing this post on a 16 thread Nehalem Mac Pro, and I rarely see even half of the CPU meters really light up, even when I am running multiple compute intensive tasks. Clearly more software needs to take advantage of this technology before we have verdict on its effectiveness in production.</li>
<li>.Net stuff like F#/Axum, etc &#8211; There is some concurrency work happening over on the CLR, most notably in F# and Axum. I <a href="http://www.sauria.com/blog/2009/04/16/langnet-2009/">spent some time at Lang.NET</a> earlier this year, and got a chance to learn a bit about these two technologies. If you look at paradigms, the concurrency stuff looks very much like Erlang or Scala, with the notable exception of join patterns, which are on Martin Odersky&#8217;s list for Scala. I will admit to not being very up to speed on these, mostly for lack of Windows and the appropriate tools.</li>
</ul>
<p><b>Other thoughts</b></p>
<p>Jacob&#8217;s take away from my talk at OSCON was &#8220;we&#8217;re screwed&#8221;. That&#8217;s not what I wanted to convey. I don&#8217;t see a clear winner at the moment, and we have a lot of careful experimentation and measuring to do. We are quite firmly in the Cambrian, and I&#8217;m not in a hurry to get out &#8211; these things need to bake a bit longer, as well as having some more experimentation.</p>
<p>In addition to my <a href="http://www.slideshare.net/twleung/a-survey-of-concurrency-constructs">talk</a>, and Tim&#8217;s <a href="http://kenai.com/projects/divide-and-conquer/pages/Home">wiki page</a>, if you are really interested in this space, I think that you should read <a href="http://www.info.ucl.ac.be/~pvr/book.html">Concepts, Techniques, and Models of Computer Programming</a> by Peter van Roy and Seif Haridi. No book can be up to date with the absolute latest developments, but this book has the best treatment that I&#8217;ve seen in terms of trying to stratify the expressiveness of sequential and concurrent programming models.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>DjangoCon 2009</title>
		<link>http://www.sauria.com/blog/2009/09/12/djangocon-2009/</link>
		<comments>http://www.sauria.com/blog/2009/09/12/djangocon-2009/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 22:38:41 +0000</pubDate>
		<dc:creator>Ted Leung</dc:creator>
				<category><![CDATA[python]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[dynamic languages]]></category>

		<guid isPermaLink="false">http://www.sauria.com/blog/2009/09/12/djangocon-2009/</guid>
		<description><![CDATA[Last week I attended DjangoCon 2009 in Portland. Due to scheduling conflicts, I wasn&#8217;t able to attend DjangoCon last year, and I was disappointed that I missed that inaugural event. I&#8217;ve seen some Django stuff at PyCon, and I&#8217;ve written some Django code, being at a conference like DjangoCon helps me to understand the community [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended DjangoCon 2009 in Portland. Due to scheduling conflicts, I wasn&#8217;t able to attend DjangoCon last year, and I was disappointed that I missed that inaugural event. I&#8217;ve seen some Django stuff at PyCon, and I&#8217;ve written some Django code, being at a conference like DjangoCon helps me to understand the community and technology in a way that just reading the documentation doesn&#8217;t.</p>
<p><b>Talk Highlights</b></p>
<p>Here are some of the talks that I found notable:</p>
<p>Shawn Rider and Nowell Strite of PBS gave a talk titled: <a href="http://bit.ly/django-pluggables-presentation">Pluggable, Reusable Django Apps: A Use Case and Proposed Solution</a>. I think that very few people in the Django community had any idea that Django was being used extensively in PBS. That definitely falls into the category of pleasant surprises. &nbsp;&nbsp; One of the strengths of Django is the focus on building small single purpose applications which can be used to build up larger applications. Doing this is harder than it sounds, and Shawn and Nowell described some of the problems that they ran into, as well as showing some ways of dealing with those issues. There was some crosstalk between the PBS guys and the Pinax developers, who are also doing a lot with reusable apps. I hope that these folks will work to share and combine their knowledge and then disseminate that to the broader Django community.</p>
<p>There were a number of talks which followed the theme of &#8220;how not to use parts of Django&#8221;. It&#8217;s interesting because people like Django, and even if they don&#8217;t like some parts, they want to use the rest, and are willing to work to make that possible. You would expect people to just walk away from the framework in cases like these.</p>
<p>Eric Ocean, one of the developers of SproutCore gave what I considered to be a pretty interesting talk. Unfortunately, his talk didn&#8217;t have much of a connection to Django, other than to suggest some things that Django could do to support SproutCore better. I know from watching the IRC and Twitter back talk, that people were put off by the style of presentation (a little too like a commercial), and the weak connection to Django. SproutCore is interesting to me because it&#8217;s at a different level than most of the Javascript frameworks. It&#8217;s at a higher level, which I think will be necessary as browser based applications become more sophisticated. I know that I am going to be taking a closer look at SproutCore, and I hope that a useful Django/Sproutcore collaboration will emerge from the sprints.</p>
<p>Simon Willison gave a keynote about Cowboy programming. The big piece for me was his description of how the Guardian built an application to help the public scrutinize the expenses of British MP&#8217;s. There&#8217;s something about these situations that appeals to me, against my knowledge and better judgment of &#8220;sound software engineering practices&#8221;. I guess it&#8217;s a guilty pleasure of sorts.</p>
<p>Ian Bicking gave a keynote which might be described as &#8220;a free software programmer&#8217;s midlife crisis&#8221;. Ian was very philosophical and reminded us that free software (as opposed to open source software) was rooted in a set of moral (not economic or process) imperatives. It was a very thoughtful speech, and I think that its worth several reads of his <a href="http://bit.ly/new-foss-def">text</a> (something which is hard to do on a train ride with an iPhone) and some additional ponderings.</p>
<p>Avi Bryant&#8217;s keynote took its root in his experiences building <a href="http://trendly.com/">Trendly</a>. As one might expect, Avi started building Trendly using Seaside. But by the time he finished, he noticed that very little of Seaside was actually being used. He attributed this to the fact that Trendly&#8217;s architecture involves loading a single HTML, with a ton of Javascript. That Javascript then manages all of the interaction with the server, which consists of snippets of JSON data. This range true to me because we used a similar architecture for Chandler Hub, the web based version of Chandler (our interaction with the server was based on atom and atompub, not JSON), and it&#8217;s the kind of architecture that GMail is based on. Avi also treated us to a demonstration of <a href="http://clamato.net/">Clamato</a>, his Smalltalk dialect that compiles to Javascript. Again, another attempt to deal with the challenges of engineering large Javascript applications in a web browser.</p>
<p>There were plenty of other good talks, and many of the <a href="http://djangocon.pbworks.com/Slides">slides</a> are already available.</p>
<p><strong>My keynote</strong><b><br /></b></p>
<p>I&#8217;m afraid that I am not equal to the task of writing out my presentation text in full as Ian and Jacob have done, so you will have to settle for the highlights and wait until the video appears.</p>
<p>My keynote was organized around two major sections.</p>
<p>The first section was a look at what I see in the Django community at present. This includes a look at some pseudo statistics around job postings and a poll of web frameworks being used by startups in an effort to get some view into whether and how much adoption of Django is happening. The short answer is that things look promising, but there is still plenty of room to grow. On the technology side, I pointed out the emphasis on combining applications and the work of the Pinax and PBS folks. The other major technology thing that I called out was GeoDjango, which is undoubtedly the most sophisticated GIS functionality in any web framework in any language or platform. This is going to be very attractive to people building location aware mobile apps, and I showed two examples of augmented reality applications as illustrations. This section ends with some observations about the Django community, using the PyCon sprints as an example. Ok, there are also some lighthearted slides about Django&#8217;s mascot, the <a href="http://djangopony.com/">djangopony</a>.</p>
<p>The remainder of the talk was about the ways that web applications are changing and how Django might adapt to them. There are (at least) three groups of people that will be impacted by these changes. From the view point of users, the two big things are richer, more interactive applications, and access from location enable devices. Developers are going to need help in dealing with these new requirements, and the people who operate web applications need much more support than they currently have. &nbsp;&nbsp;</p>
<p>I see several technologies that will be important in facilitating these changes. The first of these is some Rich Internet Application technology. The second is API&#8217;s to web applications. A digression on this point. When the iPhone was introduced, the only way to develop applications was using web technologies. This made a lot of people very angry, and Apple followed up with the ability to build native platform applications. It should be possible to build rich web interfaces on the iPhone. My observation is that given the choice beween a rich web interface and a native iPhone application, users pick the native application. Look no further than the furor over the native Google Voice application. The native applications are talking to the servers using API&#8217;s. Those API&#8217;s are not just cool Web 2.0 frosting. The last technology is cloud computing, which started out as a deployment/operations technology and is now moving up to impact application development at many levels.</p>
<p>In light of this, what are framework developers to do? I did a quick survey of several web frameworks which have interesting ideas or approaches in them, so that the Django folks could see what their &#8220;competitors&#8221; are up to. The frameworks that I included are Rails, <a href="http://liftweb.net/">Lift</a> (Scala), <a href="http://bitbucket.org/justin/webmachine/wiki/Home">Webmachine</a> (Erlang), <a href="http://nitrogenproject.com/">Nitrogen</a> (Erlang), <a href="http://github.com/couchapp/couchapp/tree/master">CouchApps</a> (CouchDB + JavaScript &#8211; this isn&#8217;t quite a framework in the traditional sense, but it met the spirit of my criteria), and Javascript. In the case of Javascript, the observation is that the rapid increase in Javascript performance coupled with a good Javascript framework leads to something which is economically attractive (same technology in the server and client).</p>
<p>The talk finishes with a set of proposals for &#8220;science projects&#8221; that might be attempted in the context of Django. Some of what I outlined is emerging, and in some cases speculative. Django doesn&#8217;t need to blow itself up and start over. Instead, what&#8217;s needed is for people with Django sensibilities to look some of these problems and see if a Django flavored solution can be found. Here&#8217;s the list of projects:</p>
<ol>
<li>Asynchronous Messaging &#8211; if there&#8217;s any use of messaging, it&#8217;s typically to do jobs in the background. What would happen if we made the use of messaging pervasive throughout the framework?</li>
<li>Comet &#8211; I think that the Django+orbited approach to Comet is limited in comparison to what you see in Lift or Nitrogen. Can Django do Comet support at the same level (or better) than these frameworks? What would happen if the Comet stuff were hooked up directly to the messaging stuff I just described? Imagine the equivalent of urls.py that routed Comet requests to messaging.</li>
<li>REST &#8211; There are several good packages for dealing with REST in Django. It would be nice to have this all packaged up neatly and made available for people.</li>
<li>Deployment &#8211; This is really a mess. Are there changes that could be made to Django to make it easier to deploy, or to work better with tools like Puppet, Chef, Fabric, etc?</li>
<li>Monitoring &#8211; Typically frameworks provide very little monitoring information. It seems like there is a lot that could be done here.</li>
<li>Analytics &#8211; Once you have raw monitoring information, the next step is to do some analytics on it. Django is famous for creating admin UI&#8217;s with a very small amount of effort. What if we applied that same thinking to analytics?</li>
<li>Cloud &#8211; If you add up the first 6 items, you are well on your way to what might be a cloud friendly framework. There is still some work to do in terms of making applications on the framework adapt to elastic deployment scenarios, but it would be a good step.</li>
<li>Stacks &#8211; A very basic step towards cloud stuff would be to build a preconfigured stack of software to run/develop a Django app. This is a controversial idea, because everyone has their own idea of what software should be in such a stack, and how all the configuration switches should be set. I still that having one (or more) such stack would help more than it would hurt. In my ideal world this stack would be delivered as a virtual machine image that could also be uploaded to cloud providers.</li>
</ol>
<div style="width:425px;text-align:left" id="__ss_1979201">
  Here are the slides:
</div>
<div style="width:425px;text-align:left" id="__ss_1979201">
  
</div>
<div style="width:425px;text-align:left" id="__ss_1979201">
  <object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=djangocon2009-090910125034-phpapp02&amp;stripped_title=djangocon-2009-keynote" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=djangocon2009-090910125034-phpapp02&amp;stripped_title=djangocon-2009-keynote" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" /><br />
  </object></p>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">
    <font face="Helvetica" size="3"><span style="font-size: 12px;"><font face="tahoma, arial" size="3"><br /></font></span></font>
  </div>
</div>
<p>All of the talks were videotaped so those of you who were unable to attend will be able to catch up soon.<br />
I had a great time hanging out with the Djangonauts. My thanks to Leah Culver and Robert Lofthouse for inviting me to speak.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sauria.com/blog/2009/09/12/djangocon-2009/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
