<?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>Embracing Chaos &#187; Geek</title>
	<atom:link href="http://www.embracingchaos.com/geek/feed" rel="self" type="application/rss+xml" />
	<link>http://www.embracingchaos.com</link>
	<description>Leo Parker Dirac on Business and Technology Trends</description>
	<lastBuildDate>Wed, 14 Jul 2010 01:21:03 +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>Is oil exploration getting safer?</title>
		<link>http://www.embracingchaos.com/2010/06/is-oil-exploration-getting-safer.html</link>
		<comments>http://www.embracingchaos.com/2010/06/is-oil-exploration-getting-safer.html#comments</comments>
		<pubDate>Mon, 21 Jun 2010 02:12:25 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Sustainability]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1047</guid>
		<description><![CDATA[Recently one of my friends asked whether or not there was a general trend towards improved safety in oil exploration.  Coming from a mechanical engineering background, he noted that things like bridges and buildings have gotten safer over time through failures.  Every new structure is built with the collective wisdom of the many failures before [...]]]></description>
			<content:encoded><![CDATA[<p>Recently one of my friends asked <strong>whether or not there was a general trend towards improved safety in oil exploration</strong>.  Coming from a mechanical engineering background, he noted that things like bridges and buildings have gotten safer over time through failures.  Every new structure is built with the collective wisdom of the many failures before it.  And with each failure, we learn how to avoid that specific kind of failure.  Are the same principals at play in oil exploration?</p>
<p>I set about answering this question with data.    I quickly found a <a href="http://en.wikipedia.org/wiki/List_of_oil_spills">list of oil spills</a> on wikipedia.  A quick pass through google spreadsheets and a few <a href="http://xkcd.com/208/">regexs</a> later, and I&#8217;ve got the data in a form that it can be graphed with <a href="http://vis.stanford.edu/protovis/">protovis</a>, a wonderful web-based visualization package.  An initial look shows some interesting trends. (Sorry IE users &#8211; <a href="http://chrome.google.com/">modern</a> <a href="http://www.getfirefox.com/">browser</a> <a href="http://www.apple.com/safari/">required</a>.)<span id="logfig"> </span><span id="spilldetails" style="display: block; background: #ddddff; width: 350px; padding: 7px; border: 2px groove red; visibility: hidden; font-size: 12px; position: relative; top: -160px; left: 30px;"> </span></p>
<p>First, it&#8217;s important to emphasize that <strong>this is a log-scale graph</strong>.  Given the dynamic range of the input, it&#8217;s the only reasonable way to visualize what&#8217;s there, but if you&#8217;re not used to reading log-scale graphs, the data will be deceptive.  In short, being a little higher on the graph means that the spill is a lot larger.  In fact if would be very reasonable to only include the spills near the top of the graph when thinking about &#8220;big spills.&#8221;  But I wanted to present the entire data set for completeness and analysis.</p>
<p>It&#8217;s interesting to note <strong>the general downward trend at the bottom of the graph</strong>.  I believe this is not a real effect at all, but <strong>a result of selective memory</strong>.  The smallest spill on this graph was only a couple months ago &#8212; the Great Barrier Reef spill in April.  Are we to believe that in the preceeding 100 years of oil exploration there had never been a spill of less than 10 tons of oil, and only a single other spill of less than 100 tons?  Of course not.  I bet spills of this size have happened dozens if not hundreds of times, but 50 or 100 years ago nobody bothered writing them down.  Or if they did write it down, the event has been filtered out of our collective historical memory before making it into wikipedia.  The Lakeview gusher in 1909 is another interesting example of this effect.  This certainly wasn&#8217;t the only oil production accident before 1930, but it was clearly an important major accident, and so has been remembered far better than others.</p>
<p>I&#8217;ve highlighted a few other spills because of their historical interest.  The Gulf War oil spill (purple dot) of 1991 is exceptional in that it was not an accident, but a deliberate act of war.  As such, it should not be considered in answering the question of whether oil exploration has been getting safer.  The Exxon Valdez spill (light blue dot) in 1989 is large in our memory, but in context we can see that it was not at all a large spill by historic standards.  But clearly <strong>the Deepwater Horizon spill (green dot) is huge</strong>, ranking as one of the largest spills ever and certainly the largest spill in quite some time.  But <strong>aside from this current mess, there does seem to be a real trend towards increased safety in oil exploration</strong>.</p>
<p>Again, the log-scale graph makes this somewhat hard to read intuitively.  Because the spills near the top are so much larger than the ones below them, a fair approximation of the sum of all spills can be found by simply considering the points along the top envelope, which is generally decreasing.  Looking just at the last several decades on a linear scale, this trend becomes more clear: <strong>since about 1980, serious oil spills have been getting smaller / less frequent. </strong> Now we see visually that the majority of spills listed are tiny compared to the few big ones.  I scaled the graph so only the bottom of the uncertainty bar for the gulf war oil spill.  Also note that I&#8217;ve kept the middle dots at the <a href="http://en.wikipedia.org/wiki/Geometric_mean">geometric average</a> of the low and high estimates, which works visually on the log-scale graph, and makes logical sense given the nature of the problem.<span id="linefig"> </span><span id="spilldetails2" style="display: block; background: #ddddff; width: 350px; padding: 7px; border: 2px groove red; visibility: hidden; font-size: 12px; position: relative; top: -340px; left: 30px;"> </span></p>
<p>Another factor to consider is that <strong>the total amount of oil being produced during this time period has been generally increasing</strong>.  I&#8217;ve overlaid <a href="http://www.eia.doe.gov/aer/txt/ptb1105.html">data from the US Energy Information Administration</a> on global oil production rate, scaled to the average amount produced <em>each hour</em>, to get it to show up on the same scale of this graph.   Another interesting comparison which I haven&#8217;t included is the average size of each well, or the number of wells being drilled per unit time.  My understanding is that oil exploration has been getting more difficult over time in that we&#8217;re having to drill deeper to get at relatively smaller oil deposits.  Again, this reinforces the idea that <strong>we have been getting better and safer</strong> &#8212; we&#8217;re spilling less even though we&#8217;re drilling more holes.  <strong>Except for the Deepwater Horizon</strong>.<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script><script src="http://leodirac.com/spill/protovis-d3.2.js" type="text/javascript"></script> <script src="http://leodirac.com/spill/spilldata.js" type="text/javascript"> </script> <script src="http://leodirac.com/spill/production.js" type="text/javascript"> </script> <script src="http://leodirac.com/spill/spillgraph.js" type="text/javascript"> </script></p>
<p>Feel free to browse the <a href="http://leodirac.com/spill/spillgraph.js">javascript source code</a> of the graphs for further details, inspiration, double-checking, or <a href="http://leodirac.com/contact/">whatever</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/06/is-oil-exploration-getting-safer.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Choosing a web framework: Python, Django vs. Ruby on Rails</title>
		<link>http://www.embracingchaos.com/2010/05/choosing-a-web-framework-python-django-vs-ruby-on-rails.html</link>
		<comments>http://www.embracingchaos.com/2010/05/choosing-a-web-framework-python-django-vs-ruby-on-rails.html#comments</comments>
		<pubDate>Mon, 24 May 2010 02:20:31 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1027</guid>
		<description><![CDATA[One of my responsibilities in my new job is to lay the groundwork for development of the company&#8217;s technology.  One decision that was pretty easy to make is that we&#8217;ll be building tools that you can use from a web browser, that is to say, a web application.  Next comes the choice of what language [...]]]></description>
			<content:encoded><![CDATA[<p>One of my responsibilities in my <a href="http://www.embracingchaos.com/2010/05/how-social-media-will-change-marketing.html">new job</a> is to lay the groundwork for development of the company&#8217;s technology.  One decision that was pretty easy to make is that we&#8217;ll be building tools that you can use from a web browser, that is to say, a web application.  Next comes the choice of <strong>what language and framework to build the web application in.</strong></p>
<p>Having been writing code for 25+ years, the differences between programming languages fade away in my mind.  I know that I, like any good software engineer, can be productive in basically any language.  Certainly within object-oriented languages, (which is where essentially all serious software engineering happens these days) the differences in the language itself are IMHO small compared with other factors in choosing a platform.  Other <strong>important factors</strong> I consider include:</p>
<ul>
<li>Quality and availability of <strong>libraries.</strong></li>
<li>Quality of <strong>tools</strong> like IDEs, debuggers, automation systems.</li>
<li>Size and healthy of the active <strong>community</strong> using the framework.  (i.e. If I run into a problem, how easy is it to google the answer?)</li>
<li>Ease of <strong>hiring</strong> people who already know the platform.</li>
</ul>
<p>All of these considerations are IMHO more important than compiled vs. interpreted or run-time performance or whether the language is statically typed or dynamically typed, or even if it&#8217;s open source vs. proprietary technology.  But there is a single common factor which directly feeds into all four of the criteria I list above: <strong>How many people are actively using the platform?</strong></p>
<h4>The Candidates</h4>
<p>The last time I was really writing much code was back in 2007.  At the time <a href="http://rubyonrails.org/">Ruby on Rails</a> was the coolest thing since sliced bread.  I played around with it, was amazed by how easy it was to quickly put together simple database-driven websites, and got very frustrated with it when I wanted to color outside of its lines.  A major concern of mine was <strong>the level of &#8220;magic&#8221; that happens behind the scenes</strong> &#8212; this <strong>makes Rails beautiful and elegant when it works, but difficult to debug or extend</strong>.  I blogged about <a href="http://www.embracingchaos.com/ruby-on-rails">my experiences with rails</a> and in particular my conclusion that at the time <a href="http://www.embracingchaos.com/2007/03/scaling_ruby_to.html">Rails was not ready for large, complex projects</a>, partly because of a lack of good tools, libraries and sensible error messages, all of which can be fixed by more users.</p>
<p>Around then I <a href="http://www.embracingchaos.com/2007/10/im-working-for.html">started working for Google</a> and stopped writing code.  The next year or so saw a couple big things happen for Ruby on Rails.  Twitter <a href="http://techcrunch.com/2007/12/20/twitter-downtime-on-the-upswing/">famously</a> had <a href="http://techcrunch.com/2008/06/06/twitter-suffers-minor-period-of-uptime-overnight/">trouble</a> maintaining even 99% uptime (fail whale anybody?), and everybody knew they were running on Ruby on Rails.  Also, Google launched AppEngine, which supported Python, not Ruby, and pointed people like me to an alternative high-level web framework: <a href="http://www.djangoproject.com/">Django</a>.</p>
<p>So now, in 2010, I return to the fray, and I&#8217;m trying to decide between the two frameworks.  There are of course other alternatives, but for the purpose of brevity, I&#8217;ll leave out my process of reducing my choices to these two: <strong>django or rails</strong>?</p>
<h4>Measuring community activity</h4>
<p>I often use <a href="http://www.google.com/trends"><strong>Google Trends</strong></a><strong> to measure relative interest in technologies</strong>.  My time is very valuable, so even downloading something and reading its documentation is an investment I&#8217;d rather shortcut if I can.  This crude measure of relative search activity can actually be quite telling, and has saved me a bunch of time in choosing packages.</p>
<p><a rel="attachment wp-att-1030" href="http://www.embracingchaos.com/2010/05/choosing-a-web-framework-python-django-vs-ruby-on-rails.html/screen-shot-2010-05-23-at-6-40-28-pm"><img class="alignnone size-full wp-image-1030" title="Rails vs Django" src="http://www.embracingchaos.com/wp-content/uploads/2010/05/Screen-shot-2010-05-23-at-6.40.28-PM.png" alt="" width="596" height="307" /></a></p>
<p>The relative values are hard to take literally since &#8220;django&#8221; as a single word search query will naturally be higher than a 3-word query like &#8220;ruby on rails&#8221;, but the search for &#8220;rails&#8221; by itself will clearly have lots of irrelevant searches.  Likewise, some people searching for &#8220;Django&#8221; won&#8217;t be looking for the web framework, but rather the <a href="http://en.wikipedia.org/wiki/Django_Reinhardt">guitarist</a> or the <a href="http://www.imdb.com/title/tt0060315/">movie</a> or what-have you.</p>
<p>But it is clear that <strong>search activity for Ruby on Rails peaked in 2007-2008 and has been declining since then, while Django has been on a steady upwards trend</strong>.</p>
<p>Elsewhere I can find evidence that Rails is still a more used platform.  <a href="http://stackoverflow.com/"><strong>Stackoverflow</strong></a> has twice as many questions about Ruby on Rails vs Django: 13,882 versus 7,496.  To me this <strong>indicates pretty clearly that Rails is more active than Django</strong>.  Either that or Rails is more confusing and people ask more questions about it, but I doubt that.</p>
<p>The <a href="http://www.tiobe.com/index.php/tiobe_index">Tiobe Index</a> attempts to objectively measure activity across programming languages.  By its <a href="http://blog.timbunce.org/2009/05/17/tiobe-index-is-being-gamed/">easily manipulated</a> measure, <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">Python has twice the activity of Ruby</a>, independent of the django / rails frameworks, with both languages in decline.</p>
<p>Meanwhile it&#8217;s easy to find comparisons on the net between the two.  Everything from <a href="http://www.youtube.com/watch?v=PLUS00QrYWw">content-free videos</a> to people <a href="http://www.crazyontap.com/topic.php?TopicId=71351&amp;Posts=29">declaring rails dead</a>, and <a href="http://rubyonrailsdevelopment.pl/ruby-on-rails-developers/rails-web-2-0">everything</a> <a href="http://mackstar.com/blog/2010/04/23/django-vs-rails">in</a> <a href="http://www.ctctlabs.com/index.php/blog/detail/rails_vs_django/">between</a>.</p>
<p>On balance, I find the stackoverflow numbers the most compelling, unbiased indication that <strong>Ruby on Rails has more activity than Django / Python</strong>.  Even though I&#8217;ve been frustrated by it in the past, by my own objective criteria, that seems to make <strong>Rails a better choice for building a new web application</strong>.</p>
<h4>What&#8217;s your opinion?</h4>
<p>If you have experience with both frameworks, I&#8217;d love to hear your experiences.  Please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/05/choosing-a-web-framework-python-django-vs-ruby-on-rails.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How Social Media will change Marketing</title>
		<link>http://www.embracingchaos.com/2010/05/how-social-media-will-change-marketing.html</link>
		<comments>http://www.embracingchaos.com/2010/05/how-social-media-will-change-marketing.html#comments</comments>
		<pubDate>Thu, 20 May 2010 23:54:27 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Personal Growth]]></category>
		<category><![CDATA[Societal Values]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1012</guid>
		<description><![CDATA[A number of years ago, a bunch of my friends were reading Naomi Klein&#8217;s book No Logo and getting really riled up by it.  The book is certainly written to make you angry, describing how brands and logos have become more and more prominent in our society as the marketing industry has become more sophisticated at [...]]]></description>
			<content:encoded><![CDATA[<p>A number of years ago, a bunch of my friends were reading Naomi Klein&#8217;s book <em><a id="akh1" title="No Logo" href="http://www.amazon.com/No-Logo-Ranting-About-Brand-Bullies/dp/0312203438">No Logo</a></em> and getting really riled up by it.  The book is certainly written to make you angry, describing how brands and logos have become more and more prominent in our society as the marketing industry has become more sophisticated at delivering their messages.  When I read it, I had a very different reaction.  I found it to be a fascinating history of marketing.  Klein gives examples of how advertising of the past was very simple &#8212; think back to classic TV ads which amounted to a person standing in front of a camera saying little more than &#8220;Buy this dogfood.  It will feed your dog.&#8221;  When television was young, these ads worked.  But as people got used to it, they learned to tune these simple messages out.  What has followed has been <strong>a steady co-evolution of new marketing techniques and people learning to understand them and be less swayed by them</strong>.  If you&#8217;re old enough, you&#8217;ll remember that first <a id="tswo" title="Diet Pepsi commercial that ran before Top Gun" href="http://www.youtube.com/watch?v=tBQnS9UCq0k&amp;feature=PlayList&amp;p=86BB9E8E83C34C35&amp;playnext_from=PL&amp;playnext=1&amp;index=29">Diet Pepsi commercial that ran before Top Gun</a> in theaters.  Remember how odd it was to see a commercial in movie theaters?  Or consider the evolution of product placement within movies &#8212; how actors used to turn their heads and unnaturally hold their beverage so the entire logo was clearly visible on the side of the bottle.  Now it&#8217;s much more common to just see a part of a logo &#8212; enough to be recognized and enter the subconscious, thus bypassing the conscious filters which weed out blatant product placement.  Klein presents this history, punctuated with outbursts of &#8220;we&#8217;re not going to put up with this any more!&#8221;</p>
<p>Simultaneously, <strong>technological advances have allowed advertising</strong> to progress along a different axis &#8211; <strong>to become more targeted</strong>.  Advertising used to only be broadcast widely through newspapers and television shows.  The best an advertiser could do to ensure their message reached the right kind of people was to select the aggregate demographics of everybody who read a particular magazine.  Now the internet allows ads to be targeted as precisely as you&#8217;d like.  Today, Google lets you get your message only in front of people who are about to buy a product like yours.  The ability to connect to people who have expressed an intention to &#8220;buy digital camera&#8221; is a <a href="http://xkcd.com/725/">literal</a> gold-mine, making billionaires out of Larry, Sergey and Eric.  As effective as it is, targeted advertising won&#8217;t replace broadcast advertising, because there is still value in abstract brand-building.  Rather, the two will complement each other.</p>
<h4>Enter Social Media</h4>
<p>Social media has been <a id="ay55" title="all the buzz" href="http://www.google.com/trends?q=social+media">all the buzz</a> recently.  At its core it&#8217;s just a more convenient way for friends to communicate.  The &#8220;killer app&#8221; for computers has always been helping people communicate, and this is just another chapter in that book.  With this new communications medium comes a new opportunity for organizations to tell their stories.  In fact, I believe that <strong>social media will bring another tectonic shift in the entire marketing industry, possibly as important as search-based advertising</strong>.  As consumers have gotten more and more sophisticated at filtering out advertising from broadcast media, advertisers have gotten more and more desperate in their attempts to connect with people.  Social media marketing offers a new path &#8211; <strong>instead of hearing about products and services through ads, people can hear about products and services from their own friends</strong>.  Exactly how this will play out through Twitter/Facebook/Foursquare/whatever is not at all clear to me right now, but I fundamentally believe this change is coming, and it will take the entire marketing industry with it.  Klein and her fans are free to unplug from popular culture in order to avoid the onslaught of brand advertising, but they would be foolish to stop talking to their friends just because their friends are happy with things they&#8217;ve bought.</p>
<p>This vision is one of the main things that prompted me to jump off the comfy Google cruise liner and start paddling hard in <a id="n1w7" title="Banyan Branch" href="http://www.banyanbranch.com/">Banyan Branch</a>&#8217;s crowded dinghy.</p>
<h4>Is marketing intrinsically evil?</h4>
<p>I sometimes feel a need to justify this line of work to those who think that marketing is inherently dirty.  I admit that I&#8217;m more of a capitalist than many of my friends, but I certainly recognize that capitalism has its limits.  The vast majority of economic transactions are both consensual and mutually beneficial, and I will argue vigorously that there is nothing wrong with an economic system consisting of these transactions.  The biggest exception to this happens when transactions are not mutually beneficial because one party is not fully informed.  But what we&#8217;re doing is helping people share honest opinions and feedback about the things they buy and use.  By lubricating the flow of information between real people, I believe <strong>social media will reduce the effectiveness of deceptive marketing</strong>.  Moreover, it will help companies connect to their customers and hone their goods to people&#8217;s real concerns and desires.  It will help hold companies accountable for their mistakes, <strong>and enable companies to better make things that make people happy</strong>.</p>
<p>Additionally, I will point out that my employer represents no small amount of &#8220;pure good&#8221; for the world, including organizations such as <a id="uru5" title="The Bill &amp; Melinda Gates Foundation" href="http://www.gatesfoundation.org/">The Bill &amp; Melinda Gates Foundation</a> and <a id="mx.d" title="Vittana" href="http://www.vittana.org/">Vittana</a>, helping them tell their stories.</p>
<h4>Taking a chance on a startup</h4>
<p>Why did I choose this opportunity out of the sea of possibilities?  I evaluated the landscape as an investor would, since I am investing no small chunk of my life in this effort.  From my <a id="up6d" title="entrepreneurial training" href="http://foster.washington.edu/">entrepreneurial training</a> and experience, I know that smart investors care more about the people than the specific business plan.  The plan will almost certainly change, but the key management will not.  Having known one of the founders of Banyan quite well for a number of years, I am certain that many key elements for success are in place.  The corporate culture and governance will be solid.  I will be working in an environment where I am supported, and where I can learn and grow as a manager and a technologist.</p>
<p>Exactly what will I be doing or building?  I admit I&#8217;m not sure yet, but I have some very interesting ideas that I won&#8217;t be sharing here anytime soon.  I am sure that my work is very well positioned to be a part of a major shift in an entire industry &#8212; a rare opportunity.  Whether or not my work will play a key role in this shift is somewhat out of my hands &#8212; these things are always a roll of the dice.  But in another sense, it&#8217;s entirely within my control, and this is what I love about working in a small company.  There&#8217;s almost nothing but work between me and effective execution of our ideas.  Many people tend to exaggerate the importance of the idea itself, forgetting that <strong>it is incredibly important to execute well on whatever ideas you have</strong>.  I&#8217;ve heard people say that they had the idea for YouTube years before YouTube did.  How quickly we forget the dozens of other companies all working on the same problem in 2006, which almost all fell by the wayside because they didn&#8217;t execute as well as YouTube did.  Ideas matter for sure.  But hard work is critical.</p>
<p>If you&#8217;d like to jump on this raft and start paddling too, <a id="xgmn" title="get in touch with me" href="http://leodirac.com/contact/">get in touch with me</a>.  I need a few key rock-star developers who are&#8217;t scared of chaos and can think creatively about business problems.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/05/how-social-media-will-change-marketing.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Apple and Wal-Mart: Bargaining on your behalf for lower prices</title>
		<link>http://www.embracingchaos.com/2010/04/apple-and-wal-mart-bargaining-on-your-behalf-for-lower-prices.html</link>
		<comments>http://www.embracingchaos.com/2010/04/apple-and-wal-mart-bargaining-on-your-behalf-for-lower-prices.html#comments</comments>
		<pubDate>Tue, 20 Apr 2010 14:29:30 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Economics]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=975</guid>
		<description><![CDATA[Even though Apple products are expensive, there&#8217;s a surprising similarity between Apple and Wal-Mart: both companies push hard on other parts of the value chain to deliver lower prices for consumers.
In Walmart&#8217;s case, it&#8217;s generally suppliers who get squeezed.  Walmart demands that manufacturers of goods produce them at the lowest possible price so that Walmart can charge [...]]]></description>
			<content:encoded><![CDATA[<p>Even though Apple products are <a id="pfv." title="Market Segmentation" href="http://www.embracingchaos.com/2010/04/how-apple-segments-the-market-html.html">expensive</a>, there&#8217;s a surprising similarity between <strong>Apple and Wal-Mart: both companies push hard on other parts of the value chain to deliver lower prices for consumers</strong>.</p>
<p>In Walmart&#8217;s case, it&#8217;s generally suppliers who get squeezed.  Walmart demands that manufacturers of goods produce them at the lowest possible price so that Walmart can charge the lowest prices in their stores.  They really do try hard to pass the savings on to you.  Another case that is less well known is with so-called &#8220;interchange&#8221; fees for debit and credit cards, charged by the card networks like Visa and Mastercard.  Back in 2003, Walmart pushed hard on Visa and Mastercard to charge less for debit card transactions since they are both lower risk (because of pin-code use) and cheaper to process (verifying signatures is expensive).  The cynical will point out that with lower fees, Walmart just gets to keep more profit.  Which is true.  But they are genuinely motivated to lower prices for consumers, since that&#8217;s their main selling point.  So it&#8217;s a win-win &#8211; <strong>Wal-Mart&#8217;s motivations to lower costs are closely aligned with consumer&#8217;s desires to pay less</strong>.</p>
<p>Apple has similar desires for their network-connected gadgets like iPhones and iPads.  <strong>Apples wants people to be able to connect their devices to the network for as little as possible.</strong> Apple has clearly negotiated very hard with AT&amp;T to demand low monthly rates on data plans for these devices.  Next month you&#8217;ll be able to buy <strong>an iPad with a 3G data plan for just $15 / month</strong>.  That is basically unheard of in the US.  For <a id="egu8" title="people on a limited budget" href="http://www.quinnnorton.com/said/?p=365">people on a limited budget</a>, the iPad <strong>is the cheapest way to get online</strong>.  Compare this to other data plans available from major U.S. carriers:</p>
<div id="content" style="font-size: 12px;">
<p><!-- .tblGenFixed td {padding:0 3px;overflow:hidden;white-space:normal;letter-spacing:0;word-spacing:0;background-color:#fff;z-index:1;border-top:0px none;border-left:0px none;border-bottom:1px solid #CCC;border-right:1px solid #CCC;} .dn {display:none} .tblGenFixed td.s0 {background-color:white;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:left;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;border-left:1px solid #CCC;} .tblGenFixed td.s2 {background-color:white;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:right;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;} .tblGenFixed td.s1 {background-color:white;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:left;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;} .tblGenFixed td.s7 {background-color:#ffff99;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;} .tblGenFixed td.s5 {background-color:#ffff99;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:left;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;} .tblGenFixed td.s6 {background-color:#ffff99;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:right;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;} .tblGenFixed td.s3 {background-color:white;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;text-decoration:none;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;border-left:1px solid #CCC;} .tblGenFixed td.s4 {background-color:#ffff99;font-family:arial,sans,sans-serif;font-size:100.0%;font-weight:normal;font-style:normal;color:#000000;text-decoration:none;text-align:left;vertical-align:bottom;white-space:normal;overflow:hidden;text-indent:0px;padding-left:3px;border-right:1px solid #CCC;border-bottom:1px solid #CCC;border-left:1px solid #CCC;}  --></p>
<table id="tblMain_0" class="tblGenFixed" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th>Provider</th>
<th>Plan Type</th>
<th>Monthly data limit</th>
<th colspan="2">Monthly fee</th>
</tr>
<tr class="rShim">
<td class="rShim" style="width: 120px;"></td>
<td class="rShim" style="width: 212px;"></td>
<td class="rShim" style="width: 120px;"></td>
<td class="rShim" style="width: 20px;"></td>
<td class="rShim" style="width: 90px;"></td>
</tr>
<tr>
<td class="s0">AT&amp;T</td>
<td class="s1">Smartphone</td>
<td class="s1">unlimited</td>
<td class="s2">$50</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">Tmobile</td>
<td class="s1">Blackberry data</td>
<td class="s1">unlimited</td>
<td class="s2">$50</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">Tmobile</td>
<td class="s1">Smartphone data</td>
<td class="s1">unlimited</td>
<td class="s2">$50</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">Tmobile</td>
<td class="s1">Smartphone data</td>
<td class="s1">200 MB</td>
<td class="s2">$30</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">Verizon Wireless</td>
<td class="s1">Smartphone data</td>
<td class="s1">unlimited</td>
<td class="s2">$30</td>
<td class="s1">+ voice plan</td>
</tr>
<tr style="background: #ffffbb;">
<td class="s3">Apple / AT&amp;T</td>
<td class="s4">iPhone</td>
<td class="s4">unlimited</td>
<td class="s5">$30</td>
<td class="s4">+ voice plan</td>
</tr>
<tr>
<td colspan="5">.</td>
</tr>
<tr>
<td class="s6"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="s0">Verizon Wireless</td>
<td class="s1">Laptop tether to smartphone</td>
<td class="s1">5 GB</td>
<td class="s2">$60</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">AT&amp;T</td>
<td class="s1">Laptop tether to smartphone</td>
<td class="s1">5 GB</td>
<td class="s2">$60</td>
<td class="s1">+ voice plan</td>
</tr>
<tr>
<td class="s0">Verizon Wireless</td>
<td class="s1">3G card / laptop</td>
<td class="s1">5 GB</td>
<td class="s2">$60</td>
<td></td>
</tr>
<tr>
<td class="s0">AT&amp;T</td>
<td class="s1">3G card / laptop</td>
<td class="s1">5 GB</td>
<td class="s2">$60</td>
<td></td>
</tr>
<tr>
<td class="s0">Tmobile</td>
<td class="s1">3G card / laptop</td>
<td class="s1">5 GB</td>
<td class="s2">$60</td>
<td></td>
</tr>
<tr style="background: #ffffbb;">
<td class="s3">Apple / AT&amp;T</td>
<td class="s4">iPad</td>
<td class="s4">unlimited</td>
<td class="s5">$30</td>
<td class="s7"></td>
</tr>
<tr>
<td colspan="5">.</td>
</tr>
<tr>
<td class="s6"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td class="s0">Verizon Wireless</td>
<td class="s1">3G card / laptop</td>
<td class="s1">250 MB</td>
<td class="s2">$40</td>
<td></td>
</tr>
<tr>
<td class="s0">AT&amp;T</td>
<td class="s1">3G card / laptop</td>
<td class="s1">200 MB</td>
<td class="s2">$35</td>
<td></td>
</tr>
<tr style="background: #ffffbb;">
<td class="s3">Apple / AT&amp;T</td>
<td class="s4">iPad</td>
<td class="s4">250 MB</td>
<td class="s5">$15</td>
<td class="s7"></td>
</tr>
<tr>
<td colspan="5">.</td>
</tr>
</tbody>
</table>
</div>
<p><strong>The Apple / AT&amp;T rates are the lowest in each of their categories</strong>, except Verizon&#8217;s smartphone data plan which ties the AT&amp;T iPhone plan.  The iPad rates are extremely low compared to data plans for laptops, and also when when you consider that tethering plans or phone data plans require paying an extra $30/mo &#8211; $50/mo for a voice plan.  The unlimited iPad plan is literally half what it costs to get 3G on any other laptop, and it doesn&#8217;t come with the 5 GB limit that other plans do.  You might argue that the iPad can&#8217;t do as much as a full laptop, which is true.  So you might then argue that iPad won&#8217;t tax the network as much as a laptop, which I doubt considering the propensity to consume video on such a device.  So you can&#8217;t trade torrents on an iPad, which from an Intellectual Property perspective is just fine with me.</p>
<p>My guess (and this is pure speculation) is that Apple negotiated these rates by offering AT&amp;T a share of the revenues generated through App Store purchases.</p>
<p>Again, the cynical will point out that Apple is just trying to grab the lion&#8217;s share of economic surplus for itself, which is true.  But nonetheless, this is a case where Apple&#8217;s desires and our desires as consumers line up well.  In a very real way, <strong>Apple is fighting on our behalf for lower prices from AT&amp;T</strong>.</p>
<div><span style="font-family: Verdana; line-height: normal;"><br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/apple-and-wal-mart-bargaining-on-your-behalf-for-lower-prices.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How Apple Segments the Market</title>
		<link>http://www.embracingchaos.com/2010/04/how-apple-segments-the-market.html</link>
		<comments>http://www.embracingchaos.com/2010/04/how-apple-segments-the-market.html#comments</comments>
		<pubDate>Mon, 19 Apr 2010 14:00:40 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Marketing]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=971</guid>
		<description><![CDATA[Apple has done a fabulous job in recent years of asserting itself as a major player in the computer industry.  One of their tools for accomplishing this has been a fanatical commitment to high-quality products.  They strive to make every product they offer to be the best in its class, and they&#8217;ve largely succeeded at [...]]]></description>
			<content:encoded><![CDATA[<p>Apple has done a fabulous job in recent years of asserting itself as a major player in the computer industry.  One of their tools for accomplishing this has been a fanatical commitment to high-quality products.  They strive to make every product they offer to be the best in its class, and they&#8217;ve largely succeeded at doing this.  (And have used some <a id="pmk1" title="ery clever strategies" href="http://www.embracingchaos.com/2008/07/iphone-scarcity.html">very clever strategies</a> to maintain this appearance when their products weren&#8217;t quite measuring up.)  This has given them an incredibly strong brand.  But it also allows them to position themselves in an enviable place in terms of market positioning.</p>
<p><strong>Apple products are </strong><a id="y1sj" title="expensive" href="http://www.quinnnorton.com/said/?p=365"><strong>expensive</strong></a><strong>.</strong> Apple gets high margins on its hardware, allowing it to recoup large investments in NRE (non-recurring engineering) to design the hardware and its accompanying software.  This is a great place to be from a competitive standpoint, because as a company they don&#8217;t need to squabble over the cheapest parts to try to deliver the best prices to consumers.  So long as they can maintain a sufficiently large customer base to support the practice, it is an <strong>easy</strong> place <strong>to defend against competition</strong> from.  Certainly a lot easier than being Dell or HP, who struggle with operational efficiency to compete on price, and try to innovate within a very narrow window defined by their platform.</p>
<p>Apple&#8217;s success at selling high-end products has secondary benefits for the rest of the ecosystem.  <strong>Because the products are expensive, they tend to be purchased by people with more disposable income.</strong> So the segment of the computer market which buys Apple products self-selects to be <strong>very attractive demographic for</strong> many other reasons.  <strong>Advertisers</strong> love to get their products in front of people who are more-willing-than-most to buy something expensive / unnecessary / fun.</p>
<p>Similarly, <strong>app developers know that</strong> if they write an app for iPhone / iPad, the <strong>people</strong> who <strong>are</strong> able to buy it are much more <strong>likely to be willing to pay a couple bucks for something silly</strong> than, say, somebody who bought the cheapest smartphone they could afford because they felt they really need that functionality.  I had previously speculated that <a id="jis_" title="Apple's platform play" href="http://www.embracingchaos.com/2008/08/app-store-downm.html">Apple&#8217;s platform play</a> required a very large distribution base to attract developers, which is not quite correct.  The strategy is successful even with a relatively small market, provided that the market is segmented properly.  Which in this case it clearly is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/how-apple-segments-the-market.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Space Weather</title>
		<link>http://www.embracingchaos.com/2010/04/space-weather.html</link>
		<comments>http://www.embracingchaos.com/2010/04/space-weather.html#comments</comments>
		<pubDate>Fri, 16 Apr 2010 18:30:13 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[Science]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=986</guid>
		<description><![CDATA[Recently some of my friends were discussing solar activity, and I learned that there&#8217;s a system for rating geomagnetic storms.  This recent one was a G3, which is fairly common and not that serious.  But about once per month on average there will be a G4 storm which can interfere with GPS navigation and even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.spaceweather.com/submissions/large_image_popup.php?image_name=Jo-Dahlmans-jo1_1271181770.jpg"><img class="top" src="http://www.spaceweather.com/submissions/pics/j/Jo-Dahlmans-jo1_1271181770_med.jpg" alt="" width="300" /></a>Recently some of my friends were discussing solar activity, and I learned that there&#8217;s a <a href="http://www.swpc.noaa.gov/NOAAscales/index.html#GeomagneticStorms">system for rating geomagnetic storms</a>.  This recent one was a G3, which is fairly common and not that serious.  But about once per month on average there will be a G4 storm which can interfere with GPS navigation and even have the aurora visible as far south as California.</p>
<p>This kind of information and much more is available from a cool web site called <a href="http://www.spaceweather.com/">Space Weather</a>.  For example, did you know that just a week ago an <a href="http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=2010%20GA6;orb=1">asteroid</a> got as close to the Earth as the moon is?  It was just a 27 m in size, so not earth destroying.  But these encounters are happening all the time.  Browsing around SpaceWeather a bit more and you&#8217;ll find great pictures of the sun like this one.  Or the current interplanetary magnetic field measured in nanoTeslas.</p>
<p>All in all, fun stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/space-weather.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Omnipotent Self-Aware Botnets</title>
		<link>http://www.embracingchaos.com/2010/04/omnipotent-self-aware-bot-nets.html</link>
		<comments>http://www.embracingchaos.com/2010/04/omnipotent-self-aware-bot-nets.html#comments</comments>
		<pubDate>Sun, 11 Apr 2010 21:47:38 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Seattle]]></category>
		<category><![CDATA[Uploading]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=963</guid>
		<description><![CDATA[My buddy Scotto wrote a play titled &#8220;When I come to my senses, I&#8217;m alive!&#8221; which will be performed at Annex Theater on April 23 &#8211;  May 22.  I read an early draft of the script and am quite excited to see it performed.
I don&#8217;t want to give too much away, but from watching the [...]]]></description>
			<content:encoded><![CDATA[<p>My buddy Scotto wrote a play titled &#8220;When I come to my senses, I&#8217;m alive!&#8221; which will be performed at <a href="http://www.annextheatre.org/home_page/">Annex Theater</a> on April 23 &#8211;  May 22.  I read an early draft of the script and am quite excited to see it performed.</p>
<p>I don&#8217;t want to give too much away, but from watching the trailer you can tell it&#8217;s gonna be good.  The story explores &#8220;emoticlips&#8221; which are a way to digital encode and transmit emotions, like a podcast.  Drama heats up when a viagra ad shows up, something about blackmail.  And my favorite line asks if you&#8217;ve tried <a href="http://www.google.com/search?q=omnipotent+self-aware+bot-nets">Googling</a> &#8220;<strong>omnipotent self-aware botnets</strong>.&#8221;</p>
<p>I just saw a fun trailer for the play on YouTube, shared here for your convenience&#8230;</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/-ua6_HCcl7k&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="385" src="http://www.youtube.com/v/-ua6_HCcl7k&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>You can <a href="http://www.brownpapertickets.com/producerevent/89619?prod_id=426">get your tickets now from Brown Paper</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/omnipotent-self-aware-bot-nets.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPad pre-launch security</title>
		<link>http://www.embracingchaos.com/2010/04/ipad-pre-launch-security.html</link>
		<comments>http://www.embracingchaos.com/2010/04/ipad-pre-launch-security.html#comments</comments>
		<pubDate>Sat, 03 Apr 2010 09:16:04 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Consumer Electronics]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Humor]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=734</guid>
		<description><![CDATA[Arrington managed to get his hands on an iPad for a test drive before launch day, presumably from a company that had been given one to build apps for it.  His description of the security under which these devices were loaned out is so funny I just have to share it with y&#8217;all&#8230;
Scores of [...]]]></description>
			<content:encoded><![CDATA[<p>Arrington managed to get his hands on an iPad for a <a href="http://techcrunch.com/2010/04/02/the-unauthorized-techcrunch-ipad-review/">test drive</a> before launch day, presumably from a company that had been given one to build apps for it.  His description of the security under which these devices were loaned out is so funny I just have to share it with y&#8217;all&#8230;</p>
<p style="padding-left: 30px;">Scores of developers have had iPad’s for weeks now. They’ve had to sign non-disclosure agreements, and have the iPad locked in a separate room that random employees couldn’t access. And even that wasn’t enough. The iPads are literally chained to the desk with steel cable and a lock. Apple comes by the office with a suitcase, installs the iPad in a bolted case, chains it to the desk and locks it there. And they they do occasional surprise visits just to make sure it’s still there.</p>
<p style="padding-left: 30px;">What’s more, Apple has told developers that they are monitoring the location of the device as well.</p>
<p>Apple.  Gotta love them.</p>
<p>Mike says he can type 50 wpm on it.  That&#8217;s really quite cool.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/ipad-pre-launch-security.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Good April Fool&#8217;s Jokes</title>
		<link>http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html</link>
		<comments>http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html#comments</comments>
		<pubDate>Thu, 01 Apr 2010 16:43:58 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=712</guid>
		<description><![CDATA[Nothing exciting here to report, but I thought I&#8217;d share pointers to some of the jokes I&#8217;ve stumbled upon that I like.
UniXKCD command line console

My favorite webcomic, Randall Monroe&#8217;s brilliant XKCD, is running a command-line version of itself today.  A few commands you might want to try include:

find
wget http://xkcd.com/
Make me a sandwich
go west

Google renames itself [...]]]></description>
			<content:encoded><![CDATA[<p>Nothing exciting here to report, but I thought I&#8217;d share pointers to some of the jokes I&#8217;ve stumbled upon that I like.</p>
<p><strong>UniXKCD command line console</strong></p>
<p><a rel="attachment wp-att-714" href="http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html/unixkcd"><img class="alignnone size-medium wp-image-714" title="unixkcd" src="http://www.embracingchaos.com/wp-content/uploads/2010/04/unixkcd-300x184.png" alt="" width="300" height="184" /></a></p>
<p>My favorite webcomic, Randall Monroe&#8217;s brilliant <a href="http://xkcd.com/">XKCD</a>, is running a command-line version of itself today.  A few commands you might want to try include:</p>
<ul>
<li>find</li>
<li>wget http://xkcd.com/</li>
<li>Make me a sandwich</li>
<li>go west</li>
</ul>
<p><strong>Google renames itself to Topeka</strong></p>
<p><strong><a rel="attachment wp-att-715" href="http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html/topeka"><img class="alignnone size-medium wp-image-715" title="topeka" src="http://www.embracingchaos.com/wp-content/uploads/2010/04/topeka-300x135.png" alt="" width="300" height="135" /></a></strong></p>
<p>In honor of Topeka, Kansas renaming itself Google in a bid to get ultra-high-speed broadband installed, <a href="http://google.com/">Google</a> has renamed itself Topeka today.  Although Google is well known for April Fool&#8217;s jokes I believe this is the first time any have been on the homepage.</p>
<p><strong>YouTube&#8217;s TEXTp mode</strong></p>
<p><a rel="attachment wp-att-718" href="http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html/textp"><img class="alignnone size-medium wp-image-718" title="textp" src="http://www.embracingchaos.com/wp-content/uploads/2010/04/textp-300x126.png" alt="" width="300" height="126" /></a></p>
<p><a href="http://www.youtube.com/">YouTube</a> has the option to render most any of its videos in ASCII by adding the &amp;textp=fool parameter onto the URL.  Looking at bandwidth graphs I can&#8217;t tell if they&#8217;re actually sending ASCII over the wire, or doing the conversion client-side.  Fun trick though.</p>
<p><strong>Bing&#8217;s funny cows</strong></p>
<p><a rel="attachment wp-att-717" href="http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html/bing"><img class="alignnone size-medium wp-image-717" title="bing" src="http://www.embracingchaos.com/wp-content/uploads/2010/04/bing-300x176.png" alt="" width="300" height="176" /></a></p>
<p><a href="http://bing.com/">Bing</a> has one of their defining pastoral pictures, this time literally bucolic, but with fake cows.  They&#8217;ve supposedly been bread to only make non-dairy creamer.  Glad you&#8217;re trying, folks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/04/good-april-fools-jokes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google chat adds web-based file transfer</title>
		<link>http://www.embracingchaos.com/2010/03/google-chat-adds-web-based-file-transfer.html</link>
		<comments>http://www.embracingchaos.com/2010/03/google-chat-adds-web-based-file-transfer.html#comments</comments>
		<pubDate>Wed, 31 Mar 2010 15:26:49 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Social Computing]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=701</guid>
		<description><![CDATA[I&#8217;d like to extend congratulations out to all my friends over on the Google chat team.  They just announced a set of improvements to the web based chat clients in both iGoogle and Orkut.  If you haven&#8217;t been there in a while, Orkut is Google&#8217;s original social networking site that was born around the time [...]]]></description>
			<content:encoded><![CDATA[<p><img class="top" src="http://i.imgur.com/lm2EY.png" alt="" />I&#8217;d like to extend congratulations out to all my friends over on the Google chat team.  They <a href="http://googleblog.blogspot.com/2010/03/improved-chat-for-igoogle-and-orkut.html">just</a> <a href="http://googletalk.blogspot.com/2010/03/file-transfer-in-igoogle-and-orkut-chat.html">announced</a> a set of improvements to the web based chat clients in both <a href="http://www.igoogle.com/">iGoogle</a> and <a href="http://www.orkut.com/">Orkut</a>.  If you haven&#8217;t been there in a while, Orkut is Google&#8217;s original social networking site that was born around the time of Friendster and Myspace.  Orkut is incredibly popular in Brazil, so much so that some Brazilians equate Orkut with the internet.  It has a bunch of really neat social networking features, one of which is the tightly integrated chat system which was my <a href="http://www.embracingchaos.com/2007/11/three-weeks-ins.html">starter project at Google</a>.  It&#8217;s great to see file transfer working entirely in the browser in both iGoogle and Orkut, to compliment the impressive video chat capabilities that were already there.  The chat system is based on <a href="http://xmpp.org/">XMPP</a>, so it federates with any other chat system based on the open standard, including obviously all of Google&#8217;s other chat-enabled services like Gmail and the original <a href="http://www.google.com/talk/">Google Talk</a> client.</p>
<p>Great job everybody!  It&#8217;s awesome to see what you can do without leaving your browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/03/google-chat-adds-web-based-file-transfer.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creative Commons Notification Required</title>
		<link>http://www.embracingchaos.com/2010/03/creative-commons-notification-required.html</link>
		<comments>http://www.embracingchaos.com/2010/03/creative-commons-notification-required.html#comments</comments>
		<pubDate>Tue, 30 Mar 2010 16:38:23 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Intellectual Property]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=698</guid>
		<description><![CDATA[I love the Creative Commons licenses.  I use them for most of my photos and rely heavily on other people&#8217;s CC licensed material.  As a result, my photos have ended up in all sorts of fascinating places &#8212; in magazines, on liquor bottles, and who knows where else! A great feature of CC licenses for [...]]]></description>
			<content:encoded><![CDATA[<p>I love the <a href="http://www.embracingchaos.com/2009/02/creative-common.html">Creative Commons licenses</a>.  I use them for most of <a href="http://www.flickr.com/photos/leodirac/">my photos</a> and rely heavily on other people&#8217;s CC licensed material.  As a result, <strong>my photos have ended up in all sorts of fascinating places &#8212; in magazines, on liquor bottles, and who knows where else!</strong> A great feature of CC licenses for me is that my creative work can make itself useful without my effort.  They can go out and find work for themselves and become productive members of society without me needing to shepherd them through the process.  The only requirement is that my name stay attached to them so I get some credit.  Which is enough for me &#8212; photography is not how I make my living nor do I expect to in the future.  So recognition is plenty enough for me as a reward.  Almost.</p>
<p>The big problem I have with the <a href="http://creativecommons.org/about/licenses">current variations of the CC license</a> is the &#8220;who knows where else&#8221; part.  Folks are free to use my content, so long as they attribute it to me, without ever letting me know about it.  And that removes a big part of the fun for me &#8212; I get a huge kick when somebody tells me they want to publish my photo.  As a matter of politeness, I&#8217;ve taken to notifying content creators when I use their CC license, so they can get the joy.  But the license variations can&#8217;t require that.</p>
<p><strong>What I&#8217;d like to see is a </strong><strong>&#8220;Notification Required&#8221; variation of the Creative Commons License</strong>.  It would go alongside the current variations:</p>
<ul>
<li>Attribution</li>
<li>Share-alike</li>
<li>Non-commercial</li>
<li>No derivative</li>
<li>Notification (not yet implemented)</li>
</ul>
<p>It would be executed similarly to the Attribution requirement &#8212; somewhere the content creator needs to explain to re-users how to attribute, and in this case how to notify.  In fact, I&#8217;ve updated the <a href="http://www.flickr.com/people/leodirac/">CC notice</a> by my photos requesting notification.  I&#8217;m asking people to <a href="http://leodirac.com/contact">jump through some small hoops to contact me</a> as a form Turing Test.  But if you understand English, they&#8217;re really pretty easy.</p>
<p>I know others would like to make similar requests when their content is re-used, so I think this should become a part of the standard array of options for CC licenses.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/03/creative-commons-notification-required.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Learning to do Math in your Head</title>
		<link>http://www.embracingchaos.com/2010/01/learning-to-do-math-in-your-head.html</link>
		<comments>http://www.embracingchaos.com/2010/01/learning-to-do-math-in-your-head.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 19:30:39 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Personal Growth]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=629</guid>
		<description><![CDATA[I recently picked up a book called Secrets of Mental Math written by one of my college math professors.  It has very practical advice on how to learn to multiply large numbers in your head.  He gives practical advice on necessary skills like addition, subtraction, and related mathematical trivia.  To practice multiplying numbers in your [...]]]></description>
			<content:encoded><![CDATA[<p>I recently picked up a book called <a href="http://www.amazon.com/gp/product/0307338401/ref=ox_ya_oh_product">Secrets of Mental Math</a> written by one of my college math professors.  It has very practical advice on how to learn to multiply large numbers in your head.  He gives practical advice on necessary skills like addition, subtraction, and related mathematical trivia.  To practice multiplying numbers in your head, I&#8217;ve created a fast, simple javascript tool which you can access from your phone at <a href="http://leodirac.com/mathquiz">http://leodirac.com/mathquiz</a> .</p>
<p>The author of the book is Arthur Benjamin.  He gave a demonstration of his mad skillz at TED a while back, which I&#8217;m embedding here because it&#8217;s awesome.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/M4vqr3_ROIk&amp;hl=en_US&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/M4vqr3_ROIk&amp;hl=en_US&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Migrating this blog has been fun because it&#8217;s forced me to look over a lot of the old content I&#8217;ve written.  A couple years ago I <a href="http://www.embracingchaos.com/2008/01/flashbacks-to-c.html">found</a> Benjamin&#8217;s Ted talk, which has inspired all this craziness.  I think it&#8217;s good to keep the brain fresh by taxing skills that one might not have used in a while.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/01/learning-to-do-math-in-your-head.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Escape from Typepad to Wordpress</title>
		<link>http://www.embracingchaos.com/2010/01/escape-from-typepad-to-wordpress.html</link>
		<comments>http://www.embracingchaos.com/2010/01/escape-from-typepad-to-wordpress.html#comments</comments>
		<pubDate>Sat, 09 Jan 2010 16:47:29 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Tech Industry]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=625</guid>
		<description><![CDATA[It took a long time, but EmbracingChaos has finally escaped form Typepad.  About a year ago (just before the end of the previous billing cycle) I started trying to move this blog to blogger.  I like Google&#8217;s pace of development and wanted to hop on the blogger train and get automatic upgrades for everything they [...]]]></description>
			<content:encoded><![CDATA[<p>It took a long time, but <strong>EmbracingChaos has finally escaped form Typepad</strong>.  About a year ago (just before the end of the previous billing cycle) I started <a href="http://www.embracingchaos.com/2008/12/moving-from-typ.html">trying to move this blog to blogger</a>.  I like Google&#8217;s pace of development and wanted to hop on the blogger train and get automatic upgrades for everything they do.  But ultimately I didn&#8217;t because I couldn&#8217;t make blogger meet all of my requirements for migration:</p>
<ul>
<li>Keep all blog posts and comments</li>
<li>Keep all posts at their original URLs</li>
<li>Maintain all category pages at the same URLs</li>
</ul>
<p>The first one&#8217;s easy.  Google released some <a href="http://www.embracingchaos.com/2009/01/blogger-file-fo.html">migration tools</a> which cover that quite well.  But, at least when importing from typepad / movable type, they don&#8217;t preserve permalink URL&#8217;s.  So anybody who followed a linked to a specific page on my site would get a 404 page.  Weak.</p>
<p>I spent a lot of time on this.  Basic problem is that <strong>Typepad doesn&#8217;t include URL information in their export file format.</strong> It would be very easy for them to do this, but then why would they want to make it easy for you to leave?  Actually the answer there is easy.  Because by trying to lock in users, they create <a href="http://foliovision.com/2009/05/12/typepad-export-options">angry vocal opponents</a> of their service.  I&#8217;m not angry, but <strong>I would advise against anybody considering <a href="http://www.typepad.com/">Typepad</a> as a blog host, specifically because of their tendency to lock people in</strong>.</p>
<blockquote><p>&lt;rant&gt; Don&#8217;t keep my data hostage.  It&#8217;s my content.  I created it.  You&#8217;re just delivering it.  Do not try to lock me into using you as a service provider.  You might get some more money out of me, but every dollar I give you after I want to leave will contribute to my dis-liking you.  As the internet matures and consumers become more sophisticated and better able to share their experiences with each other, they will increasingly choose the service providers who are open.  (Echoing Jonathan Rosenberg&#8217;s <a href="http://googleblog.blogspot.com/2009/12/meaning-of-open.html">recent diatribe</a> on openness.)  I really appreciate Google&#8217;s commitment to <a href="http://www.dataliberation.org/">Data Liberation</a>.  My current provider, <a href="http://www.dreamhost.com/">Dreamhost</a>, also does a splendid job of giving me control over my data.&lt;/rant&gt;</p></blockquote>
<p>It turns out that getting a full-fidelity export out of typepad is possible with some work.  I followed <a href="http://foliovision.com/2008/11/17/typepad-to-wordpress">these instructions from FolioVision</a> which provides a <a href="http://foliovision.com/downloads/typepad-to-wordpress/movable-type-export-template.txt">custom export template</a> that does include URL&#8217;s.  If your blog has more than 100 posts, then you need to change the first line to</p>
<pre>&lt;MTEntries lastn="100"&gt;</pre>
<div id="_mcePaste">&#8230; run the export, then change the line to</div>
<pre>&lt;MTEntries lastn="100" offset="100"&gt;</pre>
<div>&#8230; export again, change it to</div>
<pre>&lt;MTEntries lastn="100" offset="200"&gt;</pre>
<p>etc. and merge all these files together into one big export file that has URL&#8217;s.  Then I tried to get blogger to honor the import file with permalinks but I couldn&#8217;t.  I do believe blogger is capable of doing this, but what ultimately turned me away from it was that it doesn&#8217;t seem to offer any way to honor links like <a href="http://www.embracingchaos.com/humor">www.embracingchaos.com/humor</a> for category listings.  Which I like and get a lot of visitors on.  So I went with wordpress.</p>
<p><a href="http://foliovision.com/2008/11/17/typepad-to-wordpress">FolioVision</a> helpfully posted a custom <a href="http://foliovision.com/downloads/typepad-to-wordpress/fv_mt.zip">wordpress import plugin</a> to match their typepad output template, which makes it all go.  Once that&#8217;s done, you have to move all the attachments hosted at typepad, and then there&#8217;s a bunch of wordpress configuration, and moving your analytics and favicons and finally switching DNS.</p>
<p>So here we are.  <strong>Please tell me if you notice anything amiss with the new site.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/01/escape-from-typepad-to-wordpress.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Participatory Culture and the Democratization of Information</title>
		<link>http://www.embracingchaos.com/2009/12/participatory-culture-and-the-democratization-of-information.html</link>
		<comments>http://www.embracingchaos.com/2009/12/participatory-culture-and-the-democratization-of-information.html#comments</comments>
		<pubDate>Sun, 27 Dec 2009 23:30:17 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Democratization of Information]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Social Computing]]></category>
		<category><![CDATA[Television]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2009/12/participatory-culture-and-the-democratization-of-information.html</guid>
		<description><![CDATA[An example of the trend towards information democracy is the democratization of culture. "Participatory Culture" is the modern trend of many individuals contributing to the mass of popular culture rather than culture being broadcast from a small elite of performers. By analogy, Hollywood's hegemony over movies and television represented a communist politburo where a small group had the power and responsibility to control the cultural experiences of the masses. Today's information technology is tearing down this monopoly that broadcasters held, and thus democratizing culture through three mechanisms: easier content creation, distribution, and a better editorial process. We'll look at each...
]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;">An example of the trend towards information democracy is the democratization of culture.  &#8221;Participatory Culture&#8221; is the modern trend of many individuals contributing to the mass of popular culture rather than culture being broadcast from a small elite of performers.  By analogy, Hollywood&#8217;s hegemony over movies and television represented a communist politburo where a small group had the power and responsibility to control the cultural experiences of the masses.  Today&#8217;s <strong>information technology is</strong> tearing down this monopoly that broadcasters held, and thus <strong>democratizing culture through</strong> three mechanisms: <strong>easier content creation, distribution, and a better editorial process</strong>.  We&#8217;ll look at each of these three aspects after a brief review of other aspects of the democratization of information.</p>
<p style="margin-bottom: 0in;">Broadly, the concept of information democracy is that an increasingly large number of people are able to influence how information is aggregated.  Wikipedia is a clear and simple example of allowing anybody to contribute to what used to be authored by a select few &#8212; &#8220;The Encyclopedia.&#8221;  <a href="http://www.embracingchaos.com/2006/10/democratization.html">Google&#8217;s Pagerank algorithm democratized web search</a>.  Today&#8217;s most <a href="http://www.embracingchaos.com/2007/08/democratizing-p.html">successful software is democratizing the feature set</a> by allowing users to vote on how they want to use it.  The general principal is that <strong>large numbers of individuals can together make better decisions than any small group</strong>.  Applying this principal to culture, we can predict that a cultural democracy will produce &#8220;better culture&#8221; than what was available before.</p>
<p style="margin-bottom: 0in;">Information technology makes it cheaper and easier to both create and to distribute culture.  With the right software, any laptop today has all the power of a professional music or video studio.  Sure the quality won&#8217;t be as good without professional inputs (microphones, cameras, etc) but the cheap stuff is good enough for a lot of things.  Obviously the internet makes distribution of this content trivially easy, which is <a href="http://www.embracingchaos.com/2008/02/music-ip.html">disrupting traditional media businesses</a>.  <strong>Easy creation and distribution of cultural content is an important part of creating a cultural democracy, but</strong> it is not the critical enabling step.</p>
<p style="margin-bottom: 0in;"><strong>The key to democratizing culture is</strong> in the editorial process.  If everybody is contributing cultural content that is easily distributed, but there&#8217;s still a small group deciding which pieces everybody watches, we&#8217;re still in a cultural dictatorship.  <strong>Enabling the mass public to &#8220;vote&#8221; on content</strong> is the democratizing step.  That enables the collective intelligence of all media consumers to help choose what should become part of mass culture.  So instead of some programming executive trying to guess what will be popular, the question almost becomes moot &#8212; <strong>whatever is popular becomes popular culture</strong>.  Actually making this work is not at all straightforward.  I&#8217;ll save a full description of the necessary ingredients for another post, but we can look at a couple examples.</p>
<p style="margin-bottom: 0in;">Youtube does this quite well.  It blurs the line between sharing a video clip with your friends and publishing it as a piece of mass culture.  Any video that isn&#8217;t marked private is submitted into a kind of massive popularity contest.  Videos that get millions of views are undeniably bits of popular culture.  For music, <a href="http://www.last.fm/">last.fm</a> does a good job of being inclusive, but hasn&#8217;t quite taken off.  When I started building social features into <a href="http://www.rhapsody.com/">Rhapsody</a> I hoped they could <a href="http://www.embracingchaos.com/2009/01/rhapsody-profil.html">democratize the music editorial process</a> but that hasn&#8217;t happened yet.  Like many things in social media there&#8217;s a chicken and egg problem with scale which Youtube has clearly gotten past, but music is still struggling with.</p>
<p style="margin-bottom: 0in;">
<h4>Cultural Democracy is &#8220;retro&#8221;?!</h4>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">This post is inspired by a recent <a style="color: blue !important; text-decoration: underline !important; cursor: text !important;" href="http://www.npr.org/templates/story/story.php?storyId=121774910">story by Heather Chaplin</a> that NPR aired describing participatory culture in video games.  The surprising part of the story for me was the assertion that this trend is not modern but in fact “retro.”  The story points out that before analog broadcast media, most culture was participatory &#8212; singing, dancing, crafts, etc.  <strong>Analog technology created the possibility of cultural hegemonies, and digital technology is breaking them down.</strong> A fine point, implying that the 20th century will likely be unique as the only period in human history when popular culture was dictated by an elite group of editors.  Thanks for the interesting tidbit.</p>
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
<p style="margin-bottom: 0in;">
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2009/12/participatory-culture-and-the-democratization-of-information.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dinocams &#8211; The legacy of SLR cameras in the 21st century</title>
		<link>http://www.embracingchaos.com/2009/03/dinocams-the.html</link>
		<comments>http://www.embracingchaos.com/2009/03/dinocams-the.html#comments</comments>
		<pubDate>Sun, 01 Mar 2009 19:01:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Travel]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2009/03/dinocams-the.html</guid>
		<description><![CDATA[DSLR cameras make very little sense today. Modern imaging technology is rapidly turning them into dinosaurs. The forces keeping them alive are a combination of a physical legacy in hunks of glass, and aspirational marketing. I'll explain, but first, what's a DSLR and why don't they make sense? Background on SLRs and DSLRs (If you what "f-stop" means, feel free to skip ahead to the next section.) SLR stands for Single Lens Reflex. Practically speaking it refers to a camera where you can change the lens. You look through the same lens that actually takes the picture, letting you put...
]]></description>
			<content:encoded><![CDATA[<p>DSLR cameras make very little sense today.  Modern imaging technology is rapidly turning them into dinosaurs.  The forces keeping them alive are a combination of a physical legacy in hunks of glass, and aspirational marketing.  I&#8217;ll explain, but first, what&#8217;s a DSLR and why don&#8217;t they make sense?</p>
<p><strong>Background on SLRs and DSLRs</strong></p>
<p>(If you what &#8220;f-stop&#8221; means, feel free to skip ahead to the next section.)</p>
<p>SLR stands for Single Lens Reflex.  Practically speaking it refers to a camera where you can change the lens.  You look through the same lens that actually takes the picture, letting you put any lens from an ultra-wide angle fisheye to a telescope-length zoom lens.  You can also put filters on the front like star filters or color shifters or polarizers.  Imagine a classic 35mm camera &#8212; like what a P.I. would carry to snap pictures of your wife having an affair &#8212; that&#8217;s an SLR.</p>
<p>SLR&#8217;s require a mirror that physically moves to divert the light into one of two places &#8212; your eye, or the film / CCD. The mirror was important when the only technology for capturing images was chemical film.  But nowadays we have various electronic devices like CCDs that digitize an image.  DSLR cameras use a CCD to get many of the benefits of digital imaging, but still have the same physical form factor as an old chemical-film SLR.  They can use the old lenses, which is one of their big appeals.  But so many things about these cameras just don&#8217;t make sense.</p>
<p><strong>The problems with DSLR cameras</strong></p>
<p>First there&#8217;s the <strong>noise.</strong> The sound of the <strong>mirror slapping</strong> against its stops as it switches positions is very recognizable. We used to accept sounds like that as a necessary part of taking<br />
pictures.  Today it just annoys me.  Especially when I&#8217;m at a small<br />
event and some photographer is there making loud clicking noises all<br />
the time while I&#8217;m trying to enjoy whatever it is they&#8217;re digitizing<br />
with their dinocam.  In 99% of all use cases, it&#8217;s totally unnecessary.  CCDs can continuously capture images and display them on a screen, creating a digital light path that doesn&#8217;t require loud expensive mechanical assemblies.  These displays aren&#8217;t as good as what a human eye can pick out, so this doesn&#8217;t work all the time.  But if you don&#8217;t need interchangeable lenses, then the camera can have a second optical path just for the eye, which doesn&#8217;t need to be as good.</p>
<p>One argument against a separate optical viewfinder is that youc can&#8217;t put <strong>filters</strong> in front of the lens.  This is very true, but filters are also obsolete.  With few exceptions, everything that a physical filter does can be done later in photoshop with more control and accuracy.  Color tinting, sparkle, gradients, soft, mist, etc &#8212; these all used to be rendered in physical glass out of necessity.  Polarizing filters are probably the most important exception to this &#8212; since CCD&#8217;s don&#8217;t record a light&#8217;s polarization state, it can&#8217;t be adjusted later.  But for the most part, filters aren&#8217;t necessary anymore, meaning you don&#8217;t need the whole single-lens thing.</p>
<p>But what about <strong>interchangeable lenses</strong>?  Isn&#8217;t it useful to have the same camera body and be able to change lenses?  (I hear you cry.)  Yes, sorta.  There are definitely situations where one lens won&#8217;t be able to do everything you want.  But those situations are getting rarer and rarer.  And in the few exception cases, I&#8217;ll argue that interchangeable lenses aren&#8217;t the right solution.  The reason these cases are getting less and less common is that zoom lenses are getting better.  When SLR cameras first came on the scene zoom lenses basically didn&#8217;t exist because they sucked when they did.  You needed a different lens for each amount of magnification you wanted, so people had lots of lenses.  But with computers to help us design the lenses, and vastly improved manufacturing processes, zoom lenses are getting better all the time.  Nowadays a lens with a huge <a href="http://www.amazon.com/gp/product/B0001G6U48?ie=UTF8&amp;tag=httpwwwaddgco-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=B0001G6U48">10x zoom</a> can even win accolades from camera snobs.  And lenses as versatile as <a href="http://i.gizmodo.com/5125873/olympus-sp+590uz-camera-has-cia+worthy-26x-optical-zoom">26x</a> cover every situation most of us would ever want, and at a quality we&#8217;ll be thrilled with.  So for almost all situations, a single zoom lens is good enough today.</p>
<p>What about the situations where that&#8217;s not quite good enough?  Where you need that 14mm fisheye that captures people standing immediately to the left or right side of the lens?  Or that 8000mm super- long telephoto telescope?  It turns out in either of these challenging cases, getting the lens to fit the standard SLR form factor becomes the hardest part.</p>
<p><strong>Why SLR&#8217;s cripple even the extreme lens cases </strong></p>
<p>With ultra-wide fisheye lenses, the problem is the space reserved for that stupid mirror.  In this case, the focal length is very short, so as a<br />
lens designer, you&#8217;d naturally want the focal plane to be very close to<br />
the glass.  (Like about 14mm.)  But the place where the lens attaches to the camera body necessarily needs to be a certain distance away from the imaging plane.  That distance was determined by the size of the mirror, which was determined by the size of your chemical film &#8212; 35mm, which is more than you&#8217;d really want for a 14mm lens.  Even on today&#8217;s 2009 DSLR cameras, that distance is exactly the same as it was a generation ago in order to ensure backwards compatibility with old lenses.  The literal tons of carefully polished glass represent a very real barrier to improvement since people have invested lots of money in them.</p>
<p>So if you really want a camera that&#8217;s good at taking super-wide angle pictures, you don&#8217;t want your lens to have to be that far away from the imaging plane.  You&#8217;re better off with a specially built camera.  The lens will be simpler, cheaper and higher quality.  But super-wide starts to look funny, no matter what.  Funny meaning<br />
distorted, because if your eye is more than a couple of inches away<br />
from the reproduced super-wide image, then it won&#8217;t look right.  And it&#8217;s not super useful to capture 360 degrees in one shot &#8212; you can shoot a dozen pictures and stitch them together later in software, and it&#8217;ll look more natural.  This is all why people don&#8217;t pay a lot of attention to how super-wide lenses get anymore.</p>
<p>On the super-telephoto side of things, the SLR legacy is even worse.  To get a super-long telephoto lens you need lots of big glass.  This gets expensive quickly simply because it&#8217;s a large mass of carefully manufactured stuff.  <strong>The amount of glass you need for a lens is proportional to the cube of the length of your imaging plane, which for legacy chemical-film is 35mm.</strong> But CCD&#8217;s just don&#8217;t need to be that big.  On almost every DSLR they&#8217;re only about 20mm across, and on high-quality non-SLR cameras are as typically about 6mm across.  So that size legacy means you would need literally 200x  the almost 40x the amount of physical glass to make a good telephoto lens for an SLR vs a non-SLR camera.  This ridiculous discrepency is just going to get worse.</p>
<p>CCD&#8217;s are silicon devices, so they share manufacturing improves along with CPU&#8217;s and follows a Moore&#8217;s law-like improvement curve for performance.  A key way they improve is in pixel density, but also by simply getting smaller.  As they get smaller, high-quality zoom lenses get smaller and cheaper too.  But only if the lenses are specifically designed for the new smaller CCD&#8217;s.  With an SLR system they can&#8217;t be &#8212; the size must be fixed in order to maintain backwards compatibility.  So while sensor technology improves at Moore&#8217;s law speed, lenses for non-SLR cameras improve as well, but SLR lenses do not.  <strong>Expensive zoom lenses for modern cameras just don&#8217;t need to be that big or expensive &#8212; </strong><strong>It&#8217;s like having to build a cell-phone big enough to hold floppy disks.</strong></p>
<p>To illustrate this point, consider the popular Canon SX10IS camera which does not feature interchangeable lenses.  It features a zoom lens that goes from pretty wide (28mm equivalent) to really very far zoom (560mm equivalent).  Because its CCD is only 6mm across, it can do all this for under $400 and weigh in under a pound for the whole camera.  For comparison, a <a href="http://www.amazon.com/Canon-500mm-Super-Telephoto-Cameras/dp/B00009R6X4/ref=sr_1_6?ie=UTF8&amp;s=photo&amp;qid=1232684846&amp;sr=1-6">comparable SLR lens</a> weighs in at over 11lbs and costs upwards of $7,000, just for the lens.  No doubt this lens can take better pictures than the tiny Canon, but a smaller lens built for a modern CCD could take pictures that are every bit as good for a fraction the price.</p>
<p>I would be remiss if I didn&#8217;t mention the noise floor on these sensors.  When the scene is dark, you need more light to get a good image.  A bigger hunk of glass captures more light.  This all makes intuitive sense and is mostly accurate.  CCD sensors can take more accurate pictures in low light when they are bigger.  But the limits here are electronic noise, which is also improving.  At some point we&#8217;ll hit some other barrier like the thermal noise in the sensor, although a piezo cooler could work around that.  Ultimately there&#8217;s the the quantization of photons, but if you&#8217;re taking pictures in a scene that dark, you probably can&#8217;t see what you&#8217;re pointing at anyway.  My point is that while there are advantages in low light for larger glass and sensors, technology is erroding away at those too.  We&#8217;re seeing ISO equivalents of 6400 as fairly common in cameras these days, with an economic competitive pressure to improve that.</p>
<p><strong> </strong>In summary, the problems with the SLR format are that it ties its owner to a physical legacy that denies them the advantages of advancing technology.  There are cases where specialized lenses are still important.  But those cases are dwindling.  Personally, I&#8217;m going to be happier carrying around a full featured small camera that can transform itself into whatever I want without needing interchangable parts than a bag full of bits that were standardized before email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2009/03/dinocams-the.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Creative Commons Licenses</title>
		<link>http://www.embracingchaos.com/2009/02/creative-common.html</link>
		<comments>http://www.embracingchaos.com/2009/02/creative-common.html#comments</comments>
		<pubDate>Sun, 15 Feb 2009 19:01:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Intellectual Property]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2009/02/creative-common.html</guid>
		<description><![CDATA[Creative Commons is a type of license, which is somewhere between a traditional all-rights-reserved copyright and public domain. There are many variations of CC licenses, and they're onto the 3.0 version of the licenses, so expect more soon. Generally CC licenses require Attribution, which is to say, you can do stuff with this content, so long as you say where you got it from. Often this is in the form of a hyperlink back to the original author's website. Flickr popularized this by making CC licenses an option on all their photos. You'll see that almost all of my photos...
]]></description>
			<content:encoded><![CDATA[<p><img class="top" style="margin-top: 0px; margin-right: 5px; margin-bottom: 5px; margin-left: 0px;" title="Creative_commons_2" src="/files/pix/creative_commons.jpg" alt="Creative_commons_2" width="100" height="37" /><br />
<a href="http://creativecommons.org/">Creative Commons</a> is a type of license, which is somewhere between a traditional all-rights-reserved copyright and public domain.  There are many variations of CC licenses, and they&#8217;re onto the 3.0 version of the licenses, so expect more soon.  Generally CC licenses require Attribution, which is to say, you can do stuff with this content, so long as you say where you got it from.  Often this is in the form of a hyperlink back to the original author&#8217;s website.  Flickr popularized this by making CC licenses an option on all their photos.  You&#8217;ll see that almost <a href="http://flickr.com/photos/leodirac">all of my photos</a> are CC licensed.</p>
<p>Creative Commons licenses can either allow somebody to make commercial use of your material, or not, at your discretion, assuming you&#8217;re the one who created the license.  Independently, you can allow anybody to modify, adapt, or remix the content.  Or not.  Or you can allow modification so long as the modified content shares the same license, a so-called &#8220;Share Alike&#8221; license.  <a href="http://creativecommons.org/license/">Here&#8217;s a nice page</a> that shows you the options and allows you to pick a license appropriate for your material.</p>
<p>A CC attribution license is in many senses more realistic in the modern world than an all-rights-reserved license.  It is practically impossible to stop people from using or distributing your work.  The all-rights-reserved license is a threat to take legal action to prevent somebody from using your work.  But suing somebody is such a hassle that it almost never happens for personal content.  Asking somebody to put a link to your website is a pretty reasonable thing and easy to accomplish.   An all rights reserved copyright is for most individuals a bluff.</p>
<p>CC content is also easier to use.  Negotiating terms of licensing under a traditional copyright is daunting.  It necessarily requires a back and forth with the author and probably a whole lot.  The underlying mindset is that content costs money, so if you&#8217;re going to use my content, then you&#8217;re going to sell it and I deserve some of that money.  As the music industry is <a href="http://www.embracingchaos.com/2008/02/music-ip.html">slowly, painfully learning</a>, in modern times this model doesn&#8217;t work so well.  Access to information is generally free, and those who are making money here are doing so by providing value-added services on top of merely distributing the information.  (Think ads by Google, or concerts for music.)  With a CC license the terms of use of the license are right there.  No need to negotiate.  Just follow the attribution instructions and do what you will.  <strong>Instead of requiring negotiation and payment in the traditional economy, this is payment in the nascent reputation economy.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2009/02/creative-common.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Blogger file format converter for MovableType / Typepad</title>
		<link>http://www.embracingchaos.com/2009/01/blogger-file-fo.html</link>
		<comments>http://www.embracingchaos.com/2009/01/blogger-file-fo.html#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:01:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2009/01/blogger-file-fo.html</guid>
		<description><![CDATA[I recently blogged about my efforts to move from TypePad to Blogger. My friend Brian pointed out that Google just announced a set of tools to convert to or from popular blog export formats, including MovableType which uses the same file formats as my TypePad. The converters are open source, distributed under the Apache license, so you can download the code and run them on your local machine. Or, if your blog isn't too big, you can run the code hosted on AppEngine by going to http://movabletype2blogger.appspot.com/ http://wordpress2blogger.appspot.com/ http://livejournal2blogger.appspot.com/ Well I tried this with my blog, and the resulting file...
]]></description>
			<content:encoded><![CDATA[<p>I recently blogged about <a href="http://www.embracingchaos.com/2008/12/moving-from-typ.html">my efforts to move from TypePad to Blogger</a>.&nbsp; My friend Brian pointed out that Google just <a href="http://google-opensource.blogspot.com/2009/01/google-blog-converters-10-released.html">announced </a>a set of tools to convert to or from popular blog export formats, including MovableType which uses the same file formats as my TypePad.&nbsp; The converters are open source, distributed under the Apache license, so you can <a href="http://code.google.com/p/google-blog-converters-appengine/downloads/list">download the code</a> and run them on your local machine.&nbsp; Or, if your blog isn&#8217;t too big, you can run the code hosted on AppEngine by going to</p>
<ul>
<li><a href="http://movabletype2blogger.appspot.com/ ">http://movabletype2blogger.appspot.com/</a></li>
<li><a href="http://wordpress2blogger.appspot.com/ ">http://wordpress2blogger.appspot.com/</a></li>
<li><a href="http://livejournal2blogger.appspot.com/ ">http://livejournal2blogger.appspot.com/</a></li>
</ul>
<p>Well I tried this with my blog, and the resulting file it spit out was almost empty.&nbsp; I think my blog is just a bit too large, since when I ran it on my local machine it came out to 1.03 megs.&nbsp; So if your blog is smaller than mine you can probably use the online tool.</p>
<p>After a couple of bX-xji785 errors, the file imported into blogger about as well as could be expected, which is to say okay but not great.&nbsp; The blog is mostly there.&nbsp; Feel free to take a peak at http://leo-embracingchaos.blogspot.com/ but please don&#8217;t make any permanent links to that URL as it&#8217;s really just for testing.&nbsp; The posts and drafts all made it with the right dates and times, along with the comments and tags.&nbsp; But as <a href="http://www.embracingchaos.com/2008/12/moving-from-typ.html">previously noted</a>, the TypePad export format does not include URLs.&nbsp; So if I were to actually use this conversion, all the inbound links to pages other than the homepage of my blog would break, which is totally unacceptable for me.</p>
<p>I started a <a href="http://groups.google.com/group/google-blog-converters/browse_thread/thread/8687a233e8f9263c#">thread </a>on the discussion group if you&#8217;d like to follow along.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2009/01/blogger-file-fo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rhapsody Profiles FTW!</title>
		<link>http://www.embracingchaos.com/2009/01/rhapsody-profil.html</link>
		<comments>http://www.embracingchaos.com/2009/01/rhapsody-profil.html#comments</comments>
		<pubDate>Sun, 04 Jan 2009 19:00:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Democratization of Information]]></category>
		<category><![CDATA[Ego]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Social Computing]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2009/01/rhapsody-profil.html</guid>
		<description><![CDATA[Excuse my newbie exuberance, but OMG Rhapsody.com finally launched profile pages!!! They've been up for a while now, which makes me think they're for real this time. A couple of you might remember that this feature was live for something like a week in early 2007. But it was very slow and didn't live long. Sniff. I worked hard to make this feature possible when I was working at Real. The fact that I couldn't get it re-launched was a big motivator for me to move on to greener pastures. I saw making Rhapsody social as an important evolution of...
]]></description>
			<content:encoded><![CDATA[<p><a href="/files/downloads/Rhapsody-Profile.png"><img width="240" src="/files/downloads/Rhapsody-Profile.png" class="top" /></a>Excuse my newbie exuberance, but OMG <strong><a href="http://www.rhapsody.com/">Rhapsody.com</a> finally launched profile pages!!!</strong>&nbsp; They&#8217;ve been up for a while now, which makes me think they&#8217;re for real this time.&nbsp; A couple of you might remember that this feature was live for something like a week in early 2007.&nbsp; But it was very slow and didn&#8217;t live long.&nbsp; Sniff.</p>
<p><strong>I worked hard to make this feature possible</strong> when I was working at Real.&nbsp; The fact that I couldn&#8217;t get it re-launched was a big motivator for me to move on to greener pastures.&nbsp; I saw making Rhapsody social as an important evolution of the music catalog&#8217;s organizational schema.&nbsp; It&#8217;s also an attempt to bring the product into what Tim O&#8217;Reilly would call Web 2.0.&nbsp; Tim&#8217;s <a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html">canonical essay</a> is long-winded, but I really liked how he summarized it in a recent <a href="http://www.sciencefriday.com/program/archives/200812194">interview on NPR</a> &#8212; basically <strong>the product gets better as people use it</strong>.&nbsp; The millions of people who use Rhapsody are an asset that has been almost completely unused, except to take their money.&nbsp; I saw it as a way to take on one of the product&#8217;s biggest shortcomings.
</p>
<p>Rhapsody has tons of music.&nbsp; TONS.&nbsp; <strong>Rhapsody almost certainly has something you want to listen to right now, regardless of who you are or what your current mood or situation is.</strong>&nbsp; It&#8217;s a strong statement, but there really is that much music.&nbsp; The problem is figuring out what you want to listen to.&nbsp; Rhapsody has a great categorical index of music, so if you know you want to listen to D&amp;B or Emo or Vocal Jazz, no problem.&nbsp; Or if you know specifically the name of something you want to listen, just search for it.&nbsp; Other than that, you can take the homepage recommendations, browse the catalog manually, or sift through Playlist Central, a dumping ground for unvetted playlists that is a case study in how not to use user-generated-content (UGC) on a website.</p>
<p><strong>Picking good music is difficult.&nbsp; This is what DJ&#8217;s get paid for.</strong>&nbsp; I originally wanted this feature to be called &quot;DJ Pages.&quot;&nbsp; The idea was to give a voice to the small fraction of Rhapsody users who are fanatical about the product.&nbsp; People who are serious music buffs love Rhapsody, and if given a voice would and still might add tremendous value to the music catalog.&nbsp; Right now the editorial voice in Rhapsody is controlled by a politburo of paid editors.&nbsp; They&#8217;re really good, but they&#8217;re just a handful of hands.&nbsp; <strong>DJ Pages would democratize the music editorial process so</strong> anybody with an opinion can contribute.&nbsp; The social graph becomes the voting process to select who&#8217;s worth paying attention to, just like with <a href="http://en.wikipedia.org/wiki/PageRank">pagerank</a>.&nbsp; What Tim calls Web 2.0, I like to refer to the <a href="http://www.embracingchaos.com/democratization_of_information/index.html">democratization of information</a>.&nbsp; Partly because it&#8217;s fun to call people Communists when they cling to control of information, but mostly because the analogy is apt and helpful.</p>
<p>The Rhapsody team has made an important step in this direction of openness.&nbsp; I hope they keep running with it.&nbsp; If you want to see what&#8217;s been playing on my Sonos at home, check out <a href="http://www.rhapsody.com/member/lparker">my profile page</a>.&nbsp; But most importantly, I&#8217;d like to express my <strong>CONGRATULATIONS to everybody who made this possible</strong> again and the first time!!!!11!!1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2009/01/rhapsody-profil.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Moving from Typepad to Blogger</title>
		<link>http://www.embracingchaos.com/2008/12/moving-from-typ.html</link>
		<comments>http://www.embracingchaos.com/2008/12/moving-from-typ.html#comments</comments>
		<pubDate>Sun, 28 Dec 2008 20:34:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/12/moving-from-typ.html</guid>
		<description><![CDATA[For a while now I've wanted to move this blog from Typepad to something else like Blogger. I keep finding more reasons to do this as Blogger improves and Typepad stagnates. Some reasons include: Better WYSIWYG editing in Blogger. (I can't change any font characteristics in Typepad without going into raw HTML. Ugh.) Typepad's lack of support for Chrome, Google's awesome new browser The awkward and limiting way Typepad assigns human-readable URLs to posts Blogger is free, while Typepad costs >$100 per year Cool new features being added to Blogger like Followers Adding new features in Typepad is a p.i.t.a....
]]></description>
			<content:encoded><![CDATA[<p>For a while now I&#8217;ve wanted to move this blog from Typepad to something else like Blogger.&nbsp; I keep finding more reasons to do this as Blogger improves and Typepad stagnates.&nbsp; Some reasons include:</p>
<ul>
<li>Better WYSIWYG editing in Blogger.&nbsp; (I can&#8217;t change any font characteristics in Typepad without going into raw HTML. Ugh.)</li>
<li>Typepad&#8217;s lack of support for <a href="http://www.google.com/chrome">Chrome</a>, Google&#8217;s awesome new browser</li>
<li>The awkward and limiting way Typepad assigns human-readable URLs to posts</li>
<li>Blogger is free, while Typepad costs &gt;$100 per year</li>
<li>Cool new features being added to Blogger like <a href="http://help.blogger.com/bin/answer.py?answer=104226">Followers</a></li>
<li>Adding new features in Typepad is a p.i.t.a. (i.e. I&#8217;m too old to be messing with perl-based templating languages.&nbsp; Did more than my share of that in 1996.)</li>
</ul>
<p>Typepad has long supported an <a href="http://support.typepad.com/cgi-bin/typepad.cfg/php/enduser/std_adp.php?p_faqid=62">export feature</a>, which dumps out all the posts, drafts, comments, etc into a text file.&nbsp; And now blogger has an <a href="http://bloggerindraft.blogspot.com/2008/06/new-feature-import-and-export.html">import feature</a>, which takes an XML file that looks kinda like an Atom feed.&nbsp; I looked around for a tool to convert between the two and found only <a href="http://josschuurmans.blogspot.com/2008/09/how-to-import-typepad-blog-content-into.html">others asking the same question</a>.&nbsp; </p>
<p>So I thought here&#8217;s a chance for me to contribute something to<br />
society and help myself at the same time.&nbsp; Converting one text file to<br />
another shouldn&#8217;t be that hard.&nbsp; So I rolled up my sleeves and started<br />
playing with it.&nbsp; I realized one problem fairly quickly &#8212; the typepad export format<br />
doesn&#8217;t include the URL for each post.&nbsp; I really don&#8217;t want to break<br />
all the previous inbound links because<br />
that&#8217;s how people get to my content.&nbsp; But I&#8217;m going to need to crawl<br />
the old blog to get those old links.</p>
<p>Since the blogger format looks like a regular Atom feed, I thought I&#8217;d try to just grab the Atom feed off the blog and import it into Blogger.&nbsp; Well to that, blogger said:</p>
<blockquote><p><span style="color: #ff0000;"><span class="Apple-style-span" style="border-collapse: separate; font-family: 'Trebuchet MS'; font-size: 13px; font-style: normal; font-variant: normal; font-weight: bold; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">Blogger does not currently support import files generated by TypePad.</span></span></p>
</blockquote>
<p>Fine.&nbsp; But what are the differences?&nbsp; The blogger format includes a bunch of fake &quot;entry&quot; elements which are really configuration &#8212; like a giant &quot;layout&quot; node and a bunch of other settings.&nbsp; So I tried grafting the two together &#8212; just taking the legitimate &quot;entry&quot; nodes from the typepad feed and putting them into the blogger export that includes all the layout and settings.&nbsp; By converting everything to look like the blogger format, it imports, but that also loses information.&nbsp; So I set about looking for the minimal set of changes that will work.</p>
<p>One that definitely breaks it is a side-efect of being hooked-up to feedburner.&nbsp; There&#8217;s extra stuff in there like the feedburner:origLink tags:</p>
<p>&nbsp; &nbsp; &lt;feedburner:origLink&gt;http://www.embracingchaos.com/2008/12/repairing-a-deg.html&lt;/feedburner:origLink&gt;</p>
<p>These break the import, which shouldn&#8217;t be much of a surprise since the feedburner: namespace isn&#8217;t defined in the Blogger export.</p>
<p>I gave up looking for today because blogger was having too many server errors on import.&nbsp; They&#8217;re intermittent, so I was happy to refresh through them for a while.&nbsp; But at some point 90% of my imports gave me funny error codes like bX-gxxw6w so I&#8217;m giving up for now.&nbsp; </p>
<p>I wrote a stub of a python program to do the merge.&nbsp; I called it <a href="http://www.embracingchaos.com/downloads/typepad2blogger.py  ">typepad2blogger.py</a> and happily donate it to the public domain.&nbsp; It&#8217;s definitely not done and is useful only insofar as it shows one way to approach the problem and has enough stuff in place that somebody else should be able to get a running start.&nbsp; I&#8217;ll hopefully continue work on this at some point.&nbsp; But even a couple hours of work on it has triggered my <a href="http://www.embracingchaos.com/2007/07/why-i-cant-work.html">RSI</a> so I&#8217;ll have to take a break.&nbsp; If you want to pick this up, let me know and we can coordinate efforts.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/12/moving-from-typ.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>RAID repair successful</title>
		<link>http://www.embracingchaos.com/2008/12/raid-repair-suc.html</link>
		<comments>http://www.embracingchaos.com/2008/12/raid-repair-suc.html#comments</comments>
		<pubDate>Mon, 22 Dec 2008 02:50:25 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/12/raid-repair-suc.html</guid>
		<description><![CDATA[For everybody who has been waiting with baited breath to hear whether or not the repair of the RAID array worked or not, it did. It took several days, but since we were away on vacation seeing my dad receive the Fleming Medal from the American Geophysical Union, the waiting was pretty easy. To convince myself that the repair was successful, I unplugged one of the previously functional drives, and saw that all my files were still there when the array was running just on the new drive and the other previous drive. I recommend this to anybody who thinks...
]]></description>
			<content:encoded><![CDATA[<p>For everybody who has been waiting with baited breath to hear whether or not the <a href="http://www.embracingchaos.com/2008/12/repairing-a-deg.html">repair of the RAID array</a> worked or not, it did.  It took several days, but since we were away on vacation seeing my dad receive the <a href="http://www.agu.org/inside/honors.html#Fleming">Fleming Medal</a> from the <a href="http://www.agu.org/">American Geophysical Union</a>, the waiting was pretty easy.</p>
<p>To convince myself that the repair was successful, I unplugged one of the previously functional drives, and saw that all my files were still there when the array was running just on the new drive and the other previous drive.  I recommend this to anybody who thinks they&#8217;re running a RAID system &#8212; <strong>until you&#8217;ve seen the RAID array work with a drive removed, how can you be sure it&#8217;s really working?</strong>  If your system is set up better than mine is, you&#8217;ll get some kind of warning message too.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/12/raid-repair-suc.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Repairing a degraded EVMS RAID 5 array</title>
		<link>http://www.embracingchaos.com/2008/12/repairing-a-deg.html</link>
		<comments>http://www.embracingchaos.com/2008/12/repairing-a-deg.html#comments</comments>
		<pubDate>Sun, 14 Dec 2008 23:38:36 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/12/repairing-a-deg.html</guid>
		<description><![CDATA[A while back, lightning scrambled one of the disks in my home RAID 5 array. I figured out how to recover it. And I got the critical data off. Here I describe the steps I took to add a new drive and get it working with the old RAID array. I share this with the net in hopes it will make it easier for somebody else who has to go through this process themselves, and selfishly as notes for me to refer to. It's a testament to the power of EVMS and a warning to anybody who thinks it might...
]]></description>
			<content:encoded><![CDATA[<p>A while back, lightning scrambled one of the disks in my home RAID 5 array.&nbsp; I figured out <a href="http://www.embracingchaos.com/2008/07/raid-failure-ev.html">how to recover it</a>.&nbsp; And I got the critical data off.&nbsp; &nbsp;Here I describe the steps I took to add a new drive and get it working with the old RAID array.&nbsp; I share this with the net in hopes it will make it easier for somebody else who has to go through this process themselves, and selfishly as notes for me to refer to.&nbsp; It&#8217;s a testament to the power of EVMS and a warning to anybody who thinks it might be fun to run their own open-source software RAID server at home.&nbsp; </p>
<p><strong>My advice for people seeking reliable storage: go with a hosted solution.</strong>&nbsp; Understanding the arcane nuances of these software systems is an extremely specific skill that doesn&#8217;t translate well to many real-life necessities.&nbsp; If you&#8217;re smart, you can figure it out, but it doesn&#8217;t teach you much of anything except how to do exactly that.&nbsp; Each person who understands this stuff should be keeping petabytes of data happy, rather than one couple&#8217;s pictures and music collections.&nbsp; I hear Microsoft&#8217;s &quot;home server&quot; actually makes this pretty easy, but I can&#8217;t recommend anybody willingly lock themselves into Microsoft&#8217;s business model.</p>
<p><strong>Background</strong></p>
<p>So I bought a new drive, following <a href="http://www.embracingchaos.com/2007/01/setting_up_a_ra.html">my own advice about picking drives from different manufacturers when building a raid array</a>, and plugged it in to the mobo and booted the machine.&nbsp; After futzing with /etc/fstab to get it to find the boot disk and load up, I logged into evms and got these messages:</p>
<blockquote><p>MDRaid5RegMgr: RAID5 array md/md1 is miissing the member&nbsp; with RAID index 0.&nbsp; The array is running in degrade mode.</p>
</blockquote>
<p>and</p>
<blockquote><p>MDRaid5RegMgr: Region md/md1 is currently in degraded mode.&nbsp; To bring it back to normal state, add 1 new spare device to replace the faulty or missing device.</p>
</blockquote>
<p>Conceptually easy.&nbsp; I&#8217;ve got a new 500 GB drive in the system.&nbsp; Linux sees it.&nbsp; It didn&#8217;t take me too long to figure out it&#8217;s called /dev/sda, while the previous 2 disks in the array are sdb and sdc, with a small boot drive at sdd.&nbsp; Now the fun part is figuring out EVMS terminology enough to tell it to use the new disk.</p>
<p>The hierarchy of the array in EVMS land seems to be as follows:</p>
<ul>
<li><em>Logical Volume</em> teraraid (contains)</li>
<li><em>Region</em> md/md1 (which contains)</li>
<li><em>Segments</em> sdb1 and sdc1 (which are built on)</li>
<li><em>Logical disks</em> sdb, sdc.</li>
</ul>
<p><strong>What I tried, and what seems to have worked</strong></p>
<p>I see that logical disk sda has no segments.&nbsp; So I try Action -&gt; Create -&gt; Segment.&nbsp; It only gives me one choice for &quot;Segment Manager&quot; which is &quot;GPT Segment Manager.&quot;&nbsp; But when I choose it, it doesn&#8217;t let me make a segment on sda.&nbsp; Only the tiny free space on sdb and sdc.&nbsp; So sda needs something else done to it before we can use it.&nbsp; What?</p>
<p>sda also shows up in the list of Logical Volumes, next to Teraraid and the formatted boot partition.&nbsp; Hmmm.</p>
<p>Well I tried converting it to an EVMS Volume.&nbsp; It complained that sda does not have a File System Interface Module (FSIM) associated with it, but it made the new logical volume anyway.&nbsp; This wasn&#8217;t getting me anywhere.&nbsp; So I erased it.</p>
<p>Next I tried &quot;Add&quot; -&gt; &quot;Segment Manager to Storage Object&quot;.&nbsp; I noticed that all of the Disk Segments associated with the array were listed as using &quot;Plug-in&quot; &quot;GptSegM&quot; and this gave me the choice of adding Gpt Segment Manager to sda.&nbsp; W00t.&nbsp; I said &quot;No&quot; to make this a system disk.&nbsp; This seems to be working.&nbsp; Now I see a bunch of Disk Segments starting with sda, including a big one (465 GB) labelled sda_freespace1.&nbsp; </p>
<p>Now when I tried to Create -&gt; Segment, it let me use GPT Segment Manager on sda_freespace1 and allocate a 450 GB disk segment to match the others.&nbsp; (I left 15 GB off each disk with the idea I could put a boot segment in that space, but I&#8217;ve never gotten around to it.)</p>
<p>Now in &quot;Available Objects&quot; there is sda1 with 450.0 ready for me.&nbsp; Alrighty we&#8217;re getting there.</p>
<p>Now I look at &quot;Storage Regions&quot; and in the context menu for md/md1 I see an option that says &quot;Add spare to fix degraded array&#8230;&quot;&nbsp; I didn&#8217;t see it there before &#8212; it might have not shown up when there weren&#8217;t any spares, or maybe I was just being thick.&nbsp; In any case, selecting it now gives me a menu with one choice &#8212; sda1.&nbsp; </p>
<p>Now in details of md/md1 it shows:</p>
<blockquote><pre>

 Na┌──────────────────── Detailed Information - md/md1 ─────────────────────┐ ──│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│── lv│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Value&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │ lv│ ────────────────────────────────────────────────────────────────────── │ lv│&nbsp; &nbsp;&nbsp; Major Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;9&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│ md│&nbsp; &nbsp;&nbsp; Minor Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; md/md1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; State&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Discovered, Degraded, Active&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Personality&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; RAID5&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│ +&nbsp; &nbsp;Working SuperBlock&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Number of disks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;3&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdb1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdc1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Number of stale disks&nbsp; &nbsp;1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Stale disk 0&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sda1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp; Use spacebar on fields marked with &quot;+&quot; to view more information&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ [Help]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; [OK]&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;└────────────────────────────────────────────────────────────────────────┘
</pre>
</blockquote>
<p>That last line about the Stale disk is new.</p>
<p>Actions -&gt; Save commits these changes to disk.&nbsp; Now looking at Detailed information for md/md1 shows</p>
<blockquote><pre>

 Na┌──────────────────── Detailed Information - md/md1 ─────────────────────┐ ──│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│── lv│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Value&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │ lv│ ────────────────────────────────────────────────────────────────────── │ lv│&nbsp; &nbsp;&nbsp; Major Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;9&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│ md│&nbsp; &nbsp;&nbsp; Minor Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; md/md1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; State&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Discovered, Degraded, Active, Syncing =&nbsp; 0 │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Personality&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; RAID5&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│ +&nbsp; &nbsp;Working SuperBlock&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Number of disks&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;3&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdb1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdc1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Number of stale disks&nbsp; &nbsp;1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Stale disk 0&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sda1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp; Use spacebar on fields marked with &quot;+&quot; to view more information&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ [Help]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; [OK]&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;└────────────────────────────────────────────────────────────────────────┘
</pre>
</blockquote>
<p>Emotionally I feel like I should be done now.&nbsp; But I don&#8217;t hear the thrashing noise of a half-terabyte of of checksums being unwound and copied onto a fresh disk.&nbsp; And it says &quot;Syncing = 0&quot;.&nbsp; Hmmm.</p>
<p>I quit evmsn and reload it to see two new messages.&nbsp; One familiar:</p>
<blockquote><p> MDRaid5RegMgr: Region md/md1 is currently in degraded mode.&nbsp; To bring it<br />back to normal state, add 1 new spare device to replace the faulty or missing device.</p>
</blockquote>
<p>And one novel:</p>
<blockquote><p>MDRaid5RegMgr: RAID5 array md/md1 is missing the member&nbsp; with RAID index 0.&nbsp; The array is running in degrade mode.&nbsp; The MD recovery process is running, please wait&#8230;</p>
</blockquote>
<p>But this novel message saying it&#8217;s recovering is &quot;Number 0&quot; implying that it came before the other message (Number 1) which tells me I need to take action for it to fix itself.&nbsp; And the drives are not thrashing.&nbsp; Again I look at the details for md/md1 and now I see:</p>
<blockquote><pre>

 Na┌──────────────────── Detailed Information - md/md1 ─────────────────────┐ ──│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│── lv│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Value&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │ lv│ ────────────────────────────────────────────────────────────────────── │ lv│&nbsp; &nbsp;&nbsp; Major Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;9&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│ md│&nbsp; &nbsp;&nbsp; Minor Number&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; md/md1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; State&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; Discovered, Degraded, Active, Syncing =&nbsp; 0.3% │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Personality&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; RAID5&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│ +&nbsp; &nbsp;Working SuperBlock&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; Number of disks&nbsp; &nbsp;&nbsp; &nbsp;3&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdb1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sdc1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ +&nbsp; &nbsp;Disk 3&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sda1&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp; Use spacebar on fields marked with &quot;+&quot; to view more information&nbsp; &nbsp;&nbsp; │&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;│ [Help]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; [OK]&nbsp; &nbsp;│&nbsp; &nbsp;│&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;│&nbsp; &nbsp;└────────────────────────────────────────────────────────────────────────┘
</pre>
</blockquote>
<p>Which really seems to say its doing its thing.&nbsp; Maybe I don&#8217;t hear the disks because it&#8217;s formating the disk first, which is a linear process.&nbsp; Or maybe the whole copy process is very linear and I won&#8217;t hear it thrashing.&nbsp; Its progress implies it&#8217;s going to take a couple/few days to finish, which is what I&#8217;d expect.&nbsp; So maybe it&#8217;s working.  I&#8217;ll let it run for a while and see what happens to the array if I try to unplug one of the previously working drives.</p>
<p>Pretty cool that I didn&#8217;t even need to unmount the array to do this.</p>
<p>Now if I could just figure out why my laser printer periodically decides it needs to print it internal test page, I&#8217;d be even happier.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/12/repairing-a-deg.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to protect yourself from DNS hacks</title>
		<link>http://www.embracingchaos.com/2008/07/how-to-protect.html</link>
		<comments>http://www.embracingchaos.com/2008/07/how-to-protect.html#comments</comments>
		<pubDate>Wed, 23 Jul 2008 01:20:47 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Electronic Security]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/07/how-to-protect.html</guid>
		<description><![CDATA[A couple weeks ago, Dan Kaminsky found a flaw in DNS. Without getting into details, this flaw enables a malicious attacker to fool your web browser into connecting to the wrong computer to get your web pages. So when you type www.facebook.com into your browser, you might actually go to Joe Hacker's site, even though your browser says http://www.facebook.com/ in its address bar just like it should. Dan, being a "good guy", tried to keep the details of this hack quiet for long enough for network operators to patch their systems and close the loophole. He wanted everybody running a...
]]></description>
			<content:encoded><![CDATA[<p>A couple weeks ago, <a href="http://www.doxpara.com/">Dan Kaminsky</a> found a flaw in DNS.&nbsp; Without getting into details, this flaw enables a malicious attacker to fool your web browser into connecting to the wrong computer to get your web pages.&nbsp; So when you type www.facebook.com into your browser, you might actually go to Joe Hacker&#8217;s site, even though your browser says http://www.facebook.com/ in its address bar just like it should.</p>
<p>Dan, being a &quot;good guy&quot;, tried to keep the details of this hack quiet for long enough for network operators to patch their systems and close the loophole.&nbsp; He wanted everybody running a DNS server to do this before the &quot;bad guys&quot; figured out what the bug is and started to take advantage of it.&nbsp; He was hoping for 30 days of time to prepare, but somebody spilled the beans after 13 days, and now the hackers are off and running.</p>
<h3>It&#8217;s a jungle out there</h3>
<p>You might be asking, <strong>So what? </strong> What are the dangers of being directed to the wrong website?&nbsp; Of course, you could read incorrect news and that&#8217;s not great.&nbsp; More likely you&#8217;re going to have <strong>your password stolen</strong> for whatever site you log into.</p>
<p>The obvious attacks are to sites like paypal or banks, but they&#8217;re actually safe from such attacks if you use your browser properly.&nbsp; Any financial site will use a secure connection.&nbsp; You can tell because of the <strong>https://</strong> at the beginning of their address.&nbsp; These sites use a digital certificate that your browser checks to verify their authenticity.&nbsp; All this happens independently of the DNS system.</p>
<p>But you can still connect to a hacked site with https.&nbsp; Your browser will probably warn you saying something about a certificate not matching.&nbsp; More often than not these errors occur because of a lazy sysadmin or something.&nbsp; But right now, I strongly advise you to <strong>take all HTTPS warnings seriously.</strong></p>
<h3>Protect yourself</h3>
<p>If you want to be sure you&#8217;re safe, manually connect your machine to <a href="http://www.opendns.com/">OpenDNS</a>, as Dan <a href="http://www.doxpara.com/?p=1176">recommends</a>.&nbsp; We know they&#8217;re patched and can take the traffic.&nbsp; I&#8217;ll give you the steps to do this on Windows:</p>
<p>1. Start menu<br />2. Control Panel<br />3. Network connections&nbsp; (might have to switch to &quot;classic view&quot;)<br />4. Select the one you&#8217;re actually using.&nbsp; It&#8217;s likely called &quot;local area connection&quot;.<br />5. Click Properties on the status dialog<br />6. Scroll down in the list of checkboxes, and select &quot;Internet Protocl (TCP/IP)&quot; so that it&#8217;s highlighted.&nbsp; (Leave it checked!)<br />7. Click Properties<br />8. In the first General tab, change the second radio-button from &quot;Obtain DNS server address automatically&quot; to &quot;Use the following DNS server addresses:&quot;<br />9. For Preferred DNS server, enter: 208.67.222.222<br />10. For Alternate DNS server, enter: 208.67.220.220</p>
<p>That&#8217;s mostly it, but to be safe, you should reboot, restart your browsers, and/or:</p>
<p>11. (Windows key+R).&nbsp; In the dialog type&nbsp; &quot;ipconfig /flushdns&quot; (without the quotes) and hit okay.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/07/how-to-protect.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XMPP PubSub: a great compliment to Atom/RSS</title>
		<link>http://www.embracingchaos.com/2008/07/xmpp-pubsub-a-g.html</link>
		<comments>http://www.embracingchaos.com/2008/07/xmpp-pubsub-a-g.html#comments</comments>
		<pubDate>Tue, 22 Jul 2008 14:11:34 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Social Computing]]></category>
		<category><![CDATA[System Architecture]]></category>
		<category><![CDATA[XMPP]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/07/xmpp-pubsub-a-g.html</guid>
		<description><![CDATA[I spent the day yesterday at XMPP Summit #5 alongside OSCON in Portland. It was a great chance to catch up with old friends and meet a few new ones. But my favorite part was the break-out discussion of XMPP PubSub as it relates to micro-blogging. We discussed what hopefully will emerge as a standard way to associate an existing Atom/RSS feed with an XMPP PubSub Node. First some background on the relevant technologies. Feel free to skip ahead if you understand this stuff. PubSub 101: Push vs Pull PubSub is short for "publish subscribe" which is a common design...
]]></description>
			<content:encoded><![CDATA[<p>I spent the day yesterday at <a href="http://www.xmpp.org/summit/summit5.shtml">XMPP Summit #5</a> alongside <a href="http://en.oreilly.com/oscon2008/public/content/home">OSCON</a> in Portland.&nbsp; It was a great chance to catch up with old friends and meet a few new ones.&nbsp; But my favorite part was the break-out discussion of XMPP PubSub as it relates to micro-blogging.&nbsp; We discussed what hopefully will emerge as <strong>a standard way to associate an existing Atom/RSS feed with an XMPP PubSub Node.</strong>&nbsp; First some background on the relevant technologies.&nbsp; Feel free to skip ahead if you understand this stuff.</p>
<h3>PubSub 101: Push vs Pull</h3>
<p>PubSub is short for &quot;publish subscribe&quot; which is a common design pattern describing a way to distribute information to interested parties.&nbsp; The publisher tells a server about new information, and the server fans the information out to everybody who has registered interest in that topic or channel.&nbsp; Data consumers find out about the new information very quickly, with relatively little load on the whole system, since the pubsub mechanism provides a means to &quot;push&quot; data to them.&nbsp; </p>
<p>By contrast, almost all of the web today follows uses a &quot;pull model&quot; where a data consumer only finds out about new information when it gets around to checking if there is something new.&nbsp; This data distribution model is significantly simpler because the server only needs to keep track of the content, not who is interested in knowing about it.&nbsp; Modern networks are optimized for this kind of query-based traffic where data consumers (clients, web browsers) initiate connections to servers, such that it&#8217;s often impossible for servers to initiate conncetions to clients because of firewalls or NAT.</p>
<p>The downside of the pull model is that the only way a data consumer can find out if thanything is new on the server is to &quot;check back frequently&quot; or &quot;poll&quot; the server for changes.&nbsp; If you want to know within 15 minutes if anything new has been posted, you have to ask the server at least every 15 minutes &quot;anything new?&quot;&nbsp; No.&nbsp; &quot;How about now?&quot;&nbsp; No.&nbsp; &quot;Got anything yet?&quot;&nbsp; No.&nbsp; Mulitply this by potentially millions of interested data consumers and you end up spending a lot of network bandwidth and server resources doing very little.&nbsp; Even worse, <strong>the problem scales horribly</strong>.&nbsp; If clients want to know about changes within 5 minutes instead of 15, that puts 3 times the load on the server.&nbsp; Want to know within a few seconds?&nbsp; Forget it &#8212; the servers would crash.&nbsp; There&#8217;s an intrinsic delay in distributing information in this model, and reducing that delay is very expensive.</p>
<h3>XMPP as an alternative to polling</h3>
<p>XMPP is the protocol used for Instant Messaging by Google Talk and Jabber and a large number of small servers.&nbsp; In order to deliver instant messages, XMPP systems maintain persistent connections between all machines that allow packets of data to be pushed with very low latency &#8212; IM messages are typically delivered within a second of sending them.&nbsp; So it&#8217;s natural to want to use this infrastructure to deliver other data more efficiently than through polling HTTP.</p>
<p>The XMPP PubSub spec known as <a href="http://www.xmpp.org/extensions/xep-0060.html">XEP-0060</a> describes how to do exactly this at the protocol level.&nbsp; But for a variety of reasons, this standard has not gained wide adoption.&nbsp; IMHO the biggest reason is that there isn&#8217;t a very pressing need.&nbsp; The current system is horribly inefficient, but it works.&nbsp; Moreover, it puts the burden of inefficiency squarely in the hands of the information publishers.&nbsp; Popular publishers are just expected to shell up for necessary hardware to meet the demands of their readers, and with advertising they can typically recoup the necessary investment.</p>
<p>Another way to state that is that pubsub hasn&#8217;t found its niche yet.&nbsp; IMHO this is partly because the mechanism is so useful it can be applied to almost anything.&nbsp; Not just breaking news, but everything from e-mail mailing lists to <a href="http://daubers.homelinux.net/2008/02/06/bluetooth-xmpp-doorbell/">doorbell chimes</a> get used as examples of how XMPP pubsub technology could be applied.&nbsp; Not wanting to exclude any of these potentially interesting uses, the protocol remains very generic.</p>
<h3>Micro-blogging, Atom and Yesterday&#8217;s Realization</h3>
<p>One place where the current HTTP model breaks down is micro-blogging, which is the generic term for services like <a href="http://www.twitter.com/">Twitter</a> or Facebook&#8217;s udpates.&nbsp; Here, the payload of actual content is very small, so the overhead of checking far outweighs the &quot;useful data&quot; which is delivered.&nbsp; Also, because the information is social (i.e. &quot;Heading to Broadway for a bite &#8212; wanna come?&quot;) consumers demand it be delivered quickly.&nbsp; Nonetheless, current micro-blogging services still rely on polling clients, and their servers suffer as a result.</p>
<p>Yesterday, a group of us including <a href="http://twitter.com/blaine">Blaine Cook</a>, <a href="http://anders.conbere.org/journal/">Anders Conbere</a>, <a href="http://evan.prodromou.name/">Evan Prodromou</a>, and XEP-0060 co-author <a href="http://ralphm.net/">Ralph Meijer</a> were discussing <strong>how to apply XMPP PubSub to micro-blogging</strong>.&nbsp; This was likely obvious to many there already, but during the discussion I had a realization.&nbsp; We aren&#8217;t solving this problem from whole cloth.&nbsp; <strong>RSS and Atom feeds already describe all the information we need</strong>.&nbsp; We just need to find a way to substitute XMPP for the assumed transport HTTP.</p>
<p>So we discussed mechanisms for mapping an Atom URL to an XMPP PubSub Node.&nbsp; (We pretty much ignored RSS because RSS isn&#8217;t as cool for reasons I really don&#8217;t understand.)&nbsp; We talked about putting a link-rel tag in the feed to point to the XMPP PubSub node.&nbsp; This would look something like&nbsp; 
</p>
<p><code>&nbsp; &nbsp;&lt;link rel=&quot;alternate&quot; type=&quot;xmpp/pubsub&quot; href=&quot;xmpp:twitter.com?;node=users/leopd&quot; /&gt;<br />
</code></p>
<p>Even better, the URL for these nodes should be guessable from the URL for the HTTP feed.&nbsp; &nbsp;The above node would be the normal place to look for a the pubsub version of http://twitter.com/leopd.&nbsp; Even though it&#8217;s not as generic and robust to have a standard mapping like this, I think it&#8217;s an important way to speed adoption of a new standard.&nbsp; The code to do a bit of string manipulation is vastly easier than fetching the URL and looking for a link-rel tag.&nbsp; And developers are intrinsically lazy (for good reasons!) so making things easier for them means they&#8217;ll succeed a lot more.</p>
<p>Ever pragmatic, Blaine pointed out that we should use HTTP for things it is good at, and not re-invent them in XMPP.&nbsp; I wholeheartedly agree.&nbsp; <strong>Re-transmission</strong> is a key example.&nbsp; What happens if a client is offline when a new post happens, and so never hears about it?&nbsp; Answer: The <strong>clients should fetch the historic archive of the feed over HTTP</strong>.&nbsp; These feeds exist today &#8212; no need to improve on them.&nbsp; If all the posts have sequence numbers on them, then it&#8217;s easy to figure out if you&#8217;ve missed one.&nbsp; So <strong>all the posts from a user should have sequence numbers</strong>.&nbsp; I don&#8217;t think this is standard in Atom feeds today.</p>
<h3>The story unfolds&#8230;</h3>
<p>There&#8217;s a lot more to be worked out and standardized here.&nbsp; And clearly many more people need to voice their opinions before we can reach consensus.&nbsp; Sadly I can&#8217;t be down in Portland today to continue the discussion, so this post will have to take my place as I return to my regular daily commitments.&nbsp; If you&#8217;d like to stay tuned as the story unfolds, you&#8217;ll have to poll this site, as I can&#8217;t yet give you a PubSub node to subscribe to for updates.&nbsp; If I could it would probably be something like xmpp:embracingchaos.com?;node=xmpp &#8212; try it.&nbsp; By the time you read this, it might be working!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/07/xmpp-pubsub-a-g.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Recovering a RAID Array after Lightning</title>
		<link>http://www.embracingchaos.com/2008/07/raid-failure-ev.html</link>
		<comments>http://www.embracingchaos.com/2008/07/raid-failure-ev.html#comments</comments>
		<pubDate>Wed, 09 Jul 2008 23:22:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/07/raid-failure-ev.html</guid>
		<description><![CDATA[The EVMS RAID 5 array in my linux fileserver crashed recently due to a lightning storm, and I thought I'd lost everything. But with some luck and intuition I was able to recover all my files. I'll tell you how I did it, so hopefully others who run into similar problems can recover their data too. But first, a little background. Last week Seattle had some crazy electrical storms. In recent years' storms, my block has done better than most with respect to power failures making me think we're either lucky or in a particularly robust section of the grid....
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/leodirac/358733435/" title="RAID array"><img width="180" height="240" class="top" src="http://farm1.static.flickr.com/145/358733435_af19f3bece_m.jpg" alt="RAID array" /></a>The EVMS RAID 5 array in my linux fileserver crashed recently due to a lightning storm, and I thought I&#8217;d lost everything.&nbsp; But with some luck and intuition I was able to recover all my files.&nbsp; I&#8217;ll tell you how I did it, so hopefully others who run into similar problems can recover their data too.&nbsp; But first, a little background.</p>
<p>Last week Seattle had some crazy electrical storms.&nbsp; In <a href="http://www.embracingchaos.com/2006/12/100_chance_of_r.html">recent years&#8217; storms</a>, my block has done better than most with respect to power failures making me think we&#8217;re either lucky or in a particularly robust section of the grid.&nbsp; So I was a little surprised to find my whole house offline on Wednesday morning.&nbsp; After a bit of debugging I figured out that the small UPS that runs all my networking gear got toasted, and for some reason the file server was down.</p>
<p>I left it alone for several days, and when I got around to turning it back on, I was happy that the whole stack through the samba server came up by itself.&nbsp; (It doesn&#8217;t always!)&nbsp; But when I started looking around I quickly realized things were amiss.&nbsp; The media/video directory normally has 4 subdirectories: movies, episodic TV, imake and other.&nbsp; But today it listed:</p>
<ul>
<pre>leo@elephant:/raid/shares/media/video$ lsdpisndic TV&nbsp; hmakd&nbsp; movies&nbsp; nther</pre>
</ul>
<p>WTF!?&nbsp; A few <em>bits</em> had been scrambled in the directory names.&nbsp; This sounds really bad.&nbsp; Moreover, even though the first couple levels of the directory hierarchy were there, but no files were to be found.&nbsp; Definitely a problem.</p>
<p><strong><u>Step 1: As soon as you suspect your RAID array has a problem, stop writing to it until you know what&#8217;s going on.</u>&nbsp; Writing changes can make things worse.&nbsp; Stop the bleeding.&nbsp; &nbsp;<br /></strong></p>
<p>I unmounted the drive from my mac, not trusting Finder or Spotlight to sprinkle damaging meta-files over the array.&nbsp; Once I remembered how to ssh into the box, I stopped the samba daemon, </p>
<ul>
<pre>leo@elephant:/$ sudo /etc/init.d/samba stop</pre>
</ul>
<p>unmounted the filesystem </p>
<ul>
<pre>leo@elephant:/$ sudo umount /raid</pre>
</ul>
<p>and changed fstab so it would be read-only when it comes back, and that it wouldn&#8217;t come back without me asking.</p>
<ul>
<pre>leo@elephant:/$ sudo vi /etc/fstab</pre>
</ul>
<p>changing</p>
<ul>
<pre>/dev/evms/teraraid500 /raid ext3 defaults&nbsp; 0 0</pre>
</ul>
<p>
to</p>
<ul>
<pre>/dev/evms/teraraid500 /raid ext3 ro,noauto&nbsp; 0 0</pre>
</ul>
<p>I tried poking around in EVMS by running</p>
<ul>
<pre>leo@elephant:/$ evmsn</pre>
</ul>
<p>But it hung during initialization with blue dialog saying &quot;Discovering segments&#8230;&quot;&nbsp; I&#8217;m thinking EVMS can&#8217;t help me.&nbsp; After a bit of googling I thought I should try <a href="http://linux.die.net/man/8/e2fsck">e2fsck</a> or some such.&nbsp; First, I tried to mount it again read-only and see what&#8217;s there.</p>
<ul>
<pre>mount: wrong fs type, bad option, bad superblock on /dev/evms/teraraid500,&nbsp; &nbsp;&nbsp; &nbsp; missing codepage or other error&nbsp; &nbsp;&nbsp; &nbsp; In some cases useful info is found in syslog - try&nbsp; &nbsp;&nbsp; &nbsp; dmesg | tail&nbsp; or so</pre>
</ul>
<p>Bad superblock.&nbsp; Uh oh.&nbsp; Well this guy managed to <a href="http://linux.omnipotent.net/article.php?article_id=12488">recover a drive with a bad superblock</a>.&nbsp; Lots of things were pushing me in this direction &#8212; fix the filesystem.&nbsp; But I realized that was a mistake.</p>
<p><strong><u>Step 2: Do not make changes at the filesystem level until you&#8217;re confident that the RAID array is working properly.</u>&nbsp; You set up RAID for a reason.&nbsp; You&#8217;ve still got a chance to recover everything, but if you start<br />
making changes to it in a broken state, you&#8217;re almost certainly going<br />
to make things worse.</strong></p>
<p>Me to self: Think about it.&nbsp; EVMS is confused.&nbsp; Linux is confused.&nbsp; Ext2 and ext3 are messed up complaining about bad superblocks.&nbsp; The problem was caused by lightning.&nbsp; When the drive was mounted there were wierd bit-level corruptions in the data that were still there.&nbsp; Maybe one of the drives in the array got data scrambled, but didn&#8217;t get totally fragged so it went offline.&nbsp; RAID 5 is designed to survive total loss of a single drive.&nbsp; But if a drive gets corrupted, who knows what will happen.&nbsp; So I came up with this plan:</p>
<p><strong><u>Step 3: Try physically disconnecting the drives in your array, one at a time.</u>&nbsp; If only one of them is scrambled, disconnecting it should restore all the data in the array.</strong></p>
<p>Having followed my own advice, it&#8217;s easy for me to tell the drives in my array apart since <a href="http://www.embracingchaos.com/2007/01/setting_up_a_ra.html">each drive in the RAID array is from a different manufacturer</a> (which makes array failure due to manufacturing defects far less likely).&nbsp; </p>
<p>This plan actually worked perfectly!&nbsp; Removing a drive caused a bit of a hassle in getting the machine back up, because when I booted it couldn&#8217;t find the /boot partition complaining</p>
<ul>
<pre> * Starting Enterprise Volume Management System...[42949392.340000] raid5: raid level 5 set md1 active with 2 out of 3 devices, algorithm 0

 * Checking all filesystems...fsck.ext3: No such file or directory while trying to open /dev/sdd5/dev/sdd5:The superblock could not be read or does not describe a correct ext2 filesystem.&nbsp; If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or something else), then the superblock is corrupt, and you might try running e2fsck with an alternate superblock:&nbsp; &nbsp; e2fsck -b 8193 &lt;device&gt;</pre>
</ul>
<p>Notice the complaint about the superblock again &#8212; don&#8217;t trust it, and don&#8217;t do what it says!&nbsp; What really happened was that the boot drive letter had been changed from /dev/sdd to /dev/sdc, so I had to change /etc/fstab to mount /boot from&nbsp; /dev/sdc5 instead of /dev/sdd5.&nbsp; In my system, I boot off a non-RAID disk attached to the mobo, which for some annoying reason gets the last drive letter after all the drives no the SATA card.</p>
<p>But once I got past this, it quickly turned out that the Samsung drive was the culprit.&nbsp; With it removed, the software RAID kicked in and plugged all the whole.&nbsp; Everything the array looked<br />
completely normal again.&nbsp; All the directories.&nbsp; All the files.&nbsp; Hooray!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/07/raid-failure-ev.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flashbacks to College Math</title>
		<link>http://www.embracingchaos.com/2008/01/flashbacks-to-c.html</link>
		<comments>http://www.embracingchaos.com/2008/01/flashbacks-to-c.html#comments</comments>
		<pubDate>Fri, 18 Jan 2008 17:03:09 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2008/01/flashbacks-to-c.html</guid>
		<description><![CDATA[Callin' out to all the Mudders in the audience. Ever take math class from Dr. Benjamin? I did. Sophomore year I think. Real Analysis maybe? It bent my brain sideways. Fun class. Got an A. I felt like I was starting to "get math" after that class. He does this trick where he multiplies 5 digit numbers together in his head. He was a nationally ranked backgammon player in his spare time. #40 or so in the US at the time IIRC. It turns out that serious backgammon is all about estimating your fractional odds of winning at any given...
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.math.hmc.edu/~benjamin/"><img class="top" src="http://www.hmc.edu/graphics/newsstory/NOV2006_PHOTO_ArtBenjaminWeb.jpg" alt="" /></a>Callin&#8217; out to all the Mudders in the audience.  Ever take math class from <a href="http://www.math.hmc.edu/~benjamin/">Dr. Benjamin</a>?  I did.  Sophomore year I think.  Real Analysis maybe?  It bent my brain sideways.  Fun class.  Got an A.  I felt like I was starting to &#8220;get math&#8221; after that class.</p>
<p>He does this trick where he multiplies 5 digit numbers together in his head.  He was a nationally ranked backgammon player in his spare time.  #40 or so in the US at the time IIRC.  It turns out that serious backgammon is all about estimating your fractional odds of winning at any given point and raising the bet when you think you&#8217;re ahead.  So for him it was a &#8220;live probability lab.&#8221;</p>
<p>I was reminded of this when a friend was watching a video and sure enough it was one of my old math profs.  So here&#8217;s the video of him <a href="http://www.ted.com/talks/view/id/199">showing off at Ted</a>.  You go!  Thanks for the great math.</p>
<p><a href="http://www.ted.com/talks/view/id/199"><strong>Watch Professor Benjamin&#8217;s Mathemagics show at Ted</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2008/01/flashbacks-to-c.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DRM-free music sales</title>
		<link>http://www.embracingchaos.com/2007/11/drm-free-music.html</link>
		<comments>http://www.embracingchaos.com/2007/11/drm-free-music.html#comments</comments>
		<pubDate>Fri, 23 Nov 2007 06:56:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Tech Industry]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/11/drm-free-music.html</guid>
		<description><![CDATA[I'm glad the music industry is finally allowing legal sales of music online without DRM. Before this, the situation was absolutely screwball. Consumers had three choices for getting music onto the electronic devices: Buy the CD and rip it Illegally download it through a peer-to-peer network or sketchy Russian service Buy the DRM'd track legally The first option sucked because it either involved driving to a brick and mortar store or waiting for somebody else to drive the CD to your house. There's no instant gratification. Then there's the hassle of converting the CD to electronic format. The biggest problems...
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad the music industry is finally allowing legal sales of music online without DRM.&nbsp; Before this, the situation was absolutely screwball.&nbsp; Consumers had three choices for getting music onto the electronic devices:</p>
<ol>
<li>Buy the CD and rip it</li>
<li>Illegally download it through a peer-to-peer network or sketchy Russian service</li>
<li>Buy the DRM&#8217;d track legally</li>
</ol>
<p>The first option sucked because it either involved driving to a brick and mortar store or waiting for somebody else to drive the CD to your house.&nbsp; There&#8217;s no instant gratification.&nbsp; Then there&#8217;s the hassle of converting the CD to electronic format.</p>
<p>The biggest problems with the second option are things like not knowing how to do it.&nbsp; There&#8217;s also some risk of viruses, etc by trawling shady parts of the net as you try to figure it out.&nbsp; And there&#8217;s a minimal risk of the RIAA suing you.&nbsp; But once you overcome these fears and startup costs, you end up with exactly the product you want.</p>
<p>The third option kinda sucked because modern DRM systems don&#8217;t work very well.&nbsp; I think there&#8217;s nothing intrinsically wrong with DRM.&nbsp; Enforcing copyrights through technical means is a good part of a multi-layer security and incentive system to promote the creation of valuable intellectual property.&nbsp; But modern DRM systems are incompatible with each other across brands and devices and often they just plain break.&nbsp; So as a music consumer, <strong>if you do the morally correct thing and pay for your music, you end up with an inferior product</strong>.</p>
<p>Now with DRM-free track sales, consumers can do the right thing and get the best possible product.&nbsp; How this fact has been lost on the RIAA for so long amazes me.</p>
<p>This is just one example of why the <strong>digital music industry is a horrible one to be in right now</strong>.&nbsp; I wrote a thorough analysis of the industry for <a href="http://bschool.washington.edu/mbastud/descriptions.shtml#mgmt">my strategy class</a> at <a href="http://foster.washington.edu/">school</a> will likely post more of it as time goes on, but I wanted to start here.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/11/drm-free-music.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Three weeks inside Google</title>
		<link>http://www.embracingchaos.com/2007/11/three-weeks-ins.html</link>
		<comments>http://www.embracingchaos.com/2007/11/three-weeks-ins.html#comments</comments>
		<pubDate>Sat, 17 Nov 2007 06:15:13 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Ego]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/11/three-weeks-ins.html</guid>
		<description><![CDATA[Sorry for going dark for a little while there. As expected, starting a new job while taking a full load of classes at school has been challenging. Also unsurprisingly, the Google job is very engaging. I'll describe a bit of what it's like on the inside and also how this affects the kinds of things I write about here. I spent my first week in Mountain View at the Googleplex. My entering class of "Nooglers" were subjected to inane videos and boring HR discussions. But a couple hours into it we powered up our laptops and within 15 minutes I'd...
]]></description>
			<content:encoded><![CDATA[<p>Sorry for going dark for a little while there.&nbsp; As expected, starting a new job while taking a full load of classes at <a href="http://foster.washington.edu/">school</a> has been challenging.&nbsp; Also unsurprisingly, the Google job is very engaging.&nbsp; I&#8217;ll describe a bit of what it&#8217;s like on the inside and also how this affects the kinds of things I write about here.</p>
<p>I spent my first week in Mountain View at the Googleplex.&nbsp; My entering class of &quot;Nooglers&quot; were subjected to inane videos and boring HR discussions.&nbsp; But a couple hours into it we powered up our laptops and within 15 minutes I&#8217;d found the internal wiki and started reading project plans for every internal initiative I found interesting and a bunch that I didn&#8217;t.&nbsp; I devoured the information and didn&#8217;t unplug myself until wee hours of the morning.</p>
<p>I&#8217;ve been spending a lot of time over the last few years analyzing the industry and thinking about what opportunities exist for creating value by solving people&#8217;s problems on the net.&nbsp; Many of those I&#8217;ve captured <a href="http://www.embracingchaos.com/business">here</a>.&nbsp; <strong>Now I look at the world differently</strong> in terms of what problems are still left to be solved because I can see that Google is in the process of solving many of the problems I&#8217;d identified.&nbsp; It&#8217;s a little difficult for me to remember what I thought before knowing Google&#8217;s plans.&nbsp; A myriad of half-written blog posts help remind me.&nbsp; I had been planning on finishing many of them but now I don&#8217;t feel so comfortable doing so.&nbsp; For example, writing about security holes inside Gmail is fun target practice from the outside, but questionably ethical from the inside even though I&#8217;d identified it before joining.&nbsp; The same applies to unexploited business opportunities.</p>
<p>I&#8217;ve been asked a lot about the best and strangest things encountered during my week in Mountain View.&nbsp; The best thing was hands-down <strong>the food.&nbsp; It&#8217;s amazing</strong>.&nbsp; Almost every building has their own restaurant with a theme.&nbsp; My building had a tapas-inspired restaurant featuring many small plates and often fabulous seafood.&nbsp; The best hamachi sushi I&#8217;ve ever had was served there on a real shiso leaf with some light sauce I can only describe through the ecstasy I felt from it.&nbsp; They served black cod, which I love love love.&nbsp; (I&#8217;ve got a great recipe I need to post to <a href="http://www.addgarlic.com">addgarlic</a>.)&nbsp; Pumpkin bread pudding.&nbsp; Fresh figs everywhere.&nbsp; Chilled beet soup.&nbsp; Even simple things like a ham and cheese sandwiches on fresh bread with arugula were fabulous.&nbsp; Other cafes have themes like organic hippy foods, dishes prepared with a maximum of 5 ingredients, or everything grown within 150 miles.&nbsp; It&#8217;s all amazing.&nbsp; As a result I found myself drawn to campus in a predictably Pavlovian manner.</p>
<p>One thing I&#8217;ve said for a while that this trip reinforced was the idea that you can&#8217;t pay your corporate cafeteria&#8217;s chef too much money.&nbsp; You can get a chef for $50k/yr or $150k/yr.&nbsp; That extra $100k/yr will do so much more for employee satisfaction than pretty much any other way to spend the money.&nbsp; Sure you&#8217;ll end up spending some more on ingredients or subsidies.&nbsp; (Or else the chef will leave.)&nbsp; But it&#8217;s worth it.&nbsp; A couple years ago Real hired a new Chef, Ariel IIRC for their cafeteria and the food got so much better I started bragging to my friends about it.&nbsp; A little while later a number of things happened at about the same time &#8212; Real&#8217;s stock dropped, Ariel moved on and life at Real wasn&#8217;t as much fun any more.&nbsp; I won&#8217;t try to extract the causality relationships between those events here.</p>
<p>The oddest thing I saw was definitely <a href="http://www.cleanishappy.com/">the automatic toilets</a>.&nbsp; They&#8217;ve got butt-warmers, front and back washing sprays, dryers and more things that I never figured out.&nbsp; I wonder if they weigh you and keep a high-score list for largest excretion.</p>
<p>Now I&#8217;ve got the fire-house turned on full bore and am trying to add value for my team from a position of relative ignorance and keep up with everything going on around me while finishing up a full load of business classes.&nbsp; But I wanted to take a few minutes to share what&#8217;s been going on with you my dear readers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/11/three-weeks-ins.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Heavy laptops: there&#8217;s no excuse</title>
		<link>http://www.embracingchaos.com/2007/10/heavy-laptops-t.html</link>
		<comments>http://www.embracingchaos.com/2007/10/heavy-laptops-t.html#comments</comments>
		<pubDate>Tue, 30 Oct 2007 13:32:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/heavy-laptops-t.html</guid>
		<description><![CDATA[The way I see it, there's no compelling reason to buy a heavy laptop. Light laptops are great because they're portable. Their processors might be a little slower, but local processing power rarely limits what you can do with a computer these days. And unless you get a really tiny laptop they're hardly slower. If you do get a tiny one then you're trading reduced HCI-bandwidth for increased access to that bandwidth, which is often worthwhile. Today I'd probably argue that iPhone or iPod Touch is a pareto-optimal choice (sweet-spot) in this trade-off, beating out things like OQO and FlipStart....
]]></description>
			<content:encoded><![CDATA[<p>The way I see it, there&#8217;s no compelling reason to buy a heavy laptop.&nbsp; Light laptops are great because they&#8217;re portable.&nbsp; Their processors might be a little slower, but <a href="http://www.embracingchaos.com/2007/09/human-computer-.html">local processing power rarely limits what you can do with a computer these days</a>.&nbsp; And unless you get a really tiny laptop they&#8217;re hardly slower.&nbsp; If you do get a tiny one then you&#8217;re trading <a href="http://www.embracingchaos.com/2007/09/human-computer-.html">reduced HCI-bandwidth</a> for increased access to that bandwidth, which is often worthwhile.&nbsp; Today I&#8217;d probably argue that iPhone or iPod Touch is a <a href="http://en.wikipedia.org/wiki/Pareto_efficiency">pareto-optimal</a> choice (sweet-spot) in this trade-off, beating out things like <a href="http://www.oqo.com/">OQO</a> and <a href="http://www.flipstart.com/">FlipStart</a>.</p>
<p>But think about the longevity of these devices.&nbsp; Computers always slow down.&nbsp; In a few years, any laptop is going to feel really slow, no matter how fast it feels today.&nbsp; But if it&#8217;s a light, small laptop, then you&#8217;ll have something which is slow, but at least nice and portable.&nbsp; Some of my friends&#8217; house has this ancient Pentium II Viao laptop kicking around the living room &#8212; it barely runs a browser.&nbsp; But it&#8217;s so small and portable that it&#8217;s still a reasonable computing device today.&nbsp; If your laptop is heavy to start with, then <strong>in a few years when it slows down you&#8217;re stuck with a heavy, slow laptop</strong>, which nobody nobody wants.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/heavy-laptops-t.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sonos finally adds search!</title>
		<link>http://www.embracingchaos.com/2007/10/sonos-finally-a.html</link>
		<comments>http://www.embracingchaos.com/2007/10/sonos-finally-a.html#comments</comments>
		<pubDate>Tue, 23 Oct 2007 17:18:11 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Consumer Electronics]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/sonos-finally-a.html</guid>
		<description><![CDATA[At long last, the world's best digital music system has fixed a glaring UI hole. With today's release of v2.5 of their software, Sonos controllers (both hardware remotes and PC/Mac based software) can search for music by artist, composer, album, or track. This feature works within your own local library or within music services such as Rhapsody. Up until now if you wanted to listen to an artist in Rhapsody that you hadn't previously bookmarked, you would need to guess what top-level genre they were categorized under and then scroll through an enormous list to try to find the artist....
]]></description>
			<content:encoded><![CDATA[<p>At long last, <a href="http://www.sonos.com/">the world&#8217;s best digital music system</a> has fixed a glaring UI hole.&nbsp; With today&#8217;s release of v2.5 of their software, Sonos controllers (both hardware remotes and PC/Mac based software) can search for music by artist, composer, album, or track.&nbsp; This feature works within your own local library or within music services such as Rhapsody.&nbsp; </p>
<p>Up until now if you wanted to listen to an artist in <a href="http://www.rhapsody.com/">Rhapsody</a> that you hadn&#8217;t previously bookmarked, you would need to guess what top-level genre they were categorized under and then scroll through an enormous list to try to find the artist.&nbsp; How many times have I scratched my head asking questions like &quot;Is Pink Floyd Rock/Pop or Alternative/Punk?&quot;&nbsp; Much easier was to find a web browser, pull up <a href="http://www.rhapsody.com/pinkfloyd">http://www.rhapsody.com/pinkfloyd</a> and bookmark music into your library.&nbsp; That human-writable URL scheme is still one of my favorite accomplishments in the last several years.</p>
<p>I started beta testing this release last week.&nbsp; As always, the update was fast, easy and works flawlessly.&nbsp; My biggest complaint is that the search is not interactive.&nbsp; Considering how fast results typically come back, I would much prefer to have a type-ahead style search where results start to appear as you type.&nbsp; This would be especially useful considering the somewhat painful scroll-wheel-alphabet typing interface they provide.</p>
<p>Sonos is a great company that makes fabulous products.&nbsp; They continue to advance the state-of-the-art in digital music systems.&nbsp; By adding Napster support they have taken another step to commoditize Rhapsody&#8217;s music subscription product.&nbsp; They&#8217;ve also released a new product called a <a href="http://www.sonos.com/products/zonebridges/br100/features.htm">ZoneBridge</a> which acts as a WiFi range extender which would address one of my biggest complaints about the system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/sonos-finally-a.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Standards for handling passwords</title>
		<link>http://www.embracingchaos.com/2007/10/standards-for-h.html</link>
		<comments>http://www.embracingchaos.com/2007/10/standards-for-h.html#comments</comments>
		<pubDate>Sat, 20 Oct 2007 04:42:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Electronic Security]]></category>
		<category><![CDATA[Geek]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/standards-for-h.html</guid>
		<description><![CDATA[Every time we sign up for a new service on the net, we have to make a new account and pick a password to go with this account. We're going to be stuck like this until something like OpenID becomes dominant which is going to take years. Until then we're stuck remembering which password goes with which site, which is an age-old problem. I think very few of us actually use a unique password for every account we have. For sanity's sake, we re-use passwords, or at least password themes. Personally, a couple of times I've had throw-away passwords get...
]]></description>
			<content:encoded><![CDATA[<p><strong>Every time we sign up for a new service on the net, we have to make a new account and pick a password to go with this account</strong>.&nbsp; We&#8217;re going to be stuck like this until something like OpenID becomes dominant which is going to take years.&nbsp; Until then we&#8217;re stuck remembering which password goes with which site, which is an age-old problem.&nbsp; I think very few of us actually use a unique password for every account we have.&nbsp; For sanity&#8217;s sake, we re-use passwords, or at least password themes.&nbsp; Personally, a couple of times I&#8217;ve had throw-away passwords get used in so many places that I realize they are actually now quite important because they grant access to many services.&nbsp; Some of these services seemed stupid at first so I created an account with a throw-away password and then they became important to me later.</p>
<p>The problem that&#8217;s bothering me today is that <strong>I have no idea what the new site is going to do with the password I give it</strong>.&nbsp; Few things irk me more than seeing one of my good passwords sent to me in plain-text, say in a password reminder mail.&nbsp; <em>Why are you storing my password in plaintext!?</em>&nbsp; Some of my most valuable passwords I&#8217;ve never even seen written out, and the first time I do see them say in a username field it&#8217;s a little surprising and I feel like they&#8217;re a bit compromised.</p>
<p><strong>I&#8217;d like to see sites post their password handling policies.</strong>&nbsp; I&#8217;m going to start doing this on my own sites.&nbsp; Here are some examples of levels of security to consider:</p>
<ul>
<li>Your password is stored in plaintext
<ul>
<li>Forgotten passwords will be emailed to you in plaintext</li>
</ul>
</li>
<li>Your password is stored using a one-way cryptographic hash form
<ul>
<li>Forgotten passwords cannot be recovered.&nbsp; If you forget your<br />
password you will have to create a new password after we verify your<br />
identity.</li>
<li>using MD5 (not considered very strong cryptographically anymore) </li>
<li>using SHA1 (better)</li>
</ul>
</li>
<li>Your password is stored using a strong hash with a salt
<ul>
<li>Without a salt, somebody looking through the password database could see that two users have the same password since they hash to the same value.&nbsp; Obtaining one password thus grants access to the other account.</li>
</ul>
</li>
<li>Your password is never transmitted or stored in the clear.&nbsp; 
<ul>
<li>All auth events happen over SSL</li>
</ul>
<ul>
<li>Your password will not appear in any server logs.&nbsp; (Rails devs take note.)</li>
</ul>
</li>
<li>Your password is never stored in any form in a browser cookie.
<ul>
<li>Some sites might see it fitting to store a hashed password in a cookie for re-auth.&nbsp; Ugh.</li>
</ul>
</li>
</ul>
<p>Responsible sites will follow the last three rules.&nbsp; <strong>We could come up with a simplified grading system that explains in simple terms whether you can use a valuable password here or not</strong>.&nbsp; We know we can trust the smart folks to do that.&nbsp; But with so many <a href="http://www.embracingchaos.com/2007/10/tagmindr-use-de.html">features being launched as stand-alone sites</a>, understanding these policies is important.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/standards-for-h.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calendars now partly Gears enabled</title>
		<link>http://www.embracingchaos.com/2007/10/google-calendar.html</link>
		<comments>http://www.embracingchaos.com/2007/10/google-calendar.html#comments</comments>
		<pubDate>Fri, 19 Oct 2007 05:58:58 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/google-calendar.html</guid>
		<description><![CDATA[I logged onto Google Calendar this evening, and it asked me if I wanted to allow Google gears to access this website. Wow! This is gonna be great. I'm actually not all that excited about offline access, which is valuable but increasingly less important as time goes on. I'm very excited about the faster UI we'll get from not having to send packets round-trip to Mountain View to make any content changes. I haven't seen anything work differently yet. But that's really the way it should be. The Google Reader implementation of gears where you need to explicitly tell it...
]]></description>
			<content:encoded><![CDATA[<p>I logged onto Google Calendar this evening, and it asked me if I wanted to allow Google gears to access this website.&nbsp; Wow!&nbsp; This is gonna be great.&nbsp; I&#8217;m actually not all that excited about <a href="http://www.embracingchaos.com/2007/09/why-google-gear.html">offline access, which is valuable but increasingly less important as time goes on</a>.&nbsp; I&#8217;m very excited about the <a href="http://www.embracingchaos.com/2007/09/gmail-slowing-d.html">faster UI we&#8217;ll get from not having to send packets round-trip to Mountain View to make any content changes</a>.</p>
<p>I haven&#8217;t seen anything work differently yet.&nbsp; But that&#8217;s really the way it should be.&nbsp; The Google Reader implementation of gears where you need to explicitly tell it when you&#8217;re online vs offline isn&#8217;t an ideal experience.&nbsp; And the Gears API doesn&#8217;t require apps to be written that way either &#8212; it&#8217;s just easier.</p>
<p>I tried unplugging from the net and nothing interesting happened.&nbsp; I couldn&#8217;t update my calendar.&nbsp; I couldn&#8217;t load my calendar &#8212; I was hoping maybe they&#8217;re just caching the javascript in gears which would be a nice step.&nbsp; But it doesn&#8217;t appear to actually be doing much yet.</p>
<p>It&#8217;s just a matter of time.&nbsp; I <a href="http://www.embracingchaos.com/2007/09/gmail-slowing-d.html">predicted</a> first half of 2008 and I&#8217;m sticking to that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/google-calendar.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web UI Platforms through Javascript sandboxes</title>
		<link>http://www.embracingchaos.com/2007/10/web-ui-platform.html</link>
		<comments>http://www.embracingchaos.com/2007/10/web-ui-platform.html#comments</comments>
		<pubDate>Mon, 08 Oct 2007 17:12:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Democratization of Information]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/web-ui-platform.html</guid>
		<description><![CDATA[I see a trend of how we're approaching Tim O'Reilly's Web 2.0 ideal in a way that he didn't really identify. But I think the trend is important, and growing, although still in its infancy. The trend is towards richer web APIs that enable people to build value on top of existing websites. I'll give some history on how we got here, and talk about the current trend-leaders that I see: Facebook and Google Maps. I'll also explain why I think Microsoft is in the best position to build the required enabling technology. Original Web 1.0 Universal access to massive...
]]></description>
			<content:encoded><![CDATA[<p>I see a trend of how we&#8217;re approaching <a href="http://www.oreilly.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html">Tim O&#8217;Reilly&#8217;s Web 2.0 ideal</a> in a way that he didn&#8217;t really identify.&nbsp; But I think the trend is important, and growing, although still in its infancy.&nbsp; The trend is towards richer web APIs<br />
that enable people to build value on top of existing websites.&nbsp; I&#8217;ll<br />
give some history on how we got here, and talk about the current<br />
trend-leaders that I see: Facebook and Google Maps.&nbsp; I&#8217;ll also explain why I think Microsoft is in the best position to build the required enabling technology. </p>
<h3>Original Web 1.0</h3>
<p>Universal access to massive volumes of data.&nbsp; Being able to search<br />
through masses of data and find what you want.&nbsp; Connecting people to<br />
huge databases really well.&nbsp; Key examples:</p>
<ul>
<li>Online telephone books</li>
<li>Web search</li>
<li>Huge e-commerce sites</li>
</ul>
<p>But in all of these applications, the <strong>data set is static.</strong>&nbsp; User activity will not change the data for anybody else.</p>
<h3>Web 2.0.1: Democratizing use of the data</h3>
<p><strong><br />
The users of these data make the data better.</strong>&nbsp; They can collectively<br />
organize the data.&nbsp; (i.e. tags)&nbsp; They can help filter good data from<br />
junk.&nbsp; (i.e. voting)&nbsp; Or they can help you find the data that are most<br />
interesting to you.&nbsp; (i.e. collaborative filtering).&nbsp; In other words,<br />
you can interact with the data.</p>
<p>Any &quot;Web 2.0 company&quot; worth their salt has an API that federates out their raw data.&nbsp; This enables other sites to use the data in new and novel ways.&nbsp; But the primary problem with this paradigm is that anything built using these API&#8217;s is done from the ground up.&nbsp; Using the gmail POP interface, it&#8217;s possible to build a better UI for gmail.&nbsp; But to do so you need to first build an entire AJAX mail client &#8212; no small feat.&nbsp; Better would be the ability to add features into the gmail UI itself.&nbsp; But this is really the standard in web 2.0 API&#8217;s today.
</p>
<h3>Web 2.0.2: Democratizing the feature set</h3>
<p>The next big trend will be <strong>enabling users to make more compelling ways to interact with<br />
the data</strong>.&nbsp; Users can change not just the data, but how other users see<br />
and use the data.&nbsp; Sometimes this means API&#8217;s with UI hooks.&nbsp; Or other ways to enable new functionality into an existing site.&nbsp; This kind of platform enables Independent Software Vendors to improve upon the UI&#8217;s that the original sites created.</p>
<p>Facebook is doing this by allowing ISV&#8217;s to add new communications features to their site.&nbsp; Google Maps is doing this through maplets that allow developers to create new ways to interact with mapping data from within the fabulous Maps UI.&nbsp; Right now these are the only two examples of web 2.0.2 platforms that I&#8217;m aware of.</p>
<p>Building this kind of API is very challenging.&nbsp; There are several very different ways to go about doing it.&nbsp; Here are a couple of ideas:</p>
<ul>
<li>Provide a server-server API that includes content generated from the ISV&#8217;s servers into the main experience.&nbsp; Facebook style.</li>
<li>Allow developers to author XML files that define new algorithms that are interpreted on the primary host&#8217;s servers.&nbsp; Yahoo pipes is a service in this style, but they&#8217;re not doing anything to enhance an existing service so it doesn&#8217;t really meet my 2.0.2 criteria.</li>
<li>Allow developers to author javascript plugins to run on the client machine.&nbsp; Greasemonkey is essentially doing this.&nbsp; This strategy has the best shot for a lot of applications in the long term, IMHO.&nbsp; But it comes with some serious problems right now. </li>
</ul>
<p>Doing this correctly would allow ISV&#8217;s to add new features to Gmail.&nbsp; Think about it &#8212; if I wanted to change the way gmail messages were displayed, or how addressing happened, or whatever it was, this kind of platform could provide hooks for making gmail better in a way that a POP interface never would.&nbsp; And even though a POP-style interface theoretically could do this, there would never be momentum because having a high-level base to build upon means that there are network effects from the extensions.&nbsp; (Rails achieves a similar advantage over other web frameworks &#8212; just having a standard, any standard, means people will build upon that standard rather than argue over which library to use and extend none of them.)</p>
<h3>3rd-party javascript</h3>
<p>The big problem with this approach is security.&nbsp; There is none.&nbsp; You need to completely trust the ISV before you should allow their code to run in the context of your site.&nbsp; The kind of editorial review required to do this today would completely kill the democratic goal of such a platform.</p>
<p><strong>The world needs a security sandbox to run third-party javascript code inside.&nbsp; </strong>This way primary site hosts could allow ISV&#8217;s to run their code on client machines safely.&nbsp; Here are a few examples of places this kind of tool could be used.</p>
<p>ISV&#8217;s could&#8230;</p>
<ul>
<li>Add UI features to Gmail</li>
<li>Create alternate ways to share and discuss images on Flickr</li>
<li>Define new mathematical formulas to run client-side on a web spreadsheet</li>
<li>Create new playlist selection / shuffling algorithms for Rhapsody</li>
</ul>
<p>&#8230; and much more.&nbsp; Even better, individual users (not developers) could pick which UI extensions they wanted to use.&nbsp; Any site which provides such an API has <a href="http://www.embracingchaos.com/2007/08/democratizing-p.html">democratized the feature development process</a> in a very important way.&nbsp; Not only does it provide a distributed mechanism to figure out which features are best, but it allows users to self-segment as to which features work for them.&nbsp; Without such a mechanism the entire service must have the same features for everybody, which means product designers must play a political game where they&#8217;ll never make everybody happy.&nbsp; Right now I think really only Facebook has solved this problem.</p>
<p>Building a security sandbox is an area that Microsoft could probably do best and fastest.&nbsp; They are good at code API&#8217;s and layered security models,a nd they have a perfect place to do it with Silverlight and the CLR.&nbsp; They&#8217;re trying to position Silverlight as a faster way to run DHTML, which is something else the world desperately needs right now.&nbsp; But I just can&#8217;t imagine them doing anything this innovative or generally valuable.&nbsp; Doesn&#8217;t sell more Office.&nbsp; Doesn&#8217;t sell more Windows.&nbsp; They don&#8217;t even really have many services that could use third party extensions, and they&#8217;ve lost touch with the ISV&#8217;s who might build such extensions too.&nbsp; <a href="http://www.embracingchaos.com/2007/09/why-google-gear.html">Google Gears</a> could conceivably add such an extension.&nbsp; There&#8217;s precedent there considering the javascript threading extensions they provide.</p>
<p>This will be a difficult problem to solve, I have no doubt.&nbsp; But I hope somebody with the resources to leverage a solution takes it on, because I think it would really make the world a better place.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/web-ui-platform.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tagmindr: Use del.icio.us to set web-page reminders</title>
		<link>http://www.embracingchaos.com/2007/10/tagmindr-use-de.html</link>
		<comments>http://www.embracingchaos.com/2007/10/tagmindr-use-de.html#comments</comments>
		<pubDate>Mon, 08 Oct 2007 07:55:44 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Ego]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Infoglut]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Seattle]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/tagmindr-use-de.html</guid>
		<description><![CDATA[I spent Saturday hanging out with about a dozen hackers building Tagmindr: Remember the future. Here's the site's self-description: Put any bookmark in a time capsule and we'll send it to your future self. Give us your del.icio.us username and we'll feed you anything that you've tagged as: "tagmindr" and "remind:YYYY-MM-DD". We'll remind you via RSS, SMS, Email or IM, so long as it's RSS. (SMS, Email and IM coming later.) The use case is that you find a page about a product or service that you'd like to look at sometime later so you tag it into del.icio.us thinking...
]]></description>
			<content:encoded><![CDATA[<div style="overflow: hidden; width: 260px; float: right;"><a href="http://www.tagmindr.com/"><img src="http://www.tagmindr.com/img/ui-logo.jpg" style="border: 0pt none ; width: 400px;" /></a></div>
<p>I spent Saturday hanging out with about a dozen hackers building <a href="http://www.tagmindr.com/">Tagmindr: Remember the future</a>.&nbsp; Here&#8217;s the site&#8217;s self-description:</p>
<ul>
<p>Put any bookmark in a time capsule and we&#8217;ll send it to your future self.</p>
<p>
Give us your del.icio.us username and we&#8217;ll feed you anything that you&#8217;ve tagged as: &quot;tagmindr&quot; and &quot;remind:YYYY-MM-DD&quot;. We&#8217;ll remind you via RSS, SMS, Email or IM, so long as it&#8217;s RSS.</p>
<p>
(SMS, Email and IM coming later.)</p>
</ul>
<p>The use case is that you find a page about a product or service that you&#8217;d like to look at sometime later so you tag it into <a href="http://del.icio.us">del.icio.us</a> thinking you&#8217;ll get back to it, but of course you never will.&nbsp; With Tagmindr you can set a specific date when it will pop up in your feed reader so you will remember to check it out again.</p>
<p><a href="http://briandorsey.info/">Brian Dorsey</a> came up with the idea and gathered a bunch of us together at his house with the goal of building a web 2.0 app in 6 hours.&nbsp; We spent an hour or two setting up our dev environments and talking over the goals of what we were going to do.&nbsp; Then we did a skills inventory, and divided up into teams to start doing the work.&nbsp; I worked on the back-end team which was a ton of fun.&nbsp; The project is written using Django, an MVC-based web application framework for Python, which is conceptually quite similar to Rails.&nbsp; It&#8217;s got a few things that are way cooler than rails and a few things that are definitely lacking.&nbsp; From noon to 6pm we coded, while others did graphic design, HTML layout, and wrote copy.&nbsp; I had to leave fairly promptly but at the time it seemed we had slipped just a bit &#8212; there were still a few issues rendering the design on the production server, and the back-end code still had a couple of bugs.&nbsp; It seemed like another hour or two&#8217;s work total.</p>
<p>Thanks and props to all the wonderful people I met and got to work with.&nbsp; Special thanks to <a href="http://anders.conbere.org/">Anders</a> for holding my hand through basic Python and Django to a level of minor productivity.&nbsp; I gotta say that Python is really clean.&nbsp; Makes me realize how much Ruby can look like incomprehensible Perl.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/tagmindr-use-de.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rails bug with assert_redirected_to causing NoMethodError: undefined method `first&#8217;</title>
		<link>http://www.embracingchaos.com/2007/10/assert_redirect.html</link>
		<comments>http://www.embracingchaos.com/2007/10/assert_redirect.html#comments</comments>
		<pubDate>Sun, 07 Oct 2007 15:54:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/10/assert_redirect.html</guid>
		<description><![CDATA[I'm posting about a bug I ran into recently in Rails. It's filed against the core team and being addressed, and documented on the forums, so this post might be unnecessary. But the bug is bizarre and confusing enough that I thought I'd post a succinct summary of the problem and how to fix it. If you have code in a controller that redirects to another page, say like this: def index redirect_to :controller => :store # WRONG! end This looks fine and actually runs fine too. But there's a problem if you try to test it -- the tests...
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m posting about a bug I ran into recently in Rails.&nbsp; It&#8217;s <a href="http://dev.rubyonrails.org/ticket/9525">filed</a> against the core team and being addressed, and <a href="http://railsforum.com/viewtopic.php?pid=40532">documented on the forums</a>, so this post might be unnecessary.&nbsp; But the bug is bizarre and confusing enough that I thought I&#8217;d post a succinct summary of the problem and how to fix it.</p>
<p>If you have code in a controller that redirects to another page, say like this:</p>
<pre>&nbsp; def index&nbsp; &nbsp; redirect_to :controller =&gt; :store&nbsp; # WRONG!&nbsp; end</pre>
<p>This looks fine and actually runs fine too.&nbsp; But there&#8217;s a problem if you try to test it &#8212; the tests will fail.&nbsp; Consider this simple test case:</p>
<pre>&nbsp; def test_index&nbsp; &nbsp; get :index&nbsp; &nbsp; assert_response :redirect&nbsp; &nbsp; assert_redirected_to :controller =&gt; 'store'&nbsp; end</pre>
<p>This test will fail with this unhelpful error message:</p>
<pre>&nbsp; 1) Error:test_index(WidgetsControllerTest):NoMethodError: undefined method `first' for :store:Symbol&nbsp; &nbsp; /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/assertions/response_assertions.rb:72:in `assert_redirected_to'&nbsp; &nbsp; /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/assertions/response_assertions.rb:43:in `each'&nbsp; &nbsp; /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/assertions/response_assertions.rb:43:in `assert_redirected_to'&nbsp; &nbsp; /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/assertions.rb:60:in `clean_backtrace'&nbsp; &nbsp; /usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.3/lib/action_controller/assertions/response_assertions.rb:35:in `assert_redirected_to'&nbsp; &nbsp; ./test/functional/widgets_controller_test.rb:21:in `test_index'</pre>
<p>The problem is in that controller code.&nbsp; Apparently (this was news to me) Ruby strings and symbols aren&#8217;t the same.&nbsp; That is :store and &#8217;store&#8217; compile to different code.&nbsp; If you change your controller to this:</p>
<pre>&nbsp; def index&nbsp; &nbsp; # redirect_to :controller =&gt; :store&nbsp; # WRONG!
&nbsp; &nbsp; redirect_to :controller =&gt; 'store'&nbsp; &nbsp;# Correct
&nbsp; end</pre>
<p>Not only will the code function properly, but it will pass the functional test too.&nbsp; Hope this helps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/10/assert_redirect.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FeedHub almost solves RSS Infoglut</title>
		<link>http://www.embracingchaos.com/2007/09/feedhub-almost.html</link>
		<comments>http://www.embracingchaos.com/2007/09/feedhub-almost.html#comments</comments>
		<pubDate>Thu, 27 Sep 2007 03:23:33 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Infoglut]]></category>
		<category><![CDATA[Social Computing]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/09/feedhub-almost.html</guid>
		<description><![CDATA[A new feed digestion service FeedHub is attempting to solve RSS Infoglut. By RSS Infoglut, I mean not being able to keep up with the all the posts that show up in your feed reader. I recently posted a proposed solution to subscribing to more feeds than you can keep up with after rumors that Google might have hit on the same solution I had been thinking about building. FeedHub is promising in that it is explicitly trying to solve this exact problem that I've identified. Scoble refers to it as a Custom Techmeme. But I'm fairly sure FeedHub won't...
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.feedhub.com/images/navigation/logo.jpg" class="top" />A new feed digestion service <a href="http://www.feedhub.com/">FeedHub</a> is attempting to solve <a href="http://www.embracingchaos.com/2007/09/google-reader-t.html">RSS Infoglut</a>.&nbsp; By RSS Infoglut, I mean not being able to keep up with the all the posts that show up in your feed reader.&nbsp; I recently <a href="http://www.embracingchaos.com/2007/09/google-reader-t.html">posted a proposed solution to subscribing to more feeds than you can keep up with</a> after rumors that Google might have hit on the same solution I had been thinking about building.</p>
<p>FeedHub is promising in that it is explicitly trying to solve this exact problem that I&#8217;ve identified.&nbsp; Scoble refers to it as a <a href="http://scobleizer.com/2007/09/24/is-feedhub-the-answer-to-information-overload/">Custom Techmeme</a>.&nbsp; But <strong>I&#8217;m fairly sure FeedHub won&#8217;t succeed </strong>as it currently exists.  Why?&nbsp; <strong>Because it doesn&#8217;t <a href="http://www.embracingchaos.com/2007/09/why-build-your-.html">incorporate collective intelligence from the social network</a></strong>.&nbsp; If they write it as a Facebook app, then they&#8217;d get here quickly.&nbsp; But I just don&#8217;t believe that enough people will be willing to train this thing for its own sake.&nbsp; Moreover, there&#8217;s no leverage &#8212; no network effect.&nbsp; So even if millions of users have personally trained feedhub for themselves, that doesn&#8217;t make it any better for a new user who hasn&#8217;t started yet.&nbsp; It&#8217;s just not Web 2.0 enough.</p>
<p>Overall I have to say &quot;Good try.&quot;&nbsp; One thing <a href="http://bschool.washington.edu/">business school</a> has taught me is that identifying a genuine and solvable need is about the most important thing to creating a business, and they&#8217;ve hit on that well.&nbsp; But the execution seems to fall just a bit short of what&#8217;s needed these days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/09/feedhub-almost.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Gmail Slowing Down: Why and how to fix it</title>
		<link>http://www.embracingchaos.com/2007/09/gmail-slowing-d.html</link>
		<comments>http://www.embracingchaos.com/2007/09/gmail-slowing-d.html#comments</comments>
		<pubDate>Thu, 20 Sep 2007 16:47:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Computer Science]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/09/gmail-slowing-d.html</guid>
		<description><![CDATA[Gmail feels like it is slowing down to me. Maybe my standards are going up. Or maybe gmail's user base has grown to the point where the servers to run it cost real money to Google, and they've throttled the computing resources to an "acceptable level of performance." But it bothers me when I hit the "archive" button and I have to wait half a second for the UI to respond. Sometimes even a couple of seconds. Why does it take so long? Just to get that line off my inbox screen? The answer lies in computer science. Gmail is...
]]></description>
			<content:encoded><![CDATA[<p>Gmail feels like it is slowing down to me.&nbsp; Maybe my standards are going up.&nbsp; Or maybe gmail&#8217;s user base has grown to the point where the servers to run it cost real money to Google, and they&#8217;ve throttled the computing resources to an &quot;acceptable level of performance.&quot;&nbsp; But it bothers me when I hit the &quot;archive&quot; button and I have to wait half a second for the UI to respond.&nbsp; Sometimes even a couple of seconds.&nbsp; Why does it take so long?&nbsp; Just to get that line off my inbox screen?&nbsp; The answer lies in computer science.</p>
<p><strong>Gmail is written using a classic MVC pattern</strong> &#8212; Model, View, Controller.&nbsp; The View reflects changes in the Model, and the Controller tells them what to do.&nbsp; Clearly the View is our web page, and in this implementation, the Model is stored on Google&#8217;s servers.&nbsp; What this means is that when you do something like archive a message, you&#8217;re not going to see the results until a message is sent to Google&#8217;s servers and the response comes back.&nbsp; Now Google has really fast servers, but networks are slow.&nbsp; <strong>By following this design pattern, Gmail is easy to code new features for and maintain relatively bug-free, but it&#8217;s never going to be all that fast.<br /></strong></p>
<p>Gmail engineers could code up optimizations for special cases.&nbsp; For example, when I&#8217;m looking at my inbox and I hit archive on a message, they could detect this case, and just remove it from the page and then tell the server afterwards.&nbsp; This kind of coding will quickly make the Gmail hard to maintain and result in lots of bugs.&nbsp; Especially when you consider that multiple clients can connect to a single gmail account at once.&nbsp; Strictly following MVC makes it easy to resolve conflicts in one place &#8212; the server.</p>
<h3>A Proposed Solution</h3>
<p>There is a solution though.&nbsp; <a href="http://gears.google.com/">Google Gears</a> can help.&nbsp; The Gmail UI could be (and for all I know currently is being) re-architected to <strong>use Google Gears as the Model</strong> in the MVC pattern.&nbsp; This means any operation in the UI would be committed very quickly to the SQLite database on your hard drive.&nbsp; Then another thread would synchronize these changes in the background with the master model on Google&#8217;s servers.&nbsp; Everything works &#8212; UI operations are reflected to the user extremely quickly.&nbsp; We don&#8217;t lose all the benefits of storing all our data on the server.&nbsp; And as an added bonus, we can still work on our e-mail when our computers are offline.&nbsp; Yet another reason <a href="http://www.embracingchaos.com/2007/09/why-google-gear.html">why Google Gears is important</a>.</p>
<p>So when is this coming?&nbsp; Synchronization and it&#8217;s evil twin, conflict resolution, are complex software tasks, so it could take a while.&nbsp; But if I were placing bets, I&#8217;d guess we&#8217;ll see this in the first half of 2008.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/09/gmail-slowing-d.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Google Gears matters in an always-connected broadband world</title>
		<link>http://www.embracingchaos.com/2007/09/why-google-gear.html</link>
		<comments>http://www.embracingchaos.com/2007/09/why-google-gear.html#comments</comments>
		<pubDate>Thu, 20 Sep 2007 00:55:21 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Tech Industry]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/09/why-google-gear.html</guid>
		<description><![CDATA[An obvious trend in this industry is towards more pervasive internet access with bandwidth steadily increasing. The build-outs of WiMax networks, 3G cellular networks and metropolitan WiFi efforts promise to offer broadband-class connectivity to all major cities in the US within the next couple of years. Suburbs and extended metorpolitan areas will quickly follow. Even airplanes should have reasonable net access before too long -- Virgin America will have it next year. In this environment it's tempting to design products that assume customers will always be well connected. It is certainly easier to build compelling services to users that have...
]]></description>
			<content:encoded><![CDATA[<p>An obvious trend in this industry is towards more pervasive internet access with bandwidth steadily increasing.&nbsp; The build-outs of WiMax networks, 3G cellular networks and metropolitan WiFi efforts promise to offer broadband-class connectivity to all major cities in the US within the next couple of years.&nbsp; Suburbs and extended metorpolitan areas will quickly follow.&nbsp; Even airplanes should have reasonable net access before too long &#8212; <a href="http://www.informationweek.com/software/showArticle.jhtml?articleID=201806625&amp;cid=RSSfeed_TechWeb">Virgin America will have it next year</a>.</p>
<p>In this environment it&#8217;s tempting to design products that assume customers will always be well connected.&nbsp; It is certainly easier to build compelling services to users that have a good pipe to the net on them at all times.&nbsp; So this begs the question: <strong>If customers will soon always have good broadband net access, why do we need a client-side data store like Google Gears?</strong>&nbsp; For example, somebody working on a subscription music service might conclude that it&#8217;s a waste of time building portable mp3-players with local storage since soon enough everyone will have broadband access everywhere, so why not just stream the music off the net?</p>
<p>There are several good reasons why client-side storage is still important and will continue to be important into the future:</p>
<ul>
<li><strong>Wireless net access sucks down battery.</strong>&nbsp; Always will.&nbsp; It&#8217;s physics.&nbsp; Local access to data will always cost less battery.&nbsp; This won&#8217;t change no matter how pervasive broadband is.</li>
<li><strong>Pervasive net access is expensive. </strong> Arguably we&#8217;re already in a world where some people have pervasive net access.&nbsp; <a href="http://b2b.vzw.com/productsservices/wirelessinternet/">Verizon EVDO cards</a> do pretty darned well in this country, for $60/month.&nbsp; But it will be a long time before most people have it.&nbsp; Higher speeds will always demand a premium.</li>
<li><strong>Net access is unreliable.&nbsp; </strong>Especially wireless access, but wired too.&nbsp; Packets collide.&nbsp; Transmission patterns have nodes.&nbsp; Routers flap.&nbsp; Cables get unplugged.&nbsp; Laptops wake up and can&#8217;t figure out where they are for a while.&nbsp; Something gets misconfigured.&nbsp; If your software is designed to gracefully degrade when the network is unreliable, your customers will be happier, because it&#8217;s going to happen.&nbsp; Remember what Outlook/Exchange was like when the entire Outlook UI would freeze while waiting for the Exchange server to respond to any request?&nbsp; Please don&#8217;t do that to your users.</li>
</ul>
<p>Once web applications are fully embracing it, Google Gears will close most of the functionality gap between native-client applications and web applications.&nbsp; I believe it&#8217;s really important, and I&#8217;m really glad that there&#8217;s industry consensus around Google Gears and that other offline browser storage projects have deferred to it.&nbsp; I&#8217;d hate to see web app developers trying to choose between several different client-store plugins.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/09/why-google-gear.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to rescue an old dying Windows Mobile 5 phone from code-rot</title>
		<link>http://www.embracingchaos.com/2007/09/how-to-rescue-a.html</link>
		<comments>http://www.embracingchaos.com/2007/09/how-to-rescue-a.html#comments</comments>
		<pubDate>Fri, 14 Sep 2007 17:51:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/09/how-to-rescue-a.html</guid>
		<description><![CDATA[Those of us who have been around the block know that Windows systems accumulate cruft as they age and just generally get slower and less reliable until you wipe the OS and start over. I realized recently that Windows Mobile 5 is no different. Here are the steps I took to clean off a machine that was so far down the path of destruction it was almost unusable Oh, Treo running Windows, how can you suck so badly? After having my Treo 700W for a while, it started to get noticeably less stable. First it stopped receiving e-mail. Then it...
]]></description>
			<content:encoded><![CDATA[<p><img border="0" src="http://leodirac.typepad.com/embracing_chaos/pix/hard-reset-treo700w.jpg" style="float: right;" />Those of us who have been around the block know that Windows systems accumulate cruft as they age and just generally get slower and less reliable until you wipe the OS and start over.&nbsp; I realized recently that Windows Mobile 5 is no different.&nbsp; Here are the steps I took to clean off a machine that was so far down the path of destruction it was almost unusable</p>
<h3>Oh, Treo running Windows, how can you suck so badly?</h3>
<p>After having my Treo 700W for a while, it started to get noticeably less stable.&nbsp; First it stopped receiving e-mail.&nbsp; Then it stopped sending e-mail.&nbsp; Then incoming calls would cause it to crash (my favorite really).&nbsp; Then it stopped sync&#8217;ing to Outlook, and then it wouldn&#8217;t even show up as a USB device on my PC.&nbsp; Then incoming text messages would cause it to crash.&nbsp; At that point it was just too much.&nbsp; The Treo 700W is worse than most WM5 devices because it just doesn&#8217;t have enough RAM &#8212; somehow Palm failed to implement Microsoft&#8217;s recommended minimum memory requirements, which I hear rumors almost resulted in a class-action lawsuit.</p>
<p>Around July I realized that every time I rebooted the thing, it wasn&#8217;t storing any new text messages.&nbsp; After a reboot, June 21st would be the most recent text message it stored.&nbsp; I wondered if it was just being slow to commit them to memory, but finally I realized it was just full.&nbsp; So I tried to clear the entire text message store.&nbsp; I&#8217;d let this process run for hours, overnight even, and it would display no progress.&nbsp; After rebooting, nothing had changed.&nbsp; I remembered that at some point the &quot;drafts&quot; folder had become corrupt to the point that even trying to display the folder would lock the system hard.&nbsp; I wondered if that was related.</p>
<h3>The Dilemma </h3>
<p>So my phone is crashing constantly.&nbsp; It&#8217;s my primary contact database, and social calendar.&nbsp; I know how to do a hard factory-defaults reset of everything.&nbsp; But I haven&#8217;t gotten it to sync to Outlook since May and I don&#8217;t want to loose all the phone numbers and appointments I&#8217;ve made since then.&nbsp; Being Microsoft, there&#8217;s no way to get the PIM data out except using Active Sync.&nbsp; (What&#8217;s so hard about exporting to XML or a flat file!?)</p>
<p>So I could rescue my phone by clearing it&#8217;s brain.&nbsp; But <a href="http://www.embracingchaos.com/2007/04/preparing_for_e.html">my phone is almost part of my own brain</a>, and without backup I&#8217;d lose months worth of social data.&nbsp; Ugh.</p>
<h3>The Solution</h3>
<p>Here are the steps I took to recover the thing:</p>
<p>1. Copy all files out of &#8216;My Documents&#8217; folder onto an SD card, and back them up on a real computer.<br />
2. Erase everything in &#8216;My Documents&#8217;<br />3. Uninstall all user applications.&nbsp; (Except Active Sync!)<br />4. Keep plugging it into different Windows PC&#8217;s until one of them makes the USB ding-DING noise.&nbsp; (All my desktop and laptop windows machines have degraded to near uselessness too over the last few months, so this was a challenge.)<br />5. Make sure that PC has Active Sync and Outlook on it.<br />6. Create a new Outlook profile (Start-&gt;Control Panel-&gt;Show Profiles) to back up the phone to without messing with other Outlook stuff<br />7. Tell ActiveSync to just backup the Contacts and Calendar.&nbsp; <br />8. Copy them into Outlook.&nbsp; (This can take a while of futzing with Active Sync on both sides.)<br />9. Reset your phone to its factory defaults<br />10. Active Sync the useful stuff back into your phone.</p>
<h3>How do to a hard reset of your Windows Mobile 5 phone:</h3>
<p>I&#8217;m not actually sure if this works for all WM5 phones, but it works on the Treo 700W.&nbsp; Here&#8217;s what you need to do:<br />1. Pull out the battery<br />2. Wait for 15 seconds or so&nbsp; (look closely at the screen &#8212; it slowly fades out even without power)<br />3. Press and hold the red Phone Hangup / On-off button<br />4. Insert the battery<br />5. Keep holding the red button until a screen asks you if you want to reset?<br />6. Press the up arrow to clear all memory from your phone.</p>
<p>It took weeks to actually accomplish this, but I&#8217;m really glad I did because my phone is so much more stable now.&nbsp; It&#8217;s still a complete POS but at least it doesn&#8217;t crash every other time somebody calls now.</p>
<p>Next step: get the calendar to sync with google calendar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/09/how-to-rescue-a.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chronological Blogging</title>
		<link>http://www.embracingchaos.com/2007/09/chronological-b.html</link>
		<comments>http://www.embracingchaos.com/2007/09/chronological-b.html#comments</comments>
		<pubDate>Tue, 11 Sep 2007 23:58:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[User Experience]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/09/chronological-b.html</guid>
		<description><![CDATA[Blog engines always display posts in reverse-chronological order. This is appropriate if the content stales quickly and readers are mostly interested in what the most recent thing is. But it's often unhelpful if you want to use the blog engine to develop a static piece of content. In many such cases, the author wants the reader to consume the content in the order it was written. Examples of content that works better this way include: Stories or fiction Instructional content Reference material For all of these, first-time visitors should be presented with the first post, which would include the most...
]]></description>
			<content:encoded><![CDATA[<p>Blog engines always display posts in reverse-chronological order.&nbsp; This is appropriate if the content stales quickly and readers are mostly interested in what the most recent thing is.&nbsp; But it&#8217;s often unhelpful if you want to use the blog engine to develop a static piece of content.&nbsp; In many such cases, the author wants the reader to consume the content in the order it was written.&nbsp; Examples of content that works better this way include:</p>
<ul>
<li>Stories or fiction</li>
<li>Instructional content</li>
<li>Reference material</li>
</ul>
<p>For all of these, first-time visitors should be presented with the first post, which would include the most basic information on the subject or the beginning of the story.&nbsp; </p>
<p>I&#8217;ve frequently thought about using a blog engine to write a detailed how-to guide on one subject or another, but this problem has discouraged me.&nbsp; A plug-in could solve this, and likely there&#8217;s an answer since this problem has been <a href="http://sethgodin.typepad.com/seths_blog/2004/07/are_blogs_backw.html">identified</a> for years.&nbsp; Here&#8217;s what I&#8217;d want the plug-in to do:</p>
<p>Remember how far through a blog each visitor has gotten.&nbsp; Enable some UI so that visitors indicate that they have read an article.&nbsp; Articles that have not been read are displayed oldest-first.&nbsp; By default this visitor state could be stored in a cookie, or server-side in an account.</p>
<p>Clearly this wouldn&#8217;t be helpful for a blog like engadget or techcrunch that posts dozens of articles every day.&nbsp; But these blogs need to help their readers than what I can describe in a few paragraphs today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/09/chronological-b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Kill a Process on Windows Mobile 5</title>
		<link>http://www.embracingchaos.com/2007/06/how_to_kill_a_p.html</link>
		<comments>http://www.embracingchaos.com/2007/06/how_to_kill_a_p.html#comments</comments>
		<pubDate>Fri, 29 Jun 2007 18:06:00 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://wp.embracingchaos.com/2007/06/how_to_kill_a_p.html</guid>
		<description><![CDATA[Here's a little hacker tid-bit for those of you with phones running WM5. It's the closest thing to task manager that I've found without installing a 3rd party app. If you want to get a list of running tasks and actually stop one as opposed to push it into the background, follow these steps: Press Start Select Settings Choose the System tab Run Memory Choose the Running Programs tab Happy terminating!
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little hacker tid-bit for those of you with phones running WM5.&nbsp; It&#8217;s the <strong>closest thing to task manager</strong> that I&#8217;ve found without installing a 3rd party app.&nbsp; If you want to get a list of running tasks and actually stop one as opposed to push it into the background, follow these steps:</p>
<ul>
<li>Press <strong>Start</strong></li>
<li>Select <strong>Settings</strong></li>
<li>Choose the <strong>System</strong> tab</li>
<li>Run <strong>Memory</strong></li>
<li>Choose the <strong>Running Programs</strong> tab</li>
</ul>
<p>Happy terminating!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2007/06/how_to_kill_a_p.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
