<?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>Cuddletech</title>
	<atom:link href="http://cuddletech.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://cuddletech.com/blog</link>
	<description>The Blog of Ben Rockwood</description>
	<lastBuildDate>Tue, 30 Oct 2012 07:21:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>&#8220;DevOps Demystified&#8221; Tonight in SF</title>
		<link>http://cuddletech.com/blog/?p=789&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devops-demystified-tonight-in-sf</link>
		<comments>http://cuddletech.com/blog/?p=789#comments</comments>
		<pubDate>Tue, 30 Oct 2012 07:21:08 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=789</guid>
		<description><![CDATA[Tonight, at Joyent HQ, I&#8217;ll be re-delivering my LA DevOps talk &#8220;DevOps Demystified &#8211; An introduction to the ideas that are driving DevOps&#8221;.  Doors open at 6:30PM in our Joyent HQ on the 9th Floor of Embarcadero One in SF. If you want to come but there are now registration slots left&#8230; just come anyway.]]></description>
			<content:encoded><![CDATA[<p>Tonight, at Joyent HQ, I&#8217;ll be re-delivering my <a href="http://cuddletech.com/blog/?p=752">LA DevOps</a> talk <a href="http://www.joyent.com/company/events/devops-demystified-an-introduction-to-the-ideas-that-are-driving-devops">&#8220;DevOps Demystified &#8211; An introduction to the ideas that are driving DevOps&#8221;</a>.  Doors open at 6:30PM in our Joyent HQ on the 9th Floor of Embarcadero One in SF.</p>
<p>If you want to come but there are now registration slots left&#8230; just come anyway. <img src='http://cuddletech.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=789</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPXE: Now with Native Menus and SmartOS Support</title>
		<link>http://cuddletech.com/blog/?p=779&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ipxe-now-with-native-menus-and-smartos-support</link>
		<comments>http://cuddletech.com/blog/?p=779#comments</comments>
		<pubDate>Mon, 08 Oct 2012 08:36:24 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[SmartOS]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[SysAdmin]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=779</guid>
		<description><![CDATA[If you&#8217;ve never heard of iPXE, it is the official fork of gPXE, which was the ultimate result of the Etherboot Project of old.  Apparently there was a power struggle that caused the primary contributors to leave Etherboot/gPXE and they renamed gPXE to iPXE to distinguish.  Technically gPXE still exists, but for all intents and [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve never heard of <a href="http://ipxe.org/">iPXE</a>, it is the official fork of <a href="http://etherboot.org/wiki/start">gPXE</a>, which was the ultimate result of the Etherboot Project of old.  Apparently there was a power struggle that caused the primary contributors to leave Etherboot/gPXE and they renamed gPXE to iPXE to distinguish.  Technically gPXE still exists, but for all intents and purposes its a dead project.</p>
<p>If you are completely unfamiliar with both iPXE and gPXE let me summarize.  The industry standard way to network boot is via PXE.  A PXE client is burned into the ROM of your NIC, but because it has to fit in a tight space it is very dumb.  iPXE is an open source PXE client that is modern and very intelligent.  It can execute scripts, it can inspect the system interfaces and SMBIOS, it can download images and scripts via HTTP, FTP, NFS, and more, it has SAN support for booting off of AoE, FCoE, and iSCSI, etc.  It can be used in several ways, including burned into your NIC&#8217;s ROM as a replacement (uncommon), booted from USB/ISO/etc media, or most typically it is itself PXE booted such that your dumb PXE client in your NIC boots to iPXE and it then does all the heavy lifting.  If you are doing any type of network booting you should know what iPXE is and if you ever want to do anything fancy, iPXE is the way to do it.  One example many of us like to use is creating an iPXE script which calls out to a web app (PHP commonly) which looks up information from SMBIOS (such as serial number, service tag, MAC address, etc.) and interfaces with a database to make decisions on which image to boot.  You can do lots of fun things.  Most of your next-gen bare metal provisioning tools, such as <a href="https://github.com/puppetlabs/Razor/wiki">Razor</a>, rely on iPXE.</p>
<p>There are two really exciting things for me, just added in the last couple months.  The first and most basic is that SmartOS boots natively from iPXE.  In the past, primarily with OpenSolaris, you had to chainload PXEGRUB to boot Solaris, but it looks like some patches were accepted and now you can dump GRUB completely.</p>
<p>The other existing development is the addition of native menus in iPXE.  <a href="http://etherboot.org/wiki/appnoted">Historically</a>, if you wanted to create a versatile netboot server you would use iPXE/gPXE to  chainload SYSLINUX&#8217;s menu.c32 program which would render your boot selection menu and boot your selected OS.  But no more!  iPXE can do it all on its own now thanks to the addition of 3 commands to iPXE: <a href="http://ipxe.org/cmd/menu">menu, item, and choose</a>.  With these new commands and liberal use of &#8220;goto&#8221; labels you can create some extremely complex and powerful setups with no other helper programs in the way.</p>
<p>Lets take a look at a simple menu:</p>
<pre>#!gpxe

######## MAIN MENU ###################
:start
menu Welcome to iPXE's Boot Menu
item
item smartos    Boot SmartOS
item
item shell      Enter iPXE shell
item reboot     Reboot
item
item exit       Exit (boot local disk)
choose --default smartos --timeout 60000 target &amp;&amp; goto ${target}

## Utility menu items:
:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

########## MENU ITEMS #######################
:sdc
kernel /sdc/20121001T165806Z/platform/i86pc/kernel/amd64/unix -B hostname=r720test,standalone=true
initrd /sdc/20121001T165806Z/platform/i86pc/amd64/boot_archive
boot

:smartos
kernel /smartos/20121004T212912Z/platform/i86pc/kernel/amd64/unix
initrd /smartos/20121004T212912Z/platform/i86pc/amd64/boot_archive
boot</pre>
<p>You can see here that the &#8220;menu&#8221; command declares a menu with a title.  The elements are items with a label and description (you can assign hot keys as well) and an item with no value is an empty line, and you can use the &#8220;&#8211;gap &#8211;&#8221; argument to create section headers, in the form &#8220;item &#8211;gap &#8212; &#8212;&#8211;SmartOS&#8212;&#8212;-&#8221;.  Finally, the choose command puts your selection into a named variable and also allows you to specify a default selection and timeout specified in milliseconds.  Just about everything else is handled by the &#8220;goto&#8221; command and labels sprinkled throughout the script.  Most importantly, we use the value obtained by the choose command to &#8220;goto&#8221; the label with the commands to boot the given OS.  You can also have multiple menus, one which goes to the other and back, by being creative.</p>
<p>When you couple all this together, you get an iPXE that is more powerful than ever before and extremely exciting.</p>
<p>I&#8217;ve taken this opportunity to update the <a href="http://wiki.smartos.org/display/DOC/PXE+Booting+SmartOS">SmartOS Documentation for PXE booting</a>,  using iPXE directly as above is now the officially recommended way to netboot.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=779</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Writing a Better SOP</title>
		<link>http://cuddletech.com/blog/?p=776&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=writing-a-better-sop</link>
		<comments>http://cuddletech.com/blog/?p=776#comments</comments>
		<pubDate>Tue, 25 Sep 2012 10:03:56 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[SysAdmin]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=776</guid>
		<description><![CDATA[Within an ops team you should have 3 primary types of governance enablers: controls, policies and processes. A control is a guiding principle, which is implemented as a one or more policies (which are just rules), which are in turn standardized in a set of procedures. Its important to have all 3, because controls are [...]]]></description>
			<content:encoded><![CDATA[<p>Within an ops team you should have 3 primary types of governance enablers: controls, policies and processes.  A control is a guiding principle, which is implemented as a one or more policies (which are just rules), which are in turn standardized in a set of procedures.  Its important to have all 3, because controls are very vague, policies are often general and broad in nature, which means to provide consistent quality results we require prescriptive procedures.  At Joyent we call these &#8220;Standard Operating Procedures&#8221; (SOP).</p>
<p>The whole point of an SOP is to produce consistent results regardless of who&#8217;s using it.  That means that all SOP&#8217;s need to be in a similar, familiar, and easy to follow format that is suitable to anyone who may need to use it.  That, therefore, means that to get those consistent results there can be no room for ambiguity, it must be explicit and convey any necessary context along with it.  Ambiguity is the mortal enemy of consistency.  Case in point, if you&#8217;ve ever been asked to recompile software with a large number of configure flags, if your unable to determine which flags were used in the past you&#8217;ll go cold with anxiety over whether or not your building it properly.  When you go back and ask who it was built in the past someone might say &#8220;Don&#8217;t you know how to compile software?&#8221; and the answer is likely going to be &#8220;Yes I do, but I don&#8217;t know how YOU compile software.&#8221;  Whats important is that the person implementing a procedure be given all the information and context necessary to understand, and if necessary, interpret the information as appropriate for the given situation.</p>
<p>The first key to better SOP&#8217;s is to provide a template for others to follow.  Without a standard template each author will write the procedure in their own unique style.  Some people will write you a book, others will just paste some lines from their terminal into a code block.  The template therefore must enforce a certain flow that ensures we include all the needed information but in a concise and complete way.  Plus, we want SOP creators to focus entirely on writing the content, not debating the format.</p>
<p>Here is the template I use for Joyent Operations SOPs (in Confluence markup):</p>
<pre>
* Author:  {page-info:created-user}  created at: {page-info:created-date}
* Version: 1
* Revisions: {page-info:current-version}
* Reviewed by: (User @ date)
* Time to implement: 1hr
* Products this applies to: (SKU1)

{toc}

h1. Description &#038; Scope

h1. Prerequisites

* Root access to node
* [SOP-222: Something|SOP-222: Something]
* [SOP-224: Something else|SOP-224: Something else]

h1. Procedure

h3. Step 1: Do this

{noformat}
Example
{noformat}

h3. Step 2: Do that

h3. ...

h1. Procedure Validation

# Login and verify external connectivity (ping google.com)
# curl zone IP address, page returns
# etc.

h1. Notes/Jira Examples

* [http://confluence.atlassian.com/display/DOC/JIRA+Issues+Macro]
* [http://confluence.atlassian.com/display/DOC/JIRA+Portlet+Macro]
* [https://studio.plugins.atlassian.com/browse/CONFJIRA-154]
</pre>
<p>Lets step through the above template.</p>
<p>All SOPs must be numbered for easy reference.  Even the template itself is SOP-000.  The SOP title is in the form: &#8220;SOP-102 Creating LDAP Users&#8221;, for instance.</p>
<p>The top of the SOP is full of metadata.  The author, creation date, major version number and number of revisions made and products (or projects or whatever) that this SOP applies to.  You&#8217;ll notice 2 other fields: &#8220;Reviewed By&#8221; and &#8220;Time to implement&#8221;.  These are perhaps the most important of all.  After an SOP is created it must be reviewed by someone else in the group, preferably with as little knowledge of the subject as possible.  They should read and follow the SOP as written, starting a timer when the begin and stopping the timer when they are complete&#8230; it is that stopwatch time which becomes the &#8220;time to implement&#8221;.  This is extremely important, the time estimate for implementation by the author will be way too short because they know what they are doing, the time it takes a complete n00b will be more useful and truthful.</p>
<p>Moving on through the template, &#8220;Description and Scope&#8221; are where we provide context.  What are we talking about, what does it entail at a high level, what does this impact, etc.  We want to include as much information as possible to set the stage for the procedure that follows.  Then we include a bulleted list of &#8220;Prerequisites&#8221;.  The single most common part of any procedure that gets skimped on is the prerequisites and they are also generally the most time consuming.</p>
<p>The meat of the SOP is the procedure itself.  I strongly believe these must be in a &#8220;Step 1&#8230; Step 2&#8230; Step 3&#8243; format; it must be easy and intuitive to follow and in some cases may be used as a checklist during sensitive procedures.  Its important that these truly start at the beginning and go to the end.  &#8220;Step 1: Login to server X&#8221;  may be overly simplistic but necessary for clarity if multiple machines are involved.  I also like to have the final step be &#8220;Done&#8221; to make it clear that you have reached the end.</p>
<p>Just as important as the procedure is the &#8220;Validation Steps&#8221;&#8230; to ensure a quality job we must not only preform the proceedure but validate it in one or more ways to ensure it was really done right.  This has the added side effect of giving the person doing the work the satisfaction that it was done properly and they didn&#8217;t screw something up along the way.</p>
<p>Lastly is a place to include external links as appropriate.  If possible I like to link in tickets (we use Jira) which have relied on the SOP before, so that if by chance there is some confusion they can find examples of the work being done in the past.</p>
<p>An optional section that I&#8217;ve used before is a &#8220;Rationale&#8221;.  In this section you would include notes on why you chose to implement the procedure in the way that you did.  This allows for continuous improvement of the SOP.  In most cases there are many ways to solve a problem, conveying why you chose the method you did will help you hone the procedure in the future while learning from the past.  Without it your likely to have regression or duplication crop up.</p>
<p>This is the model that we&#8217;ve used at Joyent for several years and it has stood the test of time.  I believe it to be a very solid standard for writing SOP&#8217;s and sharing knowledge within the organization and avoiding any one single person becoming a constraint.  If you have refinements or a better method, I&#8217;d love to learn about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=776</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configuration Management on SmartOS</title>
		<link>http://cuddletech.com/blog/?p=772&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=configuration-management-on-smartos</link>
		<comments>http://cuddletech.com/blog/?p=772#comments</comments>
		<pubDate>Fri, 21 Sep 2012 18:36:03 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[SmartOS]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=772</guid>
		<description><![CDATA[Over the last couple days I added a bunch of SmartOS documentation on getting the major configuration management solutions working. Pointers for CFengine3 and Puppet are there with the basics on getting started. I added extensive documentation for Chef, suitable for even users entirely new to Chef. I&#8217;ve also populated a Github repo with cookbooks, [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple days I added a bunch of SmartOS documentation on getting the major configuration management solutions working.  Pointers for CFengine3 and Puppet are there with the basics on getting started.  I added extensive documentation for Chef, suitable for even users entirely new to Chef.  I&#8217;ve also populated a <a href="https://github.com/joyent/smartos_cookbooks">Github repo </a>with cookbooks, Knife bootstraps, and a full framework for using Chef Solo with SmartOS.</p>
<p>Go find all the docs in the SmartOS Wiki: <a href="http://wiki.smartos.org/display/DOC/Configuration+Management+on+SmartOS">Configuration Management on SmartOS</a>  </p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=772</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>A Return to Linux on the Workstation</title>
		<link>http://cuddletech.com/blog/?p=770&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-return-to-linux-on-the-workstation</link>
		<comments>http://cuddletech.com/blog/?p=770#comments</comments>
		<pubDate>Thu, 20 Sep 2012 08:31:15 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=770</guid>
		<description><![CDATA[In my day to day work I rely on two systems, a MacBook Pro and a custom built PC workstation. My Mac is used for all my travel needs and communications (email, Jabber, Skype, etc). All my &#8220;real work&#8221; is done on the workstation which I refresh to the latest and greatest every 3-4 years, [...]]]></description>
			<content:encoded><![CDATA[<p>In my day to day work I rely on two systems, a MacBook Pro and a custom built PC workstation.  My Mac is used for all my travel needs and communications (email, Jabber, Skype, etc).  All my &#8220;real work&#8221; is done on the workstation which I refresh to the latest and greatest every 3-4 years, run dual headed, etc.  Up until about 30 days ago my primary workstation ran some variety of Solaris for nearly 10 years, starting with Solaris 9 when X86 became viable on X86, then OpenSolaris and the various Solaris Express releases and finally Solaris 11 Beta.  It was one month ago today that I finally re-installed it with Ubuntu, returning me to Linux officially.  Times are a&#8217; changin&#8217;&#8230; so I thought I&#8217;d share the tale of my long experience and the events that brought me back to Linux on the desktop.</p>
<p>As I stated in a recent talk, and then was humored to see quoted on Twitter a couple times since, I never really intended to run a &#8220;Solaris Desktop&#8221;.  I didn&#8217;t want a desktop, rather I wanted a server on my desk.  Building a desktop operating system is really hard, it involves supporting all manner of new and strange hardware.  Its hard enough on desktop PCs but its absolutely redicuous when you consider all the variations of laptops.  On my workstation I always installed a standard Intel e1000g dual port NIC, a Sound Blaster 16 or 128, and a well supported NVidia graphics card.  So long as I could start an X server on dual displays and start Enlightenment, my window manager of choice, I was happy.  The only apps I rely on are a browser and several dozen Eterms&#8230; little else.  What was important to me was that I had a platform on my desk with which to experiment and prototype on Solaris for later implementation in the data center.</p>
<p>With the addition of ZFS, Solaris became an extremely powerful testing platform.  Several large disks in my workstation formed a Zpool on which everything but the base OS was installed.  The OS root itself was on a small 16GB SSD (it was bad ass once upon a time).  This allowed me to frequently do fresh installs of new releases of Solaris and OpenSolaris.  After install, I just imported the Zpool which put my home dir, /usr/local, /opt, etc back into place and I was running again.</p>
<p>What has always bugged me about Solaris is that the software packaging solutions have always been aweful.  For a long time we were limited to whatever shipped with Solaris or was available from Blastwave.  But Blastwave was little comfort because so frequently a single package install would have an absurd dependency on  some very foundational package therefore forcing an upgrade of everything, like it or not, which invariably would break something.  In my former Linux days I was fond of Linux from Scratch and latter became a fan of Gentoo, therefore my solution for Solaris was to hand build all my fundamental applications myself and then simply drag those binaries from release to release for a very long period of time.  While I appreciated having the latest and greatest Solaris on my desk, I certainly missed the ease of simply installing an RPM and being done.  The idea of trying the latest KDE was a seemingly insurmountable challenge and waste of time.</p>
<p>About 30 days ago two factors caused me to finally throw in the towel on Solaris as a workstation OS.</p>
<p>The first was that I finally joined the club of folks who have spilled liquid on their MacBooks.  After 3 years of faithful service my Mac was dead.  This happened on a Saturday and I suddenly realized that on Monday I&#8217;d be unable to join our corporate Jabber channels and I wouldn&#8217;t have Skype access.  Suddenly I became aware of how much I was relying on my MacBook for daily communication and that I was essentially going to be cut off.  Getting all these types of services working on my Solaris workstation was possible, but hardly seemed worth the effort and I only had a day to get back to full capability to be ready for Monday morning. </p>
<p>The second was that Solaris is dead.  Illumos is the future of the platform and the desktop options there are very weak.  All my work these days is on SmartOS, which is dedicated hypervisor platform, so there was no way I was going to whip it into a workstation platform in short order, not to mention that it&#8217;d be a fruitless exercise even if accomplished.  It was clear that having a server on my desk that also possessed the basics required for a passable X environment was at an end.  Besides that, thanks to KVM support in SmartOS it was becoming increasingly clear that I was completely out of touch with the Linux world which I was now supporting more frequently as a guest OS.  And, last but not least, Linux now has ZFS support, so I could theoretically install Linux, get ZFS supported added, and then import all my important filesystems.  It was time to return to a Linux workstation.</p>
<p>I&#8217;m getting older and lazier, so going back to the Gentoo lifestyle wasn&#8217;t interesting to me.  Ubuntu continues to be all the rage, so I decided Ubuntu 12.04 was the way to go.  And, I turned out to be right&#8230; within 4 hours of the MacBook toasting I had installed Ubuntu 12.04, gotten my displays working properly, installed all the software I needed, including Skype and Enlightenment, added ZFS support and mounted my home directory and was looking at my desktop environment as though nothing had happened.  It was a wonderful experience.</p>
<p>Getting ZFS Support working with Ubuntu is very simple.  Simply install the <a href="https://launchpad.net/~zfs-native/+archive/stable">ZFS for Linux PPA packages</a> and reboot.  The only mistake I made was that I initially had installed Ubuntu 32bit, thanks to my outdated Linux knowledge of compatibility issues running a 64bit kernel.  On the 32bit kernel ZFS took almost an hour to locate and import the pool&#8230; after I reinstalled Ubuntu 12.04 64bit and adding in the ZFS packages again, my Zpool imported just fine.  One thing that helped me here was that my pools are very old; in order to provide maximum flexibility in which OpenSolaris release I used, I never allowed my pools to be upgraded, therefore allowing me to run older OS releases if needed, therefore ZFS for Linux had no problems importing my old version pools.</p>
<p>After using ZFS on Linux for some time now I can say that it works very well but the performance is less than stellar.  The performance is good enough that I NFS export all my old file systems for use, but bad enough that I created a fresh home directory on ext4.</p>
<p>I did play with Unity a bit before switching back to Enlightenment DR16 (the best window manager ever created).  Unity is a really excellent desktop and a first rate contender against Windows 7/8 and even OS X&#8230; but ultimately I still prefer the speed and minimalism of an old school window manager.  The only thing that actually bugged me about Unity was the way they tried to be very clever about window titles&#8230; they sort of blur out from left to right.  While I realize its a nifty visual device, to me it looked like a theming mistake and I disliked windows with the title &#8220;Firef&#8230;&#8221;.</p>
<p>One thing that did surprise me about my return to Linux was how little the desktop applications had changed.  Finding that Pidgin was still the IM client of choice threw me for a loop.   I experimented with Empathy but had horrific stability issues, which is a shame because its a much nicer client than Pidgin.  Ultimately I found a theme mix that worked for me and settled on Pidgin was but was sad there weren&#8217;t more viable options (yes, there are alternatives, but they sucked more than Pidgin).  Getting Skype running easily was a pleasant surprise, no pain not problems and people I called told me it was the best I&#8217;d ever sounded on Skype.  The other various apps were less exciting than I had hoped, I was sad that Eye of Gnome hadn&#8217;t died a long time ago.  I think the two high points were realizing that I could use the Arduino IDE on my workstation and looking at Shotwell.  Shotwell is an amazing application, but its not enough to convince me to move all my photos out of iPhoto.</p>
<p>In the end, 3 days later I had been issued a replacement MacBook Pro which I got just as Mountain Lion released.  Thankfully installing Mountain Lion and then recovering from my TimeMachine backup went well and I was back to my normal workflows.  While I&#8217;m sad that, at least for me, the era of Solaris as a viable workstation had come to an end, I am glad at all the new life Illumos distros have as first class server OS&#8217;s.  I may not have the server on my desk any more but the era of the all-things-to-all-people OS is, imho, done.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=770</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>DevOps LA on Aug 27th</title>
		<link>http://cuddletech.com/blog/?p=752&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devops-la-on-sept-27th</link>
		<comments>http://cuddletech.com/blog/?p=752#comments</comments>
		<pubDate>Sat, 18 Aug 2012 19:32:49 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[OpsDad]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=752</guid>
		<description><![CDATA[I&#8217;ve been invited to speak at  DevOps LA on Monday, Aug 27th.  The title I&#8217;ve chosen is &#8220;The DevOps Transformation&#8221; but it will not be the talk I gave at LISA. Partly because I&#8217;ve already given that talk, and partly because I only have a 20-30 minute speaking slot.  I&#8217;ll be looking beyond those fundamental [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been invited to speak at  <a href="http://www.meetup.com/ladevops/events/78093472/">DevOps LA on Monday, Aug 27th</a>.  The title I&#8217;ve chosen is &#8220;The DevOps Transformation&#8221; but it will not be the <a href="https://www.youtube.com/watch?v=3KpPBnEtRj4">talk I gave at LISA.</a> Partly because I&#8217;ve already given that talk, and partly because I only have a 20-30 minute speaking slot.  I&#8217;ll be looking beyond those fundamental principles and considering some new material, including work flow, routing, and conversion with the LEAN world at large.  I will <em>not</em> discuss ITSM at length again. <img src='http://cuddletech.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I&#8217;ve also decided this is an amazing opportunity for me as an OpsDad&#8230; given that its a 24 hour trip for me (OAK to LAX is 1.5hrs flight time) I&#8217;ll be bringing my two eldest children (Nova 8yrs &amp; Glenn 7yrs) along.  As professionals its not often we can bring our children with us on a &#8220;business trip&#8221;, so I&#8217;m looking forward to giving them a really kool adventure.  I strongly encourage all OpsDad&#8217;s included their kids whenever you have the ability to do so.</p>
<p><em><strong>UPDATE: </strong></em> The event went great, thanks to everyone who attended.  For those wanting the slides, here is the deck: <a href="http://cuddletech.com/slides/DevOps-Demystified.pdf">DevOps Demystified</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=752</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BayLISA Comes to Joyent: A Night of SmartOS</title>
		<link>http://cuddletech.com/blog/?p=743&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=baylisa-comes-to-joyent-a-night-of-smartos</link>
		<comments>http://cuddletech.com/blog/?p=743#comments</comments>
		<pubDate>Mon, 13 Aug 2012 17:59:18 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[SmartOS]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=743</guid>
		<description><![CDATA[This Thursday night, Aug 16th at 7:30PM in Joyent&#8217;s HQ (9th Floor, Embarcadero One) Joyent will be hosting BayLISA for an evening of SmartOS.  I&#8217;ll be filling in for Ryan Nelson, talking for 20 mins about the practical issues of SmartOS deployment.  This is an excellent opportunity for any Solaris or SmartOS fans in the [...]]]></description>
			<content:encoded><![CDATA[<p>This Thursday night, Aug 16th at 7:30PM in Joyent&#8217;s HQ (9th Floor, Embarcadero One) Joyent will be hosting <a href="http://smartos.org/2012/08/06/join-baylisa-at-joyent-for-an-evening-about-smartos/">BayLISA for an evening of SmartOS</a>.  I&#8217;ll be filling in for Ryan Nelson, talking for 20 mins about the practical issues of SmartOS deployment.  This is an excellent opportunity for any Solaris or SmartOS fans in the Bay Area to come an meet some amazing engineers and learn more about the future of the platform.</p>
<p><a href="http://www.meetup.com/BayLISA/events/42780152/">Register here. </a> (If I know Joyent, beer will be provided!)  Come over and say hello!</p>
<p>UPDATE:  You can <a href="http://www.ustream.tv/recorded/24760611">view the whole event on Ustream</a>!  My talk starts at 40m in.  You can also <a href="http://cuddletech.com/slides/SmartOS-SA-Intro.pdf">download the slides</a>.</p>
<p><iframe width="480" height="296" src="http://www.ustream.tv/embed/recorded/24760611?wmode=direct" scrolling="no" frameborder="0" style="border: 0px none transparent;">    </iframe><br />
<br /><a href="http://www.ustream.tv/" style="padding: 2px 0px 4px; width: 400px; background: #ffffff; display: block; color: #000000; font-weight: normal; font-size: 10px; text-decoration: underline; text-align: center;" target="_blank">Video streaming by Ustream</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=743</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Back to Blogging</title>
		<link>http://cuddletech.com/blog/?p=738&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=back-to-blogging</link>
		<comments>http://cuddletech.com/blog/?p=738#comments</comments>
		<pubDate>Wed, 18 Jul 2012 07:28:01 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=738</guid>
		<description><![CDATA[My blog has certainly suffered a slow down in the last 2 years&#8230; I thought I&#8217;d provide a little insight as to why, give you a little insight into where I&#8217;m at these days, and ask for your suggestions on the future. Once upon a time, my blog was a predominately Solaris blog.  In fact [...]]]></description>
			<content:encoded><![CDATA[<p>My blog has certainly suffered a slow down in the last 2 years&#8230; I thought I&#8217;d provide a little insight as to why, give you a little insight into where I&#8217;m at these days, and ask for your suggestions on the future.</p>
<p>Once upon a time, my blog was a predominately Solaris blog.  In fact it became over time the most read Solaris blog.  Thanks to Google it actually still is, because I have verify few active readers, the vast majority come to the blog via some Google search for this problem or that and find what they are looking for.  As a result, many people don&#8217;t even realize I stopped blogging about Solaris some time ago, which I find a bit funny.  At Velocity this year several people came up to me and thanked me for the blog, whom I then would ask &#8220;Does it bother you that I&#8217;m talking about DevOps now instead of Solaris?&#8221;  Each of them gave me a blank look and said &#8220;You stopped blogging about Solaris?&#8221; <img src='http://cuddletech.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I stopped writing about Solaris for several reasons.  The first was that I&#8217;d covered so much ground that I would start to write about something and realize I&#8217;d already done so a year before.  Another was that some of the things I wanted to write about where simply too large or complex for a blog, but not quite enough for a book.  Yet another is that sometimes, as a writer, you can start to take yourself too seriously and give too much thought to critics and thus feel that many things you want to write about are &#8220;too basic&#8221; or &#8220;too dumb&#8221; to write about.</p>
<p>Another big reason was of course Oracle taking over Sun and there being a very unclear future for the community at large.  The Illumos project brought OpenSolaris back to life, but given that so many people in the Solaris community are from the enterprise space (directly or indirectly) it was unclear whether Illumos would truly provide an alternative to Oracle Solaris.  And besides that, I had become far too involved in Sun and OpenSolaris internal politics and governance and other non technical crap which I feared becoming involved with again under Illumos&#8230; thankfully the Illumos community actively stamped out any of the old politics before it took root again, but I was happy to provide a wide birth while it sorted out.</p>
<p>Yet another reason was that for a long long time I&#8217;ve wanted to change formats.  For at least 6 years now I&#8217;ve wanted to move from &#8220;blogging&#8221; to producing screen casts.  For many topics there is only so much you can digest from a written entry, at some point its easier to just show you.  I&#8217;ve started down that road many times but never gotten it off the ground.  Maybe one day it will.</p>
<p>However the largest reason was that about the time OpenSolaris imploded I was pretty well burned out on the whole thing anyway.  Using Solaris was far less a challenge than managing and operating a large environment.  I became obsessed with the question &#8220;How do you run a cloud?&#8221;  That&#8217;s the question that drove me into learning all sorts of strange things.  I blogged about some of them in the last 2 years, but held back quite a bit because it was unusual fare for my Solaris audience.  I could write about Deming and Ackoff and Ford and Ohno all day long&#8230; but who would want to read it?  Lucky for me, DevOps came along about the same time and a community of like minded individuals formed around these same ideas.   I&#8217;ve been thankful for that community and how its brought so many of us together who were each on our own individual journeys.</p>
<p>And so, there are my excuses for being a bad blogger&#8230; not that I actually consider myself a blogger in the first place.  I just like to help people and this is the best vehicle to do so.</p>
<p>Now for how you can help.  What would you like me write about?  Should I go back to writing about Solaris features?  Should I write about all the new Solaris variants (SmartOS, OmniOS, etc)?  Should I write more DevOps nuggets?  Are there &#8220;old&#8221; topics that still should be discussed that no one is talking about anymore?  At the end of the day, I still fundamentally believe in SA&#8217;s helping SA&#8217;s.  How can this SA help you?  Its time for me to get back in the game.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=738</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>Konsidering Kanban</title>
		<link>http://cuddletech.com/blog/?p=723&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=konsidering-kanban</link>
		<comments>http://cuddletech.com/blog/?p=723#comments</comments>
		<pubDate>Mon, 04 Jun 2012 10:18:47 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=723</guid>
		<description><![CDATA[Kanban has become an increasingly popular &#8220;agile&#8221; technique which is consider as similar to Scrum and Extreme Programming.  David Anderson created the agile form of Kanban from his experience in Japan.  In his book he tells the story of his visit to the Imperial Palace Gardens where there is no admission cost, but the flow [...]]]></description>
			<content:encoded><![CDATA[<p>Kanban has become an increasingly popular &#8220;agile&#8221; technique which is consider as similar to Scrum and Extreme Programming.  David Anderson created the agile form of Kanban from his experience in Japan.  In his book he tells the story of his visit to the Imperial Palace Gardens where there is no admission cost, but the flow of visitors is constrained by a stack of kanban (cards), people can enter until the kanban are exhausted, then as people leave and return the kanban someone new may enter.  From his experience he translated the technique into project management as a way to visualize and thus constrain the flow of work in progress (WIP).</p>
<p>WIP is the hidden killer of productivity among what Peter Drucker calls &#8220;knowledge workers&#8221;, most of us know this phenomenon as &#8220;multi-tasking&#8221;.  Multi-tasking is an illusion that a person is doing more than one thing at a time, however in reality most of the time you are in fact context-switching back and forth between multiple tasks very quickly and thus not fully engaged in either.  In some cases the consequences of multi-tasking are trivial, such as driving and talking on the phone, you are dividing your mental attention between both the conversation and your driving, but this is generally acceptable.  However, even in this common case, should either the driving situation or the conversation become serious, the facade of multi-tasking will reveal itself for the lie that it is; your attention can only be truly devoted to one thing at a time.  Think of a time you got into a serious discussion while driving&#8230; how much of the drive do you actually remember?</p>
<p>Anderson&#8217;s adaptation of kanban involves creating a card board by drawing rows and columns into which index cards or post-it notes can be placed.  Each kanban (card) represents work (a discrete task).  The rows  (swimlanes) are workers (a person, a team).  The columns are steps in the value chain representing state and have a work limit associated which limits how many cards may be in any given state at a given time.</p>
<p><img class="alignnone" title="Simple Kanban Board" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Simple-kanban-board-.jpg/320px-Simple-kanban-board-.jpg" alt="" width="320" height="169" /></p>
<p>In its most simplistic form, as shown above, there are 2 advantages gained: visualization and constraint of WIP.  Anyone can easily see how much there is to do, how much as been completed, and whats in progress, but most importantly we enforce our per-determined WIP limit.</p>
<p>Indeed truly constraining WIP is the strength of this system.  Any manager could create a &#8220;no multitasking&#8221; policy, but without visualizing the flow of work there is no way to enforce it.</p>
<p>But you probably already know all this, if your reading this, there are lots of &#8220;intro to kanban&#8221; blog posts and videos out there.  What few people know is what kanban is in a LEAN context&#8230; where it really came from and is intended to do.</p>
<p>Kanban was created by Taiichi Ohno as the primary signaling mechanism of the Toyota Production System (TPS) which enables &#8220;Just-In-Time (JIT) manufacturing&#8221;.  JIT is the evolution of Henry Ford&#8217;s &#8220;mass production&#8221; in which work was done in large batches and produced a lot of excess goods, aka waste.  The Toyota Production Systems foundational principles is on the reduction and elimination of waste (&#8220;muda&#8221;) so they decided to only build what they need when they needed it.. obviously there must be a buffer of finished goods inventory (cars waiting on a dealers lot to be sold), but they would keep that amount as low as possible.  So now, let me explain kanban again, but this time in the manufacturing (TPS or LEAN) context:</p>
<p>Kanban is Japanese for card.  At the assembly line sits a worker who puts the break assembly on the car.  The worker has a number of  &#8220;kits&#8221;, a plastic container which includes all the needed parts to build one break assembly.  The kits have kanban attached to them, so when she picks up a kit, she takes out the kanban and puts it into a tray and then builds the assembly.  Every hour a boy comes around and collects all the &#8220;used&#8221; kanban from the trays and goes to the parts dept.  The parts dept then refills the trays, attaches kanban to them, and sends them back to the assembly line.  So we&#8217;re effectively controlling and signalling the flow of goods in this closed loop. Here is an example of a <em>real</em> kanban:</p>
<p><img class="alignnone" title="Kanban" src="http://cuddletech.com/img/kanbancard.jpg" alt="" width="400" height="177" /></p>
<p>&nbsp;</p>
<p>But here is the really really important part&#8230; the kits are assembled from supplies of parts which have their own kanban, which control their flow.  So when a box of Part B is pulled from inventory to create a kit, that kanban signals the ordering of that part from the supplier.  The result is that instead of buying 200 of Part B every week because it matches our production schedule, we only order as many of Part B as we have kanban signaling us to do so.  At a Toyota plant, they don&#8217;t receive parts every week, they receive them every couple hours!  Kanban proliferated throughout Japan because when your using it for JIT, it requires that your suppliers do so as well to keep up with your speed&#8230; and their suppliers as well.  Here is a pallet of parts, look for the kanban attached:</p>
<p><img class="alignnone" title="Kanban Pallet" src="http://cuddletech.com/img/kanban1.jpg" alt="" width="380" height="264" /></p>
<p>So Just-In-Time manufacturing, with signaling from kanban, pulls along the entire supply chain from the final assembly line.  If you aren&#8217;t using the parts, they never get ordered&#8230; no mistakes.</p>
<p>Lets look at how this put Japan on top of the car industry in the 1970&#8242;s.  In 1973 there was an oil crisis, oil prices soared out of control.  People stopped buying cars.  The American mass production systems continued to build cars, which, thanks to &#8220;planned obsolesces&#8221; (new cars each year), caused a lot of those cars to go straight into scrap heaps.  American car makers suffered terrible losses all because the push based mass production system depends entirely on accurate forecasting, if its off you makes to few or, in the 1970&#8242;s, way too many.  Toyota, however, stopped making cars because people stopped buying cars&#8230; and because the supply chain only moves based on the speed of the final assembly line, it stopped too.  Toyota took losses on the small amount of inventory it had in the market, but didn&#8217;t continue to spit out cars until they were sold.  JIT saves the day thanks to kanban!</p>
<p>&nbsp;</p>
<p>Both David Anderson&#8217;s Kanban and LEAN&#8217;s Kanban use cards, but I hope you can now see that the goals are very different.  In another blog post I&#8217;ll go into more detail on how we can apply LEAN principles to get the most out of your agile implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=723</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Policy &amp; Process in the Blood</title>
		<link>http://cuddletech.com/blog/?p=652&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=policy-process-in-the-blood</link>
		<comments>http://cuddletech.com/blog/?p=652#comments</comments>
		<pubDate>Sat, 14 Apr 2012 07:52:45 +0000</pubDate>
		<dc:creator>benr</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Management]]></category>

		<guid isPermaLink="false">http://cuddletech.com/blog/?p=652</guid>
		<description><![CDATA[I&#8217;m highly introspective&#8230; far more than I would actually like to be.  I&#8217;m one of those strange individuals to whom if you said &#8220;Do you realize your being a jerk right now?&#8221; I&#8217;d actually admit &#8220;Yes, I&#8217;m sorry about that, I&#8217;m trying to find a way to rectify it unsuccessfully.&#8221; Despite that obsessive level of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m highly introspective&#8230; far more than I would actually like to be.  I&#8217;m one of those strange individuals to whom if you said &#8220;Do you realize your being a jerk right now?&#8221; I&#8217;d actually admit &#8220;Yes, I&#8217;m sorry about that, I&#8217;m trying to find a way to rectify it unsuccessfully.&#8221;</p>
<p>Despite that obsessive level of awareness, nothing can tell you more about who you are then your children.  In particular, by observing things your children do that you never taught them, they just started doing of their own accord because &#8220;it seemed right&#8221;.  Genetics at work.</p>
<p>I fight frequently with people about documenting processes.  But maybe I&#8217;m just anal?  Then the other day my son comes to me and shows me this:</p>
<p><img class="aligncenter" title="Refreshment Process" src="http://cuddletech.com/img/Refreshment-Process.jpg " alt="" width="400" height="536" /></p>
<p>This is Glenn, my eldest son (6 years old).  He wanted some lemonade, but mom and I were busy.  He decided it might help if he simplified his request into a process.  You can see here that we start with a bottle of lemonade, then we pour it into a glass, then WHAMO!  we have our amazingly refreshing beverage to enjoy.  It is the perfect process with an input, output, and processing in the middle.  Brilliant, and he hasn&#8217;t even been to business school yet.  How much simpler does process get?</p>
<p>What about policy?  Policy is just a business word for &#8220;rules&#8221;, nothing more.  In my opinion, the worlds most amazing and effective policy is this one:</p>
<p><img class="aligncenter" title="2 Lane Road" src="http://www.cuddletech.com/img/road.jpg" /></p>
<p>That yellow line is policy.  Its not a brick wall, but we treat it like one.  Thanks to that little bit of paint two cars can drive towards each other at 70 MPH, passing with only 6 ft between them, without fear.  It doesn&#8217;t get simpler or more powerful than that.</p>
<p>Parents and authority figures in general, tend to layer into a child the concept of right and wrong as absolutes.  Take the cookie and you shall be punished, so don&#8217;t take the cookie!  All throughout our culture we do this, define a rules and corresponding punishments.  The result is a general fear of rules, because they are seemingly there for the sole purpose of justifying punishment.  </p>
<p>Any rule, any law, any policy, can be viewed as a guide or as a guillotine.  When I asked many of my peers what they thought about policy a surprising number quickly answered &#8220;Its there so that you can fire people.&#8221;  Its shocking how many people believe that.  One would think that policy is there to enforce lessons learned in the past, as a guide for decision making, pre-computed solutions to problems which might be difficult to conflicting.  So then why is it that they are considered simply a justification for punishment?  Inconsistency of course&#8230; everyone seems to ignore, discount, or outright disregard policy on a day-to-day basis and it only comes to peoples attention when someone is being called out.</p>
<p>Policy and process are wonderful things.  At least, they can be.  They are the means by which we share knowledge within an organization.  Common tasks, problems, and dilemmas can be quickly handled in a tried and true way, consistent throughout the organization, because we have policy and process.  But in order for them to work, there are some ground rules, if you don&#8217;t follow them they are doomed to be the millstones of frustration most of us see them as:</p>
<ul>
<li> They need to be simple and straight-forward for the average employee.
<li> They need to be indexed, so that they can be easily found.
<li> They need to be relevant to the business, not just copied from someone else.
<li> They need to be consistent, so that they do not contradict each other.
<li> They need to be helpful and solve real problems.
<li> They need to be up to date.  Old policy and process can be worse than none at all, because people are afraid of the reliability and may waste time debating a course of action, which is exactly what process and policy should speed up.
</ul>
<p>The last point is the hardest.  Knowledge management is still something we&#8217;re shitty at.  Wiki&#8217;s have helped a lot over the last decade by making everything searchable and empowering everyone to update documents quickly and easily.  But the fundamental problem is that of scaling.  Not scaling the infrastructure but of the human mind.  Many a sci-fi story has depicted the person who desire to know everything, and when the wish was granted, their head promptly exploded in one way or another.  In many large companies when you hire on you&#8217;ll receive a book or binder with all the company policies&#8230; did you read it?  Of course not: tl:dr.</p>
<p>Thus, what we&#8217;re really talking about here is culture.  Genetics.  Your children get them from you in the blood, but in a company we must teach them to others through words and actions.  Preferably when employees are new, through on the job training/mentoring/tasking.  Will you ignore policy and process?  If you don&#8217;t care, they are likely useless crap anyways, and everyone can fend for themselves and hopefully get it right.  But what if instead they were useful, and they were a reference available to simplify life?  You don&#8217;t read the dictionary, but you know that its there and handy when you need it&#8230; so should be process and policy.    </p>
<p>I feel passionate about these things because I hate to see employees stressed out because they aren&#8217;t sure what to do or how to do something.  Useless anxiety.  Wasted energy.  Muda.  I see managers beat on their people for not knowing&#8230; but who&#8217;s fault is it really?  There are hard problems in the world, lets focus the energy on new problems and codify what we&#8217;ve learned in the past for everyone to benefit from.  This is the nature of continuous improvement&#8230; building a collective body of corporate knowledge and continuously expanding, refining, and even replacing it when appropriate.</p>
]]></content:encoded>
			<wfw:commentRss>http://cuddletech.com/blog/?feed=rss2&#038;p=652</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
