<?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>Global Nerdy &#187; CUSEC</title>
	<atom:link href="http://www.globalnerdy.com/tag/cusec/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.globalnerdy.com</link>
	<description>Tech Evangelist Joey deVilla on software development, tech news and other nerdy stuff</description>
	<lastBuildDate>Fri, 19 Mar 2010 00:24:02 +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>CUSEC 2010 Keynote: Douglas Crockford &#8211; The Software Crisis</title>
		<link>http://www.globalnerdy.com/2010/02/06/cusec-2010-keynote-douglas-crockford-the-software-crisis-2/</link>
		<comments>http://www.globalnerdy.com/2010/02/06/cusec-2010-keynote-douglas-crockford-the-software-crisis-2/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 22:15:27 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Douglas Crockford]]></category>
		<category><![CDATA[software design]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2010/02/06/cusec-2010-keynote-douglas-crockford-the-software-crisis-2/</guid>
		<description><![CDATA[ 
At long last, the fifth in my series of notes taken from keynotes at CUSEC 2010, the 2010 edition of the Canadian University Software Engineering Conference. These are from Douglas “JavaScript: The Good Parts” Crockford’s keynote in which he talks about how hard it is to make software. Doug is a senior JavaScript architect [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="doug crockford" border="0" alt="doug crockford" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/02/dougcrockford.jpg" width="450" height="600" /> </p>
<p><strong>At long last, the fifth in my series of notes taken from keynotes at <a href="http://2010.cusec.net/">CUSEC 2010</a>, the 2010 edition of the Canadian University Software Engineering Conference.</strong> These are from <strong>Douglas </strong><a href="http://oreilly.com/catalog/9780596517748"><strong>“<em>JavaScript: The Good Parts</em></strong></a><strong>” Crockford’s</strong> keynote in which he talks about how hard it is to make software. Doug is a senior JavaScript architect at Yahoo!, the guy behind <a href="http://en.wikipedia.org/wiki/JSON">JSON</a>, wrote <a href="http://javascript.crockford.com/javascript.html">one of the first important pieces on JavaScript’s unrealized power and utility</a> and in a former life wrote videogames (of which he has <a href="http://www.crockford.com/wrrrld/maniac.html">some interesting stories</a>).</p>
<p>My notes from his keynote appear below.</p>
<h3>The Software Crisis</h3>
<p>&quot;I made the first important discovery of the 21st century: that JavaScript has good parts!&quot;</p>
<ul>
<li>The <a href="http://en.wikipedia.org/wiki/Software_crisis">Software Crisis</a> dominated the computer industry for a decade: 1960s </li>
<li>The crisis was that software projects were becoming too complex to manage </li>
<li>Projects were:
<ul>
<li>Over budget </li>
<li>Late </li>
<li>Unreliable </li>
<li>Not fully meeting their requirements </li>
<li>Unmaintainable </li>
<li>Failing </li>
<li>Insecure (this is a relatively new thing) </li>
</ul>
</li>
<li>The software crisis isn&#8217;t over &#8212; we&#8217;re now in year 45 </li>
<li>It never went away, we just stopped talking about it </li>
<li>&quot;In other news, the sun will eventually exhaust its supply of hydrogen&quot; </li>
</ul>
<h3>Craft vs. Engineering</h3>
<ul>
<li>Some people said that we weren&#8217;t bringing enough engineering discipline to the practice of programming </li>
<li>Some said programming isn&#8217;t the same thing as engineering and therefore engineering discipline doesn&#8217;t apply </li>
<li>Both miss the point </li>
<li>The real problem with software is that it&#8217;s the most complex thing we make </li>
<li>It requires perfection, which humans aren&#8217;t good at </li>
<li>It&#8217;s amazing we can make software at all </li>
</ul>
<h3>Software construction</h3>
<ul>
<li>Computer science has taught us lots of things, but not how to manage software projects </li>
<li>In some ways, building software is like any other sort of construction </li>
<li>But in some other ways, it&#8217;s quite different </li>
<li>You have to keep in mind that &quot;construction&quot; when applied to software is just a poetic metaphor </li>
<li>Take the case of building a wall:
<ul>
<li>It&#8217;s easy to estimate, based on the size of the wall how much time it will take, and also how far progress will be at any given time during its construction. </li>
<li>Try doing that with software! </li>
</ul>
</li>
<li>Part of the problem is the nature of software
<ul>
<li>It&#8217;s both powerful and malleable </li>
<li>The qualities are both a blessing and a curse </li>
</ul>
</li>
<li>One problem: The lack of metrics
<ul>
<li>There&#8217;s no objective measure of quality or completeness </li>
<li>We can test software, but the tests are on the same level of quality as the software being tested </li>
<li>Consider one of the old stand-by metrics: LOC (lines of code)
<ul>
<li>It&#8217;s not an indicator of quality </li>
<li>Nor is it an indicator of completeness </li>
</ul>
</li>
</ul>
</li>
<li>Another problem: Estimation is difficult
<ul>
<li>Programmers, by nature, are optimists </li>
<li>You have to be and optimist to do this kind of work! You wouldn’t be able if you weren&#8217;t </li>
<li>&quot;I think rational people could not do programming&quot; </li>
<li>As a result, we&#8217;re probably the least qualified people to do estimating </li>
<li>What doesn&#8217;t help is encouragement from management like &quot;You&#8217;re a smart guy, you should be able to do it in 3 months!&quot; </li>
</ul>
</li>
<li>Another problem: Programmers don&#8217;t understand how they spend their time
<ul>
<li>They think they spend most of their time typing </li>
<li>Measurements show that most of their time is actually spent in meetings or tech conversations </li>
<li>(And there&#8217;s also the time spent staring at the screen going &quot;My God, what have I done?&quot;) </li>
<li>As a result of this disconnect between perception and reality, programmers tend to be skeptical of process improvements that might require more keystrokes
<ul>
<li>[Story about developer who refuse to switch from a CamelCase naming scheme to a words_delimited_with_underscores naming scheme] </li>
<li>The programmer had an emotional attachment to the CamelCase naming scheme and argued that the underscore-based scheme slowed things down </li>
</ul>
</li>
<li>Consider the first rule of optimization: optimize the process that is taking the most time </li>
<li>When it comes to programming, that process isn&#8217;t the typing! </li>
<li>It&#8217;s the thinking, worrying and puzzling </li>
</ul>
</li>
<li>Programming is a social activity
<ul>
<li>Solo cases are the exception </li>
</ul>
</li>
<li>Cost of innovation
<ul>
<li>Doing what&#8217;s been done before vs. doing what hasn&#8217;t </li>
<li>We&#8217;re constantly doing things we haven&#8217;t done before </li>
<li>That&#8217;s most likely to lead us to mistakes </li>
</ul>
</li>
<li>Legacy
<ul>
<li>In other industries, legacy is seen as the wealth of practice and tradition, the wisdom of experience </li>
<li>Not ours! In software, past accomplishments are considered to be a liability </li>
<li>The age at which programs become &quot;legacy&quot; is getting younger and younger </li>
<li>Some programs become legacy before they&#8217;re finished\ </li>
<li>No industry disrespects legacy the way the software industry has </li>
</ul>
</li>
</ul>
<h3>Leaps</h3>
<ul>
<li>Software is not governed by <a href="http://en.wikipedia.org/wiki/Moore's_law">Moore&#8217;s Law</a>; it&#8217;s governed by <a href="http://en.wikipedia.org/wiki/Murphy's_law">Murphy&#8217;s Law</a> </li>
<li>Leaps tend to come at 20 year intervals, not two year intervals </li>
<li>Leaps make it possible to implement more complex projects </li>
<li>Adoption of &quot;leaping&quot; software technologies tends to be very slow </li>
<li>Common responses to leaps: controversy and reluctance </li>
<li>Leap 1: Plugboards </li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="plugboard" border="0" alt="plugboard" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/02/plugboard.jpg" width="600" height="450" /> </p>
<ul>
<li>Single machine programmable with plugboard </li>
<li>The original spaghetti code </li>
<li>Leap 2: Symbolic assembly language
<ul>
<li>The first software tool &#8212; the first program to make it easier to write programs </li>
</ul>
</li>
<li>Leap 3: High level languages
<ul>
<li>In the 1960s, there was a lot of research on automatic programming </li>
<li>It was believed, even back then, that programming too complex and error-prone for humans to do </li>
<li>We wanted to get computers to write programs for us: we’d feed them specifications; they’d output programs </li>
<li>The result? <a href="http://en.wikipedia.org/wiki/Fortran">FORTRAN</a> </li>
<li>Still a leap forward </li>
<li>Even today, with DSLs, it&#8217;s still progamming </li>
</ul>
</li>
<li>Leap 4: Structured Programming
<ul>
<li>Getting rid of GOTO </li>
<li>Let us write more complex programs </li>
<li>Argued for 20 years as to whether it was good idea to get rid of GOTOs </li>
<li>People who benefited most and opposed were programmers </li>
<li>Arguments and counter-arguments </li>
<li>&quot;Had to wait for those guys to get old and die&quot; </li>
<li>So today, virtually all our languages are GOTO-less </li>
<li>Good thing &#8212; more sophisticated programs possible </li>
<li>What was the fuss all about? </li>
</ul>
</li>
<li>Leap 5: Object-Oriented programming
<ul>
<li>1967: <a href="http://en.wikipedia.org/wiki/Simula">Simula</a> released </li>
<li>1972: <a href="http://ei.cs.vt.edu/~history/GASCH.KAY.HTML">Alan Kay</a> begins <a href="http://www.smalltalk.org/main/">Smalltalk</a>, which was originally intended for children </li>
<li>Most of good today in tech owes a debt to Smalltalk </li>
<li>1980: Smalltalk released. Smalltalk took 8 years &#8212; Netscape spent 8 weeks getting JavaScript ready! </li>
<li>1985: <a href="http://www.cplusplus.com/">C++</a> released. Essentially some of the good ideas in Smalltalk added to C </li>
<li>1995: <a href="http://java.com/en/">Java</a> released </li>
<li>2004: <a href="http://php.net">PHP</a> with version 5 says &quot;Okay, we&#8217;ll do it that way too&quot; </li>
<li>A lot of time has passed between 1967 and now. Simply because a new good idea appears means it won&#8217;t be adopted quickly </li>
<li>OOP is not the last leap. It&#8217;s just that we&#8217;re so fixed on objects that we can&#8217;t see past them </li>
</ul>
</li>
<li>So we&#8217;re late for the next leap
<ul>
<li>I think it&#8217;ll be distributed programming, the idea of taking n components and put them together to make a functioning application </li>
<li>Will live in the cloud </li>
<li>Nobody thought that we&#8217;d see signs from the next step forward in JavaScript and browsers, but that&#8217;s where it&#8217;ll likely come from </li>
</ul>
</li>
<li>Some Failed Leaps
<ul>
<li>Artificial intelligence
<ul>
<li>Intelligence is much harder to understand </li>
</ul>
</li>
</ul>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Fifth_generation_computer">5th generation</a> languages
<ul>
<li>Japanese invested heavily it, but without much result </li>
</ul>
</li>
</ul>
<ul>
<li>Computer-aided software engineering
<ul>
<li>Reborn in IDEs </li>
</ul>
</li>
</ul>
<ul>
<li>Subjective-oriented programming, etc. </li>
</ul>
</li>
</ul>
<h2>Bugs</h2>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="grace hoppers bug" border="0" alt="grace hoppers bug" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/02/gracehoppersbug.jpg" width="600" height="450" /> </p>
<ul>
<li>Software does not have enough self-awareness to be afraid of bugs. That&#8217;s why it works as well as it does. </li>
<li>The term “bug”&#160; is attributed to Edison, who used them to refer to flaws
<ul>
<li>From the <em>Pall Mall Gazette</em>, March 11, 1889: &quot;Mr. Edison, I was informed, had been up the two previous nights discovering a bug in his phonograph.&quot; </li>
</ul>
</li>
<li>Ever since then, defects in inventions have been called bugs and it&#8217;s become part of popular culture </li>
<li>There&#8217;s also <a href="http://gracehopper.org/2010/">Commodore Grace Hopper&#8217;s</a> bug, a literal bug: a moth caught in the relay of a Navy electromechanical computer.
<ul>
<li>She pasted moth into her logbook </li>
<li>It&#8217;s the &quot;first actual case of a bug being found&quot; </li>
</ul>
</li>
</ul>
<h2>Snake oil</h2>
<ul>
<li>Even though we know better, we love &quot;silver bullets&quot; </li>
<li>We tend to like people who make fantastic promises to fix our problems, if we just follow some crazy methodology of theirs:
<ul>
<li>Diagramming? </li>
<li>Documentation style? </li>
<li>Have all your meetings standing up? </li>
</ul>
</li>
<li>Saying &quot;nothing works&quot; is discouraging; I&#8217;d like to give you a better story </li>
<li><a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959"><em>The Mythical Man-Month</em></a>
<ul>
<li>Written by <a href="http://en.wikipedia.org/wiki/Fred_Brooks">Fredrick Brooks</a>; I highly recommend this book </li>
<li>He said a lot of things in the book that seemed unreal at the time, but they were proven to be true over time </li>
<li>The source of what we know as <a href="http://en.wikipedia.org/wiki/Brooks's_law">Brooks&#8217; Law</a>: &quot;Adding manpower to a late software project makes it later.&quot; </li>
<li>One of the first books to show an understanding that programming is social </li>
<li>Another idea in the book: the <a href="http://en.wikipedia.org/wiki/Second-system_effect">Second-System Effect</a>
<ul>
<li>Take a team of programmers who&#8217;ve done something brilliant </li>
<li>Give them a blank slate for the next project </li>
<li>The result? They fail&#8230;hard </li>
<li>Why? They become overconfident. Their earlier success causes them to overreach </li>
</ul>
</li>
<li>Another idea in the book: Prototyping
<ul>
<li>Software is like waffles: Make the system, throw it away, make it again </li>
<li>Counter to the notion of getting it right the first time) </li>
<li>&quot;Make the first one to throw away&quot; turns out to be a good idea </li>
</ul>
</li>
<li>One last concept from the book: &quot;A project become a year late one day at a time&quot; </li>
</ul>
</li>
<li><a href="http://www.literateprogramming.com/">Literate Programming</a>
<ul>
<li>Created by <a href="http://www-cs-faculty.stanford.edu/~uno/">Donald Knuth</a> </li>
<li>The idea: Programs designed to be read </li>
<li>I&#8217;ve seen lots of good programs done in this style </li>
<li>It doesn&#8217;t appear to work well in groups yet &#8212; but that&#8217;s mostly what we&#8217;re doing now </li>
</ul>
</li>
<li>Incrementalism
<ul>
<li>The basic idea: &quot;We&#8217;ll see you in two weeks&quot; vs. &quot;See you in two years&quot; </li>
<li>Disappointments are smaller and more frequent, which are easier to manage; it lets us manage our expectations </li>
<li>It also makes us less ambitious, but that lack of ambition is helpful </li>
<li>It avoids second system problem &#8212; this doesn&#8217;t let you dream big </li>
<li>The project is always a beta, and perpetually unfinished </li>
<li>The downside of incrementalism: </li>
<li>There&#8217;s the potential that your project will become something like the <a href="http://www.winchestermysteryhouse.com/index.cfm">Winchester House</a> in San Jose
<ul>
<li>Built by Mrs. Winchester, wife of the Winchester behind Winchester guns </li>
<li>Her husband and child died tragically, and a medium told her that they were killed by the spirits of people killed by the Winchester repeating rifle </li>
<li>She was warned that they&#8217;d come after her too unless she found some way to confuse them </li>
<li>She came up with the idea that as long as she kept working on her house, the spirits would not find her </li>
<li>So her house was constantly under construction, with hired people adding new things to it all the time </li>
<li>It was built up incrementally. &quot;This is an agile house!&quot; </li>
<li>End result: things like stairways leading up to a ceiling: </li>
</ul>
</li>
</ul>
</li>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="winchester house stairs" border="0" alt="winchester house stairs" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/02/winchesterhousestairs.jpg" width="600" height="450" /> </p>
<ul>
<ul>
<ul>
<li>&quot;You&#8217;re programmers, you know what happened here!” </li>
<li>Chimneys that didn&#8217;t go up all the way to the ceiling </li>
</ul>
</ul>
</ul>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="winchester house chimney" border="0" alt="winchester house chimney" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/02/winchesterhousechimney.jpg" width="600" height="450" /> </p>
<ul>
<ul>
<ul>
<li>No rhyme nor reason </li>
</ul>
</ul>
<li>Go watch <em><a href="http://en.wikipedia.org/wiki/Mr._Blandings_Builds_His_Dream_House">Mr. Blandings Builds His Dream House</a></em> (1948)
<ul>
<li>It&#8217;s the best movie ever made about project management </li>
<li>Blandings&#8217; problems:
<ul>
<li>Lack of knowledge of technology </li>
<li>Poor control over requirements </li>
</ul>
</li>
<li>[<strong><em>Joey’s note:</em></strong> This movie’s been remade in modernized form with Tom Hanks in <em><a href="http://en.wikipedia.org/wiki/The_Money_Pit">The Money Pit</a></em>(1986) and Ice Cube in <a href="http://en.wikipedia.org/wiki/Are_We_Done_Yet%3F"><em>Are We Done Yet?</em></a> (2007).] </li>
</ul>
</li>
<li>Feature Cost
<ul>
<li>Development time </li>
<li>Deployment cost </li>
<li>Maintenance cost (bloat, cruft) </li>
<li>Download time </li>
<li>User confusion/training </li>
<li>Bug delivery </li>
</ul>
</li>
<li>Code Value
<ul>
<li>Microview: good coding conventions </li>
<li>Macroview: good architecture </li>
</ul>
</li>
<li>We need better program architecture </li>
<li>Architecture is hard, but conventions is easy </li>
<li>Think of how hospitals were improved just through simple conventions of hygiene, such as washing your hands
<ul>
<li>The simplest thing we can do to increase the value of our code is to make it readable
<ul>
<li>For example, when returning a value from a method, we should use return value, not return(value) &#8212; the latter implies that return is a function </li>
</ul>
</li>
<li>Whatever improves human parsing of programs is helpful </li>
</ul>
</li>
<li>Communicating
<ul>
<li>You should think of programs as a medium of intentional communication:
<ul>
<li>Communicating detailed instructions with the machine </li>
<li>Communicating with your development community </li>
<li>Communicating with yourself (and especially your future self) </li>
</ul>
</li>
</ul>
</li>
<li>Good architecture is about not collapsing into a puddle of confusion, and should enable you to change a correct program into another correct program </li>
<li>Cruft
<ul>
<li>It&#8217;s software scar tissue </li>
<li>Comes from lots of sources:
<ul>
<li>Premature optimization </li>
<li>Inexperience </li>
<li>Misread source </li>
<li>Feature enhancement </li>
<li>Death marches (which are the most avoidable source of cruft) </li>
<li>As cruft accumulates, complexity grows and progress slows </li>
</ul>
</li>
</ul>
</li>
<li>Eventually, the code itself becomes a source of friction </li>
</ul>
<h2>Bloat</h2>
<ul>
<li>It&#8217;s &quot;software obesity&quot; </li>
<li>In the old days, memory was expensive and you didn&#8217;t get much of it, so your programs were lean by necessity </li>
<li>Having only 8K &#8211; 64K of RAM in a machine put incredible constraints on what you could do </li>
<li>I used to dream of the day when memory would cheap and abundant enough so that we wouldn&#8217;t have to do evil things to get programs to fit </li>
<li>Now I wonder if maybe those constraints weren&#8217;t so bad </li>
<li>&quot;Bugs hide in those rolls of fat in our programs&quot; </li>
<li>Insecurity
<ul>
<li>Most programs these days have marginal security </li>
<li>Programs that once didn&#8217;t have security implications now do </li>
<li>Any bug is potentially a security bug </li>
<li>Good secure programming is good programming </li>
<li>Thinking about security might make programming easier </li>
</ul>
</li>
<li>Refactoring
<ul>
<li>The process of code refinement, involving things like:
<ul>
<li>Correction of formatting </li>
<li>Insertion of documentation </li>
<li>Removal of cruft and bloat </li>
<li>Restructuring </li>
</ul>
</li>
</ul>
</li>
<li>Perhaps we should take advice from Exodus: &quot;Plant and harvest crops for six years, but let the land rest and lie fallow during the seventh year.&quot; </li>
<li>Maybe do six sprints where you add new features, but on the seventh sprint, don&#8217;t add new features at all
<ul>
<ul>
<li>Sometimes the best course is to start over
<ul>
<li>This is quite difficult to accept </li>
</ul>
<ul>
<li>The pain of the crash
<ul>
<li>Loss of a week&#8217;s work, a day&#8217;s work, an hour&#8217;s work, is unbearable </li>
</ul>
</li>
</ul>
</li>
</ul>
</ul>
</li>
<li>The illusion of completion
<ul>
<li>&quot;It&#8217;s in the can!&quot; </li>
<li>I once worked as an expert witness on conflict between 2 game companies
<ul>
<li>The original game company had split up; the new company was being sued for plagiarizing the original company&#8217;s game engine </li>
<li>I reviewed both game engines and determined that the new game company had written a whole new engine in 2 month &#8212; they&#8217;d learned for the experiences writing an engine for the old company </li>
<li>The owner of the old company couldn&#8217;t accept that; he thought the value of the codebase was 100 man-years, not 1 </li>
<li>An experienced team can redo what they just created quickly. The team&#8217;s focus must be on simplicity to avoid second system effect </li>
</ul>
</li>
</ul>
</li>
<li>Have regular code readings
<ul>
<li>Don&#8217;t wait until release to do code reviews </li>
<li>Do team code reading regularly during development </li>
<li>Problems can be discovered early </li>
<li>Good techniques can be shared early </li>
<li>Experienced developers can lead by example; novice developers learn from the group </li>
<li>They should be: frequent, helpful and respectful
<ul>
<li>You need a healthy team &#8211; a dysfunctional one will tear itself apart </li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Conclusion</h2>
<ul>
<li>Quality first. Quality last. </li>
<li>Readable code. Code reading. </li>
<li>Invest in the quality of your code base. </li>
<li>Invest in your programmers and managers. </li>
<li>Quality is the most important feature. </li>
<li>If you look at all the polished, completed code you write at the end of a year, you could type it all in a day </li>
<li>Typing is not what we do; it&#8217;s thinking and communicating </li>
</ul>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/02/06/cusec-2010-keynote-douglas-crockford-the-software-crisis.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/02/06/cusec-2010-keynote-douglas-crockford-the-software-crisis-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CUSEC 2010 Keynote: Greg Wilson &#8211; &#8220;Bits of Evidence&#8221;</title>
		<link>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-greg-wilson-bits-of-evidence/</link>
		<comments>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-greg-wilson-bits-of-evidence/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 01:37:35 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[evidence]]></category>
		<category><![CDATA[Greg Wilson]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[Montreal]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=5337</guid>
		<description><![CDATA[ 
Here’s the fourth in my series of notes taken from keynotes at CUSEC 2010, the 2010 edition of the Canadian University Software Engineering Conference. These are from Bits of Evidence: What we actually know about software development and why we believe it&#8217;s true, a keynote given by my friend Greg Wilson, the computer science [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="greg wilson 1" border="0" alt="greg wilson 1" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/gregwilson1.jpg" width="450" height="600" /> </p>
<p><strong>Here’s the fourth in my series of notes taken from keynotes at <a href="http://2010.cusec.net/">CUSEC 2010</a>, the 2010 edition of the Canadian University Software Engineering Conference.</strong> These are from <em><strong>Bits of Evidence: What we actually know about software development and why we believe it&#8217;s true</strong></em>, a keynote given by my friend <strong>Greg Wilson</strong>, the computer science prof we all wish we had. He’s also the guy who gave me my shot at my first article for a developer magazine, a review of a couple of Ajax books in <em>Software Development</em>.</p>
<p>My notes from his keynote appear below; <a href="http://www.slideshare.net/gvwilson/bits-of-evidence-2338367">he’s posted his slides online</a>.</p>
<h3>A Little Family History </h3>
<ul>
<li>My great-grandfather on my father’s side came from Australia </li>
<li>He was sent there, along with many other criminals from the UK, to <a href="http://en.wikipedia.org/wiki/Botany_Bay#Popular_culture">Botany Bay</a> </li>
<li>Whenever we kids did anything bad, my mother would say to my father: “This your side of the family&quot; </li>
<li>This happened until the day my sister triumphant discovered that my maternal great-grandfather was a Methodist minister who ran off with his church’s money and a 15-year-old girl from his parish </li>
<li>She never brought up my father’s family history again </li>
<li>It took years and poring over 70,000 sheets of microfiche to track down my great-grandfather, all to find two lines, which said he was sentenced, but not why </li>
<li>These days, students get upset if it takes more than 15 seconds to find answers to last year’s exam </li>
<li>Some things haven’t changed: while technology has improved, the way we develop software for it hasn&#8217;t </li>
</ul>
<h3>Scurvy</h3>
<ul>
<li>In the <a href="http://en.wikipedia.org/wiki/Seven_Years'_War">Seven Years’ War</a>, which lasted longer than seven years (1754-63), Britian lost:
<ul>
<li>1,512 sailors to enemy action </li>
<li>100,000 sailors to scurvy </li>
</ul>
</li>
<li><a href="http://en.wikipedia.org/wiki/Scurvy">Scurvy’s</a> a really ugly disease. You get spots on your skin, your gums puff up and go black, you bleed from your mucous membranes, and <em>then</em> the really bad stuff happens </li>
<li>In 1747, a Scotsman named <a href="http://en.wikipedia.org/wiki/James_Lind">James Lind</a> conducted what might have been the first-ever controlled medical experiment </li>
<li>Pickled food keeps fresh, he reasoned, how about pickled sailors? </li>
<li>Lind tried giving different groups of sailors with scurvy various acidic solutions:
<ul>
<li>Cider </li>
<li>Sulfuric acid </li>
<li>Vinegar </li>
<li>Sea water (this was the control) </li>
<li>Oranges </li>
</ul>
<ul>
<li>Barley water </li>
</ul>
</li>
<li>The sailors who had the oranges were the ones who recovered </li>
<li>Despite Lind’s discovery, nobody paid attention until a proper Englishman repeated the experiment in 1794 </li>
<li>This discover probably won the <a href="http://en.wikipedia.org/wiki/Napoleonic_Wars">Napoleonic Wars</a>: the British navy was the deciding factor </li>
<li>As a result of this discovery, British sailors planted lime trees at their ports of call and ate the fruit regularly; it’s how the term <a href="http://en.wikipedia.org/wiki/Limey">“limey”</a> got applied to them, and later by association to British people in general </li>
</ul>
<h3>Lung Cancer</h3>
<ul>
<li>It took a long time for medical science to figure out that controlled studies were good </li>
<li>In the 1920s, there was an epidemic of lung cancer, and no one knew the cause </li>
<li>There were a number of new things that had been introduced, so any of them could be blamed – was it cars? Cigarettes? Electricity? </li>
<li><a href="http://www.intermed.med.uottawa.ca/Curriculum/IPH/data/Smoking_Richard_Doll_e.htm">In the 1950s, the researchers Hill and Doll took British doctors and split them into 2 groups:</a>
<ul>
<li>Smokers </li>
<li>Non-smokers </li>
</ul>
</li>
<li>The two discoveries to come from their research were:
<ul>
<li>It is unequivocal that smoking causes lung cancer </li>
<li>Many people would rather fail than change </li>
</ul>
</li>
<li>In response to the study, the head of the British medical association said: &quot;What happens &#8216;on average&#8217; is of no help when one is faced with a specific patient&quot; </li>
<li>The important lesson is to ask a question carefully and be willing to accept the answer, no matter how much you don’t like it </li>
</ul>
<h3>Evidence-Based Medicine</h3>
<ul>
<li>In 1992, <a href="http://en.wikipedia.org/wiki/David_Sackett">David Sackett</a> of McMaster University coined the term &quot;evidence-based medicine&quot; </li>
<li>As a result, randomized double-blind trials are accepted as the gold standard for medical research </li>
<li><a href="http://cochrane.org/">Cochrane.org</a> now archives results from hundreds of medical studies conducted to that standard </li>
<li>Doing this was possible before the internet, but the internet brings it to a wider audience </li>
<li>You can go to Cochrane.org, look at the data and search for cause and effect </li>
</ul>
<h3>Evidence-Based Development?</h3>
<ul>
<li>That’s well and good for medicine. How about programming? </li>
<li>Consider this quote by <a href="http://www.martinfowler.com/">Martin Fowler</a> (from IEEE Software, July/August 2009):       <br />”[Using <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language">domain-specific languages</a>] leads to two primary benefits. The first and simplest, is improved programmer productivity… The second…is…communication with domain experts.” </li>
<li>What just happened?
<ul>
<li>One of the smartest guys in our industry </li>
<li>Made 2 substantive claims </li>
<li>In an academic journal </li>
<li><em>Without a single citation</em> </li>
</ul>
</li>
<li>(I’m not disagreeing with his claims – I just want to point out that even the best of us aren’t doing what we expect the makers of acne creams to do) </li>
<li>Maybe we need to borrow from the Scottish legal system, where a jury can return one of three verdicts:
<ul>
<li>Innocent </li>
<li>Guilty </li>
<li><em>Not proven</em> </li>
</ul>
</li>
<li>Another Martin Fowler line:      <br />”Debate still continues about how valuable DSLs are in practice. I believe debate is hampered because not enough people know how to use DSLs effectively.” </li>
<li>I think debate is hampered by low standards of proof </li>
</ul>
<h3>Hope</h3>
<ul>
<li>The good news is that things have started to improve </li>
<li>There’s been a growing emphasis on empirical studies in software engineering research since the mid-1990s </li>
<li>At <a href="http://www.cs.uoregon.edu/events/icse2009/home/">ICSE 2009</a>, there were a number of papers describing new tools or practices routinely including results from some kind of test study </li>
<li>Many of these studies are flawed or incomplete, but standards are constantly improving </li>
<li>It’s almost impossible to write a paper on a new tool or technology without trying it out in the real world </li>
<li>There’s the matter of the bias in the typical guinea pigs for these studies: undergrads who are hungry for free pizza </li>
</ul>
<h3>My Favourite Little Result</h3>
<ul>
<li><em><a href="http://portal.acm.org/citation.cfm?id=1081761">Anchoring and Adjustment in Software Estimation</a></em>, a 2005 paper by <a href="http://portal.acm.org/author_page.cfm?id=81100441774&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74861619&amp;CFTOKEN=94497097">Aranda</a> and <a href="http://portal.acm.org/author_page.cfm?id=81100408656&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74861619&amp;CFTOKEN=94497097">Easterbrook</a> </li>
<li>They posed this question to programmers:      <br />”How long do you think it will take to make a change to this program?”
<ul>
<li>The control group was also told:          <br />”I have no experience estimating. We’ll wait for your calculations for an estimate.” </li>
<li>Experiment group A was told:          <br />”I have no experience estimating, but I guess this will take 2 months to finish.” </li>
<li>Experiment group B was told:          <br />”I have no experience estimating, but I guess this will take 20 months to finish.” </li>
</ul>
</li>
<li>Here were the groups’ estimates:
<ul>
<li>Group A, the lowball estimate: 5.1 months </li>
<li>Control group: 7.8 months </li>
<li>Group B, the highball estimate: 15.4 months </li>
</ul>
</li>
<li>The anchor – the “I guess it will take <em>x</em> months to finish” &#8212; mattered more than experience. </li>
<li>It was a small hint, hint buried in the middle of the requirements, but it still had a big effect, regardless of estimation method or anything else </li>
<li>Engineers give back what they think we want to hear </li>
<li>Gantt charts, which are driven by these estimates, often end up being just wild-ass guesses in nice chart form </li>
<li>Are agile projects similarly affected, just on a shorter and more rapid cycle? </li>
<li>Do you become more percentage-accurate when estimating shorter things? </li>
<li>There&#8217;s no data to back it up! </li>
</ul>
<h3>Frequently Misquoted</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="greg wilson 2" border="0" alt="greg wilson 2" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/gregwilson2.jpg" width="600" height="450" /> </p>
<ul>
<li>You’ve probably heard this in one form or another:      <br />”The best programmers are up to 28 times more productive than the worst.” </li>
<li>It’s from <a href="http://portal.acm.org/author_page.cfm?id=81100057953&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74861774&amp;CFTOKEN=85295984">Sackman</a>, <a href="http://portal.acm.org/author_page.cfm?id=81100102446&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74861774&amp;CFTOKEN=85295984">Erikson</a> and <a href="http://portal.acm.org/author_page.cfm?id=81332501500&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74861774&amp;CFTOKEN=85295984">Grant’s</a> 1968 paper, <a href="http://portal.acm.org/citation.cfm?doid=362851.362858"><em>Exploratory experimental studies comparing online and offline programming performance</em></a> </li>
<li>This quote often has the factor changed – I’ve seen 10, 40, 100, or whatever large number pops into the author’s head </li>
<li>Problems with the study:
<ul>
<li>The study was done in 1968 and was meant to compare batch vs. interactive programming
<ul>
<li>Does batch programming resemble interactive programming? </li>
</ul>
</li>
<li>None of the programmers had any formal training in computer programming because none existed then
<ul>
<li>(Although formal training isn’t always necessary – one of the best programmers I know was a rabbinical student, who said that all the arguing over the precise meaning of things is old hat to rabbis: “We’ve been doing this for much longer than you”.) </li>
</ul>
</li>
<li>What definition of “productivity” were they using? How was it measured? </li>
<li>Comparing the best in any class to the worst in the same class exaggerates any effect
<ul>
<li>Consider comparing the best driver to the worst driver: <em>the worst driver is dead!</em> </li>
</ul>
</li>
<li>Too small a sample size, too short an experimental period: 12 programmers for an afternoon </li>
<li>The next similar “major” study was done with 54 programmers, for “up to an hour” </li>
</ul>
</li>
</ul>
<h3>So What Do We Know?</h3>
<ul>
<li>Look at <a href="https://www.mi.fu-berlin.de/w/Main/LutzPrechelt">Lutz Prechelt&#8217;s</a> work on:
<ul>
<li>Productivity variations between programmers </li>
<li>Effects of language </li>
<li>Effects of web programming frameworks </li>
</ul>
</li>
<li>Things his studies have confirmed:
<ul>
<li>Productivity and reliability depend on the length of program&#8217;s text, independent of language level </li>
</ul>
<ul>
<li>Output in text per hour is constant [<em><strong>Joey’s note:</strong> <a href="http://en.wikipedia.org/wiki/Fernando_J._Corbat%C3%B3">Corbato’s Law</a>!</em>] </li>
</ul>
</li>
<li>The take-away: Use the highest-level language you can!
<ul>
<li>Might not always be possible: &quot;Platform-independent programs have platform-independent performance&quot; </li>
<li>Might require using more/faster/better hardware to compensate </li>
<li>That’s engineering – it’s what happens when you take science and economics and put them together </li>
</ul>
</li>
</ul>
<p>&#160;</p>
<ul>
<li>Discoveries from <a href="http://portal.acm.org/author_page.cfm?id=81100662018&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74862210&amp;CFTOKEN=94957642">Boehm</a>, <a href="http://portal.acm.org/author_page.cfm?id=81100259589&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74862210&amp;CFTOKEN=94957642">McClean</a> and <a href="http://portal.acm.org/author_page.cfm?id=81100319789&amp;coll=GUIDE&amp;dl=GUIDE&amp;trk=0&amp;CFID=74862210&amp;CFTOKEN=94957642">Urfrig’s</a> (1975) <a href="http://portal.acm.org/citation.cfm?id=800027.808430"><em>Some Experience with Automated Aids to the Design of Large-Scale Reliable Software</em></a>:
<ul>
<li>Most errors are introduced during requirements analysis and design </li>
</ul>
<ul>
<li>The later a bug is removed, the more expensive it is to take it out </li>
</ul>
</li>
<li>This explains the two major schools of software development:
<ul>
<li>Pessimistic, big-design-up-front school: “If we tackle the hump in the error injection curve, fewer bugs get into the fixing curve” </li>
</ul>
<ul>
<li>Optimistic, agilista school: Lots of short iterations means the total cost of fixing bugs go down </li>
</ul>
</li>
<li>
<p>Who’s right? If we find out, we can build methodologies on facts rather than best-sellers\</p>
</li>
</ul>
<h3>Why This Matters</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="greg wilson 3" border="0" alt="greg wilson 3" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/gregwilson3.jpg" width="600" height="747" /> </p>
<ul>
<li>Too many people make the &quot;unrefuted hypothesis based on personal observation&quot; </li>
<li>Consider this conversation:
<ul>
<li>A: I’ve always believed that there are just fundamental differences between the sexes </li>
<li>B: What data are you basing that opinion on? </li>
<li>A: It’s more of an unfuted hypothesis based on personal observation. I have read a few studies on the topic and I found them unconvincing… </li>
<li>B: Which studies were those? </li>
<li>A: [No reply] </li>
</ul>
</li>
<li>Luckily, there’s a grown-up version of this conversation, and it takes place in the book <a href="http://www.apa.org/pubs/books/4316085.aspx"><em>Why Aren’t More Women in Science? Top Researchers Debate the Evidence</em></a> (edited by <a href="http://search.apa.org/search?query=&amp;facet=allcontributors:Ceci,%20Stephen%20J.">Ceci</a> and <a href="http://search.apa.org/search?query=&amp;facet=allcontributors:Williams,%20Wendy%20M.">Williams</a>)
<ul>
<li>It’s an informed debate on nature vs. nurture </li>
<li>It’s a grown-up conversation between:
<ul>
<li>People who’ve studied the subject </li>
<li>Who are intimately familiar with the work of the other people in the field with whom they are debating </li>
<li>Who are merciless in picking apart flaws in each other&#8217;s logic </li>
</ul>
</li>
<li>It looks at:
<ul>
<li>Changes in gendered SAT-M scores over 20 years </li>
<li>Workload distribution from the mid-20s to early 40s </li>
<li><a href="http://nymag.com/news/features/27840/">The Dweck effect</a>
<ul>
<li>Have 2 groups do a novel task </li>
<li>Tell group A that success in performing the task is based on inherent aptitude </li>
<li>Tell group B that success comes from practice </li>
<li>Both groups will be primed by the suggestions and “fulfill the prophecy” </li>
<li>We send strong signals to students that programming is a skill inherent to males, which is why programming conferences are sausage parties </li>
</ul>
</li>
<li>Facts, data and logic </li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Some Things We Know (and have proven)</h3>
<p>Increase the problem complexity 25%, and you double the solution complexity. (<a href="http://ieeexplore.ieee.org/xpl/absprintf.jsp?arnumber=1702600&amp;page=FREE">Woodfield, 1979</a>) </p>
<p>The two biggest causes of project failure (<a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=87283">van Genuchten et al, 1991</a>): </p>
<ul>
<ul>
<li>Poor estimation </li>
<li>Unstable requirements </li>
</ul>
</ul>
<p>If more than 20 &#8211; 25% of a component has to be revised, it&#8217;s better to rewrite it from scratch. (Thomas et al, 1997) </p>
<ul>
<li>Caveats for this one:
<ul>
<li>It comes from a group at Boeing </li>
<li>Applies to software for flight avionics, a class of development with stringent safety requirements </li>
</ul>
<ul>
<li>Haven&#8217;t seen it replicated&#160; </li>
</ul>
</li>
</ul>
<p>Rigorous inspections can remove 60 – 90% of errors before the first test is run (<a href="http://domino.watson.ibm.com/tchjr/journalindex.nsf/0/0b0da213f326b51385256bfa00685d97?OpenDocument">Fagan, 1975</a>) </p>
<ul>
<li>Study conducted at IBM </li>
<li>Practical upshot: Hour for hour, the most effective way to get rid of bugs is to read the code!&#160; </li>
</ul>
<p><a href="http://smartbear.com/codecollab-code-review-book.php">Cohen 2006</a>: All the value in a code review comes from the first reader in the first hour </p>
<ul>
<li>2 or more people reviewing isn&#8217;t economically effective </li>
<li>Also, after an hour, your brain is full </li>
<li>Should progress be made in small steps? Look at successful open source projects </li>
</ul>
<p>Shouldn&#8217;t our development practices be built around these facts?</p>
<p><a href="http://en.wikipedia.org/wiki/Conway's_Law">Conway&#8217;s Law</a> – often paraphrased as “A system reflects the organizational structure that built it” &#8212; was meant to be a joke </p>
<ul>
<li>Turns out to be true </li>
<li><a href="http://portal.acm.org/citation.cfm?id=302405.302455">Jim Herbsleb et al proved it in 1999</a> </li>
</ul>
<p><a href="http://academic.research.microsoft.com/Paper/4282410.aspx">Nagappan et al (2007)</a> and <a href="http://academic.research.microsoft.com/Paper/4719173.aspx">Bird et al (2009)</a> got their hands on data collected during the development of Windows Vista and learned: </p>
<ul>
<li>Physical distance doesn&#8217;t affect post-release fault rates </li>
<li>Distance in organizational chart does </li>
<li>If two programmers are far apart in the org chart, their managers probably have different goals [<em><strong>Joey’s note:</strong> especially in companies like Microsoft where performance evaluations are metrics-driven</em>] </li>
<li>Explains why big companies have big problems </li>
<li>I remember once being told by someone from a big company that &quot;we can&#8217;t just have people running around doing the right thing.&quot; </li>
</ul>
<h3>Two Steps Forward</h3>
<ul>
<li>Progress sometimes means saying &quot;oops&quot; </li>
<li>We once thought that code metrics could predict post-release fault rates until El Emam et al (2001): <a href="http://portal.acm.org/citation.cfm?id=381786"><em>The Confounding Effector of Size on the Validity of Object-Oriented Metrics</em></a>, where it was revealed that&quot;:
<ul>
<li>Most metrics values increase with code size </li>
<li>If you do a double-barrelled correlation and separate the effect of lines of code from the effect of the metric, lines of code accounts for all the signal </li>
</ul>
</li>
<li>It’s a powerful and useful result, even if it&#8217;s disappointing </li>
<li>It raises the bar on what constitutes &quot;analysis&quot; </li>
<li>We&#8217;re generating info and better ways to tackle problems </li>
</ul>
<h3>Folk Medicine for Software</h3>
<ul>
<li>Systematizing and synthesizing colloquial practice has been very productive in other disciplines – examples include:
<ul>
<li>Using science to derive new medicines from folk medicine in the Amazon </li>
<li>Practices in engineering that aren’t documented or taught in school </li>
</ul>
</li>
<li>There’s a whole lot of stuff that people in industry do as a matter of course that doesn&#8217;t happen in school </li>
<li>If you ask people in a startup what made them a success, they&#8217;ll be wrong because they have only one point of data </li>
<li>If you&#8217;re thinking about grad school, it’s this area where we&#8217;ll add value </li>
</ul>
<h3>How Do We Get There?</h3>
<ul>
<li>One way is <em><a href="http://oreilly.com/catalog/9780596510046/">Beautiful Code</a></em>, a book I co-edited
<ul>
<li>All proceeds from sales of the book go to Amnesty International </li>
<li>In its 34 chapters, each contributed by a different programmer, they explain a bit of code that they found beautiful </li>
<li>I asked <a href="http://en.wikipedia.org/wiki/Rob_Pike">Rob Pike</a>, who contributed to the development of Unix and C, and he replied &quot;I&#8217;ve never seen any beautiful code.&quot; </li>
<li>I asked <a href="http://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a>, another guy who contributed to the development of Unix and C, and he picked a regex manager that Rob Pike wrote in C </li>
</ul>
</li>
<li>This has led to a series of &quot;Beautiful&quot; books:
<ul>
<li><em><a href="http://oreilly.com/catalog/9780596517984/">Beautiful Architecture</a></em> </li>
<li><em><a href="http://oreilly.com/catalog/9780596157111/">Beautiful Data</a></em> </li>
<li><em><a href="http://oreilly.com/catalog/9780596518028/">Beautiful Teams</a></em> </li>
<li><em><a href="http://oreilly.com/catalog/9780596527488/">Beautiful Security</a></em> </li>
<li><em><a href="http://oreilly.com/catalog/9780596159818/">Beautiful Testing</a></em> </li>
</ul>
</li>
<li>The next book is &quot;the book without a name”
<ul>
<li>I would&#8217;ve called it <em>Beautiful Evidence</em>, but <a href="http://www.edwardtufte.com/tufte/">Edward Tufte</a> <a href="http://www.edwardtufte.com/tufte/books_be">got there first</a> </li>
<li>The book will be about &quot;What we know and why we think it&#8217;s true&quot; </li>
<li>Its main point is knowledge transfer </li>
<li>I’m trying to change the debate </li>
<li>I want a better textbook, a believe that this will be a more useful textbook </li>
</ul>
</li>
<li>&quot;I want your generation to be more cynical than it already is.&quot; </li>
<li>I want you to apply the same standards that you would to acne medication
<ul>
<li>How many of you trust research paid for by big pharma on their own products? </li>
<li>I want you to have higher standards for proof </li>
</ul>
</li>
<li>The real reason all this matters? [Shows a slide with a picture of the world and his daughter]
<ul>
<li>“She is empirically the cutest kid in the world” </li>
<li>Public debate is mostly evidence-free </li>
<li>You&#8217;re not supposed to convict or release without evidence </li>
<li>I want my daughter to inherit a better world </li>
</ul>
</li>
</ul>
<h3>What University is For</h3>
<ul>
<li>[Asks the audience] Hands up if you think you know what university is for
<ul>
<li>One student answers “A piece of paper!” </li>
<li>Greg’s reply: &quot;Remember when I said I wanted you to be more cynical? Don’t go <em>that</em> far.&quot; </li>
</ul>
</li>
<li>In my high school in interior BC, there was no senior math or physics course, because there was no interest </li>
<li>I went to university, hungry to learn </li>
<li>I later discovered that it wasn&#8217;t about the stuff you learned </li>
<li>Was it supposed to teach us how to learn? </li>
<li>It’s supposed to train us to ask good questions </li>
<li>Undergraduates are the price universities pay to get good graduate students </li>
<li>This thinking got me through the next 15 years </li>
<li>Then I went back to teaching, at U of T, and I think I know what universities are for now:
<ul>
<li>We are trying to teach you how to take over the world. </li>
<li>You&#8217;re going to take over, whether you want to or not. </li>
<li>You’re inheriting a world we screwed up </li>
<li>You&#8217;ll be making tough decisions, without sufficient experience or information </li>
</ul>
</li>
<li>Thank you for listening. Good luck. </li>
</ul>
<h3>Comments from the Q&amp;A Session</h3>
<ul>
<li>Who’s going to an anti-<a href="http://www.theglobeandmail.com/news/politics/harper-to-shut-down-parliament/article1414830/">proroguing</a> rally this weekend?
<ul>
<li>It won’t do you any good </li>
<li>You want to make change? It’s not made at rallies, but by working from within </li>
<li>The reason you can’t teach evolution in Texas isn’t because fundamentalists held rallies, but because they ran for the school board </li>
<li>We have to do the same </li>
<li>To make change, you have to get in power and play the game </li>
<li>“Dreadlocks and a nose ring does not get you into the corridors of power” </li>
<li>The <a href="http://www.acm.org/">ACM</a> and <a href="http://ieee.org/">IEEE</a> are arguing your case
<ul>
<li>Join them and influence them! </li>
</ul>
</li>
</ul>
</li>
<li>Do we want to turn out engineers, who are legally liable for their work, rather than computer scientists, who are not?
<ul>
<li>Some of us will have professional designations and be legally liable, some of us won&#8217;t &#8212; there&#8217;s no one future </li>
</ul>
</li>
</ul>
</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/26/cusec-2010-keynote-greg-wilson-bits-of-evidence.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-greg-wilson-bits-of-evidence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CUSEC 2010 Keynote: Reg Braithwaite &#8211; &#8220;Beautiful Failure&#8221;</title>
		<link>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-reg-braithwaite-beautiful-failure/</link>
		<comments>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-reg-braithwaite-beautiful-failure/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 14:11:47 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[failure]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[Montreal]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=5328</guid>
		<description><![CDATA[
Here’s the third in my series of notes taken from keynotes at CUSEC 2010, the 2010 edition of the Canadian University Software Engineering Conference. These are from Beautiful Failure, a keynote given by my friend Reg “Raganwald” Braithwaite, who’s forgotten more about combinators than I will ever learn.
My notes from his keynote appear below; Reg [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/regbraithwaite1.jpg" width="450" height="600" /></p>
<p><strong>Here’s the third in my series of notes taken from keynotes at <a href="http://2010.cusec.net/">CUSEC 2010</a>, the 2010 edition of the Canadian University Software Engineering Conference.</strong> These are from <em><strong>Beautiful Failure</strong></em>, a keynote given by my friend <strong><a href="http://reginald.braythwayt.com/">Reg “Raganwald” Braithwaite</a></strong>, who’s forgotten more about combinators than I will ever learn.</p>
<p>My notes from his keynote appear below; <a href="http://www.flickr.com/photos/raganwald/sets/72157623258073708/">Reg has also published his slides online</a>.</p>
<ul>
<li>I gave a talk at <a href="http://www.globalnerdy.com/2009/10/26/stack-overflow-devdays-toronto/">Stack Overflow DevDays Toronto</a> in which I was thinking out loud about programming about programming </li>
<li>I was trying to rewrite the way we program </li>
<li>The language we use for coding guides the way we think about the program and the solutions </li>
<li>When you write things to change your programming language, you change the way you think </li>
</ul>
<h3>Thinking About Programming About Programming</h3>
<ul>
<li>I often get called in by clients to automate a process </li>
<li>Often, during this process, they want to change the process that I’m supposed to automate </li>
<li>Automating a process forces you to think about it </li>
<li>The very act of thinking about how you do things helps you understand what it is you do </li>
<li>The exercise of thinking it through is useful, even if it fails or you don&#8217;t end up using it </li>
<li>Languages and frameworks come and go, but everything you to do fix what&#8217;s between your ears stays with you forever </li>
<li>Programming languages are just a notation for the way we think </li>
</ul>
<p>&#160;</p>
<ul>
<li>Some people try to do things like add a &quot;sum&quot; method to Ruby’s <code><a href="http://www.ruby-doc.org/core/classes/Enumerable.html">Enumerable</a></code> mixin </li>
<li>What happen when you try [[1, 2], [3, 4], [5, 6]].sum? </li>
<li>[He showed two implementations of a “sum” method:
<ul>
<li>One by “Alice”, which when applied to [[1, 2], [3, 4], [5, 6]], yielded 21, </li>
<li>and one by “Bob”, which when applied to [[1, 2], [3, 4], [5, 6]], yielded [1, 2, 3, 4, 5, 6] </li>
</ul>
</li>
<li>With <a href="http://avdi.org/devblog/2008/02/23/why-monkeypatching-is-destroying-ruby/">“monkeypatching”</a>, it’s possible for two different modules to implement <code>Enumerable#sum</code>, and then for someone else to import both modules.
<ul>
<li>In which case, which version of sum will get called? It depends on the load order of the module </li>
<li>But what if these were written as gems? Then there’s trouble </li>
</ul>
</li>
<li>To solve this sort of problem, I decided to steal <a href="http://msdn.microsoft.com/en-ca/library/bb383977.aspx">extension methods</a> from C# and add them to Ruby [<em><strong>Joey’s note:</strong> extension methods are a C# feature that let you add methods to an existing class without subclassing</em>] </li>
<li>It works, but what’s wrong with what I’ve done? </li>
<li>My extension methods for Ruby are a hack…
<ul>
<li>to fix Alice and Bob&#8217;s hack… </li>
<li>of <a href="http://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Matz&#8217;s (Yukihiro Matsumoto)</a> hack of Smalltalk&#8217;s hack (i.e., Ruby) </li>
</ul>
</li>
<li>It eliminates the annoyance without solving the core problem </li>
<li>Do extension methods reengineer the way we think about problems? Or do they simply deal with an annoyance? </li>
<li>Do they reengineer the way we think about programs? </li>
</ul>
<p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/regbraithwaite2.jpg" width="450" height="600" /></p>
<ul>
<li>Take the <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle">Single Responsibility Principle</a> (SRP) </li>
<li>When you write an extension method, you break SRP </li>
<li>When you monkeypatch, you violate SRP </li>
<li>Is that bad? I don&#8217;t know
<ul>
<li>C# breaks SRP with extension methods </li>
<li>Rails &quot;runs roughshod over it&quot; </li>
<li>If two popular languages break SRP, maybe SRP isn&#8217;t all that </li>
<li>What does the sum method tell us? </li>
<li>Why is this a beautiful failure? </li>
<li>Maybe we&#8217;ve gone beyond the class &#8212; Ruby is not C++ or Smalltalk </li>
<li>Hacks like this scratch an itch and suggest a flaw &#8212; what else is flawed? </li>
</ul>
</li>
<li>You have an advantage over me
<ul>
<li>I have this ball and chain of experience </li>
<li>I&#8217;ve been fucking with computers for almost 40 years </li>
<li>They way I’ve been doing things has made me a living; I’m not incented to change the way I do things </li>
<li>You’re not tied down </li>
</ul>
</li>
<li>So now I present a few ideas that have occurred to me &#8212; think about them!
<ul>
<li>I don’t have the answers </li>
</ul>
</li>
</ul>
<p>&#160;</p>
<ul>
<li>Unit tests tell us that compilers are flawed
<ul>
<li>If we need them, what is wrong with our programming languages and compilers that requires us to step out of what we&#8217;re doing to implement them? </li>
<li>Why do we need to take a great language and bolt something onto the side? </li>
</ul>
</li>
<li><a href="http://github.com/">Github</a> tells us that our existing idea of a program is flawed
<ul>
<li>Most people think of programs as static things </li>
<li>In Github, there is no &quot;program&quot; &#8212; there are branches, forks and tags </li>
<li>Languages themselves have no notion of what a version is </li>
<li>Looking at the way we actually use tools shows that there&#8217;s a disconnect between our toolsets and the way we write code </li>
<li>Are Github commits congruent to objects?
<ul>
<li>If you change 4 classes in a commit, there must be something they have in common, but that’s not apparent from the way we write them </li>
</ul>
</li>
</ul>
</li>
<li>Do we manage work the way we manage code?
<ul>
<li>Project management seems awfully disconnected from our tool chain </li>
<li>Consider the complete disconnect between issue tracking and time tracking </li>
<li>Maybe not so important in your company, but more important for personal projects </li>
<li>Git and <a href="http://lighthouseapp.com/">Lighthouse</a> &#8212; “like two cups connected by string” </li>
</ul>
</li>
<li>Do we manage object versions the way we manage API versions? </li>
</ul>
<p>&#160;</p>
<ul>
<li>&quot;Do not follow in the footsteps of the sages, seek what they sought.&quot; </li>
<li>What I think is particularly cool and interesting is…but to me </li>
<li>Think about what your heroes were trying to achieve using the tools available to you today </li>
<li>An example of following blindly in the footsteps of sages:
<ul>
<li>In November 2002, I attended <a href="http://paulgraham.com/">Paul Graham&#8217;s</a> <a href="http://ll2.ai.mit.edu/">“Lightweight Languages 2” conference</a> in Boston </li>
<li>The morning keynote was by John Armstrong, who presented <a href="http://en.wikipedia.org/wiki/Erlang_(programming_language)">Erlang</a>, which today is considered an important language for concurrent programming </li>
<li>The afternoon keynotes was Matz, who presented Ruby, one of the most influential dynamic languages that soon after enjoyed a meteoric rise in popularity </li>
<li>Many people in the room, die-hard Lisp-heads, were shouting them down because their languages didn&#8217;t have macros [Joey’s note: Macros are a Lisp feature that <a href="http://c2.com/cgi/wiki?SmugLispWeenie">smug Lisp weenies</a> often use in the never-ending “Why my language is better than your language” argument] </li>
</ul>
</li>
</ul>
<h3>Four Ugly Failure Modes and How to Avoid Them</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Reg Braithwaite, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/regbraithwaite3.jpg" width="450" height="600" /></p>
<h4>Confusing correlation with causation</h4>
<ul>
<li>I think it&#8217;s one of the most prevalent diseases in the business world </li>
<li>Ruby is not a silver bullet
<ul>
<li>Was the success of many Ruby projects [such as Rails and Twitter] because of Ruby the language? </li>
<li>Or was it that smart people who could get things done were picking Ruby at a given point in time? </li>
</ul>
</li>
<li>Agile is not a process
<ul>
<li>It&#8217;s a set of values </li>
</ul>
</li>
<li>Here’s how many companies fail:
<ul>
<li>They start a little consulting company </li>
<li>They enjoy some successes, which leads to more business </li>
<li>As a result, they hire people and the company grows </li>
<li>But they can&#8217;t hire smart people faster than the work is coming in </li>
<li>So in order to hire people to meet the demand, they start hiring people who aren’t as smart </li>
<li>That&#8217;s when things go downhill </li>
<li>Who here doesn&#8217;t think this isn&#8217;t standard for any consulting company? </li>
</ul>
</li>
<li>Toronto Agile User Group recruiting process
<ul>
<li>In our field, &quot;best practices&quot; are cow patties </li>
<li>I’ve gone to many companies where they combine &quot;best practices&quot; simply by smooshing them together </li>
<li>I’ve been to many Toronto Agile User Group meetings where very few attendees work at companies that even practice agile </li>
<li>The important thing is that the people there are attending because interested in finding a better way of doing their work – those are the people you should be hiring! </li>
</ul>
</li>
<li>The plural of &quot;anecdote&quot; is not &quot;data&quot;
<ul>
<li>Greg Wilson will talk about this in his keynote later today – listen to him! </li>
<li>Problem: Talks are given by narcissists (or masochists) </li>
<li>When you read something in a blog, see something on TV or buy a book, you&#8217;re not getting a large enough sample, and the content is biased </li>
<li>Another problem is that history is written by the survivors </li>
<li>People write about really notable successes or failures </li>
</ul>
</li>
</ul>
<h4>Confirmation bias </h4>
<ul>
<li>&quot;Most of you will be immune to this, because you&#8217;re all sensible people&quot; </li>
<li>You might fall victim to confirmation bias if you have an overly-inflated (or under-inflated) ego </li>
<li>You might also fall victim to it if your worldview is too narrow
<ul>
<li>If you&#8217;re a Ruby developer, you probably don&#8217;t read C# blogs, and vice versa </li>
</ul>
</li>
<li>Seek out more representative info; not just the stuff that confirms your opinions </li>
</ul>
<h4>Local maxima </h4>
<ul>
<li>The <a href="http://www.amazon.com/Innovators-Dilemma-Revolutionary-Business-Essentials/dp/0060521996">innovator&#8217;s dilemma</a>
<ul>
<li>If you have customers, they will trap you in a local maximum </li>
<li>They&#8217;re not trying to be mean, they&#8217;re trying to give you money </li>
<li>You might end up optimizing to serve your customer base while the rest of the world (and eventually your business moves on) </li>
</ul>
</li>
<li>The <a href="http://en.wikipedia.org/wiki/Principle_of_least_astonishment">Principle of Least Surprise</a> is a trap!
<ul>
<li>Familiarity comes from doing the old things the old way </li>
<li>This doesn’t apply to just UI, but also naming variables or coding styles </li>
<li>Once in a while, you should say &quot;Maybe this one time, we should do things differently&quot; </li>
</ul>
</li>
<li>Iterative anything is a trap
<ul>
<li>It&#8217;s <a href="http://en.wikipedia.org/wiki/Hill_climbing">hill climbing</a> </li>
<li>Sometimes you have to leap </li>
<li>It&#8217;s supposed to be bad to &quot;go dark&quot; in development for a longer period rather than go through many small iterations, but sometimes it&#8217;s the only way to make a great leap </li>
<li>You can&#8217;t climb a big mountain if you do things in small increments </li>
</ul>
</li>
</ul>
<h4>&quot;A Market for Lemons&quot; </h4>
<ul>
<li>What happens when you sell to people who don&#8217;t fundamentally understand what they&#8217;re buying? </li>
<li>If customers don&#8217;t understand what they’re buying, they make their decisions based on easily differentiable features </li>
<li>One example is buying a house, which you’re not going to do very often in your life, so most people know very little about it
<ul>
<li>As a result, they focus on easily differentiable features like square footage, number of rooms, and other features that can easily be picked out </li>
<li>But it’s better to focus on whether the house’s design makes it more liveable, which is harder to suss out </li>
</ul>
</li>
<li>Another example of this is feature checklists on the back of product boxes </li>
<li><a href="http://en.wikipedia.org/wiki/Gresham's_law">Gresham&#8217;s Law</a> &#8212; “bad money drives out good” &#8212; applies to talent: When you have good currency and bad currency in an economy, the bad currency drives the good currency out
<ul>
<li>This happens in Cuba, where the good currency – black market US dollars – gets hoarded while the local currency gets spent </li>
<li>It also applies to information: people put the crappy information out, and it drives the good information down </li>
<li>It also applies to talent: headhunters, not knowing what sort of people to look for, end up grabbing the people who put the most buzzwords on their resumes </li>
</ul>
</li>
<li>You don’t want to be one of those buyers </li>
</ul>
<p>At the end of the presentation, posted a slide dedicated to his late friend, <a href="http://videolectures.net/sam_roweis/">Sam Roweis</a> (1972 – 2010).</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/25/cusec-2010-keynote-reg-braithwaite-beautiful-failure.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-reg-braithwaite-beautiful-failure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CUSEC 2010 Keynote: Pete Forde &#8211; &#8220;NSFW&#8221;</title>
		<link>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-pete-forde-nsfw/</link>
		<comments>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-pete-forde-nsfw/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 05:33:36 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[Montreal]]></category>
		<category><![CDATA[Pete Forde]]></category>
		<category><![CDATA[Unspace]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/?p=5319</guid>
		<description><![CDATA[
Here’s the second in my series of notes taken from keynotes at CUSEC 2010, the 2010 edition of the Canadian University Software Engineering Conference. These are from NSFW, a keynote given by my friend Pete Forde, partner at Unspace and one of the bright lights of Toronto’s tech scene.
My notes appear below. Pete’s posted his [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/peteforde3.jpg" width="450" height="600" /></p>
<p><strong>Here’s the second in my series of notes taken from keynotes at <a href="http://2010.cusec.net/">CUSEC 2010</a>, the 2010 edition of the Canadian University Software Engineering Conference.</strong> These are from <em><strong>NSFW</strong></em>, a keynote given by my friend <strong><a href="http://twitter.com/peteforde">Pete Forde</a></strong>, partner at <a href="http://unspace.ca/">Unspace</a> and one of the bright lights of Toronto’s tech scene.</p>
<p>My notes appear below. <a href="http://www.slideshare.net/peteforde/nsfw">Pete’s posted his slides, notes and URLs online</a>; be sure to check them out.</p>
<h3>Introduction</h3>
<p>“This talk is going to be adult,” began Pete. “If you can&#8217;t handle it, you should probably leave. I&#8217;ll buy you a Dasani afterwards.”</p>
<ul>
<li>I’m a partner at <a href="http://unspace.ca/">Unspace</a>
<ul>
<li>It’s a company where I decided to bet the farm on <a href="http://rubyonrails.org/">Rails</a>, a platform I like </li>
<li>We’ve done unusual things, like hold <a href="http://www.globalnerdy.com/2009/06/09/the-employmentnil-ruby-job-fair/">a job fair where local Ruby programmers could show off their work</a> </li>
<li><a href="http://rethink.unspace.ca/2010/1/11/the-fruits-of-unspace-labour">We’ve built software projects for the UN</a> </li>
<li>Every project we take on has a lot of heart </li>
<li>We don&#8217;t want to work with anyone who isn&#8217;t super-excited to be there </li>
</ul>
</li>
<li>I&#8217;m a software developer, have been for a long time </li>
<li>But deep down, I want to be a designer
<ul>
<li>I have no formal training &#8212; I can&#8217;t draw; I can&#8217;t paint </li>
<li>I see life as a series of carefully-executed series of five year plans </li>
<li>I dropped out of high school 20 minutes before the final exam; I told the principal that I didn&#8217;t want him to take credit for future success
<ul>
<li>I don’t recommend this; it’s probably not repeatable, not even by me </li>
</ul>
</li>
</ul>
</li>
<li>You – as engineering and computer science students –- are better educated than me
<ul>
<li>“You probably know math and stuff” </li>
</ul>
</li>
<li>In the past, I was a punk, and many other things
<ul>
<li>I’ve been a musician </li>
<li>I’ve also been a <a href="http://en.wikipedia.org/wiki/Zine">zine</a> publisher </li>
<li>I’ve tried on a lot of things to see if the shoe fits </li>
<li>I’ve had an interesting run </li>
</ul>
</li>
<li>When I get to the end of 5 years of doing something, I review what I’ve done
<ul>
<li>I’ve had 5 years of doing software at Unspace – what now? </li>
</ul>
</li>
</ul>
<h3>On Pete</h3>
<p>&#160;<img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/peteforde2.jpg" width="450" height="600" /></p>
<ul>
<li>My dad&#8217;s an engineer, and as such, is a perfectionist
<ul>
<li>Engineers are by and large pedantic control freaks &#8212; and that’s okay, we need you to be that way! </li>
</ul>
</li>
<li>I’ve discovered that I&#8217;m a starter, not a finisher </li>
<li>This tendency has put me at odds with my family and I used to feel really guilty about it </li>
<li>Now I realize is that you need to play to your strengths &#8212; recognize that you have an instinct, and harness it! </li>
<li>Is what you&#8217;re doing against the grain?
<ul>
<li>&quot;There’s no time like the present to get your life on track&quot; </li>
<li>&quot;I could have saved myself a lot of time if I could talk to my present-day self&quot; </li>
</ul>
</li>
<li>As a starter but not a finisher, I realized that I had to recruit doers, people who could take my ideas and run with them
<ul>
<li>Some of these projects will succeed </li>
<li>Some will fail…but they&#8217;ll fail grandly </li>
<li>I’ve got lots of things on the go </li>
<li>Am I arrogant? I see it as <em>audacious</em> </li>
<li><a href="http://en.wikipedia.org/wiki/Seth_Godin">Seth Godin</a> said: <a href="http://sethgodin.typepad.com/seths_blog/2009/08/thanks-for-leading.html">“If you’re not uncomfortable in your work as a leader, it’s almost certain you’re not reaching your potential as a leader.&quot;</a> </li>
</ul>
</li>
<li>I am an introvert
<ul>
<li>See the article in <em>The Atlantic</em>, <em><a href="http://www.theatlantic.com/doc/200303/rauch">Caring for Your Introvert</a></em> </li>
<li>So what am I doing onstage? </li>
<li>People who appear practiced onstage look that way because they <em>are</em> practiced </li>
</ul>
</li>
</ul>
<h3>On Success</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Steve_Jobs">Steve Jobs</a> says: <a href="http://news-service.stanford.edu/news/2005/june15/jobs-061505.html">“Find what you love”</a>
<ul>
<li>People confuse “successful” with “happy” </li>
<li>Are you putting your life on hold to go and make your paycheque? </li>
<li>I&#8217;m convinced that many financially successful people are unhappy and bitte </li>
</ul>
</li>
<li><a href="http://en.wikipedia.org/wiki/Malcolm_Gladwell">Malcom Gladwell’s</a> <em><a href="http://archives.newyorker.com/?i=2010-01-18#folio=024">The Sure Thing</a></em>
<ul>
<li>It paints a different picture from the one we see in the media of the entrepreneur as daring, as a “cowboy” </li>
<li>Entrepreneurs who became empire builders turned out be highly risk-averse </li>
<li>Their success comes from seeing opportunities in arbitrage and taking advantage of them </li>
<li>Consider <a href="http://en.wikipedia.org/wiki/John_Paulson">John Paulson</a>:
<ul>
<li>His hedge fund made money shorting America&#8217;s economy </li>
<li><a href="http://www.moneyweek.com/news-and-charts/the-wall-street-investor-who-shorted-subprime--and-made-15bn.aspx">He bought shorts on subprime mortgages</a> </li>
</ul>
</li>
<li>These men are predatory entrepreneurs in my opinion </li>
<li>Do they really need billions? </li>
<li>Maybe they don’t do it for evil – perhaps it might be for the thrill </li>
</ul>
</li>
<li>Don&#8217;t want to model himself after these people
<ul>
<li>There’s a line written by <a href="http://en.wikipedia.org/wiki/Seth_Tobocman">Seth Tobocman</a>, who wrote the comic book <em>World War 3:</em> &quot;You don&#8217;t have to fuck people over to survive.&quot; </li>
<li>My twist on that is &quot;You don&#8217;t have to fuck yourself over to be successful.&quot; </li>
</ul>
</li>
<li>Who would I rather model myself after? Steve Jobs
<ul>
<li>He said: “Good business makes for good art” </li>
</ul>
</li>
<li>Another good bit of advice comes from <a href="http://en.wikipedia.org/wiki/Andy_Warhol">Andy Warhol</a>: “Think rich, look poor.” </li>
<li>On Being an Artist
<ul>
<li>There used to be a harsh disciplinary division between technology and art and it’s reflected in code and art </li>
<li>Different now in the era of Rails </li>
<li>I like holding parties and inviting all sorts of people: if you put interesting people together from all walks of life, you’ve got a catalyst for change in your living room </li>
<li>The lines are blurring: we&#8217;re all artists now </li>
</ul>
</li>
<li>Consider these guys
<ul>
<li><a href="http://nymag.com/news/features/62893/?imw=Y&amp;f=most-emailed-24h10">Ronald Tackmann</a>, escape artist
<ul>
<li>&quot;He hates being free&quot; </li>
</ul>
</li>
<li><a href="http://en.wikipedia.org/wiki/Blane_Nordahl">Blane Nordahl</a>, Silver thief
<ul>
<li>&quot;The <a href="http://en.wikipedia.org/wiki/Mr._Belvedere">Mr. Belvedere</a> of silver theft&quot; </li>
</ul>
</li>
<li>Both really good, treated their work like artistry </li>
</ul>
</li>
</ul>
<h3>On Starting Up</h3>
<ul>
<li>How Unspace came to be
<ul>
<li>It started 5 years ago with 2 friends in 170 square feet of space </li>
<li>“There wasn’t enough room to lie down and make a snow angel” </li>
<li>Everything that happened in those first years was &quot;path of least resistance&quot; </li>
<li>We had this weird notion that Unspace would be worth nothing and function as a quasi-legal organization whose reason for being was so that we could write off tech toy purchases </li>
</ul>
</li>
<li>We got lucky: Two founding partners &#8212; moved on to other things
<ul>
<li>One of them has since moved on, regrettably, to <a href="http://www.dating-service.com/review/Sites/ashleymadison.com/">Ashley Madison</a> </li>
<li>Choosing partners was important decision </li>
</ul>
</li>
<li>Optimism springs eternal among entrepreneurs: there’s always that feeling that nothing can go wrong </li>
<li>Daniel Tenier says: “Partnerships suck”
<ul>
<li>It’s important to make your agreements explicit </li>
<li>Don&#8217;t be afraid to discuss bad stuff </li>
<li>Write everything down </li>
<li>You can’t make it work at all costs – you need to know when to walk away </li>
<li>Try to get to the bottom of questions like &quot;What&#8217;s your definition of success?&quot; Of failure? What&#8217;s the <a href="http://en.wikipedia.org/wiki/Sunset_clause">sunset clause</a>? What&#8217;s the <a href="http://en.wikipedia.org/wiki/Shotgun_clause">shotgun clause</a>? </li>
<li>If you absolutely don&#8217;t need a partner, go it yourself (I myself, since I’m not a finisher, need a partner) </li>
<li>Look up what <a href="http://cdixon.org/2009/04/21/founder-vesting/">Chris Dixon has written about founder vesting</a> </li>
</ul>
</li>
</ul>
<h3>On Products </h3>
<ul>
<li>Most consulting companies start as product companies that were broke </li>
<li>Consulting is “kind of like a drug” &#8212; it keeps the fix coming </li>
</ul>
<h3>On Customer Development</h3>
<ul>
<li>You need to read Steven Gary Blank’s <em><a href="http://www.amazon.com/Four-Steps-Epiphany-Steven-Blank/dp/0976470705">The Four Steps to the Epiphany</a></em> </li>
<li>The ideas in this book led to the feeling in venture circles that customer development is a good thing </li>
<li>If you&#8217;re starting a company that sells things to people, read it! </li>
</ul>
<h3>Leadership</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" border="0" alt="Pete Forde, standing at the lectern, giving his keynote at CUSEC 2010" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/peteforde1.jpg" width="450" height="600" /></p>
<ul>
<li>Seth Godin says this of leadership: It’s about painting a picture of the future for other people and then leading them to it </li>
<li>Back in 2004, things went terribly wrong </li>
<li>I partnered with my friend Ryan, and it lasted a month </li>
<li>I had “lots of partners” – it was hard to get things done </li>
<li>Having a captain is good </li>
<li>In addition to being a “time-and-materials” company, we also started holding events
<ul>
<li>We instituted <a href="http://unspace.ca/innovation/pubnite/">Rails Pub Nite</a>, a monthly event that created a sense on community and gets regular attendance
<ul>
<li>Opposite of a user group: no agenda </li>
<li>It’s the &quot;smartest thing we&#8217;ve ever done as a company&quot; </li>
<li>At the time, “people making a living off Ruby you could count on both hands” </li>
<li>One of the <em>raisons d’etre</em> of Rails Pub Nite was to create meaningful competition </li>
<li>We went so much farther ahead by giving it the generic name <em>Rails</em> Pub Nite as opposed to <em>Unspace</em> Pub Nite </li>
<li>What we wanted to do was <em>not</em> create a feeling of participating in a <em>corporate</em> social experience </li>
<li>It was successful: Rails Pub Nite’s mailing list has 450 people, and every Pub Nite gets 40 &#8211; 50 attendees, and not just Ruby programmers, but also Java, .NET and PHP </li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Building Your Team </h3>
<ul>
<li>Another benefit of Rails Pub Nite is that it lets us meet all the smart people first </li>
<li>We have a “non-traditional fit test” </li>
<li>I feel that 8 &#8211; 14 people is perfect size for company </li>
<li>I’m tired of working for small companies that grew to large companies that started to suck </li>
<li>I’d rather have 3 companies with 12 people than 1 with 40 people </li>
</ul>
<h3>On Guilt </h3>
<ul>
<li>I have no high school education &#8212; how am I building projects for the UN? </li>
<li>It’s why sometimes, I feel like a fraud </li>
<li>Many people have this feeling; it’s called <a href="http://en.wikipedia.org/wiki/Impostor_syndrome">“Impostor Syndrome”</a> </li>
<li>I feel like living embodiment of &quot;fake it until you make it&quot; </li>
<li>Refactoring makes me feel like a fraud </li>
<li>It’s the &quot;Embarrassing Pattern&quot;: after looking over my code, it seems that I could replace a lot of it with existing stuff and patterns </li>
<li>“Your entire codebase can be abstracted away” </li>
<li>&quot;I just spent a month writing 40 lines of code&quot; </li>
<li>You have to recognize that it happens </li>
</ul>
<h3>On Getting Ahead </h3>
<ul>
<li>Read <a href="http://sivers.org/about">Derek Sivers’</a> (he’s the guy who created <a href="http://www.cdbaby.com/">CDBaby</a> and later sold it) article, <em><a href="http://sivers.org/kimo">There&#8217;s No Speed Limit</a></em> </li>
<li>He says that “the standard pace is for chumps” </li>
<li>To get ahead, you have to push yourself beyond what you think your limits are </li>
<li>We can do whatever we want, as fast as we want </li>
</ul>
<h3>Adventure </h3>
<ul>
<li>Learning <a href="http://gilesbowkett.blogspot.com/">Giles Bowkett’s</a> story through <a href="http://www.infoq.com/presentations/archaeopteryx-bowkett">his RubyFringe presentation</a> completely changed my life
<ul>
<li><em>[<strong>Joey’s note:</strong> really, you should </em><a href="http://www.infoq.com/presentations/archaeopteryx-bowkett"><em>watch the video of this presentation</em></a><em>, even if you never ever plan to write a single line of Ruby in your life. It’s inspiring.]</em> </li>
</ul>
</li>
<li>It was all about leading a life less ordinary </li>
<li>In our line of work, we create things that didn&#8217;t exist before </li>
<li>When someone who doesn&#8217;t know how to create things is put in charge of people who do, it’s bad
<ul>
<li>I believe that Giles called them &quot;Weasel-brained muppetfuckers&quot; </li>
</ul>
</li>
<li>Giles quotes Steve Jobs: “Real artists ship” </li>
<li>My advice on dating websites: &quot;Don&#8217;t make them&quot; </li>
</ul>
<h3>On Marketing </h3>
<ul>
<li>I’ve mentioned Seth Godin many times already </li>
<li>Sometimes his books have 3 pages of insight buried in 100 pages – I supposed it’s a case of “The Devil&#8217;s in the details” </li>
<li>Read <em><a href="http://www.amazon.com/Dip-Little-Book-Teaches-Stick/dp/1591841666">The Dip</a></em>, skip <em><a href="http://www.amazon.com/Tribes-We-Need-You-Lead/dp/1591842336/ref=pd_bxgy_b_img_b">Tribes</a></em> </li>
<li>In <em>Tribes</em>, Godin says that people don’t believe what you tell them, sometimes believe what their friends tell them and always believe the stories they tell themselves. </li>
<li>So give people stories they can tell themselves </li>
</ul>
<h3>On Ideas </h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Edwin_Land">Dr. Edwin Land</a>: Invented instant photography – <a href="http://en.wikipedia.org/wiki/Polaroid_Corporation">Polaroid</a> </li>
<li>Polaroid was thought of as dead until <a href="http://www.nytimes.com/2009/05/26/technology/26polaroid.html?_r=3">enthusiasts like Florian Kaps bought the Polaroid factory and now they’re bringing Polaroid film back to the market</a> </li>
<li>I wanted to bring him to FutureRuby, but he was too busy changing the world </li>
<li>Another person to watch: Kacie Kinzer, the creator of <a href="http://tweenbots.com/">Tweenbots</a> </li>
<li>Also watch: <a href="http://en.wikipedia.org/wiki/Neil_Gershenfeld">Neil Gershenfeld</a>
<ul>
<li>He builds <a href="http://fabfoundation.org/index.php?option=com_content&amp;view=article&amp;id=46&amp;Itemid=61">fablabs</a> </li>
<li>He’s building them in places so low-tech that they don&#8217;t even have electricity </li>
<li>Get involved with <a href="http://cba.media.mit.edu/">the MIT &quot;Bits and Atoms&quot; program</a> </li>
</ul>
</li>
<li>Another person to read about: <a href="http://www.ted.com/index.php/speakers/william_kamkwamba.html">William Kamkwamba</a> (see <em><a href="http://www.harpercollins.com/books/9780061730320/The_Boy_Who_Harnessed_the_Wind/index.aspx">The Boy Who Harnessed the Wind</a></em>)
<ul>
<li><em>[<strong>Joey’s note:</strong> <a href="http://www.ted.com/talks/william_kamkwamba_on_building_a_windmill.html">Watch his presentation at TED</a>!]</em> </li>
</ul>
</li>
</ul>
<h3>Grand Visions for the Future </h3>
<ul>
<li>Disney wanted <a href="http://en.wikipedia.org/wiki/Epcot">EPCOT</a> to be a utopian city, a city of the future, but bureaucracy got in the way </li>
<li><a href="http://en.wikipedia.org/wiki/Jacque_Fresco">Jacque Fresco</a>: 93-year-old chronic inventor &#8212; a radical revolutionary
<ul>
<li>He designs amazing future habitat buildings </li>
<li>He has a whole compound of bubble domes in Venus, Florida </li>
<li>See the movie <a href="http://futurebydesignthemovie.com/"><em>Future by Design</em></a> </li>
<li>He&#8217;s 93 &#8212; &quot;You know what that implies&quot; </li>
</ul>
</li>
</ul>
<h3>On Being Happy </h3>
<ul>
<li>Listen up! </li>
<li>Once again, a Steve Jobs quote: &quot;Your time is limited. &quot; </li>
<li>Look at <a href="http://jessicahische.com/typographizes/an-illustrative-initial-every-day">Jessica Hische</a>, who’s obsessed with type and makes beautiful things
<ul>
<li>She followed her passion, and now she’s an internationally sought-after type artist </li>
<li>She recently said: <a href="http://www.humblepied.com/jessica-hische/">“The work you do while you procrastinate is probably the work you should be doing for the rest of your life.&quot;</a> </li>
</ul>
</li>
</ul>
<ul></ul>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/25/cusec-2010-keynote-pete-forde-nsfw.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/25/cusec-2010-keynote-pete-forde-nsfw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CUSEC 2010 Keynote: Matt Knox &#8211; &#8220;On Weakness&#8221;</title>
		<link>http://www.globalnerdy.com/2010/01/24/cusec-2010-keynote-matt-knox-on-weakness/</link>
		<comments>http://www.globalnerdy.com/2010/01/24/cusec-2010-keynote-matt-knox-on-weakness/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 03:05:26 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[conference notes]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[evil]]></category>
		<category><![CDATA[keynotes]]></category>
		<category><![CDATA[Matt Knox]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2010/01/24/cusec-2010-keynote-matt-knox-on-weakness/</guid>
		<description><![CDATA[This is the first of a series of notes that I took while attending CUSEC, the Canadian University Software Engineering Conference, which took place last week in Montreal. CUSEC is the biggest conference held by and for university students interested in software development. True to the Canadian techies punching well above their weight class (a [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; margin: 0px 0px 0px 15px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="CUSEC 2010 &quot;goto 10&quot; logo" border="0" alt="CUSEC 2010 &quot;goto 10&quot; logo" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/cusec2010logo1.jpg" width="160" height="160" /><strong>This is the first of a series of notes that I took while attending <a href="http://2010.cusec.net/">CUSEC</a>, the Canadian University Software Engineering Conference,</strong> which took place last week in Montreal. CUSEC is the biggest conference held by and for university students interested in software development. True to the Canadian techies punching well above their weight class (a great tradition started by Alexander Graham Bell), CUSEC manages to pull in big-name and up-and-coming speakers who’ve given talks that have outshined those I’ve seen an thousand-dollar-plus conferences.</p>
<p>The first keynote was given by <strong><a href="http://mattknox.com/">Matt Knox</a></strong>, who has probably distributed more <a href="http://en.wikipedia.org/wiki/Scheme_programming_language">Scheme</a> runtimes than anyone else in the world (and this is a larger number than you might think), <a href="http://philosecurity.org/2009/01/12/interview-with-an-adware-author">which he did in the name of putting adware on millions of machines</a>. He’s since come to his senses and seems quite contrite.</p>
<p>His presentation, <em><strong>On Weakness</strong></em>, is about his life on the Dark Side and the lessons he gleaned from it. It’s based on his talk, <em><a href="http://www.infoq.com/presentations/knox-crimes">Crimes Against Humanity, Writ Small</a></em>, which he gave at <a href="http://futureruby.com/">FutureRuby</a> last year, but it was good to see it again, and its message is probably even more valuable to students. My notes (which I polished for comprehensibility) and photos from his session appear below: </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" border="0" alt="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/mattknox1.jpg" width="465" height="600" /></p>
<h3>An Evil Job</h3>
<ul>
<li>How many of you are:
<ul>
<li>Technical, as opposed to business or arts students? </li>
<li>Engineering students? </li>
<li>Programmers? </li>
<li><strong>Evil?</strong> </li>
</ul>
</li>
<li>That’s what this talk is about </li>
<li>One way to describe one of my former jobs is doing “Windows hijinks with Scheme” </li>
<li>During my time with that job, I released many scheme runtimes </li>
<li><a href="http://www.aaronsw.com/">Aaron Swartz</a> – I think it was at a <a href="http://ycombinator.com/">Y Combinator</a> startup camp – said this of me: &quot;He uses Scheme for evil!&quot; </li>
<li>It was more than just Scheme – I was writing stuff that had alternately “hard” (statically-typed languages) and “soft” (dynamically-typed languages) layers </li>
<li>I was in the adware business, which is like walking into a big monkey knife fight… </li>
<li>…except I was using a death ray! (Scheme == death ray, C == knife) </li>
<li>I started with good intentions, in the business of building spam filters </li>
<li>Business wasn’t so hit, and I ran out of money </li>
<li>My job search failed, but luckily, a job went looking for me </li>
<li>I was so pleased with being found that I&#160; forgot to talk salary </li>
<li>I showed up for the interview and at the end, was invited to work for them </li>
<li>I did terribly when it came time to discuss what I would be paid
<ul>
<li>I didn’t research the New York City job market and cost of living </li>
<li>I asked for $40K </li>
<li>When I saw the look of shock of the guy’s face, I thought that I had asked for too much </li>
<li>Start reducing what I asked for; luckily he stopped me </li>
</ul>
</li>
<li>We want you to come in an analyze our distribution chain, they said </li>
<li>It turned out to be an adware company:
<ul>
<li>Bought people&#8217;s “digital tchochkes” or mini-apps, such as screensavers </li>
<li>They had realized that there&#8217;s no lower bound for how cheesy something can be and still be a big seller on the internet </li>
<li>They took these mini-apps and gave them away online for free, bundled with software that gives you &quot;special offers&quot; from time to time </li>
</ul>
</li>
<li>Some of these bundled apps turned out to be worms
<ul>
<li>So the company had me write software to remove any worms from a system and added them to the bundle </li>
<li>So now we were bundling my anti-malware along with their adware </li>
<li>I felt like &quot;an assassin working for the mob, but killing terrorists&quot;. The mob were bad, but the terrorists were worse </li>
<li>&quot;Awesome! I can probably keep up with Norton…it&#8217;ll be great!&quot; </li>
<li>And for a while, the best way to eradicate worms your system was to install their adware with my anti-malware bundled with it </li>
</ul>
</li>
<li>Low-level coding is dangerously seductive
<ul>
<li>In the beginning, it’s &quot;like getting kicked in the face over and over again by buffer overruns&quot; </li>
<li>But then it becomes fascinating </li>
</ul>
</li>
<li>I wanted to do it in Scheme, but that would require embedding a Scheme interpreter
<ul>
<li>Such an interpreter would have to fit into a single TCP/IP packet (about 64K) </li>
<li>Scheme is great. For any superlative &#8212; “best performance”, “smallest app”, and so on – there are usually two contenders: some other language, and Scheme. </li>
<li>I managed to squeeze a Scheme interpreter down to 19K </li>
</ul>
</li>
<li>My success with killing the worms led to a new request: In addition to your all this malware on other machines, why not eliminate all the competitor&#8217;s adware?
<ul>
<li>Now I felt like “an assassin for the mob, killing other mobsters”. Not as noble. </li>
</ul>
</li>
<li>Then the next request came: How about keeping our software from being killed…by anything? (including Norton)
<ul>
<li>The only way to uninstall the adware was to use the uninstaller, which came with it </li>
<li>I initially viewed this as &quot;a really interesting technical problem&quot; </li>
</ul>
</li>
<li>All this was made possible by a couple of Windows quirks…
<ul>
<li><code><a href="http://msdn.microsoft.com/en-ca/library/ms682437(VS.85).aspx">CreateRemoteThread</a></code>
<ul>
<li>This basically says to a process: <a href="http://www.codeguru.com/cpp/w-p/system/processesmodules/article.php/c5767/">&quot;Hey, process! Execute this code as part of yourself, and you&#8217;ll think it&#8217;s awesome.&quot;</a> </li>
<li>This lets you have code executing even though a process isn’t running </li>
<li>You don&#8217;t even need threads &#8211; you can hook interrupts </li>
</ul>
</li>
<li>Scheduler
<ul>
<li>You can have a process tell the scheduler that it needs to do a do-over &#8212; &quot;I&#8217;m not done yet, I need more time&quot;, and the scheduler will grant that time </li>
<li>You can tell even Windows that a process is so important that if it fails, it needs to protect the user by presenting a blue screen </li>
</ul>
</li>
</ul>
</li>
<li>Windows is interesting from a purely archaeological perspective
<ul>
<li>Consider that all strings in Windows are 16-bit unicode, which means that nulls can be embedded in strings </li>
<li>But C strings, which is what’s used in the underlying DOS, are null-terminated and therefore can’t contain nulls </li>
<li>Interesting effects when moving null-containing strings between these layers </li>
</ul>
</li>
</ul>
<h3>What Drives People to Take Up Evil Jobs?</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" border="0" alt="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/mattknox2.jpg" width="499" height="600" /> </p>
<ul>
<li>Aftermath of my working at the adware company:
<ul>
<li>Company got sued for $190 billion (by <a href="http://www.out-law.com/page-6817">Elliot Spitzer!</a>) </li>
<li>I was the first employee at the company &#8212; everyone else was a contractor </li>
</ul>
</li>
<li>I left the company with these questions:
<ul>
<li>&quot;Whut happen?&quot; </li>
<li>&quot;Is this who I am?&quot; </li>
</ul>
</li>
<li>Some jobs pay lots of money, but it&#8217;s hard to transition out of them </li>
<li>Will I be stuck in adware for the rest of my life? </li>
<li>There are some historical precedents:
<ul>
<li><a href="http://en.wikipedia.org/wiki/Albert_Speer">Albert Speer</a>
<ul>
<li>A promising architect who liked soaring buildings </li>
<li>He hooked up with rising politicians with the same aesthetic sense, one of whom was Hitler </li>
<li>He started with creating buildings, but then became the Nazis’ chief logistics guy </li>
<li>Later, a leader of the U.S. Air Force said that had he been aware of Speer’s involvement as the Nazi’s chief logistics guy, he would’ve dedicated an entire wing of the Air Force exclusively to killing him </li>
<li>It’s been suggested that Speer prolonged the war by a year or two by running the German forces more efficiently </li>
</ul>
</li>
<li><a href="http://en.wikipedia.org/wiki/Manhattan_Project">Manhattan Project</a> staff </li>
</ul>
</li>
<li>But I didn&#8217;t want anecdotes…I wanted science!
<ul>
<li>There’s a scientific study of otherwise good people doing evil things: the <a href="http://en.wikipedia.org/wiki/Milgram_experiment">Milgram Experiment</a>
<ul>
<li>How many people would go all the way? </li>
<li>1% of the population is psychotic – it was hypothesized that the number of people who’d go all the way would be similar </li>
<li>Instead, 70% did </li>
<li>Results replicatable with people from all walks of life </li>
<li>Women, it turned out, “went evil” in a slightly greater proportion than the men </li>
<li>&quot;Most human evil lives here&quot; </li>
</ul>
</li>
</ul>
</li>
<li>Read <em><a href="http://www.amazon.com/Black-Book-Communism-Crimes-Repression/dp/0674076087">The Black Book of Communism</a></em> </li>
<li>For a more mundane example of blind obedience to authority leading to evil, see <a href="http://www.poetv.com/video.php?vid=24065">&quot;The strip search McDonald&#8217;s prank call&quot;</a>
<ul>
<li>In the prank, the prankster calls a McDonald’s, gets an employee on the line and says “I&#8217;m a police officer. We have reason to believe that there is a thief in your restaurant and we need you to take them into the back and hold them until we arrive.” </li>
<li>They provide a description vague enough so that someone in the restaurant will match it </li>
<li>Once coralled in the back, the prankster starts giving orders to torture and/or humiliate the customer, and many employees have complied </li>
</ul>
</li>
<li>So what does this mean?
<ul>
<li><strong>The human brain has a remote root exploit in 70% of the installed base </strong></li>
</ul>
</li>
<li>&quot;With or without religion, you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion.&quot; &#8212; <a href="http://en.wikipedia.org/wiki/Steven_Weinberg">Steven Weinberg</a>
<ul>
<li>Nope. <em>Just authority</em>. </li>
</ul>
</li>
<li>There is hope: people who were subjects of the Milgram experiments turned out to be better at resisting authoritative coercion </li>
</ul>
<h3>The Power of Communication</h3>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" border="0" alt="Matt Knox, standing at the lectern, delivering his keynote at CUSEC" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/mattknox3.jpg" width="483" height="600" /> </p>
<ul>
<li>Math: &quot;There are only three reasonable numbers: 0, 1 and infinity&quot; </li>
<li>When <a href="http://en.wikipedia.org/wiki/Robert_Andrews_Millikan">Robert Andrews Millikan</a> did his oil drop experiments to determine the charge on an electron, he initially got the value wrong by 30 &#8211; 40%
<ul>
<li>People who repeated the experiment or conducted similar experiments with results close to Millikan&#8217;s erroneous number published their results </li>
<li>People who did so but got the correct value – which did not match Millikan’s value – didn;t publish, worried that they’d done something wrong, since their numbers didn’t agree with the number published by the authority on the subject </li>
</ul>
</li>
<li>The world pre-blogs was so different from this world
<ul>
<li>Very first open source project: <em><a href="http://en.wikipedia.org/wiki/Oxford_English">Oxford English Dictionary</a></em>
<ul>
<li>Done via mail </li>
</ul>
</li>
<li>Ever wondered where the term &quot;flying off the handle&quot; comes from?
<ul>
<li>It’s from sword-making – until they figured out the process of making swords as one-piece, with hand-friendly stuff wrapped around the base so you could hold them, swords often flew off their handles in battle </li>
<li>It took 900 years to evolve swords to one piece </li>
</ul>
</li>
</ul>
</li>
<li>Not everything has been solved, but it’s easier today </li>
<li><a href="http://rubyonrails.org/">Rails</a> is such a solution
<ul>
<li>It’s a series of incremental improvements </li>
<li>Can you out-Rails Rails? </li>
</ul>
</li>
</ul>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/25/cusec-2010-keynote-matt-knox-on-weakness.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/24/cusec-2010-keynote-matt-knox-on-weakness/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Montreal Bound</title>
		<link>http://www.globalnerdy.com/2010/01/20/montreal-bound/</link>
		<comments>http://www.globalnerdy.com/2010/01/20/montreal-bound/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:49:56 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Montreal]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2010/01/20/montreal-bound/</guid>
		<description><![CDATA[ Photo by Tom Purves.
I’m boarding a Porter flight bound for Montreal, where I’ll be attending CUSEC (Canadian University Software Engineering Conference). I’ll be there from today through Saturday afternoon, watching technical presentation, flying the Microsoft banner, hosting DemoCamp and having a beer (or twelve) with my fellow conference-goers. I’ll be posting notes and photos [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="center"><a href="http://www.flickr.com/photos/thomaspurves/2843427103/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="porter plane" border="0" alt="porter plane" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/porterplane.jpg" width="600" height="450" /></a> Photo by Tom Purves.</p>
<p><strong>I’m boarding a <a href="http://www.flyporter.com/">Porter</a> flight bound for <a href="http://en.wikipedia.org/wiki/Montreal">Montreal</a>, where I’ll be attending <a href="http://2010.cusec.net/">CUSEC</a> (Canadian University Software Engineering Conference).</strong> I’ll be there from today through Saturday afternoon, watching technical presentation, flying the Microsoft banner, hosting DemoCamp and having a beer (or twelve) with my fellow conference-goers. I’ll be posting notes and photos from the presentations and other goings-on, so watch this space!</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/20/montreal-bound.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/20/montreal-bound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Presentation at CUSEC 2009: &#8220;Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist&#8217;s Story&#8221;</title>
		<link>http://www.globalnerdy.com/2010/01/19/my-presentation-at-cusec-2009-squeezeboxes-start-ups-and-selling-out-a-tech-evangelists-story/</link>
		<comments>http://www.globalnerdy.com/2010/01/19/my-presentation-at-cusec-2009-squeezeboxes-start-ups-and-selling-out-a-tech-evangelists-story/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 06:58:36 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[career]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2010/01/19/my-presentation-at-cusec-2009-squeezeboxes-start-ups-and-selling-out-a-tech-evangelists-story/</guid>
		<description><![CDATA[Microsoft was a sponsor of CUSEC last year – that’s Canadian University Software Engineering Conference, the premier conference on building software aimed specifically at students. One of the perks of sponsorship was a “corporate speaker” slot, and it was decided that the presentation should be given it to the then-new guy…namely, me.
At the time I [...]]]></description>
			<content:encoded><![CDATA[<p></p><p align="left"><img style="border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cusec 2009 logo" border="0" alt="cusec 2009 logo" align="left" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/cusec2009logo.jpg" width="200" height="133" />Microsoft was a sponsor of <a href="http://2009.cusec.net/">CUSEC last year</a> – that’s <strong><a href="http://2010.cusec.net/">Canadian University Software Engineering Conference</a></strong>, the premier conference on building software aimed specifically at students. One of the perks of sponsorship was a “corporate speaker” slot, and it was decided that the presentation should be given it to the then-new guy…namely, me.</p>
<p align="left">At the time I got slotted in as the speaker, I’d barely been a Microsoft employee for two months and was still feeling my way around both the company and its technology. By the time I would stand on the podium, I would have just passed my three-month probationary period. If I was going give a talk for forty-five minutes, it would have to be something other than “what it’s like to work at The Empire”.</p>
<p align="left">Luckily, I <em>did </em>have something to talk about: a not-quite-normal career in tech, and the lessons I picked up along the way. The end result was a presentation titled <strong><em><a href="http://vimeo.com/8657309">Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist’s Story</a></em></strong> (yes, it’s a bombastic title, but it’s the sort of thing you’d expect from a guy whose personal blog’s name is <em><a href="http://joeydevilla.com/">The Adventures of Accordion Guy in the 21st Century</a></em>.) </p>
<p align="left">The presentation was scheduled for the end of Day 2 (it’s a three-day conference), which is a challenge. The audience would be tired and being students, they were likely to be more focused on the big drinkfest that would take place that evening. I decided to go for “offbeat” and built my presentation around the abstract I gave to them, which was:</p>
<blockquote><p align="left">You’ll spend anywhere from a third to half (or more) of your waking life at work, so why not enjoy it? That’s the philosophy of Microsoft Developer Evangelist Joey deVilla, who’s had fun while paying the rent. He’ll talk about his career path, which includes coding in cafes, getting hired through your blog, learning Python at Burning Man, messy office romances, go-go dancing, leading an office coup against his manager, interviewing at a porn company and using his accordion to make a Microsoft Vice President run away in fear. There will be stories, career advice and yes, a rock and roll accordion number or two.</p>
</blockquote>
<p align="left">They recorded my session and unleashed it on the world yesterday. I share it with you below:</p>
<p align="center"><object width="600" height="338"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=8657309&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=8657309&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="338"></embed></object></p>
<p>If you watched the video, you’ll note that I skipped a couple of stories, namely “learning Python at Burning Man”, “messy office romances”, “go-go dancing” and making a Microsoft Vice President run away in fear. I’ll save those for another presentation. (By the bye, the guy I made run away is a President now.)</p>
<p>I had a blast doing this presentation, and the general consensus of the attendees was that it was one of the highlights of the conference. I’m honoured that I was invited back to host DemoCamp, and look forward to chatting with everyone. See you in Montreal!</p>
<p class="alert">This article also appears in Canadian Developer Connection.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/19/my-presentation-at-cusec-2009-squeezeboxes-start-ups-and-selling-out-a-tech-evangelists-story/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CUSEC 2010: Montreal, January 21 &#8211; 23</title>
		<link>http://www.globalnerdy.com/2010/01/18/cusec-2010-montreal-january-21-23/</link>
		<comments>http://www.globalnerdy.com/2010/01/18/cusec-2010-montreal-january-21-23/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 08:28:32 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Montreal]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2010/01/18/cusec-2010-montreal-january-21-23/</guid>
		<description><![CDATA[ 
For the latter half of this week, I’ll be at CUSEC – the Canadian University Software Engineering Conference – the annual Montreal-based conference by and for Canadian university students interested in topics on software development and engineering. For a conference that’s aimed at students, it punches above its weight class, having hosted some big [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://2010.cusec.net/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="CUSEC 2010 logo" border="0" alt="CUSEC 2010 logo" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2010/01/cusec2010logo.jpg" width="559" height="165" /></a> </p>
<p><strong>For the latter half of this week, I’ll be at <a href="http://2010.cusec.net/">CUSEC – the Canadian University Software Engineering Conference</a></strong> – the annual Montreal-based conference by and for Canadian university students interested in topics on software development and engineering. For a conference that’s aimed at students, it punches above its weight class, having hosted some big name speakers including:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Richard_Stallman">Richard M. Stallman</a> (last year, in a presentation where <a href="http://www.globalnerdy.com/2009/01/26/winning-the-gnu/">I won the auction for a Free Software Foundation plush gnu and offered to pay for it with my Microsoft corporate credit card</a>) </li>
<li><a href="http://en.wikipedia.org/wiki/David_Parnas">David Parnas</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Kathy_Sierra">Kathy Sierra</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Ralph_Johnson">Ralph Johnson</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Alistair_Cockburn">Alistair Cockburn</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Dave_Thomas_(programmer)">Dave Thomas</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Tim_Bray">Tim Bray</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Zed_Shaw">Zed Shaw</a> </li>
<li><a href="http://en.wikipedia.org/wiki/Jeff_Atwood">Jeff Atwood</a> </li>
</ul>
<p>This year’s speaker list is pretty good. Among them are:</p>
<ul>
<li><strong><a href="http://crockford.com/">Douglas Crockford</a>, Senior JavaScript Architect at Yahoo!.</strong>&#160; If you truly want to understand JavaScript, listen to this guy! When people were dismissing JavaScript as a toy language – a strange concept in these Ajax-powered days, but this really was the case – he wrote articles like <em><a href="http://javascript.crockford.com/javascript.html">JavaScript: The Wrrrld’s Most Misunderstood Programming Language</a></em> and other must-read pieces, all of which live at <a href="http://javascript.crockford.com/">javascript.crockford.com</a>. He’s also the author of the book <em>JavaScript: The Good Parts</em>, which is required reading for web developers. I had the pleasure of meeting him and seeing him speak at the Ajax Experience conference in Boston in 2006, and he’s both a great presenter and guy to hang out with at apres-conference events. </li>
<li><strong><a href="http://pyre.third-bit.com/">Greg Wilson</a>, Assistant Professor at U of T.</strong> Greg is many things: much-sought-after provider to academic advice and support at U of T, co-editor of <em><a href="http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047">Beautiful Code</a></em>, DemoCamp Toronto steward, and now, the guy behind the best presentation at the Stack Overflow DevDays Toronto: Bits of Evidence: What We Actually Know About Software and Why We Believe It’s True. It was the presentation so nice, he’s doing it twice – this time at CUSEC. Don’t miss this one! </li>
<li><strong><a href="http://reginald.braythwayt.com/">Reg Braithwaite</a>, Superprogrammer-at-large.</strong> Whether you know him as “Reg” or “raganwald”, you know that he’s got some seriously big-ass ideas about programming. Very few people push Ruby metaprogramming to its limits the way he does. Every time I see one of his presentations, I come out a little bit smarter. </li>
<li><strong><a href="http://twitter.com/peteforde">Pete Forde</a>, Unspace.</strong> Pete’s one of the “corporate speakers”, a designation that probably makes him feel very uncomfortable. He’s one of the guys behind the Toronto-based development shop Unspace and behind two of the best conferences I’ve ever attended, RubyFringe (2008) and FutureRuby (2009). It’s anyone’s guess as to what he’ll talk about, but it should be good, and we can only hope that he begins it with a dance number, <a href="http://vimeo.com/4100101">like he did with his presentation at the Mesh 2009 conference</a>. </li>
<li><strong><a href="http://twitter.com/hypatiadotca">Leigh Honeywell</a>, Symantec.</strong> Leigh has forgotten more about security than I will ever learn, and she’s also one of the founders of <a href="http://hacklab.to">HacklabTO</a>, the Toronto “hackerspace”. </li>
</ul>
<p>I had the opportunity to speak at last year’s CUSEC and had a wonderful time both speaking and hanging out with the students. I love the conference vibe – the energy, brainpower and passion of the attendees is palpable, and it makes me optimistic for the future of tech in Canada. I’m only too glad to be able to attend this year, and I’m honoured to be invited to host <a href="http://2010.cusec.net/01-07/cusec-wants-you-to-show-off-your-stuff/">their DemoCamp event, which will take place Thursday evening</a>.</p>
<p>I’ll be filing reports from CUSEC, so watch this space!</p>
<p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2010/01/18/cusec-2010-montreal-january-21-23.aspx">This article also appears in <em>Canadian Developer Connection</em>.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2010/01/18/cusec-2010-montreal-january-21-23/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gnu&#8217;s Night Out</title>
		<link>http://www.globalnerdy.com/2009/01/27/gnus-night-out/</link>
		<comments>http://www.globalnerdy.com/2009/01/27/gnus-night-out/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 05:00:19 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[plush gnu]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/27/gnus-night-out/</guid>
		<description><![CDATA[Suppose you’re a plush Free Software Foundation animal and you’ve just arrived in Montreal and “gnu” in town. What do you do? You hang out the with speakers and university delegates from the CUSEC conference for a night on the town!
For dinner, we went to L’Academie on Crescent Street, a restaurant where the food is [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><strong><a href="http://www.globalnerdy.com/2009/01/26/winning-the-gnu/">Suppose you’re a plush Free Software Foundation animal and you’ve just arrived in Montreal and “gnu” in town.</a></strong> What do you do? You hang out the with speakers and university delegates from the CUSEC conference for a night on the town!</p>
<p>For dinner, we went to <a href="http://www.lacademie.ca/Crescent.htm">L’Academie</a> on Crescent Street, a restaurant where the food is prepared by student chefs training to work in three- and four-star restaurants. Here’s the gnu enjoying some Masi:</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="My plush gnu with a glass of red wine" border="0" alt="My plush gnu with a glass of red wine" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/gnu-and-wine.jpg" width="450" height="600" /></p>
<p>Afterwards, it was off to <a href="http://www.brutopia.net/">Brutopia</a> for an evening of fun and drinking games: </p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="My plush gnu with a glass of oatmeal stout" border="0" alt="My plush gnu with a glass of oatmeal stout" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/gnu-and-stout-1.jpg" width="600" height="450" /> </p>
<p>Brutopia make a wonderful oatmeal stout. I think the gnu’s glad he joined the Dark Beer Side!</p>
<p><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="My plush gnu with a glass of oatmeal stout" border="0" alt="My plush gnu with a glass of oatmeal stout" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/gnu-and-stout-2.jpg" width="450" height="600" /> </p>
<p>I’m going to take the gnu on my trip to Seattle next week, where I’ll be attending Microsoft’s <a href="http://en.wikipedia.org/wiki/Techready">Techready</a> internal conference (after searching him for FSF listening devices, of course). Watch this blog for photos of the gnu’s tour of the city, and maybe even the offices in Redmond!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/27/gnus-night-out/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Winning the Gnu</title>
		<link>http://www.globalnerdy.com/2009/01/26/winning-the-gnu/</link>
		<comments>http://www.globalnerdy.com/2009/01/26/winning-the-gnu/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 07:42:39 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Funny]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[Richard Stallman]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/26/winning-the-gnu/</guid>
		<description><![CDATA[The CUSEC convention’s last keynote speech was Richard Stallman’s presentation titled Copyright vs. Community in the Age of Computer Networks. It’s similar to the one he gave at the University of Toronto in the summer of 2007; you can see my detailed notes on that presentation here.
At the end of his keynote, he declared an [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The <a href="http://2009.cusec.net/">CUSEC</a> convention’s last keynote speech was <strong><a href="http://en.wikipedia.org/wiki/Richard_Stallman">Richard Stallman’s</a></strong> presentation titled <em>Copyright vs. Community in the Age of Computer Networks</em>. It’s similar to the one he gave at the University of Toronto in the summer of 2007; you can see my detailed notes on that presentation <a href="http://www.globalnerdy.com/2007/07/06/richard-m-stallman-copyright-vs-community-in-the-age-of-computer-networks/">here</a>.</p>
<p>At the end of his keynote, he declared an auction, the proceeds of which would go to the <a href="http://fsf.org">Free Software Foundation</a> (I heard a couple of people say “Yeah, right” behind me). The first item up for auction was a hardcover copy of his book <em><a href="http://www.amazon.com/Free-Software-Society-Selected-Stallman/dp/1882114981">Free Software, Free Society</a></em>. I already own an autographed edition, so I wasn’t interested in bidding. </p>
<p>He started the bidding at CAD$40; someone from the audience yelled out “we’re <em>students!”</em>. Oblivious to the remark, the bidding continued and the book sold for somewhere close to a hundred dollars.&#160; </p>
<p>With the book sold, he then showed the audience the next item for auction: a plush <a href="http://en.wikipedia.org/wiki/Wildebeest">gnu</a>, the mascot of the Free Software Foundation:</p>
<p style="text-align: center"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="stallman_showing_gnu" border="0" alt="stallman_showing_gnu" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallman-showing-gnu.jpg" width="500" height="375" />     <br /><span class="caption"><strong>Stallman shows off the plush gnu for auction.</strong>       <br />Photo by Matthew Gallant.</span></p>
<p>“You should totally bid for that!” someone behind me said. I’d been thinking the same thing. </p>
<p>As with the book, the bidding started at student-unfriendly 40 dollars. When the price hit $60, I threw my hat in the ring.</p>
<p>“Sixty-five!”</p>
<p>The room burst out in laughter. They’d seen my presentation yesterday and knew I worked for Microsoft, long a major figure in the Free Software Foundation’s demonology.</p>
<p>“You should know that he’s with Microsoft!” someone in the audience said to Stallman.</p>
<p>“There <em>are </em>anti-animal cruelty laws,” said Stallman, facing in my direction.</p>
<p>“You have The Empire’s assurance that no harm will come to him,” I replied.</p>
<p>The bids continued. For every bid that came in, I immediately countered with one that was $5 higher.</p>
<p>“Seventy!”</p>
<p>“Seventy-five!”</p>
<p>“Eighty!”</p>
<p>“Eighty-five!”</p>
<p>By this point, the room was really getting into the bidding war. Would the Microsoftie actually win the auction for the symbol of the organization that views it as The Great Satan?</p>
<p>And up the bids went until I said “One hundred.” Just to underscore my intent on getting that gnu, I bid again. “One hundred five.”</p>
<p>“Going once…” said Stallman, “…twice…SOLD! For one hundred and five dollars.”</p>
<p>I walked up to the stage to loud applause.</p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/hyfen/3227135521/in/set-72157612995984836/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Richard Stallman, Joey deVilla and the plush gnu at CUSEC 2009" border="0" alt="Richard Stallman, Joey deVilla and the plush gnu at CUSEC 2009" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallmandevilla-1.jpg" width="400" height="600" /></a>     <br /><span class="caption"><strong>I go onstage to claim my prize.</strong>       <br />Photo by Andrew Louis.</span></p>
<p><span class="caption">Stallman seemed a tiny bit confused as to why someone from Microsoft would even want a gnu, never mind pay that much money for one.</span></p>
<p><span class="caption">“You <em>do </em>promise to obey anti-animal cruelty laws?” he asked again, as if it were a real flesh-and-blood gnu.</span></p>
<p><span class="caption">“I won’t harm a hair on its head. I <em>do</em> come from the Free Software world,” I replied, being careful not to call it the “Open Source” world. I didn’t want to give him any reason to cancel the sale.</span></p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/hyfen/3227137421/in/set-72157612995984836/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Richard Stallman and Joey deVilla onstage at CUSEC 2009" border="0" alt="Richard Stallman and Joey deVilla onstage at CUSEC 2009" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallmandevilla-2.jpg" width="400" height="600" /></a>     <br /><span class="caption"><strong>I give Stallman my word that no harm will come to the GNU.</strong>       <br />Photo by Andrew Louis.</span></p>
<p>I pulled out my Microsoft corporate credit card. I held it up and asked the audience: “D’you think I should pay with this?”</p>
<p style="text-align: center"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Joey deVilla showing his Microsoft corporate credit card to Richard Stallman" border="0" alt="Joey deVilla showing his Microsoft corporate credit card to Richard Stallman" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/paying-stallman-with-ms-corp-card-thumb.jpg" width="600" height="450" />     <br /><span class="caption"><strong>“Can I pay for it with my Microsoft corporate credit card?”</strong></span></p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/hyfen/3227992312/in/set-72157612995984836/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Joey deVilla showing the Microsoft credit card to the CUSEC 2009 audience" border="0" alt="Joey deVilla showing the Microsoft credit card to the CUSEC 2009 audience" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallmandevilla-3.jpg" width="400" height="600" /></a>     <br /><span class="caption"><strong>Asking the audience if I should pay with my Microsoft corporate credit card.</strong>       <br />Photo by Andrew Louis.</span></p>
<p>That got a good laugh from the audience.</p>
<p>(In the end, since I was buying the gnu for myself and not Microsoft, I paid for it in cash. But as long as I was up there, why not milk the event for all it was worth?)</p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/hyfen/3227995082/in/set-72157612995984836/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Joey deVilla and the Microsoft credit card" border="0" alt="Joey deVilla and the Microsoft credit card" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallmandevilla-4.jpg" width="400" height="600" /></a>     <br /><span class="caption"><strong>“The Microsoft corporate card. Don&#8217;t culture-jam the FSF without it.”</strong>       <br />Photo by Andrew Louis.</span></p>
<p>Using my best Darth Vader impression, I extended my hand out to Stallman and said “Join me, Stallman, and together we shall bring order to the galaxy!”, which got a good laugh.</p>
<p style="text-align: center"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Me inviting Stallman to join the Dark Side" border="0" alt="Me inviting Stallman to join the Dark Side" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/join-the-dark-side.jpg" width="600" height="450" />     <br /><span class="caption"><strong>&quot;Join the Dark Side, Stallman, and together we shall bring order to the galaxy!&quot;</strong></span></p>
<p>At the end of the conference, I walked up to Stallman, who was selling Free Software Foundation paraphernalia at the registration table. I asked him for his autograph, which he gladly provided on the plush gnu’s tag. “Happy hacking! Richard Stallman,” it read.</p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/hyfen/3227996280/in/set-72157612995984836/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Joey deVilla gets Richard Stallman to autograph the gnu&#39;s tag" border="0" alt="Joey deVilla gets Richard Stallman to autograph the gnu&#39;s tag" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/stallmandevilla-5.jpg" width="600" height="400" /></a>    <br /><span class="caption"><strong>Getting Stallman&#8217;s autograph after the keynote.</strong>      <br />Photo by Andrew Louis.</span></p>
<p>I did it all in the name of fun and also to show that Microsoft people have a sense of humour. I was also more than happy to hand over some money to the Free Software Foundation as a way of saying thanks for all the things they’ve done for developers – myself included – over the years.</p>
<p>As for the gnu, I plan to take it out from time to time, posing it for photographs just as the <a href="http://en.wikipedia.org/wiki/Travelling_gnome_prank">travelling garden gnome</a> is.</p>
<p>I’ll close with a couple of close-up shots of the gnu:</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Plush gnu on top of my travelling accordion" border="0" alt="Plush gnu on top of my travelling accordion" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/gnu-accordion-1.jpg" width="450" height="600" /></p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Plush gnu on top of my accordion" border="0" alt="Plush gnu on top of my accordion" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/gnu-accordion-2.jpg" width="450" height="600" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/26/winning-the-gnu/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>My Favourite Slides from Francis Hwang&#8217;s Presentation at CUSEC</title>
		<link>http://www.globalnerdy.com/2009/01/24/my-favourite-slides-from-francis-hwangs-presentation-at-cusec/</link>
		<comments>http://www.globalnerdy.com/2009/01/24/my-favourite-slides-from-francis-hwangs-presentation-at-cusec/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 20:20:51 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Francis Hwang]]></category>
		<category><![CDATA[photos]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[slides]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/24/my-favourite-slides-from-francis-hwangs-presentation-at-cusec/</guid>
		<description><![CDATA[ 
&#160;

]]></description>
			<content:encoded><![CDATA[<p></p><p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: &quot;Programming is a big world. You have choices.&quot;" border="0" alt="Slide: &quot;Programming is a big world. You have choices.&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/francis-hwang-slide-3.jpg" width="600" height="540" /> </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: &quot;Q: How is a brain surgeon a kind of artist? A: Why would I want to be an artist? I&#39;m a fucking brain surgeon.&quot;" border="0" alt="Slide: &quot;Q: How is a brain surgeon a kind of artist? A: Why would I want to be an artist? I&#39;m a fucking brain surgeon.&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/francis-hwang-slide-1.jpg" width="600" height="535" />&#160;</p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Slide: &quot;Live some of your life outside of the nerd ghetto.&quot;" border="0" alt="Slide: &quot;Live some of your life outside of the nerd ghetto.&quot;" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/francis-hwang-slide-2.jpg" width="600" height="532" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/24/my-favourite-slides-from-francis-hwangs-presentation-at-cusec/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pub Night Tonight at Benelux in Montreal</title>
		<link>http://www.globalnerdy.com/2009/01/22/pub-night-tonight-at-benelux-in-montreal/</link>
		<comments>http://www.globalnerdy.com/2009/01/22/pub-night-tonight-at-benelux-in-montreal/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 15:56:26 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Montreal]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/22/pub-night-tonight-at-benelux-in-montreal/</guid>
		<description><![CDATA[ 
From tonight until Sunday morning, I’ll be in Montreal for CUSEC, the Canadian University Software Engineering Conference. If you want to catch up with me, I’ll be at tonight’s CUSEC Pub Night, which takes place at Benelux (245 Sherbrooke Street West) starting at 9 p.m.. See you there!
]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.martiniboys.com/Montreal/Benelux-Brasserie-Artisanale-et-Caf%E9-review.html"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Benelux brasserie artisnale et cafe" border="0" alt="Benelux brasserie artisnale et cafe" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/benelux1.jpg" width="400" height="300" /></a> </p>
<p>From tonight until Sunday morning, I’ll be in Montreal for <a href="http://2009.cusec.net/"><strong>CUSEC</strong></a>, the Canadian University Software Engineering Conference. If you want to catch up with me, I’ll be at tonight’s CUSEC Pub Night, which takes place at <a href="http://www.martiniboys.com/Montreal/Benelux-Brasserie-Artisanale-et-Caf%E9-review.html">Benelux</a> (<a href="http://maps.live.com/default.aspx?v=2&amp;FORM=LMLTCP&amp;cp=45.509353~-73.570788&amp;style=r&amp;lvl=14&amp;tilt=-90&amp;dir=0&amp;alt=-1000&amp;phx=0&amp;phy=0&amp;phscl=1&amp;where1=245%20Sherbrooke%20Street%20West%2C%20Montreal%2C%20QC&amp;encType=1">245 Sherbrooke Street West</a>) starting at 9 p.m.. See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/22/pub-night-tonight-at-benelux-in-montreal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fogcouver!</title>
		<link>http://www.globalnerdy.com/2009/01/22/fogcouver/</link>
		<comments>http://www.globalnerdy.com/2009/01/22/fogcouver/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 08:11:05 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[Cloud City]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[fog]]></category>
		<category><![CDATA[Millennium Falcon]]></category>
		<category><![CDATA[Vancouver]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/22/fogcouver/</guid>
		<description><![CDATA[I’m flying out of Vancouver this morning to my next stop – Montreal, where I will be speaking at CUSEC, the Canadian University Software Engineering Conference. There, I’ll deliver my presentation, titled Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist’s Story.
Vancouver has been covered in fog for the past couple of weeks. They’re close to [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I’m flying out of Vancouver this morning to my next stop – <a href="http://en.wikipedia.org/wiki/Montreal">Montreal</a>, where I will be speaking at <strong><a href="http://2009.cusec.net/">CUSEC</a></strong>, the Canadian University Software Engineering Conference. There, I’ll deliver my presentation, titled <a href="http://www.globalnerdy.com/2009/01/17/cusec-the-canadian-university-software-engineering-conference/"><em><strong>Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist’s Story</strong></em></a>.</p>
<p>Vancouver has been covered in fog for the past couple of weeks. <a href="http://www.bclocalnews.com/vancouver_island_south/victorianews/news/38027914.html">They’re close to the record number of days of the pea-soup-thick variety of fog</a>, as shown in the photo below:</p>
<p style="text-align: center"><a href="http://www.flickr.com/photos/adrianeden/3218223173/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Photo of Vancouver skyline mostly obscured by fog" border="0" alt="Photo of Vancouver skyline mostly obscured by fog" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/fogcouver-thumb.jpg" width="600" height="400" /></a>     <br /><span class="caption"><strong>Photo by Adrian Eden.</strong>Click the photo to see it on its Flickr page.</span></p>
<p>I think that this photo needs a teensy bit of editing:</p>
<p style="text-align: center"><a href="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/fogcouver-millenium-falcon.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="The same photo, but with the Millennium Falcon photshopped in" border="0" alt="The same photo, but with the Millennium Falcon photshopped in" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/fogcouver-millenium-falcon-thumb.jpg" width="600" height="252" /></a>     <br /><span class="caption">Click the photo to see it at full size.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/22/fogcouver/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>CUSEC: The Canadian University Software Engineering Conference</title>
		<link>http://www.globalnerdy.com/2009/01/17/cusec-the-canadian-university-software-engineering-conference/</link>
		<comments>http://www.globalnerdy.com/2009/01/17/cusec-the-canadian-university-software-engineering-conference/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 06:42:48 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Montreal]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/17/cusec-the-canadian-university-software-engineering-conference/</guid>
		<description><![CDATA[This story originally appeared in Canadian Developer Connection.
 CUSEC, the Canadian University Software Engineering Conference, takes place next week in Montreal, from Thursday, January 22nd through Saturday, January 24th. It’s the only software development conference I’m aware of that’s specifically aimed at students, and like the best conferences I’ve attended, it’s put together by computer [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/01/17/cusec-the-canadian-university-software-engineering-conference.aspx">This story originally appeared in <cite>Canadian Developer Connection</cite>.</a></p>
<p><a href="http://2009.cusec.net/"><img style="border-right-width: 0px; margin: 0px 0px 10px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="CUSEC 2009 conference logo" border="0" alt="CUSEC 2009 conference logo" align="right" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/cusec-2009-logo.jpg" width="230" height="159" /></a> <strong><a href="http://2009.cusec.net/">CUSEC, the Canadian University Software Engineering Conference</a></strong>, takes place next week in Montreal, from Thursday, January 22nd through Saturday, January 24th. It’s the only software development conference I’m aware of that’s specifically aimed at students, and like the best conferences I’ve attended, it’s put together by computer science and software engineering students who are passionate about software. </p>
<p>They’ve managed to snag some big names to speak; past guests include <a href="http://www.tbray.org/ongoing/">Tim Bray</a>, <a href="http://pragdave.pragprog.com/">Dave “Pragmatic Programmer” Thomas</a>, <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent “Extreme Programming” Beck</a>, <a href="http://www.zedshaw.com/">Zed Shaw</a>, <a href="http://www.codinghorror.com">Jeff “Coding Horror” Atwood</a> and <a href="http://headrush.typepad.com/">Kathy “Creating Passionate Users” Sierra</a>. This year, they’ve got <a href="http://2009.cusec.net/speakers">an interesting set of speakers</a>, including <strong><a href="http://leahculver.com/">Leah Culver</a></strong>, former lead developer of Pownce and now working at Six Apart, and <strong><a href="http://en.wikipedia.org/wiki/Richard_Stallman">Richard M. Stallman</a></strong>, founder of the Free Software Foundation.</p>
<p>Here’s the abstract for my presentation, which takes place on Friday at 4:30:</p>
<blockquote><p><strong>Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist&#8217;s Story</strong></p>
<p>You&#8217;ll spend anywhere from a third to half (or more) of your waking life at work, so why not enjoy it? That&#8217;s the philosophy of Microsoft Developer Evangelist Joey deVilla, who&#8217;s had fun while paying the rent. He&#8217;ll talk about his career path, which includes coding in cafes, getting hired through your blog, learning Python at Burning Man, messy office romances, go-go dancing, leading an office coup against his manager, interviewing at a porn company and using his accordion to make a Microsoft Vice President run away in fear. There will be stories, career advice and yes, a rock and roll accordion number or two.</p>
</blockquote>
<p>I’ll be flying into Montreal Thursday afternoon, so the first event I’ll be able to catch is the pub night at BENELUX at 9 that evening. If you’re attending – and it’s dirt cheap at the early-bird price of CAD$60 – I’d love to meet you! As the guy carrying a red accordion, I’ll be quite easy to spot, and I’d be more than happy to chat.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/17/cusec-the-canadian-university-software-engineering-conference/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Want to Catch Up in Vancouver or Montreal Next Week?</title>
		<link>http://www.globalnerdy.com/2009/01/15/want-to-catch-up-in-vancouver-or-montreal-next-week/</link>
		<comments>http://www.globalnerdy.com/2009/01/15/want-to-catch-up-in-vancouver-or-montreal-next-week/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 14:05:42 +0000</pubDate>
		<dc:creator>Joey deVilla</dc:creator>
				<category><![CDATA[Meetups]]></category>
		<category><![CDATA[What Joey Did]]></category>
		<category><![CDATA[CUSEC]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Montreal]]></category>
		<category><![CDATA[speaking gigs]]></category>
		<category><![CDATA[TechDays]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[Vancouver]]></category>

		<guid isPermaLink="false">http://www.globalnerdy.com/2009/01/15/want-to-catch-up-in-vancouver-or-montreal-next-week/</guid>
		<description><![CDATA[This article was originally published in Canadian Developer Connection.

Next week’s a travel week for me and a fair number of the Developer &#38; Platform Evangelism team. On Wednesday, January 21st and Thursday, January 22nd, we’ll be at TechDays Canada Vancouver, the last leg of our cross-Canada tour where we show Microsoft developers how to best [...]]]></description>
			<content:encoded><![CDATA[<p></p><p class="alert"><a href="http://blogs.msdn.com/cdndevs/archive/2009/01/15/want-to-catch-up-in-vancouver-or-montreal-next-week.aspx">This article was originally published in <em>Canadian Developer Connection</em>.</a><em></em></p>
<p><a href="http://flickr.com/photos/footloosiety/2439015313/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Vancouver Convention Centre" border="0" alt="Vancouver Convention Centre" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/vancouver-convention-centre.jpg" width="600" height="203" /></a></p>
<p>Next week’s a travel week for me and a fair number of the Developer &amp; Platform Evangelism team. On Wednesday, January 21st and Thursday, January 22nd, we’ll be at <strong><a href="http://www.microsoft.com/canada/techdays/sessions.aspx?city=Vancouver">TechDays Canada Vancouver</a></strong>, the last leg of our cross-Canada tour where we show Microsoft developers how to best make use of today’s Microsoft tech and development tools. I myself will be do the <strong><em>Deep Dive into ASP.NET AJAX</em></strong> presentation (I’ll post a little more about this tomorrow) on Wednesday, and on Thursday, I fly to… </p>
<p><a href="http://flickr.com/photos/anirudhkoul/788832193/"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Montreal Skyline" border="0" alt="Montreal Skyline" src="http://www.globalnerdy.com/wordpress/wp-content/uploads/2009/01/montreal-skyline.jpg" width="600" height="203" /></a></p>
<p>&#8230;Montreal, where I’ll be attending <strong><a href="http://2009.cusec.net/">CUSEC</a></strong>, the Canadian University Software Engineering Conference, where I’ll be giving a presentation titled <strong><em>Squeezeboxes, Start-Ups and Selling Out: A Tech Evangelist’s Story</em></strong>. CUSEC runs from Thursday, January 22nd through Saturday, January 24th. Once again, I’ll post a little more about this presentation tomorrow.</p>
<p>If you’d like to catch up with me at either of these cities, get in touch with me! <a href="mailto:joey.devilla@microsoft.com">Send me an email</a>, <a href="http://twitter.com/AccordionGuy">message me at Twitter</a>, or give me a ring on my mobile (416-948-6447). I’ll be staying in Vancouver at the Fairmont Waterfront on Tuesday and Wednesday nights and in Montreal at the Omni Mont-Royal (the conference hotel) from Thursday through Saturday nights.&#160; </p>
<p>[<a href="http://flickr.com/photos/footloosiety/2439015313/">Vancouver Convention Centre</a> photo by <a href="http://flickr.com/photos/footloosiety/">Footloosiety</a>; <a href="http://flickr.com/photos/anirudhkoul/788832193/">Montreal skyline photo</a> by <a href="http://flickr.com/photos/anirudhkoul/">Anirudh Koul</a>. Both photos are licensed for reuse, commercial use and remixing under <a href="http://creativecommons.org/">Creative Commons</a>.]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.globalnerdy.com/2009/01/15/want-to-catch-up-in-vancouver-or-montreal-next-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
