<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Groveronline &#187; linux</title>
	<atom:link href="http://groveronline.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://groveronline.com</link>
	<description>A Grover. Online. Saying stuff.</description>
	<lastBuildDate>Sat, 27 Apr 2013 19:54:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>tgtd -&gt; LIO kernel target in RHEL 7</title>
		<link>http://groveronline.com/2012/11/tgtd-lio-in-rhel-7/</link>
		<comments>http://groveronline.com/2012/11/tgtd-lio-in-rhel-7/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 19:03:00 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lio]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[rtslib]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[targetcli]]></category>
		<category><![CDATA[tgtd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=367</guid>
		<description><![CDATA[RHEL 7 will be using the LIO kernel target subsystem for iSCSI and other protocols, instead of the tgtd daemon, aka scsi-target-utils. This is a change from RHEL 6, where we use tgtd for iSCSI target support, and LIO only for FCoE targets, via the fcoe-target-utils package. Users of tgtd can prepare for RHEL 7 [...]]]></description>
				<content:encoded><![CDATA[<p>RHEL 7 will be using the LIO kernel target subsystem for iSCSI and other protocols, instead of the tgtd daemon, aka scsi-target-utils. This is a change from RHEL 6, where we use tgtd for iSCSI target support, and LIO only for FCoE targets, via the fcoe-target-utils package.</p>
<p>Users of tgtd can prepare for RHEL 7 by trying Fedora 17 or 18, which have current LIO/targetcli code. LIO has many features tgtd doesn&#8217;t, but LIO also won&#8217;t cover 100% of tgtd&#8217;s features at first, either. File bugs for these regressions and we&#8217;ll work to address them.</p>
<p>Other software that currently uses tgtd may wish to look at the rtslib Python library, and targetcli&#8217;s JSON config format &#8212; LIO has a nice API so if you find yourself wanting to parse targetcli output, please <strong>hold off</strong> and <a href="mailto:agrover@redhat.com">email me</a> instead, ok? <img src='http://groveronline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>scsi-target-utils will still be available via <a href="http://fedoraproject.org/wiki/EPEL">EPEL</a> for RHEL 7, and supported in RHEL 6 for its lifetime.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/11/tgtd-lio-in-rhel-7/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Plumbing needs an API: &#8220;libification&#8221;</title>
		<link>http://groveronline.com/2012/10/plumbing-needs-an-api-libification/</link>
		<comments>http://groveronline.com/2012/10/plumbing-needs-an-api-libification/#comments</comments>
		<pubDate>Wed, 17 Oct 2012 22:15:42 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[libification]]></category>
		<category><![CDATA[liblvm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[plumbers]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=358</guid>
		<description><![CDATA[Here are my slides and video from my talk &#8220;All Plumbing needs an API&#8221; from Linux Plumbers Conference 2012. My thesis is we would improve the quality of our platform if we recognize the flaws in excessive use of other commandline tools by other tools, and worked towards more APIs and libraries for low-level parts [...]]]></description>
				<content:encoded><![CDATA[<p>Here are my <a href="http://www.linuxplumbersconf.org/2012/wp-content/uploads/2012/09/Grover-APIs.odp">slides</a> and <a href="http://linuxplumbers.ubicast.tv/videos/all-plumbing-needs-an-api/">video</a> from my talk &#8220;All Plumbing needs an API&#8221; from Linux Plumbers Conference 2012.</p>
<p>My thesis is we would improve the quality of our platform if we recognize the flaws in excessive use of other commandline tools by other tools, and worked towards more APIs and libraries for low-level parts of the Linux platform. There are many reasons given in the talk I don&#8217;t want to rehash; here are some more thoughts since I gave the talk:</p>
<p>First, this is not a push for <em>every single</em> instance of one program being called by another to be replaced by an API. But on the spectrum of cmdline-parsing vs libraries, I think we are too far towards the former, and should make an effort to shift dramatically towards the latter.</p>
<p>Second, we can take a &#8220;pave the cowpaths&#8221; approach toward this &#8212; we should first libify those tools most commonly parsed by other tools. I&#8217;ve been helping out on liblvm, a library for LVM (whose tools are unquestionably over-parsed.) There are also many other network, storage, and system configuration tools that are candidates for libification.</p>
<p>The move towards virtualization &amp; cloud computing has led to many tools formerly configured directly by the sysadmin now being configured by other tools. Broadening the coverage of our system-level management APIs will improve Linux&#8217;s flexibility and reliability as a virtualized OS.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/10/plumbing-needs-an-api-libification/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Screencast: targetd and lsmcli</title>
		<link>http://groveronline.com/2012/09/screencast-targetd-and-lsmcli/</link>
		<comments>http://groveronline.com/2012/09/screencast-targetd-and-lsmcli/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 18:18:48 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[libstoragemgmt]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[screencast]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[targetd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=355</guid>
		<description><![CDATA[I&#8217;ve whipped up a short (7min) screencast on targetd and lsmcli, two new additions to Fedora 18. targetd glues together LVM and LIO to expose a remote API for configuring a system for a storage array role. lsmcli is part of libstoragemgmt, which provides a common way to manage storage arrays from multiple vendors.]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve whipped up a short (7min) <a href="http://www.youtube.com/watch?v=-ub25iAW9bE">screencast on targetd and lsmcli</a>, two new additions to <a href="http://fedoraproject.org/">Fedora 18</a>. <a href="https://github.com/agrover/targetd">targetd</a> glues together <a href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29">LVM</a> and <a href="http://linux-iscsi.org/wiki/Main_Page">LIO</a> to expose a remote API for configuring a system for a storage array role. lsmcli is part of <a href="http://sourceforge.net/projects/libstoragemgmt/">libstoragemgmt</a>, which provides a common way to manage storage arrays from multiple vendors.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/09/screencast-targetd-and-lsmcli/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>python-kmod will be in Fedora 18</title>
		<link>http://groveronline.com/2012/08/python-kmod-will-be-in-fedora-18/</link>
		<comments>http://groveronline.com/2012/08/python-kmod-will-be-in-fedora-18/#comments</comments>
		<pubDate>Thu, 02 Aug 2012 18:56:02 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rtslib]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[targetcli]]></category>
		<category><![CDATA[targetd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=352</guid>
		<description><![CDATA[python-kmod is a basic Python wrapper around the kmod library. It allows you to load, unload, and view Linux kernel modules without resorting to the subprocess module. If you have Python code that works with kernel modules, please consider using this library in the future. If you have C code that works with modules, you [...]]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/agrover/python-kmod">python-kmod</a> is a basic Python wrapper around the <a href="http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary">kmod library</a>. It allows you to load, unload, and view Linux kernel modules without resorting to the <a href="http://docs.python.org/library/subprocess.html">subprocess</a> module.</p>
<p>If you have Python code that works with kernel modules, please consider using this library in the future. If you have C code that works with modules, you should use libkmod directly! As I&#8217;ll be talking about at this years <a href="http://www.linuxplumbersconf.org/2012/">LPC</a>, proper libraries are preferable to calling cmdline progams for low-level stuff, and now there&#8217;s one less reason to do so.</p>
<p>Using python-kmod, <a href="https://github.com/agrover/rtslib-fb">python-rtslib</a> (and thus <a href="https://github.com/agrover/targetcli-fb">targetcli</a> and <a href="https://github.com/agrover/targetd">targetd</a>) now work with no use of subprocess, although rtslib will fall back to modprobe via subprocess if python-kmod is not present.</p>
<p>Thanks to Jiri Popelka for reviewing the python-kmod package, sorry it took me so long to fix it up <img src='http://groveronline.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/08/python-kmod-will-be-in-fedora-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>targetd update: 0.2.2</title>
		<link>http://groveronline.com/2012/07/targetd-update-0-2-2/</link>
		<comments>http://groveronline.com/2012/07/targetd-update-0-2-2/#comments</comments>
		<pubDate>Fri, 20 Jul 2012 18:52:19 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[targetd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=348</guid>
		<description><![CDATA[targetd is up to version 0.2.2 from 0.1, just five weeks later. Added manpage Added API specification. API support for multiple storage pools. Deferred completion for long-running operations Volume copy Config file format changed to YAML Saves configuration across reboots Packaged, submitted for inclusion, and accepted for Fedora 18 If you are interested in contributing [...]]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/agrover/targetd">targetd</a> is up to version 0.2.2 from 0.1, just five weeks later.</p>
<ul>
<li>Added manpage</li>
<li><a href="https://github.com/agrover/targetd/blob/master/API.md">Added API specification</a>. API support for multiple storage pools.</li>
<li>Deferred completion for long-running operations</li>
<li>Volume copy</li>
<li>Config file format changed to YAML</li>
<li>Saves configuration across reboots</li>
<li>Packaged, submitted for inclusion, and accepted for Fedora 18</li>
</ul>
<p>If you are interested in contributing to targetd, there are two things you could help with. First, now that we have an <a href="https://github.com/agrover/targetd/blob/master/API.md">API specification</a>, please review it and <a href="mailto:target-devel@vger.kernel.org">give feedback</a> or <a href="https://github.com/agrover/targetd/issues">submit a bug</a>.</p>
<p>Second, I&#8217;m having trouble <a href="https://github.com/agrover/targetd/issues/1">implementing SSL support</a>. I searched around and found some pages that talked about easily adding SSL support to Python&#8217;s HTTPServer, but after spending a day on it, it still didn&#8217;t work. I&#8217;m sure this is easy for someone, but that someone is not me <img src='http://groveronline.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Anyone care to take a look?</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/07/targetd-update-0-2-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>targetd: remote administration of a Linux storage appliance</title>
		<link>http://groveronline.com/2012/06/targetd-remote-storage-admin/</link>
		<comments>http://groveronline.com/2012/06/targetd-remote-storage-admin/#comments</comments>
		<pubDate>Thu, 14 Jun 2012 04:56:08 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lvm]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[targetd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=339</guid>
		<description><![CDATA[targetd is a new service that will make it easier to configure Linux machines to export block-based volumes over iSCSI or other protocol. The Why Virtual machines need disk images to run from. While you can put the disk image on the local storage of the machine executing the VM, there are many benefits to [...]]]></description>
				<content:encoded><![CDATA[<p><a href="https://github.com/agrover/targetd">targetd</a> is a new service that will make it easier to configure Linux machines to export block-based volumes over <a href="http://en.wikipedia.org/wiki/ISCSI">iSCSI</a> or other protocol.</p>
<h3>The Why</h3>
<p>Virtual machines need disk images to run from. While you can put the disk image on the local storage of the machine executing the VM, there are many benefits to centralizing disk images &#8212; this lets you seamlessly migrate the VM&#8217;s execution between machines, is easier to manage, and can be more space-efficient when many of the disk images are almost the same, which is pretty common.</p>
<p>However, it hasn&#8217;t been nearly as easy to provision a new storage volume on the central storage box as it could be. High-end storage appliances have tools for this, but the normal way using only open-source tools has been to ssh into the machine, create the new volume and export it using command&#8211;line tools, and then go back to however you&#8217;re creating the new VM and tell it about the new volume you created.</p>
<p>targetd is a step towards making this process a little easier.</p>
<h3>The What</h3>
<p>The remote API is based on <a href="http://www.jsonrpc.org/specification">jsonrpc-2.0</a> over HTTP. The Python standard library does much of the work towards implementing our API server, what&#8217;s left is the actual implementation of functionality and the jsonrpc error handling.</p>
<p>This API will let targetd eventually tie into existing storage management tools. One such under development is <a href="http://sourceforge.net/projects/libstoragemgmt/">libstoragemgmt</a>, a framework by my colleague Tony Asleson, which will give virtualization tools like <a href="http://www.ovirt.org/">oVirt</a> or <a href="http://www.openstack.org/">OpenStack</a> a common API for management of the many proprietary storage appliances, and also open-source appliances like targetd.</p>
<p>Linux has had reliable <a href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29">LVM-based</a> volume management for a long time, and now has an excellent kernel-based storage target subsystem called <a href="http://en.wikipedia.org/wiki/LIO_Target">LIO</a>. targetd uses both of these heavily. In configuring a machine for a storage appliance role, give targetd a volume group to allocate volumes from, set user/password for access, and you&#8217;re just about done.</p>
<p>There is one coding pet peeve of mine that I&#8217;ve <a href="http://groveronline.com/2012/03/hundred-languages-want-to-call/">ranted about before</a> that targetd avoids completely. targetd uses libraries to interface with LVM and LIO instead of the all-too-common alternative of passing commands to command-line tools, and parsing the output. Much of the time spent towards targetd was improving <a href="https://github.com/agrover/python-lvm">these</a> <a href="https://github.com/agrover/rtslib-fb">libraries</a>. I believe proper error propagation, reduced text parsing, and better library APIs make this bottom-up approach a long-term win.</p>
<h3>Current state and future plans</h3>
<p>Today&#8217;s announcement is a pre-alpha 0.1 release. I&#8217;m really hoping to get to 1.0 for Fedora 18. There is a manpage to write and SSL support to add, but much more important than the source code of  targetd is the layout of the remote API itself. I&#8217;d love to get some more review of that, as well as the code, before 1.0. I have been working from what I believe are some common use-cases, but more feedback on how admins configure and use storage appliances would be most welcome too!</p>
<p><a href="https://github.com/agrover/targetd">Please see the project on github for more info.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/06/targetd-remote-storage-admin/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Shorter trackpad-disabling timeout with Gnome 3 (Fedora 17)</title>
		<link>http://groveronline.com/2012/05/shorter-trackpad-disabling-timeout-with-gnome-3-fedora-17/</link>
		<comments>http://groveronline.com/2012/05/shorter-trackpad-disabling-timeout-with-gnome-3-fedora-17/#comments</comments>
		<pubDate>Tue, 22 May 2012 08:29:01 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[trackpad]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=331</guid>
		<description><![CDATA[Gnome 3 has the option of disabling the trackpad while the user is typing. (System Settings -&#62; Mouse and Touchpad -&#62; Touchpad) However, it uses a timeout of two seconds. Two seconds doesn&#8217;t sound like much, but it may be enough to feel weird &#8212; at least it did for me. When you check that [...]]]></description>
				<content:encoded><![CDATA[<p>Gnome 3 has the option of disabling the trackpad while the user is typing. (System Settings -&gt; Mouse and Touchpad -&gt; Touchpad) However, it uses a timeout of two seconds. Two seconds doesn&#8217;t sound like much, but it may be enough to feel weird &#8212; at least it did for me.</p>
<p>When you check that option, all Gnome is doing is running a utility called &#8220;syndaemon&#8221;, and it uses a 2 second timeout. We can adjust the timeout by running this ourselves when we login:</p>
<ol>
<li>Make sure Gnome doesn&#8217;t also run syndaemon by keeping the aforementioned checkbox unchecked</li>
<li>Run gnome-session-properties, after entering alt-F2 or from the commandline.</li>
<li>Click Add, and then enter Syndaemon, /usr/bin/syndaemon -i 0.5 -K -R, and any comment you want</li>
<li>Click Save.</li>
<li>Logout and back in</li>
</ol>
<p>If you run &#8220;ps ax|grep synd&#8221; you will see syndaemon has been started with your settings. 0.5 seconds works for me but feel free to experiment.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/05/shorter-trackpad-disabling-timeout-with-gnome-3-fedora-17/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>A hundred other languages want to call your code</title>
		<link>http://groveronline.com/2012/03/hundred-languages-want-to-call/</link>
		<comments>http://groveronline.com/2012/03/hundred-languages-want-to-call/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 22:54:08 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[APIs]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[plumbers]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xkcd]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=321</guid>
		<description><![CDATA[The users of a hundred programming languages would like to call your low-level code, but they can&#8217;t. Things have changed in the last 20 years. More people are using languages like Python, Ruby, and a hundred more, that are further from the bare metal. People are building service stacks that tie together many lower-level functions. [...]]]></description>
				<content:encoded><![CDATA[<p>The users of a hundred programming languages would like to call your low-level code, but they can&#8217;t.</p>
<p>Things have changed in the last 20 years. More people are using languages like Python, Ruby, and a hundred more, that are further from the bare metal. People are building service stacks that tie together many lower-level functions.</p>
<p>Libraries and APIs that make low-level features available to convenient high-level languages (HLLs) are a good thing. <a href="http://xkcd.com/353/">As a HL coder, it&#8217;s pretty handy to install python-foo, type &#8220;import foo&#8221; and then have access to that functionality</a>.</p>
<p>What if python-foo isn&#8217;t there? HLL users are out of luck, unless they are so determined they make their own python-foo that calls system(), and then parses the output using their language&#8217;s fancy text parsing features.</p>
<p>But system() is the devil. We hate system(), folks. If your code calls system() it&#8217;s bad, for four reasons:</p>
<ol>
<li>Overhead. It creates a new process and subshell.</li>
<li>Security. If your code has elevated privileges and is including text input by an untrusted user, watch out. <a href="http://xkcd.com/327/">Remember little Bobby Tables</a>, a semicolon is a dangerous thing.</li>
<li>Ease. Parsing command-line programs&#8217; output can be a pain, even if your language helps lessen it. Parsing of errors is even harder and prone to be overlooked.</li>
<li>Portability. A different platform may (or may not) have the program you&#8217;re relying on, or its output may be different, and you won&#8217;t know.</li>
</ol>
<p>Early on when I was learning Python, I tried to write a gui for <a href="http://oprofile.sourceforge.net/news/">OProfile</a> by parsing its output. OProfile did nice (for the user) things like adding headers on its output, and changing the format of output depending on what it found. Great for users, but it doomed my project. I couldn&#8217;t parse the output reliably.</p>
<p>You want to make it easy for the people who are language gurus for each of the hundred languages out there to wrap your functionality <em>without</em> having to become an expert in your code, or even change it. Then the hordes using all the hundred languages can use your library without being an expert in your code <em>or</em> being enough of a guru in their language to write a wrapper. They can just happily use it.</p>
<p>Here&#8217;s a positive development, <a href="http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary">kmod</a>. kmod is a new implementation of the utilities in module-init-tools: modprobe, lsmod, lsmod, etc. Not only does kmod include a libkmod C library, but the commandline programs use it, so we know it works. Yeah! This made it super easy for someone (me) to come along and write a language wrapper (<a href="https://github.com/agrover/python-kmod">python-kmod</a>) without having to know about module internals. python-kmod makes it easy for Python users to manipulate modules using the friendly language features they&#8217;re used to, like exceptions for errors, and lists. If I had been forced to use system(), it probably would have <em>mostly</em> worked, but it would have failed when output parsing failed for some edge case.</p>
<p>I encourage all low-level program writers, my fellow Linux Plumbers, to consider how to make native language bindings possible for your code. You don&#8217;t have to <em>write</em> them, just make them possible and you will find all sorts of people calling your code, safely, who couldn&#8217;t before.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/03/hundred-languages-want-to-call/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Targetcli Screencast series</title>
		<link>http://groveronline.com/2012/02/targetcli-screencast-series/</link>
		<comments>http://groveronline.com/2012/02/targetcli-screencast-series/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 23:05:15 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[targetcli]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=311</guid>
		<description><![CDATA[Link These are three screencasts I made recently to better explain how to use targetcli to configure the Linux kernel target subsystem. Doing them uncovered a number of usability issues in targetcli, so they&#8217;ve already been of use to me, and hopefully will be of use for potential users of targetcli and LIO as well. [...]]]></description>
				<content:encoded><![CDATA[<p><iframe src="http://www.youtube-nocookie.com/embed/videoseries?list=PLC2C75481A3ABB067&amp;hl=en_US" frameborder="0" width="500" height="360"></iframe><br />
<a href="http://www.youtube.com/playlist?list=PLC2C75481A3ABB067">Link</a><br />
These are three screencasts I made recently to better explain how to use targetcli to configure the Linux kernel target subsystem. Doing them uncovered a number of usability issues in targetcli, so they&#8217;ve already been of use to me, and hopefully will be of use for potential users of targetcli and LIO as well.</p>
<ol>
<li>Overview and backstores</li>
<li>Fabrics and ISCSI</li>
<li>The configuration file and Python API</li>
</ol>
<p>I&#8217;ve also been dogfooding screencast software on RHEL 6, which works only with effort. I ended up using gtk-recordmydesktop (in EPEL) and then converting the .ogv to VP8 with oggconvert (will be getting into EPEL), before I could successfully upload to YouTube with good results.</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2012/02/targetcli-screencast-series/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Fedora and Open Source at Grace Hopper 2011</title>
		<link>http://groveronline.com/2011/11/fedora-and-open-source-at-grace-hopper-2011/</link>
		<comments>http://groveronline.com/2011/11/fedora-and-open-source-at-grace-hopper-2011/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 01:40:29 +0000</pubDate>
		<dc:creator>agrover</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[grace hopper]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[systers]]></category>

		<guid isPermaLink="false">http://groveronline.com/?p=296</guid>
		<description><![CDATA[I was at the Open Source booth at this year&#8217;s Grace Hopper Celebration of Women in Computing, last Thursday. We had Fedora media and swag also available Wed and Fri as well. The booth was shared with Mozilla, Kids on Computers. Wikimedia, OSU OSL, the Ada Initiative, and assorted other FOSS projects. While I talked [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://groveronline.com/2011/11/fedora-and-open-source-at-grace-hopper-2011/grover-redhat-2/" rel="attachment wp-att-300"><img class="alignright size-full wp-image-300" title="grover-redhat" src="http://groveronline.com/wp-content/uploads/2011/11/grover-redhat1.jpg" alt="Me wearing my flair" width="384" height="251" /></a>I was at the Open Source booth at this year&#8217;s <a href="http://gracehopper.org/2011/">Grace Hopper Celebration of Women in Computing</a>, last Thursday. We had Fedora media and swag also available Wed and Fri as well. The booth was shared with <a href="http://mozilla.org">Mozilla</a>, <a href="http://www.kidsoncomputers.org/">Kids on Computers</a>. <a href="http://www.wikimedia.org/">Wikimedia</a>, <a href="http://osuosl.org/">OSU OSL</a>, the <a href="http://adainitiative.org/">Ada Initiative</a>, and assorted other FOSS projects. While I talked about <a href="http://fedoraproject.org/">Fedora</a> and handed out media and stickers, many attendees were students and new to tech as a whole, so &#8220;what is open source&#8221; was the first, most important, question.</p>
<p>I also attended the Codeathon for Humanity on Saturday, with about 200 attendees working on various open source philanthropic projects: <a href="http://sahanafoundation.org/">Sahana</a>, <a href="http://anitaborg.org/initiatives/systers/">Systers</a>, <a href="http://www.list.org/">Mailman</a>, <a href="http://womensp2p.org/">peer-to-peer Haitian Women&#8217;s network</a>, to name a few. The Mayor of Portland, <a href="http://www.mayorsamadams.com/">Sam Adams</a>, stopped by and spoke. I wasn&#8217;t expecting this, but was pretty nice to hear about the importance of open source to the city government, as well as the Portland tech scene as a whole!</p>
]]></content:encoded>
			<wfw:commentRss>http://groveronline.com/2011/11/fedora-and-open-source-at-grace-hopper-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  groveronline.com/tag/linux/feed/ ) in 0.27341 seconds, on May 21st, 2013 at 9:23 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 21st, 2013 at 10:23 pm UTC -->
<!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  groveronline.com/tag/linux/feed/ ) in 0.00034 seconds, on May 21st, 2013 at 9:46 pm UTC. -->