<?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>Just wondering.... &#187; how to</title>
	<atom:link href="http://sworddance.com/blog/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://sworddance.com/blog</link>
	<description></description>
	<lastBuildDate>Tue, 17 Jan 2012 05:07:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Excellent Css tools</title>
		<link>http://sworddance.com/blog/2011/07/03/excellent-css-tools/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=excellent-css-tools</link>
		<comments>http://sworddance.com/blog/2011/07/03/excellent-css-tools/#comments</comments>
		<pubDate>Sun, 03 Jul 2011 17:48:00 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://sworddance.com/blog/?p=996</guid>
		<description><![CDATA[Here are some websites I have found useful when learning css: http://css-tricks.com/ http://quirksmode.org http://www.css3.info/ Css3 tutorial via Css Tricks: CSS3Please.com Border-Radius.com HTML-Ipsum.com Button Maker Update ( 28 July 2011 ) : Now for some excellent tools: Sass (http://sass-lang.com ) Compass &#8230; <a href="http://sworddance.com/blog/2011/07/03/excellent-css-tools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here are some websites I have found useful when learning css:</p>
<ul>
<li><a href="http://css-tricks.com/">http://css-tricks.com/</a></li>
<li><a href="http://quirksmode.org/">http://quirksmode.org</a></li>
<li><a href="http://www.css3.info/">http://www.css3.info/</a></li>
<li><a href="http://www.w3schools.com/css3/default.asp">Css3 tutorial</a></li>
</ul>
<p>via <a href="http://css-tricks.com/12389-one-page-apps-i-actually-use/">Css Tricks</a>:</p>
<ul>
<li><a href="http://CSS3Please.com">CSS3Please.com</a></li>
<li><a href="http://Border-Radius.com">Border-Radius.com</a></li>
<li><a href="http://HTML-Ipsum.com">HTML-Ipsum.com</a></li>
<li><a href="http://css-tricks.com/examples/ButtonMaker/">Button Maker</a></li>
</ul>
<p>Update ( 28 July 2011 ) :</p>
<p>Now for some excellent tools:</p>
<ul>
<li><a href="http://sass-lang.com" title="Sass for easy css" target="_blank">Sass (http://sass-lang.com )</a></li>
<li><a href="http://compass-style.org" title="Compass framework" target="_blank">Compass (http://compass-style.org )</a> Compass builds off of Sass to provide cross browser frameworks.</li>
<li><a href="http://css3pie.com/" title="Css3 for IE6-8" target="_blank">Css3Pie</a> Provides Css3 support (of a sort) for IE 6-8. <a href="http://compass-style.org/reference/compass/css3/pie/" title="Compass Css3Pie integration" target="_blank">Compass integration is available.</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2011/07/03/excellent-css-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is wrong with the Crazy Baker website?</title>
		<link>http://sworddance.com/blog/2010/11/26/what-is-wrong-with-the-crazy-baker-website/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-wrong-with-the-crazy-baker-website</link>
		<comments>http://sworddance.com/blog/2010/11/26/what-is-wrong-with-the-crazy-baker-website/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 08:21:04 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[facebook]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[starting a company]]></category>

		<guid isPermaLink="false">http://sworddance.com/blog/?p=746</guid>
		<description><![CDATA[Via the New York Times, Mr. Hitzig, aka the Crazy Baker, made an appeal to the world to help with the question, &#8220;Why is the Crazy Baker getting such low conversion?&#8221;: Mr. Hitzig is savvy when it comes to Web &#8230; <a href="http://sworddance.com/blog/2010/11/26/what-is-wrong-with-the-crazy-baker-website/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Via the <a href="http://boss.blogs.nytimes.com/2010/11/24/whats-wrong-with-the-crazy-bakers-web-site/">New York Times</a>, Mr. Hitzig, aka <a href="http://www.thecrazybaker.com/">the Crazy Baker</a>, made an appeal to the world to help with the question, &#8220;Why is the Crazy Baker getting such low conversion?&#8221;:<a href="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-website.jpg"><img src="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-website-150x150.jpg" alt="" title="thecrazybaker-website" width="150" height="150" class="alignright size-thumbnail wp-image-758" /></a></p>
<blockquote><p>Mr. Hitzig is savvy when it comes to Web design and marketing. He has a great domain name. He utilizes social media extensively with presences on Twitter, Facebook, MySpace and LinkedIn. His content management system gives him the power to perform a number of search-engine optimization operations, and he has worked hard to get the best possible online search placements.</p>
<p>But when it comes to selling online — the only metric that really matters — the site thus far has failed to deliver. “We are on our third Web site, and it is definitely the best one yet,” Mr. Hitzig said. “We are actually quite pleased with it. However, our conversion rate is dismal.”</p></blockquote>
<p>As laid out here:</p>
<blockquote><p>But we don’t have to take his word for it. The Crazy Baker has gotten lots of television exposure — with his brownies touted by both Martha Stewart and Rachael Ray. Those mentions drove enormous traffic to the site. But even the people sent by Martha Stewart and Rachael Ray didn’t buy. “A recurring low point,” said Mr. Hitzig, “is when we get a great mention, such as on ‘The Rachael Ray Show,’ and we got a lot of hits, but only one order. We still get hits from the Ray show, but they don’t convert.” So what’s the problem?</p></blockquote>
<p>That then ends with this plea:</p>
<blockquote><p>And please tell us what you think: What are the site’s best and worst features? What’s missing? What’s confusing? What would be the best way to market this site? But most important, please help us answer this question: Why aren’t more people buying the products online?</p></blockquote>
<p>What is wrong? In my opinion, everything except the technology. The marketing person in charge (and probably the web designer) should be fired. </p>
<p>Mr. Hitzig should look in the mirror as well.</p>
<p>These are the issues:</p>
<ol>
<li><strong>Product mix</strong>.  The Crazy Baker is not crazy enough. With a name like Crazy Baker, I am expecting wildly unique products. Instead Crazy Baker sells Brownies. Perhaps very good brownies, but brownies that look exactly like brownies that I can make myself. Yawn.</li>
<li><strong>Presentation</strong>. Once again with a name like &#8220;Crazy&#8221; Baker, I am not expecting a generic look. Why are you calling yourself &#8220;The Crazy Baker&#8221;?? The story should be on the front page. I am expecting something a little off the wall. Mr. Hitzig should look at <a href="http://woot.com/">woot</a>, <a href="http://www.traderjoes.com/">Trader Joes</a>,  <a href="http://www.zappos.com/">Zappos</a>, and <a href="http://www.blendtec.com/">BlendTec</a> (look at the <a href="http://www.willitblend.com/">&#8220;Will it blend?&#8221;</a> videos) for inspiration. Lose the boring typeface and get a little crazy.</li>
<li><strong>Don&#8217;t bury the reviews.</strong> Customer reviews should not be buried. Look at Zappos&#8217;s website and notice how reviews are promoted to the front page.</li>
<li><strong>Newsletter</strong>. The Crazy Baker asks for an email address to send a newsletter. However,
<ul>
<li>no offer attached to giving an email address &#8211; I suggest a 10% discount on the first order, free shipping, something.</li>
<li>How often is the newsletter being sent?</li>
<li>Are there any specials offered in the newsletter?</li>
<li>Is there any information in the newsletter? For example, baking tips or recipes? Something that would keep a person subscribed until they are ready to buy.</li>
</ul>
</li>
<li><strong>Use of Social Media</strong>
<ul>
<li><strong>Twitter</strong><a href="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-twitter.jpg"><img src="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-twitter-150x150.jpg" alt="" title="thecrazybaker-twitter" width="150" height="150" class="alignright size-thumbnail wp-image-759" /></a> The days of people using twitter to announce bowel movements are over. Business are expected to use twitter to announce special deals, offer timely information, or offers. The <a href="http://twitter.com/Thecrazybaker">CrazyBaker twitter</a> offers no real content or compelling reason to follow.</li>
<li><strong>Facebook</strong>.<a href="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-facebook.jpg"><img src="http://sworddance.com/blog/wp-content/uploads/2010/11/thecrazybaker-facebook-150x150.jpg" alt="" title="thecrazybaker-facebook" width="150" height="150" class="alignright size-thumbnail wp-image-760" /></a> <a href="http://www.facebook.com/TheCrazyBaker">The facebook page</a> is a little better because facebook is a chitchat forum. But it still feels light. There is no real compelling reason to buy anything. Nothing driving a purchase. Mr. Hitzig should consider offers to people who &#8220;like&#8221; the Crazy Baker&#8217;s facebook page.
</li>
</ul>
</li>
<li><strong>Videos</strong>. Mr. Hitzig should realize that he is not selling a visual product, he is selling an olfactory and gustatory product, he needs to convert this aspect of his product to a visual presentation. Specifically, he should create web videos that shows and describes how good the product tastes and smells.  These videos should be authentic (i.e. not staged):
<ul>
<li>how he makes his product,</li>
<li>showing random people appreciating and commenting.</li>
<li>video clips from TV mentions,</li>
<li>how to select quality ingredients (i.e. the ingredients that The Crazy Baker uses)</li>
</ul>
</li>
<li><strong>Reset expectations and ask for help.</strong> Research other food, non-competing companies selling through a web site. What conversion do they see? It could be that the conversion Mr. Hitzig is seeing is in fact quite good for his industry. He should network and ask for suggestions. Perhaps he could start with <a href="http://www.popchips.com/">popchips</a> </li>
<li><strong>No Call To Action</strong>. There should be a daily special with a &#8220;Buy now&#8221; button on the home page.</li>
<li><strong>A/B Testing!</strong> Just because you like the website doesn&#8217;t mean it is better. Try creating different websites (maybe only different in styling) and see which version results in better conversion.</li>
</ol>
<p>However, overall I feel the problem is not with the technology but rather the marketing.</p>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2010/11/26/what-is-wrong-with-the-crazy-baker-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If you don&#8217;t vote, your opinion doesn&#8217;t matter. And sometimes you shouldn&#8217;t vote</title>
		<link>http://sworddance.com/blog/2010/06/24/if-you-dont-vote-your-opinion-doesnt-matter-and-sometimes-you-shouldnt-vote/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=if-you-dont-vote-your-opinion-doesnt-matter-and-sometimes-you-shouldnt-vote</link>
		<comments>http://sworddance.com/blog/2010/06/24/if-you-dont-vote-your-opinion-doesnt-matter-and-sometimes-you-shouldnt-vote/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 17:00:42 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[political]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/?p=632</guid>
		<description><![CDATA[(This post is related to management I promise! ) Robert Cruickshank over at the California HSR Blog whines about Palo Alto&#8217;s &#8220;undemocratic&#8221; democratic process: In short, it is becoming increasingly clear that Palo Alto’s planning and citizen engagement process is &#8230; <a href="http://sworddance.com/blog/2010/06/24/if-you-dont-vote-your-opinion-doesnt-matter-and-sometimes-you-shouldnt-vote/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>(This post is related to management I promise! )</p>
<p><a href="http://www.cahsrblog.com/2010/06/palo-altos-unrepresentative-citizen-engagement-process-distorts-hsr-realities/" rel="nofollow">Robert Cruickshank over at the California HSR Blog whines about Palo Alto&#8217;s &#8220;undemocratic&#8221; democratic process</a>:</p>
<blockquote><p>In short, it is becoming increasingly clear that Palo Alto’s planning and citizen engagement process is a failure, distorting true public opinion by favoring a small, vocal elite at the expense of a silent majority whose opinions are much more supportive of new density and new transportation solutions – but whose voices are rarely ever included in the city’s planning process.</p></blockquote>
<p>Of course, our democratic process requires energy and participation. There are lots of people who chose not to vote because their vote &#8220;will not be effective&#8221;.</p>
<p>Most people are uninformed about this issue, do not ride transit, or have no idea how to build transit effectively. Their opinion should not count as much as the people who are taking the time to inform themselves and to be involved.</p>
<p><em>If someone is not involved, their opinion is probably uninformed and negative.</em></p>
<p><strong>Meetings to planning a company project can be just as bad.</strong></p>
<p>Uninformed people should not be part of the process(<sup>see below</sup>). In<br />
<a href="http://www.inc.com/magazine/20100201/a-little-less-conversation.html" rel="nofollow">an old Inc. article, Joel</a>:</p>
<blockquote><p>When was the last time you scheduled a meeting and invited eight people instead of the three people who really needed to be there simply because you didn&#8217;t want anyone to feel left out?</p>
<p>When was the last time you sent a companywide e-mail that said something like, &#8220;Hey, attention coffee drinkers: If you finish the pot, make another!&#8221; even though there is actually only one person who violates this rule (and she&#8217;s your co-founder)?</p>
<p>When was the last time you got into a long discussion over the color palette for the new brochure with a programmer, who has nothing to do with the brochure but sure knows that he doesn&#8217;t like orange?</p>
<p>These are symptoms of a common illness: too much communication.</p></blockquote>
<p><em>(&#8220;below&#8221;)</em><br />
However, I disagree with Joel&#8217;s assertion that only people whose vote counts should be allowed to attend meetings. Decisions with no visible process result in no buy-in. While a company is not a democracy, and a city is not a company both should learn from each other.</p>
<p>What a company can learn from a city:</p>
<ol>
<li><em>Process does matter.</em> Process means consistency and reliability in how decisions are being made. People know how to voice their opinion. They know that there is a means and method for voicing their opinion. Instead of voicing opinion in an adhoc, disruptive manner &#8211; they can wait until the allocated time. </li>
<li><em>Only some people get a vote.</em> Many people can show up to a city council to express their opinion, but only city council members get a vote. In company meeting, discussion can include everyone &#8211; but predecided ( and preannounce! ) who&#8217;s vote will be counted. For example, if a developer is trying to decide who to best implement a feature. Only his/her, the CTO&#8217;s, QA&#8217;s and customer service rep&#8217;s votes are counted. Others who are not involved, do not get to vote. They can express their opinion but they are not a decision maker (for this issue). Only people expending effort or where the decision has a material impact on their job should be counted.</li>
<li><em>Representatives get &#8220;elected&#8221;</em>. Allow some self-selection in the process. Try to allow the lead representative to be selected by people other than managers. If a developer selected to be the lead in a project makes a decision, this makes it easier for the decision to be respected.</li>
<li><em>Make the discussion observable and inclusive</em> While only some people get a vote, allowing others to learn from the process of making a decision prepares those observers to step into their own decision-making role. It also allows them to take knowledge from one decision-making group to another.</li>
</ol>
<p>What a city can learn from a company:</p>
<ol>
<li><em>Require an energy expenditure to participate.</em> A meeting should only be open to people who have attended the last 5 meetings.</li>
<li><em>Allow adhoc representation.</em> Allow people to represent adhoc groups. For example, allow a person to collect 10+ signatures of his neighbors giving him/her proxy authority to voice their collective opinion. Require that this adhoc representative keep the people she is representing informed of the progress and results. (With power should come responsibility).</li>
<li><em>Allow weighted voting.</em> In a company, the CTO&#8217;s vote counts more than a lowly developer. When voting for a company&#8217;s board of directors&#8217;, shareholders have a vote based on number of shares not a one vote per shareholder. In a city planning process, the &#8220;vocal&#8221; minority may represent no one other than themselves. Let the &#8220;vocal minority&#8221; collect proxy signatures to indicate how strongly their &#8220;silent&#8221; neighbors (who can&#8217;t participate) trust the &#8220;vocal&#8221; people to represent the &#8220;silent&#8221; majorities best interest. The more signatures, the more strongly a &#8220;vocal&#8221; representative&#8217;s vote/opinion should count. Allow certain signatures to be more valuable than others based on the issue. For example, distance to a housing project, transit user&#8217;s opinion on a transit project, etc.</li>
</ol>
<p>Update:</p>
<p>Lastly, learn when you should not vote or participate.</p>
<ol>
<li>If you personally do not have any direct, meaningful, unique knowledge: don&#8217;t participate. Observing is o.k. &#8211; voicing a &#8220;I agree&#8221; content-free vocalization is not o.k.</li>
<li>If you don&#8217;t have the time to stay involved: don&#8217;t sign up and then drop out.</li>
<li>If an issue has no one who cares: then the decision can be made by a single person. Others should insist that that single person make the decision. The sole decision-maker should not need the CYA of a &#8220;group vote&#8221;.</li>
<li>If you cannot expend effort on the solution, then don&#8217;t vote. Note that &#8220;effort&#8221; does not mean &#8220;coding&#8221; or &#8220;making&#8221;</li>
<li>If the decision will not effect how hard your job is, then don&#8217;t vote. If the decision does meaningfully effect your job then you <em>must</em> participate and must vote.</li>
</ol>
<p>There is this temptation to dismiss the concerns of Customer Service or QA people as being less important than that of the development team. This is ass-backwards.</p>
<p>A Customer Service rep will have to deal daily with a bad development decision. Their job satisfaction, their ability to deliver happy customers is daily determined by developers decisions. They must be allowed to participate and must be given a strong voice.</p>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2010/06/24/if-you-dont-vote-your-opinion-doesnt-matter-and-sometimes-you-shouldnt-vote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where to start learning Java if you are a PHP person?</title>
		<link>http://sworddance.com/blog/2010/06/09/where-to-start-learning-java-if-you-are-a-php-person/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=where-to-start-learning-java-if-you-are-a-php-person</link>
		<comments>http://sworddance.com/blog/2010/06/09/where-to-start-learning-java-if-you-are-a-php-person/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 20:07:37 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/?p=630</guid>
		<description><![CDATA[Over at StackOverflow, the question was asked : Where to start with Java when coming from PHP? PHP5 has the concept of objects, interfaces and exceptions. These are similar enough to Java&#8217;s version of objects, interfaces and exceptions for basic &#8230; <a href="http://sworddance.com/blog/2010/06/09/where-to-start-learning-java-if-you-are-a-php-person/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://stackoverflow.com/questions/3002701/where-to-start-learning-java" rel="nofollow">Over at StackOverflow, the question was asked : Where to start with Java when coming from PHP?</a></p>
<p><a href="http://php.net/manual/en/language.oop5.php">PHP5 has the concept of objects, interfaces and exceptions.</a> These are similar  enough to Java&#8217;s version of objects, interfaces and exceptions for basic learning purposes.</p>
<p>Once you get the PHP5 equivalent understood then crossover to Java.</p>
<p>Since everyone starts with a Hello world program,</p>
<ol>
<li>Set up eclipse (J2EE version)</li>
<li>Use the Java tooling to create a new class that is your Hello world.</li>
<li>Figure out the basics of debugging with eclipse</li>
<li>Figure out the basics of objects, interfaces, exceptions and inheritance.</li>
<li>Understand the basic language differences PHP vs. Java&#8217;s</li>
<li>Understand the differences between a static typed language and the dynamic-typed languages that you are used to.</li>
<li>Learn the classes in java.lang.* and java.util.* packages.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2010/06/09/where-to-start-learning-java-if-you-are-a-php-person/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-threaded Homework Problem</title>
		<link>http://sworddance.com/blog/2010/06/01/multi-threaded-homework-problem/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=multi-threaded-homework-problem</link>
		<comments>http://sworddance.com/blog/2010/06/01/multi-threaded-homework-problem/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 17:43:27 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/?p=613</guid>
		<description><![CDATA[Occasionally I have been asked about learning multithreaded programming. My standard suggested problem is to create a &#8220;simplistic&#8221; TCP/IP block ordering library. This is a variant of the standard producer/consumer problem that shows up in interviews. This problem is a &#8230; <a href="http://sworddance.com/blog/2010/06/01/multi-threaded-homework-problem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Occasionally I have been asked about learning multithreaded programming. </p>
<p>My standard suggested problem is to create a &#8220;simplistic&#8221; TCP/IP block ordering library. This is a variant of the standard producer/consumer problem that shows up in interviews. This problem is a standard multiple-producer/multiple-consumer problem with a twist and goes way beyond what can be handled in an interview. </p>
<p><em><strong>Problem #1</strong></em></p>
<p>Use case:</p>
<ul>
<li>each block as a conversation Id and a sequence id within the conversation. </li>
<li>All blocks are received on a single queue.</li>
<li>Blocks are separated by conversation and then ordered by sequence number.</li>
<li>Blocks arrive semi-random order &#8211; the sequence id will be within +/-2 of the previous block (in the same conversation)&#8217;s sequence id. But there will be no gaps in the sequence id for a given conversation.</li>
<li>sequence id 0 starts the conversation, sequence id 99 ends the conversation</li>
</ul>
<p>Sample sequence: (1,0), (1,2), (2,0), (1,3), (2,2), (1,1), (2,1), &#8230;.  </p>
<p><em><strong>Problem #2:</strong></em></p>
<p>Extending Problem #1 with these additional requirements:</p>
<ul>
<li>Conversations where the 0 block has not been seen are discarded.</li>
<li>Blocks may be repeatedly sent. Duplicates are discarded.</li>
<li>Conversations are now buffered when doing the ordering ( represents buffering within the TCP/IP stack )</li>
<li>Each conversation chunk can only hold 3 blocks.</li>
<li>Each buffer when complete is dispatched in order to a dummy thread ( represents the application ) &#8211; which has a random delay and then tests and discards the data.</li>
</ul>
<p>Sample data (for single conversation):</p>
<p>(1,0) <em>- buffer#1</em>; (1, 5)<em> &#8211; buffer#2</em>; (1,6) <em>- buffer#3</em>; (1,1)<em> &#8211; buffer #1</em>; (1,2)<em> -buffer #1 (dispatched)</em>; (1,1)<em> &#8211; duplicate (discarded)</em>; (1,3)<em> &#8211; buffer #2</em>; (1,7)<em> &#8211; buffer #3 ( cannot be dispatched because buffer #2 has not been dispatched)</em>; (1,4)<em> &#8211; buffer #2 and #3 are both dispatched</em>; (1,10)<em> &#8211; buffer #1 is now reavailable</em>; &#8230;.</p>
<p><em><strong>Problem #3:</strong></em></p>
<p>Additional requirements:</p>
<ul>
<li>Each conversation now has the sequence variation by +/-10 (bell curve)</li>
<li>Each conversation (on the consumer side) has only 2 buffers available to it</li>
<li>Blocks that can not be sequentially placed in the conversation buffers are discarded.</li>
<li>When the consumer threads detect 3 failures to complete the buffer, the consumer notifies the producers that the missing block needs to be resent.</li>
<li>Conversations have an indeterminate length. Additional flag signals the last block in the conversation.</li>
<li>Conversations that have not sent data in the last 30 seconds are terminated. All uncompleted buffers are discarded. Any further TCP/IP blocks are discarded.</li>
<li>Producers have a 5 buffers per conversation available</li>
</ul>
<p>Things to look for:</p>
<ul>
<li>Starvation &#8211; conversation is not being processed in spite of buffers being available</li>
<li>Effective I/O rate</li>
<li>Retry rate because of dropped buffers</li>
</ul>
<p><em><strong>Update:</strong></em></p>
<p>Some resource suggestions from <a href="http://nl.linkedin.com/in/ronaldvermeij">Ronald Vermeij</a>:</p>
<blockquote><p>
<a href="http://www.tutorialspoint.com/java/java_multithreading.htm">Simple very basic tutorial</a></p>
<p><a href="http://www.doc.ic.ac.uk/~jnm/book/index.html">Concurrency: State Models &#038; Java Programs Book</a></p>
<ul>
<li><a href="http://www.doc.ic.ac.uk/~jnm/book/slides.html">slides, notes and lectures</a></li>
<li><a href="http://www.doc.ic.ac.uk/~jnm/book/book_applets/concurrency.html">demo programs with GUI interaction and source-codes</a></li>
</ul>
<p><a href="http://refcardz.dzone.com/refcardz/core-java-concurrency">Nice &#8220;Concurrency RefCard&#8221; at Devzone</a></p></blockquote>
<p><em>Update 2</em></p>
<p>The homework problem is actually fiendishly difficult. The problem is similar to a real world problem I had constructing a network switch monitoring program. The switches run a http server on a low priority thread. The http server respond slowly, occasionally they just drop a request. In the test lab, the switches are not under high load but in the field they are. Under high load, the http server may not respond in a timely manner. Different switch models responded differently. Determining the monitoring program&#8217;s response to a switch&#8217;s behavior or (non) behavior was &#8220;interesting&#8221; &#8211; panic and tell the operator that the switch has crashed? Do we delay the failure notification (turning switch status to red)? How often to poll the switch ( we don&#8217;t want to add to the overloaded switch&#8217;s work ). We also had to process the incoming data as fast as possible so the switch doesn&#8217;t drop the connection because the response is not being processed.</p>
<p><em><strong>Extra credit:</strong></em></p>
<ul>
<li>Separate out the producer and consumer portions into 2 different programs</li>
<li>Each conversation is on a separate Java NIO connection</li>
<li>100+ producer threads (in the producer program), 5 consumer threads in the consumer program</li>
<li>each conversation&#8217;s producer produces data at a random rate (will be bursty).</li>
<li>The conversation&#8217;s consumer must consume the produced data fast enough so the producer always has an available buffer to write to ( producer has 2 buffers &#8211; but try reducing the producer&#8217;s available buffers ). Consumer&#8217;s per conversation buffers can be higher than previous problem.</li>
<li>Producer may arbitrarily stop sending data </li>
<li>Use Java NIO</li>
</ul>
<p>Notice: </p>
<ul>
<li>When setting up, the connection the consumer must quickly complete establishment of the connection otherwise the connection will be dropped. [Hint: Have a dedicated consumer thread do just the connection establishment. Many Java NIO sample programs try to have the same thread establish connections and do the read operations those connections.]</li>
<li>Consumer must be aggressive about processing incoming data.</li>
<li>Consumer needs to have a  &#8220;give up and retry&#8221; mechanism</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2010/06/01/multi-threaded-homework-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OSX  &#8212; the most insecure OS around</title>
		<link>http://sworddance.com/blog/2009/08/07/mac-osx-the-most-insecure-os-around/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mac-osx-the-most-insecure-os-around</link>
		<comments>http://sworddance.com/blog/2009/08/07/mac-osx-the-most-insecure-os-around/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 08:35:12 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[broken]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/?p=476</guid>
		<description><![CDATA[A year ago, I gave up on Windows. I was tired of the nervous eggshell feeling with anti-virus software, security patches, and a machine that would mysteriously be slower and slower no matter what I did. Because of MacOSX Unix &#8230; <a href="http://sworddance.com/blog/2009/08/07/mac-osx-the-most-insecure-os-around/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A year ago, I gave up on Windows. I was tired of the nervous eggshell feeling with anti-virus software, security patches, and a machine that would mysteriously be slower and slower no matter what I did.</p>
<p>Because of MacOSX Unix roots, I made the switch to MacOSX confident that my personal computer would be safe.</p>
<p>This faith has been severely shaken. I now regard MacOSX as one of the most INSECURE operation systems.</p>
<p>MacOSX has a dangerous default DNS/DHCP configuration. Even worse, this dangerous configuration can not be fixed from the UI. Even the command line fix is difficult. And worst of all Apple is aware of this and does nothing.</p>
<p>There are 5 bits of background you should know:</p>
<ol>
<li>DNS is a fundamental part of the internet. DNS is the &#8216;name resolution&#8217; service that converts &#8216;mail.google.com&#8217; into the ipaddress: &#8217;74.125.19.19&#8242; which is what your computer really uses to contact GMail servers so you can read your email. This conversion from the human readable &#8216;mail.google.com&#8217; to  &#8217;74.125.19.19&#8242; is analogous to the post office converting the postal address on your snail mail envelope to a Zip+4 encoding that is printed at the bottom of the envelope. This encoding is what is actually read by the postal service mail sorting machines to determine where your snail mail goes. Now imagine that the postal service&#8217;s encoding machine was compromised. This compromised postal encoding machine was changed so that no matter what the Zip+4 code was supposed to be the machine always encoded the location of Dick Cheney&#8217;s house. As a result, all your mail that was processed by that compromised postal service would go first to Dick Cheney. Dick Cheney would get a chance to open all your snail mail, read it, copy it, etc. He could then reseal the original envelope, reencode the envelope with the correct barcode and put the envelope back in the postal service system to be delivered to the correct address.  so that no matter what address you had actually printed on your envelope. All this would happen without you being aware of the problem nor able to stop it from happening.
<p>Everything internet related depends on correct translation of &#8216;apple.com&#8217; or &#8216;bankofamerica.com&#8217; to the correct IP address, not some third party server.  How does the your machine know that it is communicating with apple.com and not some evil server? Your computer relies on the DNS lookup being correct. If the DNS lookup is compromised then when your software update runs to check for the latest security patches it is really installing a virus from evilserver.com not apple.com.</p>
<p>There has been recent concern about DNS spoofing. ( links ). Being the cautious person that I am, I decided to explicitly listed <a href="http://opendns.org">opendns.org</a>&#8216;s DNS servers (208.67.222.222 and 208.67.220.220) as the DNS Servers to trust in my Network configuration. I felt pretty cocky and safe.</li>
<li>The second bit of the puzzle is DHCP. In order to talk to the world, computers need to have their own personal unique ipaddress (it&#8217;s very own ZIP+4 code). Every time you go into an internet cafe and pop open your laptop, your laptop uses the DHCP service to figure out what unique ipaddress (192.168.1.101)  it should use while you are in that cafe. DHCP is nice because otherwise you would have to manually figure out and set an ipaddress for your computer that is different than everyone else&#8217;s laptop. And if someone else picks the same address as you did, all of a sudden your internet connection starts behaving odd. In addition to supplying a ipaddress, the DHCP server also supplies a DNS server that should be used. This is useful when you have your laptop at work and you need to go to an internal website such as http://go/wave Notice there is no &#8216;.org&#8217;, or &#8216;.com&#8217; after &#8216;http://go/&#8217; this means that &#8216;go&#8217; is only visible when you are at work and can access the internal DNS server using the information that the corporate DHCP server supplied to your laptop.
<p>So to summarize DHCP supplies your laptop with the information needed for the world to talk to your laptop ( by assigning an ipaddress to your computer) , and  helps you find out about the world (by telling your computer about the corporate DNS server). DNS servers enables your laptop talk to the world by giving your laptop a &#8216;go-to-machine&#8217; for all its addressing questions.</li>
<li>Third, DNS servers are usually big expensive computers secured by &#8220;smart people&#8221;. However, the DHCP server is really just a bit of software running on a Linksys router at your internet cafe. Your internet cafe&#8217;s Linksys router probably has the default password and no one ever checks on it. There are millions of this routers, with minimal security, no one checking on them and your laptop is trusting these unsecured routers with the keys to your kingdom. Your laptop is asking this router &#8212; &#8220;tell me which DNS server to trust?&#8221;</li>
<li>Fourth, Lets say that you are paranoid enough to say &#8221; ohh this is bad. I am not going to trust such a router in a greasy, dark corner with telling my precious laptop which DNS server to trust.&#8221; So if you are like me you configure your laptop with an explicit list of DNS servers thinking that your laptop, especially your oh-so-secure Mac would never disobey you about something so critical as DNS.</li>
<li>Fifth, you would be wrong. The insecure MacOSX does disobey and it does trust that greasy spoon router over you. MacOsX doesn&#8217;t let the user (YOU!) say that only certain machines are allowed to be your laptop&#8217;s DNS servers! Furthermore even if you have supplied your own custom DNS servers that you trust, the insecure MacOSX trusts the greasy spoon DHCP server&#8217;s DNS servers over your trusted DNS servers. And there is NO way to convince MacOSX otherwise.</li>
</ol>
<p>This means that if the DHCP server at your internet cafe has been compromised you are as well. </p>
<p><strong>How I found out</strong></p>
<p>So here I am feeling all cocky and safe. I type in my company&#8217;s web address, &#8216;amplafi.net&#8217; and amplafi.net resolved to <strong>113.29.236.168</strong> which offered that the website was for sale!&#8230; I freaked out!</p>
<p><img src="http://www.sworddance.com/blog/wp-content/uploads/2009/08/hacked-dns-300x187.jpg" alt="hacked-dns" title="hacked-dns" width="300" height="187" class="alignnone size-medium wp-image-475" /></p>
<p>I discovered my MacOSX laptop  was insisting on trusting these <strong>EVIL DNS servers 206.13.28.12 206.13.31.12</strong> . Was the 10.5.8 OSX patch that was installed 6 hours ago really what it seemed? Who knows? When I installed updates to Firefox plugins was I really installing the correct versions or a compromised version that would report back to some site in Russia all my bank account information? I have no way of knowing.</p>
<p>This is the really scary part about everything.<a href="http://www.macosxhints.com/article.php?story=20080725172011439&#038;mode=print"> John Simpson reports</a>:</p>
<blockquote><p>Under 10.4 and earlier, when I specified a custom nameserver, the system would use only the nameserver(s) I specified. However, under 10.5 Apple has apparently changed that behavior, and uses my specified nameservers in addition to the DNS servers specified by the DHCP server. It shows the DHCP-provided server IP on the list, greyed out, so you can&#8217;t delete it. </p>
<p>For a while, I adopted a &#8220;grin and bear it&#8221; attitude &#8212; after all, the DHCP server at home is handing out the IP of my internal Linux server (also running djbdns) as the DNS server, so I was only unsafe when I used the laptop outside the house. However, with the recently announced <a href="http://www.kb.cert.org/vuls/id/800113">vulnerability in the DNS protocol</a>, <a href="http://it.slashdot.org/it/08/07/08/195225.shtml">the massive world-wide patch effort by major DNS vendors</a>, and the fact that many networks haven&#8217;t applied the patches yet, I don&#8217;t really feel safe relying on anybody else&#8217;s nameservers.</p>
<p><em><strong>I tried calling Apple about this, but it turns out that my AppleCare contract doesn&#8217;t cover technical support such as this.</strong> </em></p>
<p>My next approach was to just brute-force search the system for anything relating to DHCP. It took a while, but I was able to find the file which needed to be changed, and figure out the necessary changes. Basically, I found a file which controls which options are used by the DHCP client when handling a response from a DHCP server. I removed the DNS-related options from this list, and after rebooting the system, the laptop now ignores the DNS server options being sent by the DHCP server. </p>
<p>The file I found is named IPConfiguration.xml, and it&#8217;s buried in this folder: /System/Library/SystemConfiguration/IPConfiguration.bundle/Contents/Resources. You need to create a copy of that file, edit the copy, and remove a few entries in the DHCPRequestedParameterList key. (The entries to remove are those for 6, 15, and 119.) I have added full details on this process to my djbdns setup page, in the section titled Disabling DNS servers from DHCP. </p></blockquote>
<p>Thankfully I found <a href="http://qmail.jms1.net/djbdns/osx.shtml#dhcp-nameserver">this web page from 2008(!) that showed how to fix this problem (thanks John M. Simpson)</a>:</p>
<blockquote><p>
It is possible to make the DHCP client ignore the &#8220;DNS server&#8221; options in the DHCP response. It&#8217;s not for the faint of heart, but if you&#8217;ve been able to handle the rest of the instructions on this page, you can handle this bit as well.</p>
<p>I have done this on my own laptop (a MacBook Pro) and it does work.</p>
<p>Be aware that this is a GLOBAL change. If you do this, your machine will not use the DNS servers specified by any DHCP server. This may affect your machine&#8217;s ability to easily work with corporate networks (especially those using Windows Active Directory) or other networks which use private DNS namespaces.</p>
<pre>
$ sudo -s
Password: You will not see your password as you enter it.
# cd /System/Library/SystemConfiguration/IPConfiguration.bundle/Contents/Resources
# vi IPConfiguration.xml

Find this block...

        &lt;key>DHCPRequestedParameterList&lt;/key>
        &lt;array>
                &lt;integer>1&lt;/integer>
                &lt;integer>3&lt;/integer>
                &lt;integer>6&lt;/integer>
                &lt;integer>15&lt;/integer>
                &lt;integer>119&lt;/integer>
                &lt;integer>95&lt;/integer>
                &lt;integer>252&lt;/integer>
                &lt;integer>44&lt;/integer>
                &lt;integer>46&lt;/integer>
                &lt;integer>47&lt;/integer>
        &lt;/array>
</pre>
<p>Comment out the 6, 15, and 119 entries. The result should look like this:</p>
<pre>
        &lt;key>DHCPRequestedParameterList&lt;/key>
        &lt;array>
                &lt;integer>1&lt;/integer>
                &lt;integer>3&lt;/integer>
                &lt;!-- commented out so that Bad DNS servers coming from DHCP servers
                are not used.
                &lt;integer>6&lt;/integer>
                &lt;integer>15&lt;/integer>
                &lt;integer>119&lt;/integer>
                -->
                &lt;integer>95&lt;/integer>
                &lt;integer>252&lt;/integer>
                &lt;integer>44&lt;/integer>
                &lt;integer>46&lt;/integer>
                &lt;integer>47&lt;/integer>
        &lt;/array>
</pre>
<p>Save your changes.
</p></blockquote>
<p>Be sure to flush the DNS cache.</p>
<p>On MacOsX:</p>
<blockquote><p>dscacheutil -flushcache</p></blockquote>
<p>I have tried John&#8217;s suggestion and those scary DNS servers are no longer present. But has my machine been compromised already? I will be visiting the apple store in a few hours asking for answers.</p>
<p>The story continues. I was sitting next to a customer. On her windows box she was picking up the same bad DNS servers. It wasn&#8217;t until later when I got home that I discovered all this information. I suspect (but am not completely certain) that windows will not override an explicitly specified DNS server.</p>
<p>Update: So after talking with some people, its pretty clear that MacOsX shares this issue with Windows XP because offering out internal DNS servers is part of what DHCP does. However with Windows XP, it is easy to explicitly lock down the DNS servers.  </p>
<p>How to lock down a Windows XP box with safe DNS servers:</p>
<p>On Windows:</p>
<p><img src="http://www.sworddance.com/blog/wp-content/uploads/2009/08/network-connections-step1.JPG" alt="network-connections-step1" title="network-connections-step1" width="803" height="300" class="aligncenter size-full wp-image-490" /></p>
<p><img src="http://www.sworddance.com/blog/wp-content/uploads/2009/08/before-changing-dns-step2.JPG" alt="before-changing-dns-step2" title="before-changing-dns-step2" width="799" height="300" class="aligncenter size-full wp-image-491" /></p>
<p><img src="http://www.sworddance.com/blog/wp-content/uploads/2009/08/use-opendns-dns-servers-step3.JPG" alt="use-opendns-dns-servers-step3" title="use-opendns-dns-servers-step3" width="404" height="300" class="aligncenter size-full wp-image-492" /></p>
<p>To clear Windows DNS cache:</p>
<blockquote><p>ipconfig /flushdns</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2009/08/07/mac-osx-the-most-insecure-os-around/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Third person in the room</title>
		<link>http://sworddance.com/blog/2009/03/14/third-person-in-the-room/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=third-person-in-the-room</link>
		<comments>http://sworddance.com/blog/2009/03/14/third-person-in-the-room/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 05:55:14 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[how to]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[marketing]]></category>
		<category><![CDATA[political]]></category>
		<category><![CDATA[starting a company]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/?p=344</guid>
		<description><![CDATA[Passion is a wonderful thing. When someone is &#8220;wrong&#8221; about a subject that you care passionately about, it is natural to argue with them and try to &#8220;prove&#8221; to them that they are wrong. Don&#8217;t. Mentally step back. Look around. &#8230; <a href="http://sworddance.com/blog/2009/03/14/third-person-in-the-room/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Passion is a wonderful thing.</p>
<p>When someone is &#8220;wrong&#8221; about a subject that you care passionately about, it is natural to argue with them and try to &#8220;prove&#8221; to them that they are wrong.</p>
<p>Don&#8217;t.</p>
<p>Mentally step back. Look around. There is always a third person in the room. Even if that third person doesn&#8217;t look like they are paying attention; they are. </p>
<p>Are you at a party arguing in a corner? The tone of your voices will reach others. The facial expressions will reach others. What are you saying to those other people?</p>
<p>If this is a subject that you really do care passionately about, and the second person also cares passionately, diametrically-opposite opposite to you, neither one is likely to convince the other to change their mind.</p>
<p>The person&#8217;s mind you can change is that third person. The person who is casually observing. The person on the fence who hasn&#8217;t yet made up their mind.</p>
<p>Take the time to use and channel your passion to reach that third person to your side. That is the person you need to persuade. </p>
<p>Focus on being pleasant and reasonable sounding. Not argumentative. Don&#8217;t be dismissive of the person you are directly disagreeing with.</p>
<p>Use curiosity to counter their points. &#8220;I am curious why you feel this way, when &#8230;&#8221; (h/t to <a href="http://influence-integrity.com">Genie Z. Laborde, Ph.D.</a> ) </p>
<p>Your curiosity conveys open-mindedness to that third person. Your curiosity will persuade that third person.</p>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2009/03/14/third-person-in-the-room/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to drive a manual transmission</title>
		<link>http://sworddance.com/blog/2008/04/06/how-to-drive-a-manual-transmission/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-drive-a-manual-transmission</link>
		<comments>http://sworddance.com/blog/2008/04/06/how-to-drive-a-manual-transmission/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 19:54:34 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[entertainment]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[transportation]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/2008/04/06/how-to-drive-a-manual-transmission/</guid>
		<description><![CDATA[From Shannon: hmm well the number of people I know who keep replacing clutches &#038; transmissions much higher than the issues I&#8217;ve had w/autos If you already know how to drive, learning to drive a manual transmission takes 45 minutes. &#8230; <a href="http://sworddance.com/blog/2008/04/06/how-to-drive-a-manual-transmission/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/rycaut/statuses/783785015">From Shannon</a>:</p>
<blockquote><p>hmm well the number of people I know who keep replacing clutches &#038; transmissions much higher than the issues I&#8217;ve had w/autos</p></blockquote>
<p>If you already know how to drive, <a href="http://www.sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/">learning to drive a manual transmission takes 45 minutes</a>. A manual transmission gives you these benefits:</p>
<ul>
<li>Lower brake wear-and-tear</li>
<li>Higher gas mileage</li>
<li>Cheaper maintenance &#8211; manual transmissions have fewer parts than an automatic.</li>
<li>Cheaper to purchase &#8211; cheaper to make + fewer people want a manual so they are lower in price on the used car market.</li>
<li>Can rent/use cars in other parts of the world which may have only manual transmission cars</li>
<li>Impress your friends with tricks like <a href="http://www.sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/">driving without the gas pedal</a></li>
</ul>
<h3>How to get the benefits:</h3>
<ul>
<li>Instead of having your foot on the gas until the moment you slam on the brakes, try this: Take your foot of the gas a long way away from that red light or stop sign. Push in the clutch and let the car coast. It will slow down naturally. When you finally do brake, the car will be a lot slower and the brakes will not do as much work. This will dramatically increase the brake life and saving gas and bucks (or euros).</li>
<li>When driving in stop-and-go traffic, ease off the clutch just enough to get the car rolling. Push the clutch back in and let the car coast toward the cars in front of you. (brakes and gas again)</li>
<li>Ease in and out of gear. Don&#8217;t leap from the clutch to the gas pedal. This ain&#8217;t the Dayton 500. Take your time and don&#8217;t let the transmission get constantly hammered by suddenly being engaged. Learn to avoid stalls by learning how to drive a manual correctly. (saves maintenance)</li>
<li>Once the gear change has been completed &#8211; get your foot off the clutch. If you leave your foot on the clutch even a &#8220;little bit&#8221;, chances are that the clutch will be slightly engaging &#8211; wearing it out faster.</li>
</ul>
<h3>Driving on hills:</h3>
<p>Its actually pretty easy. </p>
<ol>
<li>When stopping give yourself extra room to the car in front of you. They might roll backward or you might need the room for what happens next.</li>
<li>If you are the first car stop with your front tires over the lip of the hill.</li>
<li>When going up a hill rather than braking at the top, try to put the clutch in so the car coasts to the stop.  Not always possible &#8211; but a goal. This will leave you in the happy situation of your foot being on the clutch and the gas.</li>
<li>Use the combination of the clutch and gas pedal to deliver enough engine power to the tires so that you don&#8217;t roll. Going forward will be a piece of cake &#8211; just add more gas and ease off the clutch</li>
<li>If you find yourself with your foot on the brake and the clutch, then you will need to get from the brake to the gas.</li>
<li>Don&#8217;t panic.</li>
<li>Ease off the clutch until you start feeling the engine engaging.</li>
<li>Then quickly transition from the brake to the gas pedal</li>
<li>Press down on the gas only enough to get you going slightly forward &#8211; you might go forward more than you intended (thats why you gave yourself the room to the next car &#8211; right?)</li>
<li>If you stall, don&#8217;t freak and don&#8217;t let the guy with the horn bother you. Brake. Clutch. Key to restart and try again.</li>
<li>If the guy behind you is really on your tail, then let <em>his</em> front bumper touch your rear bumper. His car will stop yours from rolling backward while you do the brake-to-gas transition <img src='http://sworddance.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Be sure to thank him properly!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2008/04/06/how-to-drive-a-manual-transmission/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>How to learn to drive a manual transmission in 45 minutes</title>
		<link>http://sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-learn-to-drive-a-manual-transmission-in-45-minutes</link>
		<comments>http://sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 11:54:30 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[entertainment]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/</guid>
		<description><![CDATA[The patent-pending, I-will-sue-your-ass-if-you-use-it, guaranteed-not-to-fail-or-your-money-back! If you follow these steps you will learn how to drive a stick shift in about 45 minutes. Driving a stick shift will let you: get more mpg (manuals have higher EPA ratings than automatics) reduce &#8230; <a href="http://sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The patent-pending, I-will-sue-your-ass-if-you-use-it, guaranteed-not-to-fail-or-your-money-back!</p>
<p>If you follow these steps you will learn how to drive a stick shift in about 45 minutes. Driving a stick shift will let you:</p>
<ol>
<li>get more mpg (manuals have higher EPA ratings than automatics)</li>
<li>reduce your car repair expenses. (Automatic transmissions have more moving parts and are more complex.)</li>
<li>reduce your car maintenance expenses. (You can coast up to stoplights rather than having your food on the accelerator until the moment you are slamming on the brake.)</li>
</ol>
<p><uderline>I learned to drive in Michigan and went to college in a town that had snow, ice, more snow, more ice and hills that is some cases were as bad as San Francisco&#8217;s (only with ice).</p>
<p>I have taught a bunch of people (~8) how to drive a stick shift this way and have had 0 failures and everyone of them could drive a stick after 45 minutes (assuming you already know how to drive).</p>
<p><u><em>The basics</em></u><br />
Get a manual transmission car to a parking lot. This parking lot will have 4 features:</p>
<ol>
<li>empty</li>
<li>speed bumps</li>
<li>fairly long straight section</li>
<li>flat</li>
</ol>
<p>Generally a office building&#8217;s parking lot on weekends works best. Not-so-good: a mall&#8217;s parking lot during Christmas.</p>
<p><em>Lesson #1:</em></p>
<ol>
<li>Get the car so that you have the maximum empty straightaway ahead of you.</li>
<li>Do NOT touch the gas.</li>
<li>Press in clutch (and keep it in)</li>
<li>Put car in first gear.</li>
<li>Turn on car</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li>Slowly ease the clutch out (very slowly)</li>
<li>At some point you will feel the clutch start to engage and the car will start to inch forward.</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li>Continue to slowly ease the clutch pedal out.</li>
<li>LISTEN to the car engine. Watch the tachometer if the car has one.</li>
<li>Don&#8217;t freak if the car stalls. Just remember what the tachometer reading was when it stalled and restart it.</li>
<li><b>If the car starts to stall, push the clutch in &#8211; do NOT touch the gas</b></li>
<li>Continue to slowly ease the gas pedal out letting the car pick up speed.</li>
<li>At some point, hopefully before you run out of parking lot, the clutch will be completely out and the car will be doing about ~7 mph.</li>
<li>Without stopping, press in clutch (and keep it in)</li>
<li>Put car in second gear.</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li>Slowly ease the clutch out (very slowly) until once again you are not pressing in the clutch at all.</li>
<li><em>Pay attention to the sound of the car engine</em> and the tachometer reading. Try to get as close to the stall point without stalling</li>
<li>Repeat for 3rd, 4th gears (if possible before crashing into bushes)</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li>Turn car around.</li>
</ol>
<p><em>Lesson #2:</em></p>
<ol>
<li>Repeat Lession #1 &#8211; each time trying to ease the clutch out faster and faster</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li><em>Pay attention to the sound of the car engine</em> and the tachometer reading. Try to get as close to the stall point without stalling</li>
</ol>
<p><em>Lesson #3: Hills</em></p>
<ol>
<li>Drive car to first speed bump.</li>
<li>Press in clutch (and keep it in)</li>
<li>Put car in first gear.</li>
<li>Do NOT touch the gas pedal (at all)</li>
<li>Slowly ease the clutch out (very slowly) until the car begins to creep over the speed bump.</li>
<li>Stop releasing clutch. Let the car&#8217;s engine be engaged just enough so that you don&#8217;t roll backward but not enough to actually go forward.</li>
<li>Play with clutch to rock back and forth with the front tires slowly climbing/descending the speed bump.</li>
<li>Repeat until you don&#8217;t roll off the speed bump either direction.</li>
</ol>
<p>This is how you handle hills on a stick shift. Only with a real hill you will need to use a little bit of the gas pedal as well. But you will not use the brake. (For the most part).</p>
<p><em>Lesson #4: Jump Starting and confidence building</em></p>
<ol>
<li>Repeat Lesson #1 &#8211; quickly getting the car going.</li>
<li>Press in clutch (and keep it in)</li>
<li>Put car in first gear.</li>
<li>Turn off car (while it is rolling about ~17 mph)</li>
<li>Press in clutch (and keep it in)</li>
<li>Put car in first gear.</li>
<li>Turn key to ON position (but do not start the car)</li>
<li>Release the clutch as fast as you can by letting your foot slid off the pedal. (&#8220;popping the clutch&#8221;)</li>
<li>The car will jerk around and if you are going fast enough it will start up on its own&#8230;.. and the car will be just fine.</li>
</ol>
<p><em>Lesson #5: Go practice on the streets.</em></p>
<p><em>In summary:</em></p>
<ol>
<li>Don&#8217;t press the gas pedal. People who don&#8217;t know how to drive stick shifts leap on the gas pedal like it is the last raft off the Titanic.</li>
<li>If the car is going to stall, press the clutch not the gas pedal. Pressing the gas pedal will send you leaping into traffic. Pressing the clutch is much safer.</li>
<li>Don&#8217;t freak if you stall &#8211; it ain&#8217;t a big deal. And flip off the asshole behind you with the horn.</li>
<li>Really feel your car and it&#8217;s stall point.</li>
<li>Relax.</li>
</ol>
<p>That&#8217;s it .. and be sure to send your check. o.k.?</p>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2008/04/06/how-to-learn-to-drive-a-manual-transmission-in-45-minutes/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>How to buy a car.</title>
		<link>http://sworddance.com/blog/2008/04/06/how-to-buy-a-car/#utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-buy-a-car</link>
		<comments>http://sworddance.com/blog/2008/04/06/how-to-buy-a-car/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 09:47:53 +0000</pubDate>
		<dc:creator>patrick</dc:creator>
				<category><![CDATA[environment]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[transportation]]></category>

		<guid isPermaLink="false">http://www.sworddance.com/blog/2008/04/06/how-to-buy-a-car/</guid>
		<description><![CDATA[My response to Shannon&#8217;s thinking about buying a car: Congratulations saving so much money by avoiding car ownership for so long. Here is my feedback: Forget the concept of a car retaining its &#8220;value&#8221;. A car is a liability not &#8230; <a href="http://sworddance.com/blog/2008/04/06/how-to-buy-a-car/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My response to <a href="http://shannonclark.wordpress.com/2008/04/05/shopping-for-a-car-part-one-personal-notes/">Shannon&#8217;s thinking about buying a car</a>:</p>
<p>Congratulations saving so much money by avoiding car ownership for so long.</p>
<p>Here is my feedback:</p>
<ul>
<li>Forget the concept of a car retaining its &#8220;value&#8221;. A car is a liability not an asset. If a car runs and operates it has value. The only time the car&#8217;s &#8220;value&#8221; will matter is if it gets totaled in an accident.</li>
<li>Don&#8217;t bother buying a new car. Its a stupid waste of money. Let the other poor sucker buy the shiny new object. Unless you are trying to impress some bimbo girlfriend, forget it.</li>
<li>Forget the used car guides, they talk about general trends &#8211; not your specific car.</li>
<li>Figure out how much money you want to flush down the car toilet. Double that number (maintenance, license, etc.) While you are figuring out what you want to buy set that money aside to make sure you can really do without it (the money that is).</li>
<li>How many times can you rent a car with the above cash? Do you still need that car?</li>
</ul>
<p>Now that you have decided that you really <em>must</em> discard your cash this way. Buy your car this way:</p>
<ul>
<li>Find out what your minimum monthly payment would be buying a car from a dealership. (Lets say $400/month)</li>
<li>Decide what your hassle tolerance is. Your hassle tolerance is how long in months the car must run with only oil changes or other routine maintenance before you get pissed off with it. Note this is a <em>minimum</em> &#8211; not a as-long-as-possible value. Lets say 10 months &#8211; so after 10 months you wake up and discover that the car had been crushed by a semi you wouldn&#8217;t care.</li>
<li>Hassle-tolerance * monthly payment = maximum to spend. Yes &#8211; maximum. In our example, that is 10*$400 = $4000. If you don&#8217;t mind buying a new-to-you car every 10 months, then if the car lasts 20 months &#8211; the last 10 months were &#8216;free&#8217;</li>
<li>Look on craigslist. Buy the <em>third</em> car that passes a basic driving test and an inspection by a trusted mechanic (or at least a mechanic that you can beat the shit out of if he screws up). Why the third car? Because you should give yourself the opportunity to get a good deal but you should not agonize and ditter yourself into indecision. If you can&#8217;t decide by the third car then you don&#8217;t really need a car &#8211; its not urgent. Update: Note that I am not saying the third car period &#8211; but rather the third car in decent shape where &#8220;decent shape&#8221; = able to run at highway speeds and your mechanic doesn&#8217;t ask if he can share in the life insurance payout. The car is decent if it is ugly or has cigarette burns in the seats.</li>
<li>Buy a car that you would never want to both getting comprehensive insurance on. If you don&#8217;t care if the car  is destroyed in a collision, stolen, explodes, etc. &#8212; then you will not care if it is a &#8216;lemon&#8217;. Even a lemon will likely last ~10 months.</li>
</ul>
<p>As a result, you will buy a car that:</p>
<ul>
<li> you will not have an emotional attachment to &#8212; save emotional attachments for people not things.
</li>
<li>you will be indifferent to. You will not wash the car (saving money, time and clean water).
</li>
<li>you will not waste time cleaning the car.</li>
<li>will not be hard to ditch when confronted with a huge repair bill.</li>
<li>you will be able to sell for about what you paid for it &#8211; even if it doesn&#8217;t run at all you will be able to convert it to a tax deduction.</li>
<li>drive it into the ground.</li>
</ul>
<p>As background, my wife and I between the 2 of us have owned 5 cars: 1 new, 4 used. We never paid more than $4000 for a used car (or van). The car that has lasted the longest is a 1991 Ford Festiva &#8211; which gets over 30mpg. We paid $1500 for that car. The other vehicle we own is a 1994 Dodge Caravan &#8211; $4000. We have never ended up with a lemon. We have spent a total during our entire combined life span of >80 man-years on vehicle purchases is about ~$35,000. (I think that might be too high actually).</p>
<p>Update ( 9/7/2008) :<br />
Apparently I am not the only one see things this way. Cars: <a href="http://articles.moneycentral.msn.com/SavingandDebt/SaveonaCar/TheRealReasonYoureBroke.aspx?page=all">The real reason you are broke.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sworddance.com/blog/2008/04/06/how-to-buy-a-car/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

