<?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>Kyle Cordes &#187; conferences</title>
	<atom:link href="http://kylecordes.com/tag/conferences/feed" rel="self" type="application/rss+xml" />
	<link>http://kylecordes.com</link>
	<description>Software, Business, and Life</description>
	<lastBuildDate>Fri, 18 Nov 2011 13:01:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>October 2010: Business of Software, Strange Loop, Clojure Conj</title>
		<link>http://kylecordes.com/2010/three-events-october</link>
		<comments>http://kylecordes.com/2010/three-events-october#comments</comments>
		<pubDate>Wed, 27 Oct 2010 13:56:26 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[lua]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=821</guid>
		<description><![CDATA[I attended three conferences in October 2010, the most of any month of my life to date. Others have posted extensively about all three events, so I&#8217;ll link to a few posts and point out highlights for me. Business of Software 2010 BoS alternates between San Franscisco and Boston; this year it was in Boston. [...]]]></description>
			<content:encoded><![CDATA[<p>I attended three conferences in October 2010, the most of any month of my life to date. Others have posted extensively about all three events, so I&#8217;ll link to a few posts and point out highlights for me.</p>
<h3>Business of Software 2010</h3>
<p><a href="http://businessofsoftware.org/">BoS</a> alternates between San Franscisco and Boston; this year it was in Boston. There are plenty of excellent summaries online (<a href="http://thebln.com/2010/10/organised-notes-index-of-business-of-software-2010-talks/">here</a>, <a href="http://blog.smartbear.com/the_smartbear_blog/2010/10/11-takeaways-from-business-of-software-2010.html">here</a>, <a href="http://gregkilwein.com/2010/10/business-of-software-2010-retrospective/">here</a>, <a href="http://cornerstonetechnology.com/blog/2010/10/what-i-took-away-from-bos2010/">here</a>), and an especially nice set of photos <a href="http://www.flickr.com/photos/jmpk/sets/72157625101817808/detail/">here</a>.</p>
<p>The conference was packed full of great speakers, mostly well known. I am sure the most &#8220;expensive&#8221; person in the lineup was Seth Godin; he is an excellent speaker and had interesting content, but wasn&#8217;t as relevant to me as some of the others.</p>
<p>The high point of BoS was <a href="http://thebln.com/2010/10/joel-spolsky-business-of-software/">Joel Spolsky&#8217;s closing talk</a>. Unlike everyone else, he used no slides, and simply sat at a table to tell us the story of his last year or so. I was a bit surprised at his public airing of partner grievances, but that was probably necessary to tell the (very worthwhile) story of his transition over the last year from the &#8220;small, profitable company&#8221; model to the &#8220;go big&#8221; model. The former can make good money; but only the latter can make a broad impact to build a (perhaps slightly) better world.</p>
<p>I also especially enjoyed Erik Sink and Derek Sivers telling the stories of their company sales. <a href="http://kylecordes.com/2010/mwm-sold">My own company sale experience</a> was more like Erik Sink&#8217;s.</p>
<p>In the past, Business of Software has posted the videos for year N during the marketing runup for year N+1; I suspect the same will happen this time. When those videos appear, watch them. Especially keep an eye out for Joel&#8217;s criticism of Craigslist, with which I agree.</p>
<h3>Strange Loop 2010</h3>
<p><a href="http://strangeloop2010.com/">Strange Loop</a> is held in, and named after, the Delmar Loop area which spans University City and a bit of St. Louis. The 2010 event was much larger than the 2009 event; I don&#8217;t know whether it will be possile to accomodate 2011&#8242;s crowd in the Loop area or not; I&#8217;ll certainly attend either way.</p>
<p>Again there are plenty of summaries online, including <a href="http://www.objectcommando.com/blog/2010/10/20/strange-loop-highlights/">here</a> and <a href="http://www.weiqigao.com/blog/2010/10/18/strange_loop_2010_two_questions_not_answered.html">here</a>.</p>
<p>The highlight of this event for me was Guy Steele&#8217;s talk on parallelism. Unlike some commenters, I greatly enjoyed both the first half of the talk (a stroll through some ancient IBM assembly code) and the second half (including the Fortress example code). I&#8217;ve been inspired by this talk and criticism about it to put together my own <a href="http://kylecordes.com/2010/map-reduce-small-talks">upcoming code-centric talks</a>, in which I&#8217;ll touch on the key parallelism ideas briefly, then step through several code examples in various languages.</p>
<p>I also spoke at Strange Loop, in a 20 minute slot, on Lua (<a href="http://kylecordes.com/2010/lua-strange-loop">video</a>). Most of the feedback on my talk was positive, particularly of the &#8220;<strong>why, not how</strong>&#8221; approach I used to make the best use of 20 minutes. A few people would have preferred a longer talk with more &#8220;how&#8221;; I might put together such a presentation at a later date.</p>
<p>Disclosure: Oasis Digital sponsored Strange Loop.</p>
<h3>(first clojure-conj)</h3>
<p>At <a href="http://clojure-conj.org/">Clojure Conj</a> I had the strong impression of being at the start of something big. I believe that Clojure, in spite of the needlessly-feared parentheses, has more &#8220;legs&#8221; than any other of the current crop of ascendant languages: getting state right (and thus making it possible to get parallelism right) is more important than syntax. Based on the folks I met at the Conj, I&#8217;d say Clojure has exactly the right early adopters on board.</p>
<p>As usual plenty of others have posted detailed notes (<a href="http://david-mcneil.com/post/1393750407/clojure-conj-day-1-notes">here</a>, <a href="http://david-mcneil.com/post/1398718149/clojure-conj-day-2-notes">here</a>, <a href="http://twoguysarguing.wordpress.com/2010/10/25/the-conj/">here</a>, <a href="http://disclojure.org/2010/10/25/today-in-the-intertweets-the-conj-edition/">here</a>, <a href="http://blog.amber.org/2010/10/summary-first-clojure-conj/">here</a>).</p>
<p>The talk that stands out most to me was not exactly about Clojure. <strong>Rich Hickey&#8217;s keynote</strong> was about the importance and process of thinking deeply about problems to create a solution. In a sense this is the counterpoint to agile, rapid-iteration development, suitable to a different class of problems. Clojure exudes a sense of having been thought about in depth, and Rich is obviously the #1 deep thinker. When this arrives on video, watch it. Twice.</p>
<p>I also enjoyed Rich&#8217;s impromptu <a href="http://en.wikipedia.org/wiki/Go_(game)">Go</a> clinic at the pre-conference speaker (and sponsor) dinner. Note that Go has totally different rules from the similarly named <a href="http://en.wikipedia.org/wiki/Gomoku">Go-Moku</a>, and is not to be confused with Google&#8217;s <a href="http://golang.org/">Go language</a>.</p>
<p>Disclosure: Oasis Digital sponsored Clojure Conj.</p>
<h3>Back to Work</h3>
<p>I&#8217;ve had very little time for my own projects this month; between the events, most of my available hours were occupied with Oasis Digital customers. My mind is bursting with worthwhile ideas to pursue.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2010/three-events-october/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lua Doesn&#8217;t Suck &#8211; Strange Loop 2010 video</title>
		<link>http://kylecordes.com/2010/lua-strange-loop</link>
		<comments>http://kylecordes.com/2010/lua-strange-loop#comments</comments>
		<pubDate>Sun, 17 Oct 2010 00:42:29 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=786</guid>
		<description><![CDATA[At Strange Loop 2010, I gave a 20 minute talk on Lua. The talk briefly covered six reasons (why, not how) to choose Lua for embedded scripting. Lua is safe, fast, simple, easily learned, and more popular that you might expect. The Strange Loop crew only recorded video in the two largest venues (out of [...]]]></description>
			<content:encoded><![CDATA[<p>At <a href="http://strangeloop2010.com/">Strange Loop 2010</a>, I gave a 20 minute <a href="http://strangeloop2010.com/talks/14490">talk on Lua</a>. The talk briefly covered six reasons (<strong>why</strong>, not how) to choose Lua for embedded scripting. Lua is safe, fast, simple, easily learned, and more popular that you might expect.</p>
<p>The Strange Loop crew only recorded video in the two largest venues (out of six), so I made a &#8220;bootleg&#8221; video of my talk, for your viewing pleasure:</p>
<a id="wpfp_090b2cd7f20a4fb9a6722f904d2b8610" style="width:640px; height:360px;" class="flowplayer_container"><img src="http://kylecordes.com/blog/wp-content/uploads/2010/10/Cordes-2010-StrangeLoop-Lua-splash.jpg" alt="" class="splash" /><img width="83" height="83" border="0" src="RELATIVE_PATH/images/play.png" alt="" class="splash_play_button" style="top: 135px; border:0;" /></a>
<p>The video/audio sync starts out OK, but drifts off by a second or so by the end. The drift is minor, so it is reasonably viewable all the way through. If you don&#8217;t have Flash installed (and thus don&#8217;t see the video above), you can <a href="http://media.kylecordes.com/Cordes-2010-StrangeLoop-Lua.m4v">download the video (x264)</a>; it plays well on most platforms (including an iPad).</p>
<p>The slides are online below, and are also <a href="http://kylecordes.com/files/SL2010-Lua-Cordes.pdf">available for PDF download</a>.</p>
<div id="__ss_5461928" style="width: 425px;"><object id="__sse5461928" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sl2010-lua-cordes-101016151903-phpapp02&amp;stripped_title=lua-tiny-embeddable-scripting-that-doesnt-suck&amp;userName=kylecordes" /><param name="name" value="__sse5461928" /><param name="allowfullscreen" value="true" /><embed id="__sse5461928" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sl2010-lua-cordes-101016151903-phpapp02&amp;stripped_title=lua-tiny-embeddable-scripting-that-doesnt-suck&amp;userName=kylecordes" name="__sse5461928" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<hr />
<h3>Video Hackery</h3>
<p>This video recording was an experiment: instead of hiring a video crew (with professional equipment), or using my DV camcorder, I instead used the video recording capability of my family&#8217;s consumer-grade Canon digicam. This device has three advantages over my DV camcorder:</p>
<ol>
<li>No tape machinery; no motors; thus no motor noise in the audio.</li>
<li>Smaller size, easier to carry in and out.</li>
<li>Directly produces a video file, easily copied off its SD card.</li>
</ol>
<p>As you can see from the results, the video quality is adequate but not great. Still, I learned that if I want to increase the quality of recording, the first step is <strong>not</strong> to use a better camera or lens! Rather, it is to bring (or persuade the venue to provide) better light. For good video results, the key is light the speaker well, without shining any extra light on the projector screen. With that in place, a better camera make sense.</p>
<p>The audio was a different story. Like nearly all consumer video cameras (and digicams with video), mine doesn&#8217;t have an external audio input, so the audio (from ~12 feet away) was awful. As a backup I had used a $75 audio recorder and a $30 lapel microphone, and that audio is very good, certainly worth using instead of the video recording audio track.</p>
<p>To combine the video in file A with the audio in file B, I used the ffmpeg invocation below. I reached the time adjustments below in just a few iterations of trial and error, by watching the drafts in VLC, using &#8220;f&#8221; and &#8220;g&#8221; to experiment with the audio/video time sync. I also trimmed off a bit of the bottom of the video, and used &#8220;mp4creator.exe -optimize&#8221;, which I had handy on a Windows machine, to prepare the file for progressive download viewing.</p>
<p><code>ffmpeg -y -ss 34.0 -i WS_10001.WMA -ss 34.0 -itsoffset -12.05 -i MVI_4285.AVI -shortest -t 8000 -vcodec libx264 -vpre normal -cropbottom 120 -b 400k -threads 2 -async 200 Cordes-2010-StrangeLoop-Lua.m4v</code></p>
<p>The remaining bits of technology are FlowPlayer, a WordPress FlowPlayer plugin, and Amazon&#8217;s CloudFront CDN.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2010/lua-strange-loop/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upcoming Talk: How to SaaS, Revisited</title>
		<link>http://kylecordes.com/2010/how-to-saas-revisited</link>
		<comments>http://kylecordes.com/2010/how-to-saas-revisited#comments</comments>
		<pubDate>Mon, 15 Feb 2010 22:52:32 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[saas]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=432</guid>
		<description><![CDATA[Back in 2007 I gave a talk on Selling your Software as a Service. The room was quite small but tightly packed, and several people have asked since then if I plan to repeat it. (I went back and listened to the recording of that talk, on the linked page; it holds up quite well. [...]]]></description>
			<content:encoded><![CDATA[<p>Back in 2007 I <a href="http://kylecordes.com/2007/05/10/software-service/">gave a talk on Selling your Software as a Service</a>. The room was quite small but tightly packed, and several people have asked since then if I plan to repeat it. (I went back and <strong>listened</strong> <strong>to the recording</strong> of that talk, on the linked page; it holds up quite well. I recommend it if you interested in the topic!)</p>
<p>I finally have the right opportunity to do so; later this month at the <a href="http://stlinnovationcamp.com/">St. Louis Innovation Camp mini-conference</a> I’ll give an updated talk on the same topic, on Friday, Feb 26, in a time-slot to-be-determined. The talk:</p>
<h2>The Software as a Service Business Model</h2>
<p>In this talk, I will share some “lessons learned” from five years operating a Software as a Service business. Topics will include:</p>
<ul>
<li>What is SaaS?</li>
<li>Starting a SaaS business</li>
<li>SaaS Product Management</li>
<li>Cash Flow</li>
<li>Customer Retention</li>
<li>Infrastructure and Operations</li>
</ul>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2010/how-to-saas-revisited/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Business of Software 2009: Excellent</title>
		<link>http://kylecordes.com/2009/bos-2009-excellent</link>
		<comments>http://kylecordes.com/2009/bos-2009-excellent#comments</comments>
		<pubDate>Thu, 12 Nov 2009 18:05:20 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=348</guid>
		<description><![CDATA[I just returned from the Business of Software 2009 conference, and can summarize it as excellent. Here are some thoughts on specific bits of it, mostly interesting to people who were there. Geoffrey Moore’s opening talk was an early highlight of the conference; I’ve often been disappointed when a well-known person from somewhat outside a [...]]]></description>
			<content:encoded><![CDATA[<p>I just returned from the <a href="http://businessofsoftware.org/">Business of Software 2009 conference</a>, and can summarize it as excellent. Here are some thoughts on specific bits of it, mostly interesting to people who were there.</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Geoffrey_Moore">Geoffrey Moore</a>’s opening talk was an early highlight of the conference; I’ve often been disappointed when a well-known person from somewhat outside a conference’s focus is invited to talk, but it turned out that Geoff had ample highly relevant content. Most notably, his 9-point recommendation for small software firms is dead on.</li>
<li>It is highly likely that my next project will be in one of the 20-something categories that Paul Graham thinks will grow. I’m not sure if this is saying much, though, because his points were so numerous and broad.</li>
<li><a href="http://www.crunchbase.com/person/mat-clayton">Mat Clayton</a> had strong points about A/B testing, but I felt a bit dirty merely being in the room for his list of “dirty tactics” for social networking promotion. I heard similar feedback from other attendees.</li>
<li><a href="http://www.jnd.org/">Don Norman</a>’s talk was excellent, but would have been more excellent if it was a bit shorter and thus tighter.</li>
<li>My favorite talk of the conference was <a href="http://ryancarson.com/">Ryan Carson</a>’s. In conversations about his talk, I heard the idea of several directions that the essence of Ryan’s message was to trade off, to give up profits in order to do various good things instead. I strongly suspect, though, that Ryan is doing the best he can, i.e. the strategy he proclaims is also how he maximizes profits (for a company like his).</li>
<li><a href="http://oceanlearning.co.uk/">Paul Kenny</a> talked about telling stories. You must do this. I can’t explain just how important this talk was, so I won’t.</li>
<li>Pecha Kucha was this conference’s name for lightning talks. As elsewhere, these talks are usually very dense and very good, because the format forces the speaker to discard all the slow parts, all the boring parts, all the exposition, and instead go directly for their key points. It works.</li>
<li>I noticed a large number of people using <a href="http://www.tweetdeck.com/">TweetDeck</a>, and adopted it myself. It is a higher-mental-bandwidth way to consume Twitter and Facebook data streams, and is well suited to the a sane Twitter usage pattern of one short intense sessions per day.</li>
</ul>
<p>I have only a few criticisms:</p>
<ul>
<li>A few of the speakers went long. Though it would annoy the speaker, it would be much better for the conference if all sessions were promptly stopped on time.</li>
<li>Luke Hohmann’s talk on “Innovation Games” felt like a sales pitch for his company, even though he tried hard to talk mostly in general terms.</li>
<li>The schedule was a bit too dense. We needed more slack between / before / after, to discuss and absorb the information.</li>
<li>It would have been nice to have a talk address the business of custom software development.</li>
<li>The swag, in the form of a slanket / snuggie, is much too physically large for an event attended mostly via air travel. Of course I could have discarded it (and some attendees did), this would have felt like waste. I would have preferred if Neil had simply scrapped it and kept that money as profit.</li>
</ul>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2009/bos-2009-excellent/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Business of Software 2009</title>
		<link>http://kylecordes.com/2009/business-of-software-2009</link>
		<comments>http://kylecordes.com/2009/business-of-software-2009#comments</comments>
		<pubDate>Mon, 27 Jul 2009 19:04:40 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=291</guid>
		<description><![CDATA[A couple of years ago I attended the inaugural Business of Software conference; it was quite worthwhile. This year I&#8217;ve registered to attend Business of Software 2009, and heartily recommend it to anyone interested in the subject matter. Joel Spolsky is one of the sponsors; I had an interesting conversation with Joel last time I [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago I attended the inaugural Business of Software conference; it was quite worthwhile. This year I&#8217;ve registered to attend <a href="http://www.businessofsoftware.org/">Business of Software 2009</a>, and heartily recommend it to anyone interested in the subject matter. <a href="http://www.joelonsoftware.com/">Joel Spolsky</a> is one of the sponsors; I had an <a href="http://kylecordes.com/2007/10/31/great-developers/">interesting conversation with Joel</a> last time I attended.</p>
<p><a href="http://www.businessofsoftware.org/"><img class="alignnone" src="http://www.businessofsoftware.org/images/businessofsoftware_logo.png" alt="" width="123" height="97" /></a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2009/business-of-software-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bar Camp St. Louis, a stealth micro-unconference?</title>
		<link>http://kylecordes.com/2009/bar-camp-st-louis-a-stealth-micro-unconference</link>
		<comments>http://kylecordes.com/2009/bar-camp-st-louis-a-stealth-micro-unconference#comments</comments>
		<pubDate>Mon, 09 Mar 2009 01:42:17 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/?p=248</guid>
		<description><![CDATA[Today I stumbled across the web evidence of Bar Camp St. Louis (Flickr stream, Facebook group) , a software / social networking flavored &#8220;unconference&#8221;. It occured a few months ago, on Dec. 13th, 2008.  I&#8217;m not sure I&#8217;d have attended, but I am surprised that went below the radar of any of the various user [...]]]></description>
			<content:encoded><![CDATA[<p>Today I stumbled across the web evidence of <a href="http://barcamp.org/BarCampSTL">Bar Camp St. Louis</a> (<a href="http://www.flickr.com/groups/barcampstl/pool/">Flickr stream</a>, <a href="http://www.facebook.com/group.php?gid=34873033510">Facebook group</a>) , a software / social networking flavored &#8220;unconference&#8221;. It occured a few months ago, on Dec. 13th, 2008.  I&#8217;m not sure I&#8217;d have attended, but I am surprised that went below the radar of any of the various user groups / mailing lists I follow.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2009/bar-camp-st-louis-a-stealth-micro-unconference/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Great Developers, Projects That Sound Boring</title>
		<link>http://kylecordes.com/2007/great-developers</link>
		<comments>http://kylecordes.com/2007/great-developers#comments</comments>
		<pubDate>Wed, 31 Oct 2007 14:51:26 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/10/31/great-developers/</guid>
		<description><![CDATA[I’ve been a fan of Joel Spolsky for years, though I haven’t agreed with everything he’s written, and even mocked him a bit. Joel has written at length on his web site and in print about attracting the best developers, and one aspect of that has bothered me: How do you attract top developers to [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been a fan of <a href="http://www.joelonsoftware.com/">Joel Spolsky</a> for years, though I haven’t agreed with everything he’s written, and even <a href="http://kylecordes.com/2006/09/01/joel-irony/">mocked him a bit</a>. Joel has written at length on his web site and in print about attracting the best developers, and one aspect of that has bothered me:</p>
<p><strong>How do you attract top developers to work on something that sounds rather dull, like a bug tracking application? It mostly shuffles data back and forth between screens and reports and database tables – far too boring for top developers.</strong></p>
<p>Of course that’s an exaggeration, but a relevant one: at Oasis Digital much of our work is on enterprise business process automation, database-centric applications, and could likewise be described casually (though not accurately) as “just” shuffling data between screens and tables. I worry that our work will not sound interesting to prospective hires.</p>
<p>This week at the <a href="http://www.businessofsoftware.org/">Business of Software conference</a> I got a chance to ask (confront?) Joel about this. He offered a great, four-part answer, which I present here with my own additions mixed in. I don’t have careful notes about which bits came from Joel, so you are welcome to give him all the credit and me all the blame.</p>
<p><strong>1) There is Interesting Technology Inside</strong></p>
<p>Even in an application which, at first glance, just shuffles data around, there can turn out to be a lot of very interesting work inside. This is true of FogBugz and it is true of our work at Oasis Digital as well. Here are some examples of interesting work here, all of it inside dull-sounding applications:</p>
<ul>
<li>Process metadata and generate code and GUI elements. Top developers certainly are those who solve a family of problems with generic code and metadata, rather than tediously one at a time.</li>
<li>Process large hierarchies efficiently using Celko’s nested sets representation technique. Top developers are all about using better data structures.</li>
<li>Custom GUI components to provide a drag-drop, direct manipulation approach to visualize and modifying data. The results has both a high “wow” factor, and is genuinely useful – a willing combination for top developers.</li>
<li>Integrate a Prolog-based rules mechanism to provide a vital algorithm in one page of code, that would have required countless pages of code and hundreds-to-thousands of hours of work to do otherwise. Using a radically different language to solve a problem with a small fraction of the effort… exactly the sort of thing a top developer wants to do.</li>
<li>Generic data replication mechanism: building our own was certainly more interesting work than adoptions one off the shelf.</li>
<li>Learn how OLAP works, implement an OLAP ETL process.</li>
<li>… I could list many more examples</li>
</ul>
<p><strong>2) One Level Down the Stack</strong></p>
<p>Fog Creek aims to make compellingly good software because that is how you outcompete established competitors in a commercial shrinkwrap market. Oasis Digital likewise has this aim for a different reason: it is our intended niche. We aim to differentiate ourselves from “yet another outsourced dev company” by building unexpectedly good software. We don’t want customers who will be happy with the results available from the typical development firm; we want customers who are<em> playing to win</em>.</p>
<p>To meet either goal, it is sometimes necessary to work at one level of abstraction lower than would otherwise be necessarily. Joel’s examples were their own data grid and their own AJAX library. Some of our examples are listed above.</p>
<p>This kind of work, further in to the details, is generally more compelling to top developers.</p>
<p>Caveat: Don’t do this very often. If you want to ship software anytime soon, you need to mostly use off the shelf libraries that already work. Don’t build a data-grid, for example, unless you really need something that you can’t find in any off the shelf products. We don’t have our own data-grid; we use (among other things) the excellent grid products from <a href="http://www.devexpress.com/">Developer Express</a>.</p>
<p><strong>3) Problem Domain is less important than other factors</strong></p>
<p>Joel has observed that developers aren’t as picky about the problem domain of their project as one might think; rather, other factors are more important: great co-workers, nice working environment, working for a boss who is a developers, etc. Top developers want to work on a high quality end product worthy of taking pride in.</p>
<p><strong>4) All Projects need a lot of Grunt Work</strong></p>
<p>To build a high quality product, in any problem domain, will require spending a great amount of your time on grunt work: tracking down bugs and fixing them, filling in feature “holes”, cleaning up design problems, improving GUI layouts, and the like. This is true for any problem domain. Top developers know this, and just get on with doing that work when needed.</p>
<p><strong>Conclusion</strong></p>
<p>My worry was unjustified. Our work at Oasis Digital is interesting and worthwhile, both for our customers and for our developers. To grow our team, we must focus on making it an increasingly good place to work.</p>
<p>A final anecdote: Joel mentioned that FogBugz 6 was feature-complete in the summer of 2006 – that means they spent around a year polishing it, fixing bugs, filling in holes, etc. That shows a phenomenal amount of dedication and discipline to create quality software.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/great-developers/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Business of Software 2007 Conference</title>
		<link>http://kylecordes.com/2007/bos-conference</link>
		<comments>http://kylecordes.com/2007/bos-conference#comments</comments>
		<pubDate>Tue, 10 Jul 2007 21:49:57 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/07/10/bos-conference/</guid>
		<description><![CDATA[I just registered for the Business of Software 2007 conference this fall (Oct 29 and 30) in San Jose. The organizers have put together an impressive list of speakers, and the schedule is mostly one-track: everyone in the same session. I prefer conference like that, to those with many &#8220;tracks&#8221;. This is the first year [...]]]></description>
			<content:encoded><![CDATA[<p>I just registered for the <a href="http://www.businessofsoftware.org/">Business of Software 2007 conference</a> this fall (Oct 29 and 30) in San Jose. The organizers have put together an <a href="http://www.businessofsoftware.org/speakers.html">impressive list of speakers</a>, and the schedule is mostly one-track: everyone in the same session. I prefer conference like that, to those with many &#8220;tracks&#8221;.</p>
<p>This is the first year for this conference, so I have no idea how popular it might or might not be. At &#8220;worst&#8221; case, it&#8217;s a small crowd, which usually results in great conversations.</p>
<p>Update: <a href="http://www.agileprogrammer.com/oneagilecoder/">Brian Button</a> pointed me to this <a href="http://blog.businessofsoftware.org/2007/07/from-project-sl.html">interview with Tim Lister</a>, which includes hints about the salacious topics he&#8217;ll talk about at the conference (Tim, co-author of Peopleware, is a headline speaker at the BOS conference).</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/bos-conference/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TEDTalks &#8211; Ideas Worth Spreading &#8211; Video Worth Watching</title>
		<link>http://kylecordes.com/2007/ted</link>
		<comments>http://kylecordes.com/2007/ted#comments</comments>
		<pubDate>Sat, 26 May 2007 21:38:17 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/05/26/ted/</guid>
		<description><![CDATA[TED is an annual conference at which a bunch of (hopefully?) remarkable people say remarkable things. I&#8217;m using the word in a Seth Godin sort of way: remarkable things are those which inspire people to literally remark about them. It appears to be &#8220;A-list&#8221; event, meaning that I&#8217;m not likely to make the cut anytime [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ted.com/">TED</a> is an annual conference at which a bunch of (hopefully?) remarkable people say remarkable things. I&#8217;m using the word in a Seth Godin sort of way: remarkable things are those which inspire people to literally remark about them.</p>
<p>It appears to be &#8220;A-list&#8221; event, meaning that I&#8217;m not likely to make the cut anytime soon.</p>
<p>Fortunately, many TED sessions are available to the rest of us online: <a href="http://www.ted.com/tedtalks/">TEDTalks</a>.  Here are some that I bookmarked to watch again; the download links are for QuickTime videos. Many of these are also on Google Video or elsewhere.</p>
<p><a href="http://ted.streamguys.net/ted_rutan_b_2006.zip">Burt Rutan</a></p>
<p><a href="http://ted.streamguys.net/ted_schwartz_b_2005.zip">Barry Schwartz</a></p>
<p><a href="http://ted.streamguys.net/ted_gladwell_m_2004.zip">Malcom Gladwell</a></p>
<p><a href="http://ted.streamguys.net/ted_levitt_s_2004.zip">Steven Levitt</a></p>
<p><a href="http://ted.streamguys.net/ted_negroponte_n_2006.zip">Nicholas Negroponte</a></p>
<p><a href="http://ted.streamguys.net/ted_rosling_h_2006.zip">Hans Rosling</a> (One word summary: Wow.)</p>
<p><a href="http://video.google.com/videoplay?docid=-4964296663335083307&#038;q=tedtalks">Ken Robinson &#8211; Do schools today kill creativity?</a></p>
<p><a href="http://video.google.com/videoplay?docid=-7822696446273926158&#038;q=tedtalks">Dan Gilbert  &#8211; The (misguided) pursuit of happiness</a></p>
<p>The Secret of Happiness, according to Dan Gilbert:</p>
<ol>
<li>Accrue wealth, power, and prestige. Then lose it.</li>
<li>Spend as much of your life in prison as you possibly can.</li>
<li>Make someone else really, really rich.</li>
<li>Never ever join the Beatles.</li>
</ol>
<p>(watch the video for the story behind this)</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/ted/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selling your Software as a Service: Notes and Audio</title>
		<link>http://kylecordes.com/2007/software-service</link>
		<comments>http://kylecordes.com/2007/software-service#comments</comments>
		<pubDate>Fri, 11 May 2007 01:30:20 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[saas]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/05/10/software-hosted-service/</guid>
		<description><![CDATA[At the St. Louis Code Camp on May 5, 2007, I gave a talk on Selling Your Software as a Service, in which I discussed our experiences selling a complex (Java) &#8220;enterprise&#8221; application in that manner. The room was much more crowded than I expected, it was exciting to have an eager group. As with [...]]]></description>
			<content:encoded><![CDATA[<p>At the <a href="http://stlcodecamp.org/">St. Louis Code Camp on May 5, 2007</a>, I gave a talk on Selling Your Software as a Service, in which I discussed our experiences selling a complex (Java) &#8220;enterprise&#8221; application in that manner. The room was much more crowded than I expected, it was exciting to have an eager group. As with all my recent talks, I used a handout instead of slides. You can download a <a href="http://kylecordes.com/files/SAASTalkHandout.pdf">PDF of the handout</a> (one page, one side), or read the contents below.</p>
<p>The 1 hour audio recording (Olympus WS-100 digital voice recorder, Audacity cleanup) is available here: <a href="http://media.kylecordes.com/SAASTalk.mp3">SAASTalk.mp3<br />
</a></p>
<p><a href="http://kylecordes.com/files/SAASTalk.html">A transcript of the talk is available</a>. In the talk I mentioned Paul Graham&#8217;s <a href="http://paulgraham.com/road.html">The Other Road Ahead</a>, which is shorter and easier to read the my talk transcript.</p>
<p>A couple of people at Code Camp asked if I could come give a similar talk in-house at their firms. Yes &#8211; please contact me with the contact form to arrange a date.</p>
<p>The handout contents follow.</p>
<p><span id="more-141"></span></p>
<h2>Selling your Software as a Service</h2>
<p>Kyle Cordes<br />
May 5, 2007</p>
<h2 class="western">An Encouraging Idea</h2>
<p>When you open up an IDE/editor at home, on your own time, you have a remarkable power in your hands: you can create something that you own (modulo some employment agreements). It is yours to sell, to give away, or to decline to do either, on your own terms. Likewise a company has this on a larger scale.</p>
<p>For the last few years my firm has been selling access to an application we wrote (and continue to write) as a service, charging a monthly fee for use, hosting, and support. I won&#8217;t name names or describe our product in detail (this talk is not spam), but I will share some things we&#8217;ve learned along the way.</p>
<h2 class="western">What is SAAS?</h2>
<p style="margin-bottom: 0in;">Delivering a software product (especially a complex “enterprise” system, less so with consumer products) involves more than just bits in a file / on a CD-ROM:</p>
<ol>
<li>
<p style="margin-bottom: 0.02in;">Delivery of the deployable code</p>
</li>
<li>
<p style="margin-bottom: 0.02in;">License (legal right to use it)</p>
</li>
<li>
<p style="margin-bottom: 0.02in;">Hosting: hardware, deployment, 	and management thereof</p>
</li>
<li>
<p style="margin-bottom: 0.02in;">Support for the server(s) / 	software on the servers</p>
</li>
<li>
<p style="margin-bottom: 0.02in;">Support for the end users / 	software on their PCs or other devices</p>
</li>
</ol>
<p>In a consulting or in-house project, the most common type of project for the audience here at Code Camp, you sell hours of labor to do the things above.</p>
<p>In a commercial software product company, you bundle #1 and #2 for a price, then perhaps sell a service contract for #4 and possibly #5.</p>
<p>With Software as a Service (<strong>SAAS</strong>) you bundle #1, #2, #3, #4, and possibly #5, then sell the result for a yearly / monthly fee times some measure of volume (per computer, per user, per transaction, per site, etc.). A company selling their software in this way is sometimes called an Application Service Provider.</p>
<h2 class="western">The Business Model</h2>
<p style="margin-bottom: 0in;">From a business perspective, SAAS offers a recurring revenue stream rather than “spiky” up front sales. In the short term this can make higher investment demands (since the revenue arrives more slowly). In the long term, though, recurring revenues are very amenable to a sustainable ongoing business.</p>
<p>On the downside, as a SAAS vendor you are at greater risk of ongoing payments stopping, vs. up-front payments in full when the sale is made.</p>
<p>Collections are typically much less of a problem with SAAS: you will generally be paid by customers in a timely way (as they would pay for electricity, bandwidth, and other ongoing utility services).</p>
<p>This gradual arrive of revenues will shape your company&#8217;s financial decisions: you need to meter expenses to match.</p>
<h2 class="western">Hosting</h2>
<p>With SAAS, your customer stays out of the “hosting business”, but you get in to it. One way to offer reliable hosting is to put your servers in a colo facility; you can typically get a full rack (with power and bandwidth) for less than $1000 per month. This will provide redundancy in the power, air conditioning, and connectivity, which would be much more costly to provide in-house.</p>
<p>You will become experts in hosting, by experience. You will host more instances of your software than any one customer would, so you are in a better position to do a good job doing so.</p>
<p>Another route, for a smaller operation, is to rent a single dedicated server or even a “virtual” dedicated server. Or, go utterly virtual and use Amazon EC2 and S3 as your infrastructure.</p>
<h2 class="western">Support / Operations</h2>
<p>As an SAAS firm you can offer much more hands-on support than a traditional software vendor, because you have direct and immediate access to the production systems serving your customers.</p>
<p>At the same time, this access will expose your team to the customer&#8217;s pain points, making it more likely those problems are fixed soon.</p>
<p>With SAAS you can readily deploy updates regularly (weekly / monthly) at low cost, enable end-to-end agility. Paul Graham wrote about this in “The Other Road Ahead”.</p>
<h2 class="western">What do customers like about SAAS?</h2>
<p>Customer <strong>love</strong> not paying for unproven software up front, even if they have abundant cash and even if the software is in use elsewhere. They avoid making an unrecoverable investment in case their needs change or the software turns out to be inadequate.</p>
<p>Customers generally like not running a hosting operation: not operating a data center, not hiring employees for it, etc.</p>
<p>Customers benefit with SAAS&#8217;s easy scaling up or down as their needs grow and shrink. Financial decision makers often prefer costs that scale smoothly with business volume.</p>
<h2 class="western">What do customers not like about SAAS?</h2>
<p>Customer may be concerned that they have less direct control over an application supplied SAAS, than one hosted in-house, with less ability to persuade an operator/developer to drop everything and fix it now.</p>
<p>Eventually a customer may spend more with SAAS (at least in terms of the checks written to the software vendor, though perhaps not in total cost) than they would have spent buying a license up-front; thus they are prone to regret that they didn&#8217;t buy an up front license.</p>
<p>A customer may want to customize the software in a way the vendor does not offer.</p>
<h2 class="western">Start Fast</h2>
<p>SAAS provides considerable flexibility in delaying software work past the product launch; “admin” features can be less complete and more rough, if they are used primarily by the vendor&#8217;s staff instead of by the customer, and can require deeper system knowledge.</p>
<p>There is also a risk that the ability to get by with rough edges will too easily allow you to never truly finish the product.</p>
<h2 class="western">What&#8217;s it like to sell software this way?</h2>
<p>The biggest difference in selling SAAS is a more substantial long term relationship with the customer, both operationally and financially. This can be a great advantage – with a close customer relationship you will be in a position to understand their needs more fully, and innovate in your software to meet those needs better.</p>
<h2 class="western">Customizations</h2>
<p>The purest SAAS way to offer customizations is to not charge hourly / project fees for the changes, but rather to invest in the desired enhancements then charge a higher ongoing price for the enhanced system. Hybrid customization payments are also possible, combinations of customization fees and monthly costs. Be sure your customer understands that paying for a customization, does not grant ownership of the underlying system.</p>
<h2 class="western">Intellectual Property</h2>
<p>While an SAAS firm usually owns (or licenses) its software, customers should own their data (and have access to a copy of the raw data, if they ask for it). Hire a lawyer to work out the details.</p>
<p>Go to great lengths to keep customer data separate: you must make sure to never, even briefly or accidentally, give one customer access to another customer&#8217;s data. For small, cheap services, WHERE clauses are OK for this, but for large expensive services, use (at minimum) separate databases and server code instances, and perhaps even separate  hardware.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/software-service/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://media.kylecordes.com/SAASTalk.mp3" length="35758325" type="audio/mpeg" />
		</item>
		<item>
		<title>St. Louis Code Camp, May 5 2007</title>
		<link>http://kylecordes.com/2007/code-camp-2007</link>
		<comments>http://kylecordes.com/2007/code-camp-2007#comments</comments>
		<pubDate>Sat, 07 Apr 2007 22:17:57 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/04/07/code-camp-2007/</guid>
		<description><![CDATA[It&#8217;s time for the second (annual) St. Lous Code Camp on May 5, 2007. There&#8217;s no actual camping (unlike some other ___ camps out there), just one day of sessions. Think of it as a mini-conference. See Brian&#8217;s announcement for more details. If you&#8217;ve been thinking of giving user group talks and never gotten around [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s time for the second (annual) <a href="http://stlcodecamp.org/">St. Lous Code Camp on May 5, 2007</a>. There&#8217;s no actual camping (unlike some other ___ camps out there), just one day of sessions. Think of it as a mini-conference. See <a href="http://www.agileprogrammer.com/oneagilecoder/archive/2007/03/12/22458.aspx">Brian&#8217;s announcement</a> for more details. If you&#8217;ve been thinking of giving user group talks and never gotten around to it, Code Camp is a great place to start.</p>
<p>I&#8217;m in for two <a href="http://stlcodecamp.org/content/sessions">sessions</a> this year, assuming enough slots are available for both:</p>
<p><strong>Flying Boxes</strong></p>
<p>It&#8217;s surprisingly easy, with Java and Swing, to build animated drag-and-drop “direct manipulation” user interfaces. I covered the overall topic in a talk at the Java User Group, and found that my “flying boxes” demo and code walk-through were by far the most interesting part. I&#8217;ll repeat that demo and explanation here, with more careful (and thus helpful) coverage of the issues involved in getting good results. As “filthy rich” GUIs become more popular, the ability to build such interfaces has become important in commercial business applications, not only in demos and games. The code <a href="http://kylecordes.com/2005/09/09/direct-swing/">can be downloaded from my web site</a>.</p>
<p><strong>Selling your Software as a Hosted Service</strong></p>
<p>For the last few years my (other) firm has been selling an application as an Application Service Provider, charging a monthly fee for use of software that we develop, host, and support. (This is sometimes called the “Salesforce.com” model, but it predates them by decades.) Of course we have much still to learn, but in this talk I&#8217;ll share some experiences, tips, and advice on how (and whether) to use this business model for your own ventures. The last portion of the session will be a roundtable discussion,  I&#8217;d like to learn from you too.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/code-camp-2007/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Tech Talks</title>
		<link>http://kylecordes.com/2007/google-tech-talks</link>
		<comments>http://kylecordes.com/2007/google-tech-talks#comments</comments>
		<pubDate>Thu, 15 Mar 2007 19:56:18 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2007/03/15/google-tech-talks/</guid>
		<description><![CDATA[Google, a mecca for top notch programmers, attracts many top speakers to give talks on (generally) technical topics. They graciously record these talks and upload them to Google Video. You can get a list of most of them by searching video.google.com for “engEDU”. Think of these as virtual user group talks, but usually with bigger [...]]]></description>
			<content:encoded><![CDATA[<p>Google, a mecca for top notch programmers, attracts many top speakers to give talks on  (generally) technical topics. They graciously record these talks and upload them to Google Video.  You can get a list of most of them by <a href="http://video.google.com/videosearch?q=engEDU">searching video.google.com for “engEDU”</a>. Think of these as virtual user group talks, but usually with bigger “name” speakers than a typical local group offers.</p>
<p>Here are just a few that&#8217;s I&#8217;ve enjoyed recently, there are many more worth watching.</p>
<p><a href="http://video.google.com/videoplay?docid=-6726522426109060914&#038;q=engedu">How Debian (Ubuntu) packages work</a></p>
<p><a href="http://video.google.com/videoplay?docid=-6909078385965257294&#038;q=seth+godin">Seth Godin (marketing guru)</a></p>
<p><a href="http://video.google.com/videoplay?docid=-5105910452864283694&#038;q=engedu">Mary Poppendieck (“Lean Software Development” author) &#8211; Competing on the basis of speed</a></p>
<p><a href="http://video.google.com/videoplay?docid=-6972678839686672840">A new Way to look at Networking &#8211; Fascinating</a></p>
<p><a href="http://video.google.com/videoplay?docid=-7724296011317502612">The Mercurial distributed source control system</a></p>
<p>Added later:</p>
<p><a href="http://video.google.com/videoplay?docid=9192869309993503810&#038;q=user%3A%22Google+engEDU%22">Fission is the New Fire</a></p>
<p><a href="http://www.youtube.com/watch?v=z6hoPw5hItY&#038;eurl=">Jessica Livingston, talking about &#8220;Founders at Work&#8221;</a></p>
<p>Still later:</p>
<p><a href="http://video.google.com/videofeed?type=search&#038;q=Google+engEDU&#038;so=1&#038;num=20&#038;output=rss">Subscribe to this feed to find out about each talk</a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2007/google-tech-talks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disconnecting to Keep Distraction Away</title>
		<link>http://kylecordes.com/2006/distraction</link>
		<comments>http://kylecordes.com/2006/distraction#comments</comments>
		<pubDate>Fri, 10 Nov 2006 17:17:12 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2006/11/10/distraction/</guid>
		<description><![CDATA[I&#8217;m back from AYE. The last session I attended was Dwayne Phillips&#8216;s on “Distraction”. Distraction is a recurring enemy here, always ready to strike, to divert me from the task at hand. I&#8217;ve recently been using “disconnection” to fight distraction and focus on an intense task for a few hours, and noticed the same notion [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back from <a href="http://kylecordes.com/2006/11/05/to-aye/">AYE</a>. The last session I attended was <a href="http://home.att.net/~dwayne.phillips/">Dwayne Phillips</a>&#8216;s on “Distraction”. Distraction is a recurring enemy here, always ready to strike, to divert me from the task at hand. I&#8217;ve recently been using <strong>“disconnection” </strong>to fight distraction and focus on an intense task for a few hours, and noticed the same notion on the 37 Signals&#8217; blog, <a href="http://www.37signals.com/svn/posts/80-get-off">a post by Matt entitled “Get Off”</a>.</p>
<p>There is an ongoing flow of incoming data in our online lives. Hundreds of emails per day. Hundreds of RSS feed items. Dozens of IM contacts. Phone calls. Voice mail. The &#8220;water cooler&#8221;, physical or virtual. The disconnection idea is simple: Go offline, physically and network-wise. Leave your office and go somewhere away from your normal environment, away from email, RSS, instant messaging, the web, etc. Reduce your inputs, to make room for more output.</p>
<p>My implementation is to go to restaurant or cafe, in the mid-morning or mid-afternoon (out of politeness, to avoid disrupting their business by using up a table during peak times); preferable one without “WiFi” to remove that temptation. Then I sit, sip, and Just Work on something important. I write code; I write text; I review documents; I brainstorm. I use my notebook PC with a 12” screen, a stark contrast to my <a href="http://kylecordes.com/2006/05/15/dual-monitors/">2560&#215;1024 resolution desktop configuration</a>. The latter is wonderful for many kinds of work; but it is also more distraction-prone.</p>
<p>If you find yourself struggling to task on large important tasks, instead distracted by a thousand smaller things, give <strong>disconnection</strong> a try.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2006/distraction/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heading to AYE</title>
		<link>http://kylecordes.com/2006/to-aye</link>
		<comments>http://kylecordes.com/2006/to-aye#comments</comments>
		<pubDate>Sun, 05 Nov 2006 16:22:21 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2006/11/05/to-aye/</guid>
		<description><![CDATA[I&#8217;m heading to the AYE conference shortly, as I did last year. My strategy then was to attend many Weinberg sessions, which has turned out to be wise in retrospect, as Jerry won&#8217;t be there this year, he is home recovering from illness. I am eager to see how the rest of the AYE team [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m heading to the <a href="http://www.ayeconference.com/">AYE</a> conference shortly, as I did last year. My strategy then was to attend many <a href="http://www.geraldmweinberg.com/">Weinberg</a> sessions, which has turned out to be wise in retrospect, as <a href="http://www.ayeconference.com/blog/2006/10/message-from-jerry.html">Jerry won&#8217;t be there this year</a>, he is home recovering from illness. I am eager to see how the rest of the AYE team divvies up the load of his sessions.</p>
<p>If you work in software development and haven&#8217;t read Jerry&#8217;s <a href="http://www.geraldmweinberg.com/books.html">books</a> (The Secrets of Consulting, Becoming a Technical Leader, The Psychology of Computer Programming, etc.), I heartily recommend doing so.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2006/to-aye/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Do Deployment (Dave Thomas RailsConf Keynote)</title>
		<link>http://kylecordes.com/2006/deployment</link>
		<comments>http://kylecordes.com/2006/deployment#comments</comments>
		<pubDate>Fri, 23 Jun 2006 17:44:14 +0000</pubDate>
		<dc:creator>Kyle Cordes</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[commentary]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://kylecordes.com/2006/06/23/deployment/</guid>
		<description><![CDATA[I just attended Dave Thomas&#8217;s keynote at RailsConf. He had many interesting things to say, most notably that 60%+ of his Java-centric conference-circuit friends, mostly people who have written books on Java, speak regularly on Java, and have lots of experience as Java &#8220;architects&#8221;, are now making a living with Ruby / Rails. Dave talked [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in">I just attended Dave Thomas&#8217;s keynote at RailsConf.  He had many interesting things to say, most notably that 60%+ of his Java-centric conference-circuit friends, mostly people who have written books on Java, speak regularly on Java, and have lots of experience as Java &#8220;architects&#8221;, are now making a living with Ruby / Rails.</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">Dave talked about 3 key areas where Rails should improve.  The one I want to focus on is deployment.  Rails has Capistrano, a slick tools for deployment automation.  Capistrano is great, but it misses the boat in one key way: it is push-based.  It assumes a world where the developer sets up, controls, and performs deployment to production servers.  That is of course the case at the start of a small operation, but it doesn&#8217;t scale; in large organization, or even in small growing ones, sooner or later there is staff dedicated to production deployment and monitoring, separate from development.</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">One way, to me right way, to handle deployment is push / pull:</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">For the “push”, a developer uploads a new version to a storage site somewhere.  It travels in the form of an archive file (ZIP, tgz, whatever) which contains all of the needed artifacts, as well as metadata about the required libraries, pre- and post-install steps, etc. for the new version.  It has a unique name; it lands at a URL.  Normal, off the shelf technology (FTP, web servers, etc.) can be used to serve and secure this storage, implement policies about who can upload new versions, etc.  This upload happens with some simple one-line command (or as part of an auto-build); it does not actually put a new version in production, but only makes it available for pulling.</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">Then, on a production machine, someone with software installation rights on that machine (administrated by the normal tools – not by any special feature of the deployment mechanism) runs a command (something like “deploy staging <a href="http://ourserver/project1/project1-build-3453.tgz">http://ourserver/project1/project1-build-3453.tgz</a>”) which downloads the new build, runs various sanity checks, deploys it to a staging area, and makes it available to try out.  Once the staging is verified, a similar command brings it in to live production.  These builds refer as needed to configuration data on the deployment machines (such as production DB access credentials); the build archives are generic, not specific to any particular production machine.</p>
<p style="margin-bottom: 0in">
<p style="margin-bottom: 0in">The main idea behind this is that each person has the rights they need for the work they need to do, and these rights don&#8217;t need any special help or support from the deployment mechanism.  Developers don&#8217;t need any special rights on deployment machines, nor to deployers need any special rights on development machine</p>
<p style="margin-bottom: 0in">I wrote this in the context of a Rails / Ruby talk, but it&#8217;s at least as relevant in Java and Delphi world; in fact at Oasis Digital we need something like this on a Java project and a Delphi project right now.</p>
<p style="margin-bottom: 0in">
   ]]></content:encoded>
			<wfw:commentRss>http://kylecordes.com/2006/deployment/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

