<?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>Analysis of Trends in Technology, Business, Society</description>
	<lastBuildDate>Mon, 23 Jan 2012 16:29:54 +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>Macbook Crashes, Kernel Panics and coping with an Apple &#8220;Genius&#8221;</title>
		<link>http://www.embracingchaos.com/2011/05/macbook-crashes-kernel-panics-and-coping-with-an-apple-genius.html</link>
		<comments>http://www.embracingchaos.com/2011/05/macbook-crashes-kernel-panics-and-coping-with-an-apple-genius.html#comments</comments>
		<pubDate>Sun, 15 May 2011 05:38:33 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1268</guid>
		<description><![CDATA[So your Mac is crashing a lot, and after a trip to the &#8220;Genius Bar&#8221;, you&#8217;re starting to think maybe that &#8220;genius&#8221; you talked to is anything but.  Is this where you are?  If so, join the club, because that&#8217;s exactly what I&#8217;ve been going through recently.  My MacBook Pro would regularly go black without [...]]]></description>
			<content:encoded><![CDATA[<p><img class="top" src="http://www.embracingchaos.com/wp-content/uploads/2011/05/Kernel_Panic-img-300x162.png" alt="" width="300" height="162" />So your Mac is crashing a lot, and after a trip to the &#8220;Genius Bar&#8221;, you&#8217;re starting to think maybe that &#8220;genius&#8221; you talked to is anything but.  Is this where you are?  If so, join the club, because that&#8217;s exactly what I&#8217;ve been going through recently.  My MacBook Pro would regularly go black without warning, and the only way I could get its attention again was to hold the power button for ten seconds.  Often it crashed while the screen saver was running, or when I was switching between desktop Spaces, or any other time.  And it was a thorough and complete crash &#8212; no warning, no recovery.</p>
<p>It was quite a chore to get Apple to admit that the cause was a hardware problem, and fix it.  But I finally succeeded, so I thought I&#8217;d share some of my experiences.  I&#8217;ll explain what a Kernel Panic is, how they sometimes can be caused by faulty software but often indicate hardware problems, how they differ from other kinds of crashes, and provide a guide on <strong>how to read a Mac OS X kernel panic report</strong>.</p>
<h4>Dealing with the &#8220;Genius&#8221; Bar staff</h4>
<p>&#8220;Genius&#8221; is what Apple calls its first tier of technical support.  I find the brand unfortunate and insulting for everybody involved.  There is no intelligence test required to work as a &#8220;genius&#8221; &#8212; just some minimal training on how to follow Apple customer service scripts like an obedient robot.  Knowing Apple, I wouldn&#8217;t be surprised if the &#8220;Genius&#8221; staff are required to follow these scripts verbatim and face not only termination but punitive lawsuits for deviating from the party line.  Keep this in mind when dealing with them.  Also know that they have some discretion in the outcome of your visit, but the discretion exists within guidelines that they cannot control.</p>
<p>Some tips on getting past the &#8220;genius&#8221; from my limited experience.  Print out your kernel panic reports and bring them in.  The more the better.  Highlight the relevant parts.  I&#8217;m not sure if bringing a bad attitude with you helps or not &#8212; they want to make their customers happy, but they don&#8217;t like their &#8220;genius&#8221; title challenged with logic.  I also recommend persistence.  Following their stupid advice and showing them that it did no good will help.  I&#8217;m not sure if understanding what&#8217;s going on will or not.  But if you&#8217;d like to understand more about why your Mac is crashing, read on&#8230;</p>
<h4>Kernel panics and hardware failures vs regular software failures</h4>
<p>There are two basic ways your Mac can crash.  First, an application might lock up on you and become unresponsive.  You get the <strong>spinning beachball of death</strong>, and eventually have to Force Quit your application, losing whatever work you hadn&#8217;t saved.  This kind of user mode failure is very common with buggy software.  If the beachball is getting you down, the problem <strong>is almost certainly caused by bad software, not by a hardware problem</strong>.  In OS 9 and before, this kind of failure could have taken down your entire machine, but since the introduction of the BSD kernel in OS X, the system is designed to allow one application to fail while protecting all the other applications.</p>
<p>Sometimes though your entire Mac will crash hard.  Without warning your system displays a full-screen message saying &#8220;<strong>You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.</strong>&#8221; in several languages.  This is OS X&#8217;s last ditch attempt to tell you something about what happened before it goes completely teets up.  It&#8217;s formally known as a kernel panic.  Sometimes the system is so screwed it can&#8217;t even get that error message onto the screen before it dies.</p>
<p><strong>Kernel panics indicate a serious problem, either with the computer&#8217;s hardware, or the low-level software in the operating system.</strong> In fact there are only three things that can cause a kernel panic:</p>
<ol>
<li>Faulty hardware causes a problem that the OS doesn&#8217;t know how to deal with</li>
<li>A bug in OS X itself</li>
<li>A bug in an OS plugin called a kernel extension or kext</li>
</ol>
<p>Firstly, if the hardware itself has problems, then kernel panics are a common way they manifest themselves.  Similarly, if the operating system itself has any bugs, they could take down the entire system.  The third option could be caused by third-party software, while the first two are entirely Apple&#8217;s responsibility.  So when it comes to dealing with the &#8220;Genius&#8221; behind the bar, the first two are fairly straightforward.  <strong>If you&#8217;re seeing this problem a lot, and nobody else is, then it&#8217;s probably a hardware problem, and they should replace your hardware.</strong> Here&#8217;s a thought experiment I tried unsuccessfully with the Apple &#8220;geniuses&#8221; I had to deal with: Imagine you have a hundred Macs all running the same software, and one of them crashes periodically, but the other 99 don&#8217;t.  Would you classify that Mac as having a hardware problem or a software problem?  In my case, the genius insisted that it was a software problem.  In fact he claimed he was certain that if I uninstalled Adobe Flash, the problem would be fixed.  Read on, and you&#8217;ll learn how the kernel panic reports themselves show that this explanation is impossible.</p>
<h4>Understanding and interpreting Kernel Panic reports</h4>
<p>First a bit about what a Kernel Panic is.  Very simply, it&#8217;s when something unexpected goes wrong in the operating system kernel.  What&#8217;s the kernel?  The kernel is the lowest level of the operating system &#8212; the part that&#8217;s closest to the hardware.  In modern operating systems, there&#8217;s a fairly arbitrary line between what functionality lives in the kernel and what functionality lives in the user space.  The key difference is that when something goes wrong with software in the user space, you get a beachball on the app, but the system survives.  When something goes wrong in the kernel, you get a kernel panic, and the whole system goes bye bye fast.  So it&#8217;s critical that any code running in the kernel space be ultra reliable.  You don&#8217;t change kernel code quickly or lightly, and you test the hell out of it before you release it.  But code runs faster in the kernel, so most modern operating systems put important things like networking and graphics into the kernel.  The BSD kernel which powers OS X allows the installation of &#8220;kernel extensions&#8221; or &#8220;kexts&#8221; which add functionality.  More about these soon.  But suffice to say that when anything goes wrong with any kext, it&#8217;s a big deal problem because there&#8217;s nothing to fall back on (e.g. can&#8217;t display an error dialog if the problem is with the display system), so the system&#8217;s reaction is called a panic.  Thus &#8220;kernel panic.&#8221;</p>
<p>Immediately after a KP, your computer does two things: it stores a bunch of information to help diagnose what caused the problem, and puts up the error screen, if it can.  When you reboot, your computer asks if you want to send the KP report to Apple.  You should do this.  The smarter of the &#8220;genius&#8221; staff can look these reports up and see that your Mac is actually crashing, but they&#8217;ll admit that the contents are too technical for a mere &#8220;genius&#8221; to understand.  Well I&#8217;m going to explain to you what the reports contain and what it means about what&#8217;s wrong with your computer.</p>
<p>Here&#8217;s a typical crash report from my computer.  In my case, these panics weren&#8217;t even accompanied by the &#8220;restart your computer message&#8221; because as I&#8217;ll explain, the problem originated in the graphics system.  My computer just suddenly went black and non-responsive.  I&#8217;ve highlighted a few key sections for explanation below.</p>
<pre style="font-size: 9px; line-height: 10px;"><strong>Interval Since Last Panic Report:  420 sec
</strong>Panics Since Last Report:          1
<strong>Anonymous UUID:                    8A09F455-1039-4696-8479-xxxxxxxxxxxx
</strong>Thu Apr 21 09:00:51 2011
<strong>panic(cpu 3 caller 0x9cdc8f): NVRM[0/1:0:0]: Read Error 0x00000100: CFG 0xffffffff 0xffffffff 0xffffffff, BAR0 0xc0000000 0xa734e000 0x0a5480a2, D0, P2/4
</strong>Backtrace (CPU 3), Frame : Return Address (4 potential args on stack)
0xbc001728 : 0x21b510 (0x5d9514 0xbc00175c 0x223978 0x0)
0xbc001778 : 0x9cdc8f (0xbe323c 0xc53840 0xbf23cc 0x0)
0xbc001818 : 0xae85d3 (0xe0cfc04 0xe5c9004 0x100 0xb83de000)
0xbc001868 : 0xadf5cc (0xe5c9004 0x100 0xbc001898 0x9bd76c)
0xbc001898 : 0x16c8965 (0xe5c9004 0x100 0x438004ee 0x28)
0xbc0019d8 : 0xb07250 (0xe5c9004 0xe5ca004 0x0 0x0)
0xbc001a18 : 0x9d6e23 (0xe5c9004 0xe5ca004 0x0 0x0)
0xbc001ab8 : 0x9d3502 (0x0 0x9 0x0 0x0)
0xbc001c68 : 0x9d4aa0 (0x0 0x600d600d 0x704a 0xbc001c98)
0xbc001d38 : 0xc89217 (0xbc001d58 0x0 0x98 0x2a358d)
0xbc001df8 : 0xc8ec1d (0xe8e5404 0x0 0x98 0x45e8d022)
0xbc001f18 : 0xc8f0b4 (0xe8e5404 0x124b6204 0x6d39d1c0 0x0)
0xbc001f78 : 0xc8f39f (0xe8e5404 0x124b6204 0x6d39d1c0 0xbc0021e0)
0xbc002028 : 0xca3691 (0xe8e5404 0x1f80d8e8 0xbc00239c 0xbc0021e0)
0xbc002298 : 0xc84d09 (0x6d0b7000 0x1f80d8e8 0xbc00239c 0x0)
0xbc0023f8 : 0xc84f47 (0x6d0c6000 0x1f80d800 0x1 0x0)
0xbc002428 : 0xc87a04 (0x6d0c6000 0x1f80d800 0x0 0x97c6c4fc)
0xbc002468 : 0xca9d40 (0x6d0c6000 0x1f80d800 0x6d09f274 0x140)
0xbc0024f8 : 0xc9b5a9 (0xde94bc0 0x1f80d800 0x0 0x1)
0xbc002558 : 0xc9b810 (0x6d09f000 0x6d09f77c 0x1f80d800 0x0)
0xbc0025a8 : 0xc9bce4 (0x6d09f000 0x6d09f77c 0xbc0028cc 0xbc00286c)
0xbc0028e8 : 0xc98aaf (0x6d09f000 0x6d09f77c 0x1 0x0)
0xbc002908 : 0xc605a1 (0x6d09f000 0x6d09f77c 0x1956a580 0x0)
0xbc002938 : 0xc9a572 (0x6d09f000 0xbc002a7c 0xbc002968 0x5046b1)
0xbc002978 : 0xc648de (0x6d09f000 0xbc002a7c 0x0 0xc000401)
0xbc002ab8 : 0xc9dee6 (0x6d09f000 0x0 0xbc002bcc 0xbc002bc8)
0xbc002b68 : 0xc60c93 (0x6d09f000 0x0 0xbc002bcc 0xbc002bc8)
0xbc002be8 : 0x56a738 (0x6d09f000 0x0 0xbc002e3c 0xbc002c74)
0xbc002c38 : 0x56afd7 (0xcef020 0x6d09f000 0x129bab88 0x1)
0xbc002c88 : 0x56b88b (0x6d09f000 0x10 0xbc002cd0 0x0)
0xbc002da8 : 0x285be0 (0x6d09f000 0x10 0x129bab88 0x1)
0xbc003e58 : 0x21d8be (0x129bab60 0x1ec235a0 0x1fd7e8 0x5f43)
      Backtrace continues...

<strong>      Kernel Extensions in backtrace (with dependencies):
</strong>         <strong>com.apple.GeForce</strong>(6.2.6)@0xc55000-&gt;0xd0afff
            dependency: com.apple.NVDAResman(6.2.6)@0x967000
            dependency: com.apple.iokit.IONDRVSupport(2.2)@0x95a000
            dependency: com.apple.iokit.IOPCIFamily(2.6)@0x927000
            dependency: com.apple.iokit.IOGraphicsFamily(2.2)@0x938000
         <strong>com.apple.nvidia.nv50hal</strong>(6.2.6)@0x1592000-&gt;0x19a6fff
            dependency: com.apple.NVDAResman(6.2.6)@0x967000
         <strong>com.apple.NVDAResman</strong>(6.2.6)@0x967000-&gt;0xc54fff
            dependency: com.apple.iokit.IOPCIFamily(2.6)@0x927000
            dependency: com.apple.iokit.IONDRVSupport(2.2)@0x95a000
            dependency: com.apple.iokit.IOGraphicsFamily(2.2)@0x938000

<strong>BSD process name corresponding to current thread: kernel_task</strong>

Mac OS version:
10J869
Kernel version:
Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386
System model name: MacBookPro6,2 (Mac-F22586C8)
System uptime in nanoseconds: 35829130822125

unloaded kexts:
com.apple.filesystems.msdosfs 1.6.3 (addr 0xbc1e5000, size 0x53248) - last unloaded 12216461868115

<strong>loaded kexts:
</strong>com.parallels.kext.prl_vnic 6.0 11992.625164
com.parallels.kext.prl_netbridge 6.0 11992.625164
com.parallels.kext.prl_usb_connect 6.0 11992.625164
com.parallels.kext.prl_hid_hook 6.0 11992.625164
com.parallels.kext.prl_hypervisor 6.0 11992.625164
com.apple.filesystems.smbfs 1.6.6 - last loaded 12151022138289
com.apple.driver.AppleHWSensor 1.9.3d0
com.apple.driver.AGPM 100.12.19
com.apple.driver.AppleMikeyHIDDriver 1.2.0
com.apple.driver.AppleHDA 1.9.9f12
com.apple.driver.AppleUpstreamUserClient 3.5.4
com.apple.driver.AppleMCCSControl 1.0.17
com.apple.driver.AppleMikeyDriver 1.9.9f12
com.apple.driver.AudioAUUC 1.54
com.apple.driver.AppleIntelHDGraphics 6.2.6
com.apple.driver.AppleIntelHDGraphicsFB 6.2.6
com.apple.driver.SMCMotionSensor 3.0.0d4
com.apple.kext.AppleSMCLMU 1.5.0d3
com.apple.Dont_Steal_Mac_OS_X 7.0.0
com.apple.iokit.CHUDUtils 201
com.apple.iokit.CHUDProf 216
com.apple.driver.AudioIPCDriver 1.1.6
com.apple.driver.AppleGraphicsControl 2.8.68
com.apple.driver.ACPI_SMC_PlatformPlugin 4.5.0d5
com.apple.GeForce 6.2.6
com.apple.driver.AppleLPC 1.4.12
com.apple.filesystems.autofs 2.1.0
com.apple.driver.AppleUSBTCButtons 200.3.2
com.apple.driver.AppleUSBTCKeyboard 200.3.2
com.apple.driver.AppleIRController 303.8
com.apple.driver.AppleUSBCardReader 2.5.8
com.apple.iokit.SCSITaskUserClient 2.6.5
com.apple.BootCache 31
com.apple.AppleFSCompression.AppleFSCompressionTypeZlib 1.0.0d1
com.apple.iokit.IOAHCIBlockStorage 1.6.3
com.apple.driver.AppleUSBHub 4.1.7
com.apple.driver.AppleFWOHCI 4.7.1
com.apple.driver.AirPortBrcm43224 427.36.9
com.apple.iokit.AppleBCM5701Ethernet 2.3.9b6
com.apple.driver.AppleEFINVRAM 1.4.0
com.apple.driver.AppleSmartBatteryManager 160.0.0
com.apple.driver.AppleUSBEHCI 4.1.8
com.apple.driver.AppleAHCIPort 2.1.5
com.apple.driver.AppleACPIButtons 1.3.5
com.apple.driver.AppleRTC 1.3.1
com.apple.driver.AppleHPET 1.5
com.apple.driver.AppleSMBIOS 1.6
com.apple.driver.AppleACPIEC 1.3.5
com.apple.driver.AppleAPIC 1.4
com.apple.driver.AppleIntelCPUPowerManagementClient 105.13.0
com.apple.security.sandbox 1
com.apple.security.quarantine 0
com.apple.nke.applicationfirewall 2.1.11
com.apple.driver.AppleIntelCPUPowerManagement 105.13.0
com.apple.driver.DspFuncLib 1.9.9f12
com.apple.driver.AppleProfileReadCounterAction 17
com.apple.driver.AppleProfileTimestampAction 10
com.apple.driver.AppleProfileThreadInfoAction 14
com.apple.driver.AppleProfileRegisterStateAction 10
com.apple.driver.AppleProfileKEventAction 10
com.apple.driver.AppleProfileCallstackAction 20
com.apple.driver.AppleSMBusController 1.0.8d0
com.apple.iokit.IOFireWireIP 2.0.3
com.apple.iokit.IOSurface 74.2
com.apple.iokit.IOBluetoothSerialManager 2.4.0f1
com.apple.iokit.IOSerialFamily 10.0.3
com.apple.iokit.CHUDKernLib 208
com.apple.iokit.IOAudioFamily 1.8.0fc1
com.apple.kext.OSvKernDSPLib 1.3
com.apple.driver.AppleHDAController 1.9.9f12
com.apple.iokit.IOHDAFamily 1.9.9f12
com.apple.iokit.AppleProfileFamily 41
com.apple.driver.AppleSMC 3.1.0d3
com.apple.driver.IOPlatformPluginFamily 4.5.0d5
com.apple.driver.AppleSMBusPCI 1.0.8d0
com.apple.nvidia.nv50hal 6.2.6
com.apple.NVDAResman 6.2.6
com.apple.iokit.IONDRVSupport 2.2
com.apple.iokit.IOGraphicsFamily 2.2
com.apple.driver.BroadcomUSBBluetoothHCIController 2.4.0f1
com.apple.driver.AppleUSBBluetoothHCIController 2.4.0f1
com.apple.iokit.IOBluetoothFamily 2.4.0f1
com.apple.driver.AppleUSBMultitouch 206.6
com.apple.iokit.IOUSBHIDDriver 4.1.5
com.apple.iokit.IOSCSIBlockCommandsDevice 2.6.5
com.apple.iokit.IOUSBMassStorageClass 2.6.5
com.apple.driver.AppleUSBMergeNub 4.1.8
com.apple.driver.AppleUSBComposite 3.9.0
com.apple.iokit.IOSCSIMultimediaCommandsDevice 2.6.5
com.apple.iokit.IOBDStorageFamily 1.6
com.apple.iokit.IODVDStorageFamily 1.6
com.apple.iokit.IOCDStorageFamily 1.6
com.apple.driver.XsanFilter 402.1
com.apple.iokit.IOAHCISerialATAPI 1.2.5
com.apple.iokit.IOSCSIArchitectureModelFamily 2.6.5
com.apple.iokit.IOUSBUserClient 4.1.5
com.apple.iokit.IOFireWireFamily 4.2.6
com.apple.iokit.IO80211Family 314.1.1
com.apple.iokit.IONetworkingFamily 1.10
com.apple.iokit.IOUSBFamily 4.1.8
com.apple.iokit.IOAHCIFamily 2.0.4
com.apple.driver.AppleEFIRuntime 1.4.0
com.apple.iokit.IOHIDFamily 1.6.5
com.apple.iokit.IOSMBusFamily 1.1
com.apple.kext.AppleMatch 1.0.0d1
com.apple.security.TMSafetyNet 6
com.apple.driver.DiskImages 289
com.apple.iokit.IOStorageFamily 1.6.2
com.apple.driver.AppleACPIPlatform 1.3.5
com.apple.iokit.IOPCIFamily 2.6
com.apple.iokit.IOACPIFamily 1.3.0</pre>
<p>The first line is fairly clear &#8212; how long has your system been running since its last crash?  If this is less than an hour, as it was for my computer, then your machine is completely <a href="http://en.wikipedia.org/wiki/FUBAR">FUBAR</a>.  Less than a day and you&#8217;ve still got a seriously unstable computer.  (Hint for any &#8220;genius&#8221; that might be reading this article: take the number of seconds, divide it by 60 using the Calculator app on your store-issued-iPad, and that will give you the number of minutes.  Divide that new smaller number by 60 again to get an even smaller number which is hours.  If you can figure out how to get to number of days by yourself, it&#8217;s time to apply for the &#8220;Genius Lead&#8221; job.)</p>
<p>The Anonymous UUID is an effectively random code that allows Apple to lookup the crash reports for your computer when you go into the store.  Then there&#8217;s the date.  Straightforward.</p>
<p><strong>The line which starts &#8220;panic&#8221; is the closest thing you&#8217;ll find to a concise explanation of what went wrong. </strong>In all likelihood this will be a jumble of words and numbers that make no sense, but it&#8217;s a great string to Google.  If you&#8217;re having a hardware problem, this message will probably stay about the same with each KP.  Googling my error message &#8220;<strong>NVRM[0/1:0:0]: Read Error 0&#215;00000100</strong>&#8221; turns up a bunch of people with similar problems &#8212; computer going black without warning, often while playing World of Warcraft.</p>
<p>The next section titled &#8220;backtrace&#8221; is worthless unless you&#8217;re actually diving into the source code that caused the problem.  Skip over it.  But the section after it is extremely interesting and relatively easy to interpret.</p>
<p><strong>The section titled &#8220;Kernel Extensions in backtrace (with dependencies)&#8221; actually tells you what part of the system failed.  Read this one closely and try to make sense of it.</strong> In the case of my example, there are three kernel extensions involved with the crash.  They are called &#8220;com.apple.GeForce&#8221; and &#8220;com.apple.nvidia.nv50hal&#8221; and &#8220;com.apple.NVDAResman&#8221;.  The first one is fairly obvious &#8212; GeForce is the kind of graphics chip in the macbook.  The second one is also pretty clear &#8212; NVidia is the company that makes GeForce, and nv50hal I would guess means &#8220;NVidia 5.0 Hardware Abstraction Layer&#8221; or something similar.  I&#8217;m not sure what NVDAResman is but looking down a bit I see it&#8217;s related to &#8220;IOGraphicsFamily&#8221;.  This paints a really clear picture that the failure is in the graphics system.  Moreover, <strong>since every line here starts with &#8220;com.apple&#8221; we know the failure is entirely in code written by Apple</strong>.  There is no third-party software involved in this crash.</p>
<p>For my particular crash, it&#8217;s important to know something about the graphics hardware of these MacBooks, since all evidence points to the graphics hardware.  This generation of macbooks have two graphics chips &#8212; a faster one from Nvidia, and a more battery-friendly one from Intel.  The nvidia chip which is apparently having problems is always used when the computer has an external monitor plugged in, or when something fancy is happening on the built-in screen.  A nice utility called <a href="http://codykrieger.com/gfxCardStatus">gfxCardStatus</a> can help you understand this complexity, and will definitely give you a leg up on the &#8220;genius.&#8221;</p>
<p>The following line starting with <strong>&#8220;BSD process name&#8221; can also be important</strong>.  This will sometimes tell you which user-level app originated the call into the kernel which failed.  In my case it was &#8220;kernel_task&#8221; which provides no additional information.</p>
<p>The next section gives some basic info about the Mac &#8212; hardware and OS versions.  What follows is a complete list of kernel extensions (kexts) installed.  This gives you a bit more ammo in dealing with the &#8220;genius&#8221; who is probably ignoring you at this point anyway.  You can look through this list and see everything that might possibly contribute to a kernel panic.  In my case, the only software modules that aren&#8217;t from Apple are some drivers from Parallels for running my Windows virtual machine.  So <strong>the only reasons my Mac might kernel panic are because of a hardware problem, a bug in OS X itself, or something going wrong with Parallels</strong>.  Understanding this should, in theory, be very helpful when talking to your local neighborhood &#8220;genius&#8221; but unfortunately they are simple bots that only run scripts authored in Cupertino and are not permitted to listen to logic.</p>
<h4>Apple&#8217;s Propaganda about Flash</h4>
<p>When the &#8220;genius&#8221; told me my Mac&#8217;s problem was that I had Adobe Flash installed, I just laughed at first.  Flash is installed on something like 97% of desktop computers, and very few of them regularly turn themselves off for no reason.   Moreover, the kernel panic report lists every piece of software that could possibly contribute to the kernel panic, and neither the word &#8220;flash&#8221; nor &#8220;adobe&#8221; appear anywhere in the list.  But then I realized he wasn&#8217;t joking.</p>
<p>Apple&#8217;s ongoing arguments with Adobe over Flash are <a href="http://www.google.com/search?q=apple+vs+adobe">well publicized</a>.  The root of the issue, in very brief summary, is that Apple sees Adobe&#8217;s Flash as a strategic threat to their incredibly profitable iPhone platform.  The poor &#8220;genius&#8221; I&#8217;m stuck with has become a pawn in Apple&#8217;s PR battle, throwing himself on the grenade of propaganda just to spread <a href="http://en.wikipedia.org/wiki/Fear,_uncertainty_and_doubt">FUD</a> about Flash.  I tried reasoning with him, explaining that Adobe&#8217;s software doesn&#8217;t run in the kernel, and therefore cannot cause a kernel panic.  <strong>The job of the kernel is to protect users from badly written software crashing the whole machine.</strong> But he would not budge.  I imagined a &#8220;genius&#8221; script which read as follows:</p>
<p style="padding-left: 30px;">Mac is crashing&#8230;</p>
<p style="padding-left: 30px;">1. Run hardware diagnostic tests.</p>
<p style="padding-left: 30px;">2. Address any identified hardware problems.</p>
<p style="padding-left: 30px;">3. If hardware tests come back clean, tell customer that the problem (whatever it is) is caused by Flash.  Tell them to uninstall it, and see if that helps.</p>
<p>Here I imagine the Dantesque trap of the rare &#8220;genius&#8221; who actually understands how OS X works.  <em>I&#8217;m telling the customer something which is impossible on its face, and he knows it.  He&#8217;s arguing with me telling me I&#8217;m being stupid.  But I signed a contract with Apple saying I would defame Adobe, and deviation from this contract will bring the wrath of Steve&#8217;s legal team on me.  I just have to smile and say things like &#8220;yeah, that&#8217;s the really strange thing about this particular software problem &#8212; it only affects certain computers.  But it&#8217;s definitely caused by Flash.&#8221;</em></p>
<p>One might reason that Flash could cause kernel panics because it makes more extensive use of the graphics system than other applications.  But in this case, Flash isn&#8217;t the actual problem.  Flash is exposing the underlying problem, as would any software which works the graphics system hard.  Thus lots of people with the same problem as me who play World of Warcraft.  If the &#8220;genius&#8221; advice ever works, it&#8217;s just because Flash is the most graphics intensive software that many people use on their Macs.  The actual problem is still either a bug in OS X, or a hardware problem.</p>
<p>Consider the advice not to use Flash on your Mac in analogy to a car.  (A high-end MacBook actually costs as much as <a href="http://www.csmonitor.com/Innovation/Horizons/2010/0115/World-s-cheapest-car-Tata-Nano-revs-toward-US">some cars</a>.)  Imagine that your car sometimes just turned its engine off while you were in the middle of driving it &#8211; catastrophic failure with no warning or apparent reason.  You go to the dealership and they can&#8217;t find anything wrong with it, but ask if you ever listen to electronic music?  Well, yes, sometimes.  That&#8217;s the problem!  It&#8217;s the electronic music which is causing your car to malfunction.  So stop listening to it, and the problem will be fixed.  Umm, what?  The closest thing to the truth, by analogy, would be that any bass-heavy music (graphics-intensive application) is stressing out some weak connection in the electronics.  But because the car dealership is owned by the local philharmonic, they&#8217;re blaming it on that awful music the kids listen to.   Using your misfortune and their incompetence to push an unrelated political agenda.</p>
<p>It&#8217;s an interesting glimpse into how Apple is using their retail presence to advance a strategic PR goal.  Evidence that Apple has grown up as a company to the point where their own motives are more important than doing what actually helps customers.  *sigh*  At least I got my MacBook fixed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2011/05/macbook-crashes-kernel-panics-and-coping-with-an-apple-genius.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Democratizing HTTPS</title>
		<link>http://www.embracingchaos.com/2011/03/democratizing-https.html</link>
		<comments>http://www.embracingchaos.com/2011/03/democratizing-https.html#comments</comments>
		<pubDate>Tue, 22 Mar 2011 03:16:40 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Democratization of Information]]></category>
		<category><![CDATA[Electronic Security]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1213</guid>
		<description><![CDATA[Dear Google,
Please democratize SSL certificates.  The ability to serve HTTPS:// pages without scaring users is currently controlled by a handful of “trusted authorities” whose business is to make it difficult to secure web communications.  Google, you have the ability to disrupt this oligarchy and empower individuals to make the web safer.
The web is a safer [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1247 top" title="safe" src="http://www.embracingchaos.com/wp-content/uploads/2011/03/safe.png" alt="" width="199" height="67" />Dear Google,</p>
<p>Please democratize SSL certificates.  The ability to serve HTTPS:// pages without scaring users is currently controlled by a handful of “trusted authorities” whose business is to make it difficult to secure web communications.  Google, you have the ability to disrupt this oligarchy and empower individuals to make the web safer.</p>
<p>The web is a safer place when information passed between browsers and web servers is encrypted &#8212; that is when URLs start with HTTPS instead of HTTP.  The recent introduction of <a href="http://codebutler.github.com/firesheep/">FireSheep</a> demonstrated to the world just how insecure normal (HTTP) web communications are &#8212; anybody on your network with a simple browser plugin can impersonate you.  In fact, FireSheep democratized the ability to steal session authentication by bundling it up in a manner that is easily used by the masses.  Google&#8217;s own proposed SPDY protocol, whose primary goal is to make the web faster, is willing to <a href="http://dev.chromium.org/spdy/spdy-whitepaper">slow down in the name of security</a>.  “Although SSL does introduce a latency penalty, we believe that the long-term future of the web depends on a secure network connection.”  We all want a safer web, so please help us achieve that by making it easier to set up HTTPS on our web servers.</p>
<p>There is no technical challenge here.  All modern browsers and servers are capable of safely encrypting the information passed between them.  Encryption protects users against eavesdropping and session hijacking a la firesheep.  Today’s challenge to secure web communications does not lie in the encryption, but the authentication.  The HTTPS protocol begins with the server presenting its security “certificate” which is meant to assure the user they have not reached an imposter web site.  This assurance is provided courtesy of the oligarchy of trusted certificate authorities, for a fee and a hassle.  Alternately, servers can present a “self-signed certificate” which provides equally good encryption, but no assurance that the server is who it claims to be.  But instead of recognizing self-signed certificates as being safer than no security at all, today’s popular browsers do their best to terrify and/or inconvenience users when visiting sites with self-signed certificates.  Certainly there is some value in authenticating the web server, but is that value worth the cost of allowing eaves-dropping and session hi-jacking on the vast majority of web sites?  I think not.</p>
<p>The current standard practice is backwards.  An HTTPS request to a server using a self-signed certificate offers encryption but not authentication.  This is clearly safer than a plain-text HTTP request, which offers neither encryption nor authentication.  But browsers tell users that self-signed certs are worse than unsecured communications.  (Chrome is actually <a href="http://www.google.com/support/chrome/bin/search.py?hl=en&amp;forum=1&amp;query=This+frame+was+blocked+because+it+contains+some+insecure+content+more%3Aforum">worse</a> than others.)  Deploying SSL on a commercial scale is also complicated by shared IP addresses for multiple sites, which again interferes with authentication, but not encryption.  The certificate verification UI already demonstrates varying levels of trust as shown below.  But self-signed certificates which offer encryption without authentication are incorrectly indicated.  Let’s remove the simple barriers which are preventing encrypted web communications.</p>
<p><a rel="attachment wp-att-1248" href="http://www.embracingchaos.com/2011/03/democratizing-https.html/security-hierarchy"><img class="alignnone size-full wp-image-1248" title="security hierarchy" src="http://www.embracingchaos.com/wp-content/uploads/2011/03/security-hierarchy.png" alt="" width="583" height="363" /></a></p>
<p>The best technical path to fix this mess is immaterial here &#8212; many options exist.  Changing browser behavior to make self-signed certs less scary is one path, although it’s not a complete solution because of the legacy of every installed browser.  A new free service that signed anybody’s certificate with a trusted cert would work, provided that company had sufficient clout to get their root cert recognized.  (Google, you can do this.)  Empowering any domain registrar to sign SSL certs also makes sense since they’re the ones ultimately authenticating who owns a domain.  This choice wouldn’t immediately bring certificate prices to zero, but would greatly accelerate the trend we already see of lowering prices.  Perhaps a bloom-filter algorithm similar to what Chrome uses to identify malware sites could differentiate those sites whose identity has actually been verified through stricter measures, where self-signing should not be trusted.  A deeper technical analysis is needed to determine the best tactics, but clearly Google has both the necessary skills and level of influence needed to effect this change.</p>
<p>Additionally, Google uniquely has the motivation to make the web safer.  Google long ago recognized the value of <a href="http://www.embracingchaos.com/2010/05/parting-thoughts-on-working-at-google.html">primary demand stimulation</a> &#8212; more web use means more web searches which means more advertising revenue for Google.  Open standards do not advance without leadership from selfishly interested parties.  The state of SSL certificates mirrors a political situation that desperately needs legislative intervention &#8212; a special interest group (the root certificate authorities) has a strong financial incentive to maintain status quo, even though every individual marginally benefits from the change.  Google is the company that stands to benefit the most from a safer web.  So please Google, act now to bring democracy to the safe exchange of information on the web by enabling anybody to freely secure their web traffic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2011/03/democratizing-https.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ironic challenge of nuclear power safety</title>
		<link>http://www.embracingchaos.com/2011/03/the-ironic-challenge-of-nuclear-power-safety-and-a-possible-solution.html</link>
		<comments>http://www.embracingchaos.com/2011/03/the-ironic-challenge-of-nuclear-power-safety-and-a-possible-solution.html#comments</comments>
		<pubDate>Wed, 16 Mar 2011 05:38:18 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Analysis]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[Societal Values]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1216</guid>
		<description><![CDATA[In studying the history of Chernobyl, Three Mile Island and the ongoing events at Fukushima, a subtle but important connection appears.  The problems at Fukushima today share a fundamental similarity with the cause of Chernobyl&#8217;s disaster. Moreover, within that similarity lies a path to making nuclear power safer.
Obviously there are huge differences.  Chernobyl was a massive disaster [...]]]></description>
			<content:encoded><![CDATA[<p><img class="top" src="http://www.embracingchaos.com/wp-content/uploads/2011/03/bwr200.png" alt="" width="200" height="350" />In studying the history of <a href="http://en.wikipedia.org/wiki/Chernobyl_disaster">Chernobyl</a>, <a href="http://en.wikipedia.org/wiki/Three_Mile_Island_accident">Three Mile Island</a> and the ongoing events at <a href="http://en.wikipedia.org/wiki/Fukushima_I_nuclear_accidents">Fukushima</a>, a subtle but important connection appears.  <strong>The problems at Fukushima today share a fundamental similarity with the cause of Chernobyl&#8217;s disaster.</strong> Moreover, <strong>within that similarity lies a path to making nuclear power safer.</strong></p>
<p>Obviously there are huge differences.  Chernobyl was a massive disaster that killed thousands of people, the only accident to ever reach level 7 on the <a href="http://en.wikipedia.org/wiki/International_Nuclear_Event_Scale">International Nuclear Event Scale</a> (INES).  When I started writing this article, Fukushima was classified as level 4, although that was before the containment building at reactor 3 exploded, and trouble really started in reactor 2.  I had written that it was likely to be re-classified as level 5, and now lots of people are saying they think it might end up as level 6.  I had written that I think it&#8217;s extremely unlikely to reach level 7 where thousands of people die from radiation poisoning, but the way things are going, I&#8217;m not so confident of that any more.  :(</p>
<p>For a decent explanation of the defense-in-depth strategies of the Fukushima reactors, read this <a href="http://bravenewclimate.com/2011/03/13/fukushima-simple-explanation/">overly-optimistic article</a>.  This article has been widely distributed and republished because its &#8220;you&#8217;re all over-reacting&#8221; message is a nice one to hear and it comes from a seemingly credible source, a scientist at MIT.  But the article has an interesting past, <a href="http://skewedsnapshots.blogspot.com/2011/03/intelligent-information-about-fukushima.html">originally</a> including a major technical confusion, mixing up moderators which speed up nuclear reactions with control rods which slow them down.  This mistake was fixed fairly quickly, and then article moved to a new location hosted by MIT, along the way shedding its re-assurances that nobody would get any more radiation than from &#8220;a long distance flight&#8221;.  Clearly things are worse than that.  Nonetheless, <strong>Fukushima was built with many layers of protection, making a Chernobyl-scale disaster much less likely</strong>.  But things just keep getting worse there.</p>
<h4>Fukushima faces the same problem Chernobyl was trying to fix</h4>
<p>As we&#8217;ve all probably heard, the Chernobyl reactor exploded while performing an experiment.  The causes of the disaster are many, but most fundamentally the reactor design was unstable.  Relying on cooling water as a nuclear damping material gave the RBMK-style reactors a positive <a href="http://en.wikipedia.org/wiki/Void_coefficient">void coefficient</a> meaning that as the water boiled from liquid to gaseous state, the nuclear reaction accelerated.  This is fundamentally unstable since it can create a positive feedback cycle, as it did during their fateful experiment.  The reactor heats up, which boils water, and since steam is less dense than liquid water there is now less nuclear damping material to slow the reaction, so it goes faster.  (Modern reactors don&#8217;t do this.)  In fact just 36 seconds after operators started the experiment, somebody hit the <a href="http://en.wikipedia.org/wiki/Scram">&#8220;Oh Shit&#8221; button</a> (which unfortunately due to even worse design actually exacerbated the problem), and seconds later the reactor core tragically exploded.  Chernobyl&#8217;s core didn&#8217;t have time to melt &#8212; it just exploded.  Then large amounts of radioactive graphite burned in a hot fire which carried toxic ash high into the atmosphere.  Thousands got sick and died.</p>
<p>Despite what the Soviets wanted everybody to think afterwards (and even convinced the IAEA for 7 years), the motivation for the experiment at Chernobyl was wise and well-intentioned.  The operators were not insane, stupid, nor psychotic.  They knew that their reactor relied on the external power grid to run its cooling systems.  Of course they had backup diesel generators on site in case the power grid failed, but they also knew these generators could take up to a full minute to kick in.  That seemed like too long of a gap, so they were trying something creative &#8212; using the momentum in the plant&#8217;s own steam turbine to power the cooling pumps as the turbine was coasting down, unpowered.  They were thinking to themselves &#8220;hey, we&#8217;ve got this great power source, why don&#8217;t we use it to run the cooling pumps instead of relying on the external grid.&#8221;  Great idea.  They&#8217;d tried the experiment a couple times before.  It hadn&#8217;t worked.  This time it really didn&#8217;t work.  But because the reactor was so unstable when the experiment started that a slight decrease in cooling caused it to explode, not because the idea was flawed.</p>
<p>The heart of Fukushima&#8217;s problems are the same &#8212; the electrical grid around them was taken out by the earthquake.  They shut down their own reactions almost instantly after the quake, and thus were no longer producing their own electricity.  So to power the cooling pumps they needed to switch to backup power.  Unfortunately the backup generators failed, most agree due to the tsunami.</p>
<p>So Fukushima has this ironic problem.  They have an incredibly hot thing.  Even 48 hours after stopping the fission reaction, the core is still producing megawatts of decay heat.  Enough heat <a href="https://spreadsheets1.google.com/ccc?authkey=CKa4mYEG&amp;hl=en&amp;key=ty0UdTtWm474dZzfC_2yZ1Q&amp;hl=en&amp;authkey=CKa4mYEG#gid=0">to boil 20 tons of water each hour</a>.  They need electricity to run the pumps to cool down this incredibly hot thing.  But they don&#8217;t have any electricity.  <strong>There&#8217;s an electrical power plant (a device to turn heat into electricity) with tons of heat coming off of it, but they don&#8217;t have any power to run the cooling pumps, so it overheats.  Ironic, no?</strong> This irony was at the core of the experiment that Chernobyl was attempting &#8212; use the energy of the offline plant to run the cooling systems.</p>
<h4>Safer designs are possible</h4>
<p>In principal it seems you should be able to design a reactor that uses this vast quantity of heat (which is power &#8212; heat equals power) to run the systems needed to cool the thing off.  Fundamentally this is just an engineering problem.  Shouldn&#8217;t we be able to design something that can keep itself cool using its own energy even when disconnected from the grid?  Happily the answer is yes.  But sadly the answer was not yes in the 1970&#8217;s when these plants were built.  Not quite at least.</p>
<p>In fact, these old GE Mark I reactors do have <a href="http://en.wikipedia.org/wiki/Boiling_water_reactor_safety_systems#Emergency_Core_Cooling_System_.28ECCS.29">emergency core cooling systems</a> designed to help with this, but were never meant to be a complete solution, and clearly didn&#8217;t work.  <a href="http://www.anl.gov/Media_Center/logos20-1/passive01.htm">New experimental designs</a> achieve cooling completely passively without any need for active pumping.  But AFAIK these designs have never made it to commercial scale.</p>
<p>A major lesson of Fukushima is clear: <strong>extremely unlikely disaster events are highly correlated with each other</strong>.  So safety systems should not have external dependencies.   I believe nuclear power has an important place in our path away from fossil fuels towards renewables, but to get there, we need safer designs.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2011/03/the-ironic-challenge-of-nuclear-power-safety-and-a-possible-solution.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Real-time Web Development in Python with Hookbox</title>
		<link>http://www.embracingchaos.com/2011/02/real-time-web-with-hookbox.html</link>
		<comments>http://www.embracingchaos.com/2011/02/real-time-web-with-hookbox.html#comments</comments>
		<pubDate>Tue, 15 Feb 2011 22:23:57 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Ego]]></category>
		<category><![CDATA[Geek]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1205</guid>
		<description><![CDATA[Tonight I&#8217;m giving a guest lecture for a class on web development in Python.  I&#8217;m talking about building real-time web sites using Hookbox.  It draws on my experience building the software version of the Groovik&#8217;s cube.  Here are the slides from the lecture:



Here are the slides from the talk.
I start out talking about the [...]]]></description>
			<content:encoded><![CDATA[<p>Tonight I&#8217;m giving a guest lecture for a class on web development in Python.  I&#8217;m talking about building real-time web sites using Hookbox.  It draws on my experience building the software version of the Groovik&#8217;s cube.  Here are the slides from the lecture:</p>
<div>
<iframe src="https://docs.google.com/present/view?id=dgq49z3n_224db7s3xfd&#038;revision=_latest&#038;start=0&#038;theme=plainjane&#038;authkey=COCjt_YG&#038;cwj=true" width="450" height="300"></iframe>
</div>
<p>Here are the <a href="https://docs.google.com/present/view?id=dgq49z3n_224db7s3xfd&amp;revision=_latest&amp;start=0&amp;theme=plainjane&amp;authkey=COCjt_YG&amp;cwj=true">slides</a> from the talk.</p>
<p>I start out talking about the need for keeping a web page up to date.  I talk about polling as a natural but expensive solution to this.  Then I talk about how COMET works, a.k.a. hanging GET or long polling.  Then I talk about the difficulties of building a COMET stack from scratch and why you shouldn&#8217;t.  Then I talk about moving to a higher level of abstraction with hookbox and what a publish/subscribe pattern is.  Then I build a demo app using hookbox for a simple web chat.  The source code for the web chat example is at <a href="https://github.com/leopd/hookbox-demo">https://github.com/leopd/hookbox-demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2011/02/real-time-web-with-hookbox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fighting buffer-bloat on DD-WRT</title>
		<link>http://www.embracingchaos.com/2011/01/fighting-buffer-bloat-on-dd-wrt.html</link>
		<comments>http://www.embracingchaos.com/2011/01/fighting-buffer-bloat-on-dd-wrt.html#comments</comments>
		<pubDate>Tue, 01 Feb 2011 02:59:41 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1152</guid>
		<description><![CDATA[Recently, 20th century software pioneer Jim Gettys has been doing a bang-up job raising awareness about performance problems with the internet known as &#8220;buffer-bloat.&#8221;   The details are technical and complex but the gist of it is that networking equipment is often buffering way too much data, resulting in unnecessarily long latencies.  High latencies (literally [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, 20th century software pioneer <a href="https://gettys.wordpress.com/">Jim Gettys</a> has been doing a bang-up job raising awareness about performance problems with the internet known as &#8220;<a href="https://gettys.wordpress.com/2010/12/03/introducing-the-criminal-mastermind-bufferbloat/">buffer-bloat</a>.&#8221;   The details are technical and complex but the gist of it is that networking equipment is often buffering way too much data, resulting in unnecessarily long latencies.  High latencies (literally delays) result in unpleasant experiences when using a network as things take a long time.  It&#8217;s important to recognize that even if your network&#8217;s bandwidth is extremely high, a long latency will make it feel very slow &#8212; the two measures of network speed are somewhat related, but mostly independent.</p>
<p>The simple way to counter buffer bloat is simply to reduce the size of the transmit buffer in each piece of your network gear.  Most linux systems default to a transmit buffer of 1,000 packets, each of which can be 1.5 kilobytes, meaning that 1.5 megabytes of data can get queued up waiting for a chance to go across the network.  Any application that is trying to move a lot of data through a clogged network will fill this buffer.  That&#8217;s fine for the buffer-filling application, but any other application will suffer.  So, for example, if you&#8217;re watching youtube and your roommate is trying to surf the net, your roommate&#8217;s web page requests will suffer very long latency, because their small web pages must get in this megabyte-long line along with your youtube video before they can be delivered.  If your DSL line runs at say 10 mbps, then it&#8217;ll take 1.2 seconds for that 1.5 MB buffer to work fit through your pipe.  Since it takes at least 2 round-trips to get a web page that means your roommate&#8217;s web page will take at least 2.4 seconds to show up, no matter how small it is!</p>
<p>Gettys <a href="https://gettys.wordpress.com/2010/12/03/introducing-the-criminal-mastermind-bufferbloat/">quotes Kleinrock</a> that the ideal size of a network buffer is (bandwidth) x (latency).  Say your bandwidth is 10 mbps.  Latency to any web page you&#8217;re likely to visit in the US should be less than 100ms, so let&#8217;s use that.  This puts your ideal buffer size 125k.  Buffer sizes are usually configured in terms of maximum number of packets.  Typically the maximum packet size (MTU) is 1500 bytes, resulting in the ideal theoretical buffer size of 83 packets for a typical fastish home network line.  Please redo these calculations yourself and experiment with how different numbers affect your system. (Be careful not to set your buffer size to zero as it could lock up the device&#8217;s network.)  Remember that linux (which is likely what your wifi router is running) defaults to 1,000 packets!</p>
<p><em>[Update shortly after posting: a <a href="http://nex-6.taht.net/">reader</a> suggested I try setting my buffer to be much smaller still.  So I went down to <strong>just 2 packets</strong>, and noticed that my ping times are much more reliable now when the network has more than one thing.  His caveat which I will echo is that this will mess with your system if your router is trying to do any kind of traffic shaping, i.e. QoS.  But otherwise protocols like TCP will keep everything running fine.]</em></p>
<p>If your home wifi access points are using <a href="http://www.dd-wrt.com/site/index">DD-WRT</a> as mine are, here&#8217;s how you set them to use a more sane buffer size:</p>
<p>1. Log in to your router&#8217;s admin web page.</p>
<p>2. Select the Administration tab and the Commands sub-tab</p>
<p>3. Type in the following commands into the box:</p>
<blockquote><p>ifconfig eth0 txqueuelen 2</p>
<p>ifconfig eth1 txqueuelen 2</p></blockquote>
<p>4. Click the &#8220;Save Startup&#8221; button at the bottom.</p>
<p>There &#8212; you&#8217;re done!  For alternate techniques to configure your dd-wrt router for this kind of thing, see the wiki page on <a href="http://www.dd-wrt.com/wiki/index.php/Startup_Scripts  ">Startup Scripts</a>.</p>
<p>I&#8217;m sharing this information because it took me a while to figure out.  This problem is not well documented.  I&#8217;m trying this out now on my house&#8217;s network now.  In some controlled tests it seems like it might be somewhat better.  But my tests have not been able to replicate the really horrible situations I&#8217;ve seen on our network which I suspect come from lots of simultaneous users.  So it&#8217;ll be a while before we know for sure if this was a good change.  To be clear, <strong>I don&#8217;t know if this advice is good or not.</strong> It could reduce your network&#8217;s maximum effective bandwidth, but hopefully it will do so by reducing the maximum latency, which is often a very good trade-off.  This advice is consistent with the advice Gettys offers in terms of optimizing buffer sizes, and make sense to me.  YMMV.  If you try it out, please leave a comment on whether or not it helps you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2011/01/fighting-buffer-bloat-on-dd-wrt.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to South Migrations</title>
		<link>http://www.embracingchaos.com/2010/12/introduction-to-south-migrations.html</link>
		<comments>http://www.embracingchaos.com/2010/12/introduction-to-south-migrations.html#comments</comments>
		<pubDate>Fri, 17 Dec 2010 03:27:35 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1134</guid>
		<description><![CDATA[Here&#8217;s the presentation I gave to the Django-Seattle group earlier this week.  (Full link here.)
It gives an introduction to South, which is the most popular database migration tool for Django.  If you&#8217;re using Django on any kind of mature project and you&#8217;re not using South, you should really take a look at this. [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the presentation I gave to the Django-Seattle group earlier this week.  (Full link <a href="https://docs.google.com/present/view?id=dgq49z3n_218nmrcbhk&#038;revision=_latest&#038;start=0&#038;theme=gradientwhite&#038;authkey=CJyguLED&#038;cwj=true">here</a>.)</p>
<p>It gives an introduction to South, which is the most popular database migration tool for Django.  If you&#8217;re using Django on any kind of mature project and you&#8217;re not using South, you should really take a look at this.  Without a framework like South you&#8217;re probably very scared of changing your model schema and making your life a whole lot harder than it needs to be.  Without further ado&#8230;</p>
<p><iframe src="https://docs.google.com/present/view?id=dgq49z3n_218nmrcbhk&#038;revision=_latest&#038;start=0&#038;theme=gradientwhite&#038;authkey=CJyguLED&#038;cwj=true" width="560px" height="500px"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/12/introduction-to-south-migrations.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m speaking at django-seattle tomorrow</title>
		<link>http://www.embracingchaos.com/2010/12/im-speaking-at-django-seattle-tomorrow.html</link>
		<comments>http://www.embracingchaos.com/2010/12/im-speaking-at-django-seattle-tomorrow.html#comments</comments>
		<pubDate>Mon, 13 Dec 2010 23:09:18 +0000</pubDate>
		<dc:creator>leodirac</dc:creator>
				<category><![CDATA[Geek]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Seattle]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://www.embracingchaos.com/?p=1130</guid>
		<description><![CDATA[Tomorrow night I&#8217;m giving a presentation to the django-seattle group.  If you&#8217;re interested in Django come join and meet like-minded folks.
When: Tue, Dec 14th 6:00pm &#8211; 7:30pm  (Meetings are on 2nd Tuesday of each month)
Where: Web Collective, 1402 3rd Avenue &#8211; Suite 925 &#8211; Seattle
(3rd and Union, 9th Floor, Vance Building, kitty corner to Benaroya [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow night I&#8217;m giving a presentation to the django-seattle group.  If you&#8217;re interested in <a href="http://www.djangoproject.com/">Django</a> come join and meet like-minded folks.</p>
<p><strong>When: </strong>Tue, Dec 14th 6:00pm &#8211; 7:30pm  (Meetings are on 2nd Tuesday of each month)</p>
<p><strong>Where: </strong>Web Collective, <a href="http://maps.google.com/maps?q=1402+4rd+ave&amp;ie=UTF8&amp;hq=&amp;hnear=1402+4th+Ave,+Seattle,+King,+Washington+98101&amp;gl=us&amp;ei=EacGTYOVGo3AsAPJp4ynBw&amp;oi=geocode_result&amp;ved=0CBQQ8gEwAA&amp;z=16">1402 3rd Avenue</a> &#8211; Suite 925 &#8211; Seattle</p>
<p>(3rd and Union, 9th Floor, Vance Building, kitty corner to Benaroya Hall)</p>
<p>Please try to be here *by 5:55pm*, since the doors lock and we have to let you in<br />
after 6.</p>
<p>My talk will be an introduction to <a href="http://south.aeracode.org/">South Migrations</a> in Django and how you can use them to change your database schema on the fly. <strong>You don&#8217;t have to be afraid of changing your models after you&#8217;ve started using them.</strong></p>
<p>I&#8217;m looking forwards to seeing everybody there!</p>
<p>Incidentally, if you&#8217;re consider rails for a new project, my post on whether <a href="http://www.embracingchaos.com/2010/05/choosing-a-web-framework-python-django-vs-ruby-on-rails.html">Django or Rails</a> is more popular has been getting a lot of interest lately.</p>
<p>Here&#8217;s the <a href="https://docs.google.com/present/edit?id=0AWdh6eB5WPBFZGdxNDl6M25fMjE4bm1yY2Joaw&amp;authkey=CJyguLED&amp;hl=en">preso</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.embracingchaos.com/2010/12/im-speaking-at-django-seattle-tomorrow.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>28</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>1</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>8</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>
	</channel>
</rss>

