<?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"
	>

<channel>
	<title>shivan.org</title>
	<atom:link href="http://shivan.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://shivan.org</link>
	<description>The blog of a Network Analyst who plays around with many things open source when he is not feeding his MMORPG addiction.</description>
	<pubDate>Mon, 18 Aug 2008 06:28:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>The Beat And Zen Of Indie Games</title>
		<link>http://shivan.org/2008/08/18/the-beat-and-zen-of-indie-games/</link>
		<comments>http://shivan.org/2008/08/18/the-beat-and-zen-of-indie-games/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 06:18:20 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=288</guid>
		<description><![CDATA[
A few days ago I stumbled across a great little game from an Indie company on Steam called Audiosurf.  The best I can describe Audiosurf is that it combines the action of a Sci-fi racing game with Tetris and Guitar Hero.  The $9.99 game requires you to supply the music.  You pick [...]]]></description>
			<content:encoded><![CDATA[<p>
A few days ago I stumbled across a great little game from an Indie company on Steam called <a href="http://www.audio-surf.com/">Audiosurf</a>.  The best I can describe Audiosurf is that it combines the action of a Sci-fi racing game with Tetris and Guitar Hero.  The $9.99 game requires you to supply the music.  You pick the game type, tell it which MP3 to use and it will generate a game track based on the characteristics of that music.
</p>
<p>
An example of one game type with the game and music sped up a bit can be seen here on Youtube:
</p>
<p>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/5qgGCHQ-IWE&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/5qgGCHQ-IWE&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br />
<a href="http://www.youtube.com/watch?v=5qgGCHQ-IWE">Audiosurf - Tank! (Live)</a>
</p>
<p>I have some European heavy metal that is insanely difficult on the medium and high settings.  A great way to kill 20 minutes of time once in a while.</p>
<p>On the other end of the spectrum is a game still under development called &#8220;fl0wer&#8221;.  From some of the people behind the flash game &#8220;<a href="http://intihuatani.usc.edu/cloud/flowing/">fl0w</a>&#8221; the game fl0wer is more of a meditation tool than what many would recognize as a game. </p>
<p>Here is a great video that shows off the basics:</p>
<p>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"  codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="gtembed" width="480" height="392"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /><param name="movie" value="http://www.gametrailers.com/remote_wrap.php?mid=36151"/><param name="quality" value="high" /><embed src="http://www.gametrailers.com/remote_wrap.php?mid=36151" swLiveConnect="true" name="gtembed" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="480" height="392"></embed></object>
</p>
<p>An HD version of this video and other videos can be found on the <a href="http://www.gametrailers.com">GameTrailers website</a> under <a href="http://www.gametrailers.com/game/5528.html">fl0wer</a>.</p>
<p>In my opinion fl0wer is something that could really only be enjoyable with a HDTV and modern sound system.   The fact the game is coming out for the PS3 is not a coincidence.</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/08/18/the-beat-and-zen-of-indie-games/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Alarming Report On Office Politics</title>
		<link>http://shivan.org/2008/08/04/alarming-report-on-office-politics/</link>
		<comments>http://shivan.org/2008/08/04/alarming-report-on-office-politics/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 06:14:18 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=287</guid>
		<description><![CDATA[The most accurate and trustworthy American news agency reports on an alarming trend in office politics:


Study Finds Young People Remain Apathetic About Office Politics
]]></description>
			<content:encoded><![CDATA[<p>The most accurate and trustworthy American news agency reports on an alarming trend in office politics:
</p>
<p>
<embed src="http://www.theonion.com/content/themes/common/assets/videoplayer/flvplayer.swf" type="application/x-shockwave-flash" allowScriptAccess="always" wmode="transparent" width="400" height="355" flashvars="file=http://www.theonion.com/content/xml/83607/video&#038;autostart=false&#038;image=http://www.theonion.com/content/files/images/OFFICE_POLITICS_article.jpg&#038;bufferlength=3&#038;embedded=true&#038;title=Study%20Finds%20Young%20People%20Remain%20Apathetic%20About%20Office%20Politics"></embed><br /><a href="http://www.theonion.com/content/video/study_finds_young_people_remain?utm_source=embedded_video">Study Finds Young People Remain Apathetic About Office Politics</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/08/04/alarming-report-on-office-politics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comcast&#8217;s Possible IPv6 Deployment Plan</title>
		<link>http://shivan.org/2008/08/04/comcasts-possible-ipv6-deployment-plan/</link>
		<comments>http://shivan.org/2008/08/04/comcasts-possible-ipv6-deployment-plan/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 05:36:31 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=286</guid>
		<description><![CDATA[
A follow up to the post named &#8220;The Future of IPv4&#8220;:


In the Network World article &#8220;Comcast pitches IPv6 strategy to standards body&#8221; the Cable ISP discusses their current plans on how to migrate their customers to IPv6.


The summary of what happens once Comcast runs out of IPv4 address to give to its customers:

Customers get a [...]]]></description>
			<content:encoded><![CDATA[<p>
A follow up to the post named &#8220;<a href="http://shivan.org/2008/07/30/the-future-of-ipv4/">The Future of IPv4</a>&#8220;:
</p>
<p>
In the Network World article &#8220;<a href="http://www.networkworld.com/news/2008/072108-comcast-ipv6.html">Comcast pitches IPv6 strategy to standards body</a>&#8221; the Cable ISP discusses their current plans on how to migrate their customers to IPv6.
</p>
<p>
The summary of what happens once Comcast runs out of IPv4 address to give to its customers:
</p>
<p>Customers get a new cable modem or router device that does real routed IPv6.  You get a real IPv6 address or range of IPv6 addresses and your home network is a directly connected fully functional member of the IPv6 world.</p>
<p>
Newer customers won&#8217;t get their own IPv4 address anymore.  Existing customers would retain their ability to get an IPv4 address for a while but nothing is guaranteed.  The modem or home router will hand out private addresses to your home computers and devices.  Any attempt to contact the outside IPv4 world will be blindly tunneled over IPv6 to a NAT router that Comcast runs in one of their data centers.  Multiple customers will share the same IPv4 address and NAT will be used for all IPv4 connections.  This will hurt or possibly prevent many forms of P2P over IPv4.  Assuming they didn&#8217;t firewall off all incoming IPv6 connections these P2P tools would work normally over IPv6.
</p>
<p>At a quick glance it doesn&#8217;t seem like an unworkable plan.  Of course being NATed by your ISP and not by a router you control will just plain suck.  I&#8217;d strongly suspect any &#8220;NAT&#8221; solution they implement on their servers will have to do some inspection of connections (similar to Linux&#8217;s conntrack modules) and do a bit more than straight NAT to work around common application problems.  Unfortunately if the ISP can&#8217;t get any new IP allocations at a reasonable cost and is truly out of IPv4 address then the customer is crap out of luck.  The question is exactly under which conditions the transition would start and what  restrictions they would place on the IPv6 end of things.  And I hope they will read their RFCs and hand out the RFC recommended number of IPv6 IPs to every customer.  That is half the point of IPv6 after all.
</p>
<p><b>Update</b>:  Comcast&#8217;s approach seems to be covered in the IETF document <a href="http://tools.ietf.org/html/draft-durand-dual-stack-lite-00">Dual-stack lite broadband deployments post IPv4 exhaustion</a>.  On the topic of NAT and IPv4 application compatibility the document says:
</p>
<blockquote><p>
   Most applications that today work transparently through an IPv4 home<br />
   gateway NAT should keep working the same way.  However, it is not<br />
   expected that applications that requires specific port assignment or<br />
   port mapping from the NAT box will keep working.  Details and<br />
   recommendations for application behavior are outside the scope of<br />
   this document and should be discussed in the behave working group.
</p></blockquote>
<p>Translation:  We chose not to care.</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/08/04/comcasts-possible-ipv6-deployment-plan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Public Rant: &#8220;RPM Hell&#8221;</title>
		<link>http://shivan.org/2008/07/31/public-rant-rpm-hell/</link>
		<comments>http://shivan.org/2008/07/31/public-rant-rpm-hell/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 21:22:35 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=285</guid>
		<description><![CDATA[The following is a public service announcement in rant format on a topic that I&#8217;ve reached my limit on:
If you believe &#8220;RPM Hell&#8221; already exists and say things like &#8220;Apt is better than RPM&#8221; you just announced to the world that you do not know what you are talking about.  YOU ARE WRONG.
&#8220;RPM Hell&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>The following is a public service announcement in rant format on a topic that I&#8217;ve reached my limit on:</p>
<p>If you believe &#8220;RPM Hell&#8221; already exists and say things like &#8220;Apt is better than RPM&#8221; you just announced to the world that you do not know what you are talking about.  <b>YOU ARE WRONG</b>.</p>
<p>&#8220;RPM Hell&#8221; is a reference to the difficulty of taking a package file from one distribution family and trying to use it on the other.  Newsflash: That was always a retarded idea.  If the package wasn&#8217;t made for your distribution don&#8217;t freaking do it.</p>
<p>I don&#8217;t care what wizbang distribution you are using it, it&#8217;s <b>always a bad idea</b>.  If it isn&#8217;t in the repository for your distribution and the software&#8217;s upstream provider doesn&#8217;t like your distribution enough to have a package for you, then sorry, you&#8217;ve just discovered the one way the Linux development model sucks.  Whine at the people maintaining your distribution or pick a new one.  The package management system we&#8217;ve all come to love was clearly designed with only server admins and developers in mind.  And there is clearly no financial interest in making a desktop friendly system or someone would have paid to have it done already.  Sorry, thems the breaks.</p>
<p>The Debian world has the same problem as it&#8217;s advocates claim &#8220;RPM&#8221; (what?  tar.gz gets a pass?) has if you try to mix packages between distributions and versions.  The only &#8220;Hell&#8221; that exists is when people do a google search and random grab a package from some random FTP site and give it a try.  <b>DON&#8217;T DO THAT</b>.  Apt will murder kittens and refuse to do anything for you ever again if you don&#8217;t uninstall the crap so don&#8217;t do it.  Older versions of Yum will sulk at you and swear at you with a python traceback.</p>
<p>Why?  You have taken a dependency management system and violated it.  You&#8217;ve corrupted it.  The relationships are no longer sane.   There is a sad reality in why Windows and Mac apps carry so many libraries with them.  This crap is hard and no one has figured out how to make it friendly to Joe Sixpack without compromising security by design with every app carrying around a complete library set which may never get updated or patched.</p>
<p>As a &#8220;workaround&#8221; any desktop distribution worth using has a massive repository enabled by default.  And for those &#8220;questionable&#8221; things where you may or may not be violating federal law everyone &#8220;knows&#8221; of the <b>ONE</b> *cough*unofficial*cough* repository that you need.  If you want a newer version of something from an upstream provider and they don&#8217;t have a dpkg or rpm file for your distribution version and you don&#8217;t want to compile it, sorry, you&#8217;ll have to do without.</p>
<p>If this is too hard for you, then sorry, Linux desktop is a failure for your use case.  I feel for you, seriously.   May I suggest an appliance or device if you really want an open source desktop?  I hear EEEPCs have a decent out of the box experience if you want to buy something with Linux preinstalled.  If you want an actual laptop maybe Dell installs media crap out of the box for Ubuntu.  I would certainly hope they do. </p>
<p>And as for the other statement saying &#8220;Apt is better than RPM&#8221; is like saying &#8220;Fedex is better than a cardboard box&#8221;.  Hello?  Yum?  Ever hear of it?  It&#8217;s been around for years.  Seriously, it&#8217;s god damn ignorant to make that statement.  Please educate yourself if you&#8217;ve ever said this.</p>
<p>This public service announcement has been brought to you by the &#8220;Coalition for Schooling Ubuntu Fanatics That Spew This Crap In Response To Genuine Technical Complaints About Ubuntu&#8217;s Shitty Kernel Maintenance.&#8221;  Hmm.  Perhaps I should shorten that up a bit.</p>
<p>Time for me to go back to figuring out why on Hardy I can&#8217;t use two mac80211 stack using wireless drivers at the same time without hundreds of lines of crap in dmesg and nothing happening.</p>
<p>(Update: OK, I forgot to include the profanity.)</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/07/31/public-rant-rpm-hell/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The Future of IPv4</title>
		<link>http://shivan.org/2008/07/30/the-future-of-ipv4/</link>
		<comments>http://shivan.org/2008/07/30/the-future-of-ipv4/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 04:47:08 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=284</guid>
		<description><![CDATA[Required reading for anyone who deals with networks: The Future Without IPv6 and IPv6 and NAT&#8230; Again!.
If we have any hope of getting out of the NAT trap how does IPv4 become painful enough to compel the transition?  Will hitting NAT scalability issues be enough?  Or will the attractiveness of forcing end-users to [...]]]></description>
			<content:encoded><![CDATA[<p>Required reading for anyone who deals with networks: <a href="http://jhw.vox.com/library/post/the-future-without-ipv6.html">The Future Without IPv6</a> and <a href="http://jhw.vox.com/library/post/ipv6-and-nat-again.html">IPv6 and NAT&#8230; Again!</a>.</p>
<p>If we have any hope of getting out of the NAT trap how does IPv4 become painful enough to compel the transition?  Will hitting NAT scalability issues be enough?  Or will the attractiveness of forcing end-users to be consumers and not producers by making servers and p2p impossible through multiple layers of NAT mean IPv4/NAT will be attractive to upstream providers involved with media organizations?  (Hello, Time Warner!)</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/07/30/the-future-of-ipv4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Updated Security Analysis of Red Hat Enterprise 5</title>
		<link>http://shivan.org/2008/05/29/updated-security-analysis-of-red-hat-enterprise-5/</link>
		<comments>http://shivan.org/2008/05/29/updated-security-analysis-of-red-hat-enterprise-5/#comments</comments>
		<pubDate>Fri, 30 May 2008 04:51:59 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=282</guid>
		<description><![CDATA[Mark Cox from Red Hat has published an analysis of the security updates release for RHEL 5.0 through 5.2:

Enterprise Linux 5.0 to 5.1
Enterprise Linux 5.1 to 5.2 risk report

The blog posts cover the effects of various exploit mitigation technologies.  Sadly it seems the same software keeps having security holes over and over again.  [...]]]></description>
			<content:encoded><![CDATA[<p>Mark Cox from Red Hat has published an analysis of the security updates release for RHEL 5.0 through 5.2:</p>
<ul>
<li><a href="http://www.awe.com/mark/blog/200711071924.html">Enterprise Linux 5.0 to 5.1</a></li>
<li><a href="http://www.awe.com/mark/blog/200805262100.html">Enterprise Linux 5.1 to 5.2 risk report</a></li>
</ul>
<p>The blog posts cover the effects of various exploit mitigation technologies.  Sadly it seems the same software keeps having security holes over and over again.  It would be a good idea not to use a web browser from an important server (No duh!).   It also seems like Samba and Kerberos related daemons have some major issues and should be locked down with a MAC system like SELinux and removed from any system where they are not specifically needed.</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/05/29/updated-security-analysis-of-red-hat-enterprise-5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Backing Up Bloglines Subscriptions</title>
		<link>http://shivan.org/2008/05/19/backing-up-bloglines-subscriptions/</link>
		<comments>http://shivan.org/2008/05/19/backing-up-bloglines-subscriptions/#comments</comments>
		<pubDate>Mon, 19 May 2008 07:24:56 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=281</guid>
		<description><![CDATA[Bloglines, an online RSS feed reader, offers an easy way to export your RSS feed subscriptions in OPML format.  The following extremely trivial Python script will spit out the OPML file to stdout:



#!/usr/bin/python
import mechanize

b = mechanize.Browser()

b.open("https://www.bloglines.com/export")

b.select_form(name="login")
b["email"] = &#8220;email@address&#8221;
b["password"] = &#8220;password&#8221;
b.submit()

print b.response().read()



Hopefully this will save someone else a few minutes of their time&#8230;
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.bloglines.com">Bloglines</a>, an online RSS feed reader, offers an easy way to export your RSS feed subscriptions in OPML format.  The following extremely trivial Python script will spit out the OPML file to stdout:</p>
<p>
<code></p>
<pre>
#!/usr/bin/python
import mechanize

b = mechanize.Browser()

b.open("https://www.bloglines.com/export")

b.select_form(name="login")
b["email"] = &#8220;email@address&#8221;
b["password"] = &#8220;password&#8221;
b.submit()

print b.response().read()
</pre>
<p></code>
</p>
<p>Hopefully this will save someone else a few minutes of their time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/05/19/backing-up-bloglines-subscriptions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wireless Drivers Suck</title>
		<link>http://shivan.org/2008/05/15/wireless-drivers-suck/</link>
		<comments>http://shivan.org/2008/05/15/wireless-drivers-suck/#comments</comments>
		<pubDate>Thu, 15 May 2008 18:00:15 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=280</guid>
		<description><![CDATA[For those of us who plan and maintain wireless networks you are well aware of the problems presented by how limited you are with 802.11b/g in the 2.4ghz band.  One way that many network administrators attempt to work around this is to leverage 802.11a which is in the much more wide open and spacious [...]]]></description>
			<content:encoded><![CDATA[<p>For those of us who plan and maintain wireless networks you are well aware of the problems presented by how limited you are with 802.11b/g in the 2.4ghz band.  One way that many network administrators attempt to work around this is to leverage 802.11a which is in the much more wide open and spacious 5ghz bands.  A common way to configure the wireless network is to have dual radio access points that support both 802.11b/g and 802.11a and have both radios broadcast the same SSID for the convenience of your end-users.
</p>
<p>
I&#8217;m beginning to give up on the idea of using the same wireless SSID for both 802.11a and 802.11b/g radios.  On all three platforms that I care about getting the wireless driver to prefer 802.11a over 802.11b/g is a waste of time.  The vast majority of drivers for all three platforms seem to blindly check the SNR (Signal to Noise Ratio) of all visible APs advertising the desired SSID and ignore which band they are on.  Because signals in 2.4ghz attenuate less than 5ghz signals this means 802.11b/g radios will always have the highest SNR and thus will always be preferred with a simple SNR check.  This means the band you really want your users to use more is used the least. </p>
<p>On Windows you can manually configure some drivers to prefer 802.11a for the same SSID shared between 802.11a and 802.11b/g radios but it&#8217;s specific to the driver and many drivers do not even offer the option.  And some drivers that do offer the option sometimes choose to ignore it for reasons unknown.  (I&#8217;m looking at you Intel.)  On Mac none of this is exposed in the UI and I&#8217;ve yet to even get Google to cough up a command line way of influencing what band and channel to pick.</p>
<p>On Linux it depends on if you choose to use NetworkManager and let the wireless driver select the channel itself.  Depending on the driver quality you have the ability to specify the channel manually.  To do this requires you to set it each time you wish to use wireless and this prevents roaming in many cases.  It also turns what should be a two click and wait operation into something involving multiple manual commands and watching dmesg.  It&#8217;s simply not a viable option for anyone except the network administrator himself.</p>
<p>So I&#8217;ve given up on that front and I&#8217;ve decided the best thing to do is to just offer an SSID that is only served from 802.11a radios.  Within most of our buildings 802.11a signal should be sufficient for roaming so while it&#8217;s not a great solution its a usable one at least.  So now we have the usual SSID that is advertised from all of our 802.11b/g and 802.11a AP radios and in addition to that we have an SSID labeled with &#8220;(802.11a)&#8221; thats only advertised from 802.11a radios.  The Aruba gear we use makes it pretty trivial to have both SSIDs dump clients onto the same VLANs with the same AAA profiles so all it takes is about 5 lines of configuration to have no outside visible differences between the SSIDs.
</p>
<p>
I really wish there was a more auto-magical way to get clients to prefer 802.11a but I&#8217;ve yet to find a viable way to do it.  So for now the SSID kludge will have to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/05/15/wireless-drivers-suck/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SELinux Presentation</title>
		<link>http://shivan.org/2008/05/12/selinux-presentation/</link>
		<comments>http://shivan.org/2008/05/12/selinux-presentation/#comments</comments>
		<pubDate>Mon, 12 May 2008 19:05:23 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=279</guid>
		<description><![CDATA[
A certain someone poked me enough times over the last 11 months that I finally decided to get around to uploading the slides of a presentation I gave back in June of 2007 to the MHVLUG.  The topic was basic SELinux concepts.
]]></description>
			<content:encoded><![CDATA[<p>
A certain someone poked me enough times over the last 11 months that I finally decided to get around to uploading the <a href="http://mhvlug.org/MonthlyMeetings/2007/06?action=AttachFile&#038;do=get&#038;target=MHVLUG-SELinux-June2007.pdf">slides of a presentation</a> I gave back in June of 2007 to the <a href="http://www.mhvlug.org">MHVLUG</a>.  The topic was basic SELinux concepts.</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/05/12/selinux-presentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zenoss and Python: One Line Of Evil</title>
		<link>http://shivan.org/2008/05/12/zenoss-and-python-one-line-of-evil/</link>
		<comments>http://shivan.org/2008/05/12/zenoss-and-python-one-line-of-evil/#comments</comments>
		<pubDate>Mon, 12 May 2008 18:06:38 +0000</pubDate>
		<dc:creator>Bruce</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://shivan.org/?p=278</guid>
		<description><![CDATA[The following lines of code when used within Zenoss&#8217;s zendmd environment will take a list of IP addresses from a text file and spit out a list of those IP addresses that do not yet have a corresponding object in Zenoss.



import string

print [devip for devip in map(string.strip, open("iplist.txt", "r").readlines())
    if not [True [...]]]></description>
			<content:encoded><![CDATA[<p>The following lines of code when used within Zenoss&#8217;s zendmd environment will take a list of IP addresses from a text file and spit out a list of those IP addresses that do not yet have a corresponding object in Zenoss.
</p>
<p>
<code>
<pre>import string

print [devip for devip in map(string.strip, open("iplist.txt", "r").readlines())
    if not [True for device in dmd.Devices.getSubDevices() if device.manageIp == devip]]</pre>
<p></code>
</p>
<p>This is useful for those cases where you are sure Zenoss discovery missed a few network switches due to a network administrator screwup and find that it&#8217;s too time consuming to find the handful among hundreds the manual way.
</p>
<p>As for the code quality I beg forgiveness from the Pythonic gods for thinking a list comprehension within a list comprehension with a map thrown in was a good idea.  But then again I&#8217;m sure there are some Ruby fanatics out there that think that looks like Hello World.  <img src='http://shivan.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><b>Update on May 13th</b>:  A kind poster pointed out the presence of find() in zendmd and thus dmd.Devices.findDevice().  That means one can just do this instead:</p>
<p>
<code></p>
<pre>
import string

print [devip for devip in map(string.strip, open("iplist.txt", "r").readlines())
    if not dmd.Devices.findDevice(devip)]
</pre>
<p></code>
</p>
<p>Not only is it shorter its also a magnitude of order faster which shouldn&#8217;t be too surprising considering the evil in the original version.   Thanks Erik!</p>
]]></content:encoded>
			<wfw:commentRss>http://shivan.org/2008/05/12/zenoss-and-python-one-line-of-evil/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
