<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Richard WM Jones</title>
	<atom:link href="http://rwmj.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rwmj.wordpress.com</link>
	<description>Virtualization, tools and tips</description>
	<lastBuildDate>Thu, 26 Jan 2012 09:52:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='rwmj.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Richard WM Jones</title>
		<link>http://rwmj.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://rwmj.wordpress.com/osd.xml" title="Richard WM Jones" />
	<atom:link rel='hub' href='http://rwmj.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Red Hat speakers at FOSDEM 2012</title>
		<link>http://rwmj.wordpress.com/2012/01/26/red-hat-speakers-at-fosdem-2012/</link>
		<comments>http://rwmj.wordpress.com/2012/01/26/red-hat-speakers-at-fosdem-2012/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 09:52:55 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fosdem]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3760</guid>
		<description><![CDATA[In just over 1 week, FOSDEM 2012 is being held in Brussels. This flyer (PDF) is a handy guide to the Red Hat folk who will be giving talks there. (Thanks Máirín Duffy).<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3760&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In just over 1 week, <a href="http://fosdem.org/2012/">FOSDEM 2012</a> is being held in Brussels.  <a href="http://people.redhat.com/duffy/fosdem/redhat-fosdem_2012.pdf">This flyer (PDF)</a> is a handy guide to the Red Hat folk who will be giving talks there.  (Thanks <a href="https://mairin.wordpress.com/">Máirín Duffy</a>).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3760/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3760/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3760/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3760&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/26/red-hat-speakers-at-fosdem-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>libguestfs RHEL 6.3 new preview packages available</title>
		<link>http://rwmj.wordpress.com/2012/01/25/libguestfs-rhel-6-3-new-preview-packages-available/</link>
		<comments>http://rwmj.wordpress.com/2012/01/25/libguestfs-rhel-6-3-new-preview-packages-available/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 17:53:42 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3758</guid>
		<description><![CDATA[Here: http://people.redhat.com/~rjones/libguestfs-RHEL-6.3-preview/ These are based on libguestfs 1.16.1.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3758&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here:</p>
<p><a href="http://people.redhat.com/~rjones/libguestfs-RHEL-6.3-preview/">http://people.redhat.com/~rjones/libguestfs-RHEL-6.3-preview/</a></p>
<p>These are based on libguestfs 1.16.1.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3758/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3758/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3758/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3758&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/25/libguestfs-rhel-6-3-new-preview-packages-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Calling libguestfs from Javascript</title>
		<link>http://rwmj.wordpress.com/2012/01/25/calling-libguestfs-from-javascript/</link>
		<comments>http://rwmj.wordpress.com/2012/01/25/calling-libguestfs-from-javascript/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 10:40:24 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gjs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3754</guid>
		<description><![CDATA[In libguestfs 1.16 we added experimental GObject bindings and support for GObject Introspection. These are experimental because we may change them a little in future. They do allow you to access libguestfs from Javascript, specifically from gjs. Here is an &#8230; <a href="http://rwmj.wordpress.com/2012/01/25/calling-libguestfs-from-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3754&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://libguestfs.org/">libguestfs 1.16</a> we added experimental GObject bindings and support for GObject Introspection.  These are experimental because we may change them a little in future.  They do allow you to access libguestfs from Javascript, specifically from <a href="https://live.gnome.org/Gjs">gjs</a>.</p>
<p>Here is an example program (fixed and updated):</p>
<pre>
<b><font color="#0000FF">const</font></b> Guestfs <font color="#990000">=</font> imports<font color="#990000">.</font>gi<font color="#990000">.</font>Guestfs<font color="#990000">;</font>

<b><font color="#0000FF">function</font></b> <b><font color="#000000">inspect</font></b> <font color="#990000">(</font>filename<font color="#990000">)</font>
<font color="#FF0000">{</font>
    <b><font color="#0000FF">var</font></b> g <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> Guestfs<font color="#990000">.</font><b><font color="#000000">Session</font></b> <font color="#990000">();</font>

    <i><font color="#9A1900">//g.set_trace (true);</font></i>

    <b><font color="#0000FF">var</font></b> optargs <font color="#990000">=</font> <b><font color="#0000FF">new</font></b> Guestfs<font color="#990000">.</font><b><font color="#000000">AddDriveOpts</font></b> <font color="#990000">(</font><font color="#FF0000">{</font>readonly<font color="#990000">:</font> <b><font color="#0000FF">true</font></b><font color="#FF0000">}</font><font color="#990000">);</font>
    g<font color="#990000">.</font><b><font color="#000000">add_drive_opts</font></b> <font color="#990000">(</font>filename<font color="#990000">,</font> optargs<font color="#990000">);</font>

    g<font color="#990000">.</font><b><font color="#000000">launch</font></b> <font color="#990000">();</font>

    <b><font color="#0000FF">var</font></b> roots <font color="#990000">=</font> g<font color="#990000">.</font><b><font color="#000000">inspect_os</font></b> <font color="#990000">()</font>
    <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>roots<font color="#990000">.</font>length <font color="#990000">==</font> <font color="#993399">0</font><font color="#990000">)</font>
        <b><font color="#000000">printerr</font></b> <font color="#990000">(</font><font color="#FF0000">"inspection: no operating systems found in"</font><font color="#990000">,</font> filename<font color="#990000">);</font>
    <b><font color="#0000FF">else</font></b> <font color="#FF0000">{</font>
        <b><font color="#0000FF">for</font></b> <font color="#990000">(</font><b><font color="#0000FF">var</font></b> i <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> roots<font color="#990000">.</font>length<font color="#990000">;</font> <font color="#990000">++</font>i<font color="#990000">)</font> <font color="#FF0000">{</font>
            <b><font color="#000000">inspect_root</font></b> <font color="#990000">(</font>g<font color="#990000">,</font> roots<font color="#990000">[</font>i<font color="#990000">]);</font>
        <font color="#FF0000">}</font>
    <font color="#FF0000">}</font>
<font color="#FF0000">}</font>

<b><font color="#0000FF">function</font></b> <b><font color="#000000">inspect_root</font></b> <font color="#990000">(</font>g<font color="#990000">,</font> root<font color="#990000">)</font>
<font color="#FF0000">{</font>
    <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"inspecting operating system root"</font><font color="#990000">,</font> root<font color="#990000">);</font>

    <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"  product name:"</font><font color="#990000">,</font> g<font color="#990000">.</font><b><font color="#000000">inspect_get_product_name</font></b> <font color="#990000">(</font>root<font color="#990000">));</font>
    <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"  version:"</font><font color="#990000">,</font>
           g<font color="#990000">.</font><b><font color="#000000">inspect_get_major_version</font></b> <font color="#990000">(</font>root<font color="#990000">),</font>
           g<font color="#990000">.</font><b><font color="#000000">inspect_get_minor_version</font></b> <font color="#990000">(</font>root<font color="#990000">));</font>
    <i><font color="#9A1900">//print ("  type:", g.inspect_get_type (root));</font></i>
    <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"  distro:"</font><font color="#990000">,</font> g<font color="#990000">.</font><b><font color="#000000">inspect_get_distro</font></b> <font color="#990000">(</font>root<font color="#990000">));</font>

    <i><font color="#9A1900">// Mount up the disks like guestfish -i</font></i>
    <b><font color="#0000FF">var</font></b> mps <font color="#990000">=</font> g<font color="#990000">.</font><b><font color="#000000">inspect_get_mountpoints</font></b> <font color="#990000">(</font>root<font color="#990000">);</font>
    <b><font color="#0000FF">var</font></b> keys <font color="#990000">=</font> <font color="#990000">[];</font>
    <b><font color="#0000FF">for</font></b> <font color="#990000">(</font><b><font color="#0000FF">var</font></b> key <b><font color="#0000FF">in</font></b> mps<font color="#990000">)</font> <font color="#FF0000">{</font> keys<font color="#990000">.</font><b><font color="#000000">push</font></b> <font color="#990000">(</font>key<font color="#990000">);</font> <font color="#FF0000">}</font>
    <b><font color="#0000FF">function</font></b> <b><font color="#000000">compare</font></b> <font color="#990000">(</font>a<font color="#990000">,</font> b<font color="#990000">)</font> <font color="#FF0000">{</font>
        <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>a<font color="#990000">.</font>length <font color="#990000">&gt;</font> b<font color="#990000">.</font>length<font color="#990000">)</font> <b><font color="#0000FF">return</font></b> <font color="#993399">1</font><font color="#990000">;</font>
        <b><font color="#0000FF">else</font></b> <b><font color="#0000FF">if</font></b> <font color="#990000">(</font>a<font color="#990000">.</font>length <font color="#990000">==</font> b<font color="#990000">.</font>length<font color="#990000">)</font> <b><font color="#0000FF">return</font></b> <font color="#993399">0</font><font color="#990000">;</font>
        <b><font color="#0000FF">else</font></b> <b><font color="#0000FF">return</font></b> <font color="#990000">-</font><font color="#993399">1</font><font color="#990000">;</font>
    <font color="#FF0000">}</font>
    keys<font color="#990000">.</font><b><font color="#000000">sort</font></b> <font color="#990000">(</font>compare<font color="#990000">);</font>

    <b><font color="#0000FF">for</font></b> <font color="#990000">(</font><b><font color="#0000FF">var</font></b> i <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> keys<font color="#990000">.</font>length<font color="#990000">;</font> <font color="#990000">++</font>i<font color="#990000">)</font> <font color="#FF0000">{</font>
        g<font color="#990000">.</font><b><font color="#000000">mount_ro</font></b> <font color="#990000">(</font>mps<font color="#990000">[</font>keys<font color="#990000">[</font>i<font color="#990000">]],</font> keys<font color="#990000">[</font>i<font color="#990000">]);</font>
    <font color="#FF0000">}</font>

    <i><font color="#9A1900">// Get the list of applications.</font></i>
    <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"  applications:"</font><font color="#990000">);</font>
    apps <font color="#990000">=</font> g<font color="#990000">.</font><b><font color="#000000">inspect_list_applications</font></b> <font color="#990000">(</font>root<font color="#990000">);</font>
    <b><font color="#0000FF">for</font></b> <font color="#990000">(</font><b><font color="#0000FF">var</font></b> i <font color="#990000">=</font> <font color="#993399">0</font><font color="#990000">;</font> i <font color="#990000">&lt;</font> apps<font color="#990000">.</font>length<font color="#990000">;</font> <font color="#990000">++</font>i<font color="#990000">)</font> <font color="#FF0000">{</font>
        <b><font color="#000000">print</font></b> <font color="#990000">(</font><font color="#FF0000">"    "</font><font color="#990000">,</font> apps<font color="#990000">[</font>i<font color="#990000">].</font>app_name<font color="#990000">,</font>
               apps<font color="#990000">[</font>i<font color="#990000">].</font>app_version<font color="#990000">,</font> apps<font color="#990000">[</font>i<font color="#990000">].</font>app_release<font color="#990000">);</font>
    <font color="#FF0000">}</font>

    g<font color="#990000">.</font><b><font color="#000000">umount_all</font></b> <font color="#990000">();</font>
<font color="#FF0000">}</font>

<b><font color="#0000FF">if</font></b> <font color="#990000">(</font>ARGV<font color="#990000">.</font>length <font color="#990000">!=</font> <font color="#993399">1</font><font color="#990000">)</font> <font color="#FF0000">{</font>
    <b><font color="#000000">printerr</font></b> <font color="#990000">(</font><font color="#FF0000">"Usage: gjs test.js disk.img"</font><font color="#990000">);</font>
<font color="#FF0000">}</font> <b><font color="#0000FF">else</font></b> <font color="#FF0000">{</font>
    <b><font color="#000000">inspect</font></b> <font color="#990000">(</font>ARGV<font color="#990000">[</font><font color="#993399">0</font><font color="#990000">]);</font>
<font color="#FF0000">}</font>
</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3754/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3754&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/25/calling-libguestfs-from-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>libguestfs 1.16 has been released</title>
		<link>http://rwmj.wordpress.com/2012/01/24/libguestfs-1-16-has-been-released/</link>
		<comments>http://rwmj.wordpress.com/2012/01/24/libguestfs-1-16-has-been-released/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 08:35:52 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gobject]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3752</guid>
		<description><![CDATA[The release notes are here. One highlight is GObject bindings, which makes the API available from Javascript. More on this topic coming soon.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3752&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://libguestfs.org/RELEASE-NOTES.txt">release notes are here</a>.</p>
<p>One highlight is GObject bindings, which makes the API available from Javascript.  More on this topic coming soon.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3752/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3752/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3752/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3752&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/24/libguestfs-1-16-has-been-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Why can&#8217;t you live migrate from newer to older versions of qemu/KVM?</title>
		<link>http://rwmj.wordpress.com/2012/01/19/why-cant-you-live-migrate-from-newer-to-older-versions-of-qemukvm/</link>
		<comments>http://rwmj.wordpress.com/2012/01/19/why-cant-you-live-migrate-from-newer-to-older-versions-of-qemukvm/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 14:56:38 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[live migration]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[qemu]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3747</guid>
		<description><![CDATA[I answered a question on a mailing list about live migration versus copying guests between different versions of KVM on RHEL. The complainant observed that you can&#8217;t live migrate from RHEL 6.2 to RHEL 6.1. But you can shut down &#8230; <a href="http://rwmj.wordpress.com/2012/01/19/why-cant-you-live-migrate-from-newer-to-older-versions-of-qemukvm/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3747&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I answered a question on a mailing list about live migration versus copying guests between different versions of KVM on RHEL.  The complainant observed that you can&#8217;t <b>live</b> migrate from RHEL 6.2 to RHEL 6.1.  But you can shut down a guest, copy it from RHEL 6.2 to 6.1, and boot it.</p>
<p>Why is there this difference?  It comes down to how live migration is implemented.</p>
<p>Live migration is completely different from shutting down and copying a guest.  During live migration we must send the complete state of system RAM, virtual CPUs, and all virtual devices, over to the remote side.  In qemu this is done by sending &#8220;VMState&#8221; structures over the wire, one struct for each device that the guest is using.  These structures are mostly a memory dump, but so that you don&#8217;t need byte-for-byte compatible versions of qemu when live migrating, each struct is preceded by a version ID.</p>
<p>The receiving qemu checks that it can handle that version of the struct.  In some (but not all) cases, qemu knows how to &#8220;upgrade&#8221;, say, a version 1 struct into a version 2 struct.  Downgrades are never possible, and some upgrades are also rejected (eg. if version 2 is a complete rewrite over version 1, then it&#8217;s possible for a device to refuse to deal with version 1 structs at all).</p>
<p>Downgrades are not possible, and that&#8217;s the basic reason why live migration doesn&#8217;t work from a newer to an older version of qemu.</p>
<p>Why does copying work?  When a VM is shut down, there is no RAM, vCPU or device state.  All the state that remains is the contents of the hard disk.  If the hard disk is booted on an older qemu, then the kernel, during boot, will test the available CPUs, devices, etc and adjust itself, exactly the same as if you took a physical hard disk and transplanted it between real machines.</p>
<p>Indirectly related to all this is the qemu machine type.  If you created guests on RHEL 6.0, then you may notice the libvirt XML contains:</p>
<pre>
&lt;type arch='x86_64' machine='<b>rhel6.0.0</b>'&gt;hvm&lt;/type&gt;
</pre>
<p>This machine type stays with the guest even when you update the host.</p>
<p>The machine type controls what devices and PCI slots we present to the guest at boot, and it&#8217;s mainly there so that Windows doesn&#8217;t try to reactivate itself when you upgrade your host.  The newer qemu presents the old devices and PCI assignments, so Windows doesn&#8217;t &#8220;notice&#8221; the updated hypervisor.</p>
<p>For Linux guests this is usually not a problem you have to worry about and you can go ahead and change the machine type at will.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3747/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3747/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3747/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3747&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/19/why-cant-you-live-migrate-from-newer-to-older-versions-of-qemukvm/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>udev unexpectedness</title>
		<link>http://rwmj.wordpress.com/2012/01/19/udev-unexpectedness/</link>
		<comments>http://rwmj.wordpress.com/2012/01/19/udev-unexpectedness/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 14:28:16 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[blkid]]></category>
		<category><![CDATA[udev]]></category>
		<category><![CDATA[blockdev]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3746</guid>
		<description><![CDATA[This was unexpected: Write something to a partition device (eg. /dev/vda1) and immediately call blockdev --rereadpt /dev/vda to re-read the partition table of the whole device. Sometimes (about 50% for me) the blockdev command fails with: blockdev: BLKRRPART: Device or &#8230; <a href="http://rwmj.wordpress.com/2012/01/19/udev-unexpectedness/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3746&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This was unexpected:</p>
<p>Write something to a partition device (eg. /dev/vda1) and immediately call <code>blockdev --rereadpt /dev/vda</code> to re-read the partition table of the whole device.  Sometimes (about 50% for me) the blockdev command fails with:</p>
<pre>
blockdev: BLKRRPART: Device or resource busy
</pre>
<p>Nothing else is using <code>/dev/vda</code>, nothing from it was mounted, and the error was intermittent which indicates a race condition.</p>
<p>Why this happens:</p>
<p>udev has a rule that runs <code><a href="http://linux.die.net/man/8/blkid">blkid</a> -o udev -p /dev/vda1</code>.  It does this every time you close a block device so that blkid can rescan the content of the device.</p>
<p>The act of blkid running very briefly behind our backs causes the device to be open during the blockdev operation, causing it to fail.</p>
<p>Adding <code>udevadm settle</code> between the close and the blockdev fixed the problem for us, although this command is also inherently racy (what happens if it runs <i>before</i> the kernel has sent a message to udev?)</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3746/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3746/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3746/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3746&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/19/udev-unexpectedness/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>virt-format: Erase and make blank disks</title>
		<link>http://rwmj.wordpress.com/2012/01/18/virt-format-erase-and-make-blank-disks/</link>
		<comments>http://rwmj.wordpress.com/2012/01/18/virt-format-erase-and-make-blank-disks/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 18:34:44 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[guestfish]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[virt-format]]></category>
		<category><![CDATA[virt-make-fs]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3742</guid>
		<description><![CDATA[There is a new tool in libguestfs &#8805; 1.15.17: virt-format lets you erase disks and make blank disks. Usage is quite simple: $ virt-format -a disk.img (Note that erases any data on disk.img!) This works for any format of disk, &#8230; <a href="http://rwmj.wordpress.com/2012/01/18/virt-format-erase-and-make-blank-disks/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3742&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is a new tool in <a href="http://libguestfs.org/">libguestfs &ge; 1.15.17</a>: <a href="http://libguestfs.org/virt-format.1.html">virt-format</a> lets you erase disks and make blank disks.</p>
<p>Usage is quite simple:</p>
<pre>
$ virt-format -a disk.img
</pre>
<p>(Note that <b>erases</b> any data on <code>disk.img</code>!)</p>
<p>This works for any format of disk, eg. qcow2, or you can run it on host partitions, LVs, USB storage etc.  By default it just creates a partition, but using <a href="http://libguestfs.org/virt-format.1.html">other options</a> you can make empty filesystems and logical volumes.</p>
<p>This is a simple tool that doesn&#8217;t cover everything you might want to do.  For more complex requirements, see <a href="http://libguestfs.org/virt-make-fs.1.html">virt-make-fs</a> or <a href="http://libguestfs.org/guestfish.1.html">guestfish</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3742/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3742/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3742/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3742&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/18/virt-format-erase-and-make-blank-disks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Details of the libguestfs talk at FOSDEM</title>
		<link>http://rwmj.wordpress.com/2012/01/12/details-of-the-libguestfs-talk-at-fosdem/</link>
		<comments>http://rwmj.wordpress.com/2012/01/12/details-of-the-libguestfs-talk-at-fosdem/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 11:17:55 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fosdem]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3739</guid>
		<description><![CDATA[&#8230; are here.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3739&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#8230; are <a href="http://fosdem.org/2012/schedule/event/libguestfs">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3739/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3739/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3739/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3739&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/12/details-of-the-libguestfs-talk-at-fosdem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>New project: wrappi: an API for Linux</title>
		<link>http://rwmj.wordpress.com/2012/01/02/new-project-wrappi-an-api-for-linux/</link>
		<comments>http://rwmj.wordpress.com/2012/01/02/new-project-wrappi-an-api-for-linux/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 21:52:01 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[generating code]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[wrappi]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3726</guid>
		<description><![CDATA[Over the holidays I started a new project called &#8220;wrappi&#8221;. The name is a play on &#8220;wrapper&#8221; and &#8220;API&#8221;. And a play on what has been discussed for a very long time inside Red Hat &#8212; an API for everything &#8230; <a href="http://rwmj.wordpress.com/2012/01/02/new-project-wrappi-an-api-for-linux/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3726&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the holidays I started a new project called <a href="http://git.annexia.org/?p=wrappi.git;a=summary">&#8220;wrappi&#8221;</a>.</p>
<p>The name is a play on &#8220;wrapper&#8221; and &#8220;API&#8221;.  And a play on what has been discussed for a very long time inside Red Hat &#8212; an API for everything that <a href="https://www.redhat.com/rhel/">Red Hat Enterprise Linux</a> does.  A &#8220;rh-api&#8221;, if you will.</p>
<p>Wrappi aims to wrap up everything you can do with a Linux box:</p>
<ul>
<li> many POSIX functions for creating files, mkdir, reading and writing files, etc
<li> many command line tools, <code>mkfs</code>, <code>fsck</code>, <code>parted</code>, <code>pvcreate</code>, <code>cp</code> etc
<li> block devices, firewall rules, services, processes etc
<li> reboot, shutdown
<li> a way to read and modify all configuration files
<li> access to all the performance stats
</ul>
<p>We take all of that and present it back to you as an API:</p>
<ul>
<li> available from C and a dozen other programming languages
<li> available in a more powerful shell than bash, something like Microsoft&#8217;s PowerShell
<li> accessible remotely over ssh, HTTP, XML-RPC, dbus, and a dozen other protocols
</ul>
<p>The aim is that from a PowerShell-like interface (or your own program) you could control and maintain 100s of Linux machines remotely.  Like puppet/chef, but at a lower level.</p>
<p><a href="http://git.annexia.org/?p=wrappi.git;a=blob;f=examples/remote.c;hb=HEAD">Here is what a C program using the API might look like</a>.</p>
<p>So this is ambitious.</p>
<p>An API that did all of the above might run to 10,000 different calls.  To make this feasible to maintain and implement, we have to be able to <a href="https://rwmj.wordpress.com/2009/04/20/generating-code/">generate the code</a> for just about everything.</p>
<p>Each API call starts with a description.  Because we need to write this description for 10,000 calls, it&#8217;s best to keep this short.  In the best case, just a single line would be required, but in some cases it&#8217;ll be more complicated:</p>
<pre>
entry_point void mkdir (pathname path, fileperm perm)
</pre>
<pre>
system_object block_device
  dir_list "/sys/block/[hsv]d[a-z]*"
</pre>
<pre>
entry_point
struct timeval gettimeofday ()
&lt;&lt;
  int r;
  struct timeval tv;

  r = gettimeofday (&amp;tv, NULL);
  if (r == -1) {
    set_error_errno ("gettimeofday");
    return NULL;
  }
  ret-&gt;tv_sec = tv.tv_sec;
  ret-&gt;tv_usec = tv.tv_usec;
  return ret;
&gt;&gt;
includes ["sys/time.h"]
</pre>
<p>From that metadata we can generate automatically everything we need, all the language bindings, all the remote access code, the implementation.</p>
<p>When a new shiny-thing comes along (&#8220;JSON-powered Enterprise GObject&#8221;) we can simply add a new generator backend, and we&#8217;ll support the whole API through that.</p>
<p>If you&#8217;ve followed my blog, you&#8217;ll know that this looks a lot like the <a href="http://libguestfs.org/">libguestfs</a> generator, and in many ways this is the generator done right.</p>
<p>There&#8217;s lots of code in the <a href="http://git.annexia.org/?p=wrappi.git;a=summary">git repo</a>.  If you want to find out more, follow the blog, or ask questions below!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3726/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3726/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3726/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3726&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2012/01/02/new-project-wrappi-an-api-for-linux/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>guestfish tutorial in Linux Format #152</title>
		<link>http://rwmj.wordpress.com/2011/12/27/guestfish-tutorial-in-linux-format-152/</link>
		<comments>http://rwmj.wordpress.com/2011/12/27/guestfish-tutorial-in-linux-format-152/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 16:49:24 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[guestfish]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[linux format]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3723</guid>
		<description><![CDATA[It was out a couple of weeks ago. Previously &#8230;<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3723&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It was <a href="http://www.linuxformat.com/archives?issue=152">out a couple of weeks ago</a>.  <a href="https://rwmj.wordpress.com/2011/09/12/libguestfs-tutorial-to-appear-in-linux-format/">Previously &#8230;</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3723/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3723/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3723/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3723&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/27/guestfish-tutorial-in-linux-format-152/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>CVE-2011-4127: privilege escalation from qemu / KVM guests</title>
		<link>http://rwmj.wordpress.com/2011/12/22/cve-2011-4127-privilege-escalation-from-qemu-kvm-guests/</link>
		<comments>http://rwmj.wordpress.com/2011/12/22/cve-2011-4127-privilege-escalation-from-qemu-kvm-guests/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 20:18:55 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3716</guid>
		<description><![CDATA[Paolo Bonzini discovered that you can issue SCSI ioctls to virtio devices which are passed down to the host. The very unfortunate part about this is it easily allows guests to read and write parts of host devices that they &#8230; <a href="http://rwmj.wordpress.com/2011/12/22/cve-2011-4127-privilege-escalation-from-qemu-kvm-guests/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3716&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Paolo Bonzini <a href="https://bugzilla.redhat.com/show_bug.cgi?id=752375">discovered that you can issue SCSI ioctls to virtio devices</a> which are passed down to the host.</p>
<p>The very unfortunate part about this is it easily allows guests to read and write parts of host devices that they are not supposed to.  For example, if a guest was confined to host device <code>/dev/sda3</code>, it could read or write other partitions or the boot sector on <code>/dev/sda</code>.</p>
<p>In your guest, try this command which reads the host boot sector:</p>
<pre>
sg_dd if=/dev/vda blk_sgio=1 bs=512 count=1 of=output
</pre>
<p>Swap the <code>if</code> and <code>of</code> arguments around to exploit the host.</p>
<p><a href="https://lkml.org/lkml/2011/12/22/270">Here&#8217;s Paolo&#8217;s write-up on LKML</a>.</p>
<p>Here is the <a href="https://www.redhat.com/archives/libguestfs/2011-December/msg00168.html">libguestfs mitigation patch</a>.  The <a href="https://www.redhat.com/archives/libvir-list/2011-December/msg00990.html">libvirt mitigation patch</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3716&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/22/cve-2011-4127-privilege-escalation-from-qemu-kvm-guests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Why is gettext not an ordinary library?</title>
		<link>http://rwmj.wordpress.com/2011/12/21/why-is-gettext-not-an-ordinary-library/</link>
		<comments>http://rwmj.wordpress.com/2011/12/21/why-is-gettext-not-an-ordinary-library/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 18:18:29 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[autoconf]]></category>
		<category><![CDATA[autotools]]></category>
		<category><![CDATA[gettext]]></category>
		<category><![CDATA[gnu tools]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3714</guid>
		<description><![CDATA[Not being a regular library causes no end of constant build problems. Like this crap because we did &#8220;gettextize&#8221; without doing &#8220;autoconf&#8221; (or vice versa): make[2]: Entering directory `/builddir/build/BUILD/libguestfs-1.14.7/po' *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version &#8230; <a href="http://rwmj.wordpress.com/2011/12/21/why-is-gettext-not-an-ordinary-library/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3714&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Not being a regular library causes no end of constant build problems.</p>
<p>Like this crap because we did &#8220;gettextize&#8221; without doing &#8220;autoconf&#8221; (or vice versa):</p>
<pre>
make[2]: Entering directory `/builddir/build/BUILD/libguestfs-1.14.7/po'
*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.17 but the autoconf macros are from gettext version 0.18
</pre>
<p>I just don&#8217;t get why gettext can&#8217;t be a regular, ordinary, plain library so we don&#8217;t have to constantly suffer from this sort of thing.  There is surely no other library that needs to rewrite your entire build system.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3714/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3714&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/21/why-is-gettext-not-an-ordinary-library/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Android is the new Windows &#8230;</title>
		<link>http://rwmj.wordpress.com/2011/12/20/android-is-the-new-windows/</link>
		<comments>http://rwmj.wordpress.com/2011/12/20/android-is-the-new-windows/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 13:28:53 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3709</guid>
		<description><![CDATA[You want to know if Android or iPhone is going to &#8220;win&#8221; in the end? It&#8217;s obviously going to be Android, because it&#8217;s the new Windows. Exhibit (a): My Google Nexus S phone: requires rebooting every 3 days otherwise it &#8230; <a href="http://rwmj.wordpress.com/2011/12/20/android-is-the-new-windows/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3709&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>You want to know if Android or iPhone is going to &#8220;win&#8221; in the end?  It&#8217;s obviously going to be Android, because it&#8217;s the new Windows.</p>
<p>Exhibit (a): My Google Nexus S phone: requires rebooting every 3 days otherwise it just stops being able to receive/send calls and/or texts.  Data over 3g still works during these outages.</p>
<p>Exhibit (b): My new Samsung Galaxy tab, a Christmas present of sorts from Red Hat: <b>Fresh out of the box(!)</b>, this cannot connect to my wifi (absolutely everything else can connect fine to this wifi).  Support forums are full of people reporting the same thing, and everyone suggesting you reboot/reinstall/press some magic key sequence/etc.  Where have I heard that story before?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3709/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3709/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3709/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3709&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/20/android-is-the-new-windows/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>David Cameron does weird christian self-parody</title>
		<link>http://rwmj.wordpress.com/2011/12/16/david-cameron-does-weird-christian-self-parody/</link>
		<comments>http://rwmj.wordpress.com/2011/12/16/david-cameron-does-weird-christian-self-parody/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 23:29:28 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[atheism]]></category>
		<category><![CDATA[bbc]]></category>
		<category><![CDATA[stupidity]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3706</guid>
		<description><![CDATA[Hardly need to say much more than what is said already in the news item.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3706&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Hardly need to say much more than <a href="http://www.bbc.co.uk/news/uk-politics-16224394">what is said already in the news item</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3706/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3706&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/16/david-cameron-does-weird-christian-self-parody/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>P2V and V2V: new release</title>
		<link>http://rwmj.wordpress.com/2011/12/05/p2v-and-v2v-new-release/</link>
		<comments>http://rwmj.wordpress.com/2011/12/05/p2v-and-v2v-new-release/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 19:07:20 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[p2v]]></category>
		<category><![CDATA[v2v]]></category>
		<category><![CDATA[virt-p2v]]></category>
		<category><![CDATA[virt-tools]]></category>
		<category><![CDATA[virt-v2v]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3702</guid>
		<description><![CDATA[Matt has just released virt-p2v and virt-v2v 0.8.5. Packages will be available in Fedora 16 updates-testing shortly. Read this for the full instructions: https://www.redhat.com/archives/libguestfs/2011-December/msg00061.html<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3702&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Matt <a href="https://www.redhat.com/archives/libguestfs/2011-December/msg00061.html">has just released</a> <a href="http://libguestfs.org/virt-v2v/">virt-p2v and virt-v2v</a> 0.8.5.  Packages will be available in Fedora 16 updates-testing shortly.  Read this for the full instructions:</p>
<p><a href="https://www.redhat.com/archives/libguestfs/2011-December/msg00061.html">https://www.redhat.com/archives/libguestfs/2011-December/msg00061.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3702/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3702/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3702/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3702&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/05/p2v-and-v2v-new-release/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>New in libguestfs &#8212; export blkid info</title>
		<link>http://rwmj.wordpress.com/2011/12/03/new-in-libguestfs-export-blkid-info/</link>
		<comments>http://rwmj.wordpress.com/2011/12/03/new-in-libguestfs-export-blkid-info/#comments</comments>
		<pubDate>Sat, 03 Dec 2011 22:48:36 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blkid]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3698</guid>
		<description><![CDATA[We&#8217;ve been using blkid successfully in libguestfs for a while, but in a piecemeal fashion. New in libguestfs &#8805; 1.15.9 is that you can now get all the information that blkid knows about any device: &#62;&#60;fs&#62; blkid /dev/vg_f15x32/lv_root UUID: 9293385f-3200-4694-8f4b-e20bb8d73c37 &#8230; <a href="http://rwmj.wordpress.com/2011/12/03/new-in-libguestfs-export-blkid-info/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3698&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been using <a href="http://karelzak.blogspot.com/2009/11/libblkid.html">blkid</a> successfully in <a href="http://libguestfs.org/">libguestfs</a> for a while, but in a piecemeal fashion.  New in libguestfs &ge; 1.15.9 is that you can now get <a href="http://libguestfs.org/guestfs.3.html#guestfs_blkid">all the information that blkid knows</a> about any device:</p>
<pre>
&gt;&lt;fs&gt; <b>blkid /dev/vg_f15x32/lv_root</b>
UUID: 9293385f-3200-4694-8f4b-e20bb8d73c37
VERSION: 1.0
TYPE: ext4
USAGE: filesystem
MINIMUM_IO_SIZE: 512
PHYSICAL_SECTOR_SIZE: 512
LOGICAL_SECTOR_SIZE: 512
&gt;&lt;fs&gt; <b>blkid /dev/vda1</b>
UUID: d2cd4319-f515-4be2-9a5c-fc8b57b53723
VERSION: 1.0
TYPE: ext4
USAGE: filesystem
MINIMUM_IO_SIZE: 512
PHYSICAL_SECTOR_SIZE: 512
LOGICAL_SECTOR_SIZE: 512
PART_ENTRY_SCHEME: dos
PART_ENTRY_TYPE: 0x83
PART_ENTRY_FLAGS: 0x80
PART_ENTRY_NUMBER: 1
PART_ENTRY_OFFSET: 2048
PART_ENTRY_SIZE: 1024000
PART_ENTRY_DISK: 252:0
</pre>
<p>Thanks to <a href="https://plus.google.com/108839332576903776256/posts">Wanlong Gao [awesome photo!]</a> for adding this.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3698/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3698/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3698/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3698&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/03/new-in-libguestfs-export-blkid-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>SSH key change</title>
		<link>http://rwmj.wordpress.com/2011/12/01/ssh-key-change/</link>
		<comments>http://rwmj.wordpress.com/2011/12/01/ssh-key-change/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 17:09:22 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fedora]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3695</guid>
		<description><![CDATA[I have to log in to post a reply to this, so I&#8217;ll write a short reply here instead: Kevin, you are calling group 3 a &#8220;vocal minority&#8221;. But you present no hard data about how many people are actually &#8230; <a href="http://rwmj.wordpress.com/2011/12/01/ssh-key-change/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3695&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I have to log in to <a href="http://scrye.com/wordpress-mu/nirik/2011/12/01/lessons-from-passwordkey-changes/">post a reply to this</a>, so I&#8217;ll write a short reply here instead:</p>
<p>Kevin, you are calling group 3 a &#8220;vocal minority&#8221;.  But you present no hard data about how many people are actually in each group.  So there is no evidence on which to say that this group is a minority, or even that the responses break down into these four groups at all.  You hope that group 2 is large, but where&#8217;s the evidence that people really did check their firewalls and re-enable SELinux as a result of this pointless key change?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3695/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3695/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3695/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3695&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/01/ssh-key-change/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>libguestfs webinar video &#8212; final cut</title>
		<link>http://rwmj.wordpress.com/2011/12/01/libguestfs-webinar-video-final-cut/</link>
		<comments>http://rwmj.wordpress.com/2011/12/01/libguestfs-webinar-video-final-cut/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 15:21:59 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[seminar]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[virt-tools]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3693</guid>
		<description><![CDATA[Here is the video, handout and transcript: http://libguestfs.org/download/seminars/2011-11-18-introduction-to-libguestfs/ How did I do it in the end? Using ffmpeg on the command line and the editing script from my previous posting. #!/bin/bash - set -e input="libguestfs-20111118 1602-1.mp4" output="libguestfs-webinar-2011-11-18-final.avi" codec="-b 500k -vcodec &#8230; <a href="http://rwmj.wordpress.com/2011/12/01/libguestfs-webinar-video-final-cut/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3693&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Here is the video, handout and transcript:</p>
<p><a href="http://libguestfs.org/download/seminars/2011-11-18-introduction-to-libguestfs/">http://libguestfs.org/download/seminars/2011-11-18-introduction-to-libguestfs/</a></p>
<p>How did I do it in the end?  Using <a href="http://ffmpeg.org/">ffmpeg</a> on the command line and the <a href="https://rwmj.wordpress.com/2011/11/29/libguestfs-webinar-video-and-an-experiment-in-open-video-editing/">editing script from my previous posting</a>.</p>
<pre>
#!/bin/bash -

set -e

input="libguestfs-20111118 1602-1.mp4"
output="libguestfs-webinar-2011-11-18-final.avi"

codec="-b 500k -vcodec libx264 -ab 128k"
codec_novideo="-vn -ab 128k"
codec_noaudio="-b 500k -vcodec libx264"

cd /tmp

# part1: verbatim
# part2: replace video with "network failure" slide
# part3: verbatim
# part4: replace video with slide #5 from handout
# part5: verbatim
# part6: replace video with slide #1 from handout

split () {
    rm -f part1.avi part2_audio.avi part3.avi part4_audio.avi part5.avi part6_audio.avi

    ffmpeg -i "$input" -t 00:11:30 $codec part1.avi

    # end 13:33
    ffmpeg -i "$input" -ss 00:11:30 -t 00:02:03 $codec_novideo part2_audio.avi

    # end 32:03
    ffmpeg -i "$input" -ss 00:20:09 -t 00:11:54 $codec part3.avi

    # end 34:20
    ffmpeg -i "$input" -ss 00:32:03 -t 00:02:17 $codec_novideo part4_audio.avi

    # end 40:46
    ffmpeg -i "$input" -ss 00:34:20 -t 00:06:26 $codec part5.avi

    # end 49:32
    ffmpeg -i "$input" -ss 00:41:55 -t 00:07:37 $codec_novideo part6_audio.avi
}

static_slides () {
    # to replace part2 video
    rm -f part2_video.avi
    ffmpeg -loop_input -i /tmp/network_failure.png -t 00:02:03 \
        -vf pad='1024:768' -r 8 $codec_noaudio part2_video.avi

    # to replace part4 video
    rm -f part4_video.avi
    ffmpeg -loop_input -i /tmp/slide6.png -t 00:02:17 \
        -vf pad='1024:768:iw/2' -r 8 $codec_noaudio part4_video.avi

    # to replace part6 video
    rm -f part6_video.avi
    ffmpeg -loop_input -i /tmp/slide1.png -t 00:07:37 \
        -vf pad='1024:768:iw/2' -r 8 $codec_noaudio part6_video.avi
}

combine () {
    # combine audio and video
    rm -f part2.avi
    ffmpeg -i part2_audio.avi -i part2_video.avi $codec part2.avi
    rm -f part4.avi
    ffmpeg -i part4_audio.avi -i part4_video.avi $codec part4.avi
    rm -f part6.avi
    ffmpeg -i part6_audio.avi -i part6_video.avi $codec part6.avi
}

assemble () {
    rm -f "$output"
    # Concatenate parts into final video.  Note no transcoding here.
    mencoder part{1,2,3,4,5,6}.avi -ovc copy -oac copy -o "$output"
}

split
static_slides
combine
assemble
</pre>
<p>The final video isn&#8217;t a fully open format, in that it uses patented (in the US) H.264 and MP3.  However it is fully playable with free software, particularly outside the US.  The other advantage of using <a href="http://www.videolan.org/developers/x264.html">libx264</a> is it resulted in the smallest file size of all the codecs I tried.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3693/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3693/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3693/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3693&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/12/01/libguestfs-webinar-video-final-cut/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>libguestfs webinar video &#8230; and an experiment in open video editing!</title>
		<link>http://rwmj.wordpress.com/2011/11/29/libguestfs-webinar-video-and-an-experiment-in-open-video-editing/</link>
		<comments>http://rwmj.wordpress.com/2011/11/29/libguestfs-webinar-video-and-an-experiment-in-open-video-editing/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 14:17:11 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[libguestfs]]></category>
		<category><![CDATA[seminar]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[webinar]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3688</guid>
		<description><![CDATA[After my failure yesterday to find a video editor that doesn&#8217;t suck, and because I want to get the libguestfs webinar out as soon as possible, I&#8217;m going to take an alternative approach to this. Here is the unedited video: &#8230; <a href="http://rwmj.wordpress.com/2011/11/29/libguestfs-webinar-video-and-an-experiment-in-open-video-editing/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3688&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After <a href="https://rwmj.wordpress.com/2011/11/28/video-editing-again/">my failure yesterday</a> to find a video editor that doesn&#8217;t suck, and because I want to get the <a href="https://rwmj.wordpress.com/2011/11/18/libguestfs-webinar-notes-and-programs/">libguestfs webinar</a> out as soon as possible, I&#8217;m going to take an alternative approach to this.</p>
<p>Here is the <b>unedited</b> video:</p>
<p><a href="http://oirase.annexia.org/tmp/libguestfs-20111118%201602-1.mp4">http://oirase.annexia.org/tmp/libguestfs-20111118%201602-1.mp4</a> (13758086 bytes)</p>
<p>And here are my video editing instructions!</p>
<table border="1">
<tr>
<th>11:30-13:30</th>
<td> Because of a network drop, we lost the video during this part, although the sound was fine.  This could be left, rerecorded, or replaced with a static slide. </td>
</tr>
<tr>
<th>13:30-20:09</th>
<td> Completely cut this section. </td>
</tr>
<tr>
<th>32:03-34:20</th>
<td> Replace video with slide #5 from the <a href="http://rwmj.files.wordpress.com/2011/11/handout.pdf">handout</a>.  Leave audio. </td>
</tr>
<tr>
<th>40:46-41:55</th>
<td> Cut this section. </td>
</tr>
<tr>
<th>41:55-49:32</th>
<td> Replace video with generic slide, eg. slide #1.  Leave audio. </td>
</tr>
<tr>
<th>49:32-end</th>
<td> Cut. </td>
</tr>
</table>
<p>Note the video is straight from webex, untouched, so it&#8217;s in a proprietary format (avc1 video, mp4a audio).  Most Linux players will play it just fine.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3688/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3688/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3688/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3688&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/11/29/libguestfs-webinar-video-and-an-experiment-in-open-video-editing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://oirase.annexia.org/tmp/libguestfs-20111118%201602-1.mp4" length="13758086" type="video/mp4" />
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
		<item>
		<title>Video editing &#8230; again</title>
		<link>http://rwmj.wordpress.com/2011/11/28/video-editing-again/</link>
		<comments>http://rwmj.wordpress.com/2011/11/28/video-editing-again/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 15:45:49 +0000</pubDate>
		<dc:creator>rich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kdenlive]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://rwmj.wordpress.com/?p=3685</guid>
		<description><![CDATA[Since I forgot how to use Blender, I thought I&#8217;d try out a different video editor. kdenlive. Usability FAIL. You can&#8217;t just load a video clip and edit it, unless it fits a &#8220;profile&#8221;. This video clip is a screen &#8230; <a href="http://rwmj.wordpress.com/2011/11/28/video-editing-again/">Continue reading <span class="meta-nav">&#8594;</span></a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3685&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since I forgot how to use Blender, I thought I&#8217;d try out a different video editor.</p>
<p><a href="http://www.kdenlive.org">kdenlive</a>.  Usability FAIL.  You can&#8217;t just load a video clip and edit it, unless it fits a &#8220;profile&#8221;.  This video clip is a screen capture at 1024&#215;768 so of course it doesn&#8217;t fit any existing profile like HD, DVD, 720p etc.</p>
<p>Why is video editing so hard?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rwmj.wordpress.com/3685/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rwmj.wordpress.com/3685/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rwmj.wordpress.com/3685/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rwmj.wordpress.com&amp;blog=6840703&amp;post=3685&amp;subd=rwmj&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://rwmj.wordpress.com/2011/11/28/video-editing-again/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e3ec39948aca0fe41ac29e3e9f8a2649?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">rich</media:title>
		</media:content>
	</item>
	</channel>
</rss>
