<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feedproxy.google.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feedproxy.google.com/~d/styles/itemcontent.css"?><!-- generator="lyceum/1.0.2" --><!-- This is 512 bytes of nonsense, since the Firefox 2 developers, in one of the strangest decisions ever, decidedthey would obsolete XML styles by overriding them without permission.  Furthermore, the developers appear to be disinterested in fixing this.  Therefore, we use the unofficial workaround, which includes fillingup the first 512 bytes of a document so that the sniffer doesn't encounter the RSS tag.  I really enjoyusing Firefox, but this particular behavior really annoys me! Anyway, since I'm almost at 512 characters, I'mgoing to ramble on for another minute in this comment, and then, without further adue, present you with avalid XML feed. --><rss 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:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Red Hat Magazine</title>
	<link>http://www.redhatmagazine.com</link>
	<description />
	<pubDate>Tue, 18 Nov 2008 22:02:42 +0000</pubDate>
	<generator>http://lyceum.ibiblio.org/?v=1.0.2</generator>
	<language>en</language>
			<thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feedproxy.google.com/RedHatMagazine?format=skin</thespringbox:skin><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><image><url>http://www.redhat.com/g/magazine/rhmag_logo.gif</url></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feedproxy.google.com/RedHatMagazine" type="application/rss+xml" /><feedburner:emailServiceId>RedHatMagazine</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feedproxy.google.com/RedHatMagazine" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeedproxy.google.com%2FRedHatMagazine" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:browserFriendly>Red Hat's online magazine about Red Hat, Fedora, and JBoss technologies.</feedburner:browserFriendly><item>
		<title>Video: Spotlight on oVirt</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/kM9QrnpbjV8/</link>
		<comments>http://www.redhatmagazine.com/2008/11/18/video-spotlight-on-ovirt/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 22:01:56 +0000</pubDate>
		<dc:creator>the editorial team</dc:creator>
		
		<category>multimedia</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/11/18/video-spotlight-on-ovirt/</guid>
		<description><![CDATA[

Download this video: [Ogg Theora]




We caught up with Chris Wright at the Red Hat Summit to discuss how the oVirt sessions were going, and why people are so excited to see open source bring a virtualization tool to the market. oVirt works across platforms and architectures to meet the challenge of managing virtualization in the [...]]]></description>
			<content:encoded><![CDATA[<div class="alignLeft">
<embed src="http://www.redhat.com/v/swf/flvplayer.swf?file=http://www.redhat.com/v/magazine/swf/OVIRT.flv&#038;autoStart=false&#038;image=http://www.redhat.com/g/magazine/video_stills/OVIRT_320X240.png" width="320" height="260" quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<div class="caption" >Download this video: [<a href="http://www.redhat.com/v/magazine/ogg/OVIRT.ogg">Ogg Theora</a>]
</div>
<p><!-- caption --></div>
<p><!-- alignLeft --><br />
<br clear="both" /><br />
We caught up with Chris Wright at the Red Hat Summit to discuss how the oVirt sessions were going, and why people are so excited to see open source bring a virtualization tool to the market. oVirt works across platforms and architectures to meet the challenge of managing virtualization in the datacenter. For more information, check out <a href="http://ovirt.org">http://ovirt.org</a>.
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=QmWzi1oN"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=wRn2nfID"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=wRn2nfID" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=k9GMTnpO"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=ZrhIKnzx"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=ZrhIKnzx" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=3rPRe6eR"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/kM9QrnpbjV8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/11/18/video-spotlight-on-ovirt/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/11/18/video-spotlight-on-ovirt/</feedburner:origLink></item>
		<item>
		<title>Introducing Pylons:  A hacker’s web framework</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/rX59wG7JyRU/</link>
		<comments>http://www.redhatmagazine.com/2008/11/05/introducing-pylons-a-hackers-web-framework/#comments</comments>
		<pubDate>Wed, 05 Nov 2008 20:22:20 +0000</pubDate>
		<dc:creator>Noah Gift</dc:creator>
		
		<category>Fedora</category>

		<category>Red Hat Enterprise Linux</category>

		<category>technical</category>

		<category>documentation</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/11/05/introducing-pylons-a-hackers-web-framework/</guid>
		<description><![CDATA[Python has a good reputation for tasks like systems programming, network programming, and scripting, but Python for the web is becoming red hot.  Part of this has to do with the very popular web framework Django, that was developed at a newspaper to help quickly create Content Management Sites.  . Another reason is [...]]]></description>
			<content:encoded><![CDATA[<p>Python has a good reputation for tasks like systems programming, network programming, and scripting, but Python for the web is becoming red hot.  Part of this has to do with the very popular web framework Django, that was developed at a newspaper to help quickly create Content Management Sites.  . Another reason is that Google App Engine&#8211;Google&#8217;s Cloud Computing offering for developers&#8211;only exposes a Python API.</p>
<p>If you are new to Python Web Development, then I&#8217;d recommend Django, as it is ideal for building CMS-type applications, social networking websites, and blogs. On the other hand, If you want a hacker&#8217;s framework, you might want to give Pylons a look. </p>
<p>Please note: By hacker, I am referring to the kind of hacker Eric Raymond refers to when he writes, &#8220;Becoming a hacker will take intelligence, practice, dedication, and hard work.  Therefore, you have to learn to distrust attitude and respect competence of every kind. Hackers won&#8217;t let posers waste their time, but they worship competence — especially competence at hacking, but competence at anything is valued.&#8221; </p>
<p>Ok, so what problem does a hacker&#8217;s framework solve that a framework like Django doesn&#8217;t?  According to some of the Pylons developers, their framework is geared to solve 80/20 problems. Most people—80% of people&#8211;want to build blogs, and CMS-type applications. And for that 80%, Django works just great. Of course, the other 20% is where Pylons comes in to play as a &#8220;hacker&#8217;s framework.&#8221;<a id="more-1063"></a></p>
<p>Philosophically, Pylons is quite different. Pylons abstracts third-party libraries, such as WebOb, Mako, SQLAlchemy, Routes, and Beaker, to make a &#8220;hacker&#8217;s brew.&#8221;  These libraries are loosely coupled&#8211;not in a internet marketing sense, but in a computer science sense. This means that it is quite easy to swap out the ORM, or templates, or URL routing, and create some alternate development stack.  Note, that another hacker&#8217;s framework, Werkzeug, also follows a similar philosophy (See the references for more details).</p>
<p>What does a hacker&#8217;s framework buy you?  Well, it allows you to change your web development paradigm.  You no longer need to think in terms of what you can do with the choices defined by a framework. It allows the experienced developer to transcend this potential trap, and think about the actual problem at hand. For example, it may be more productive to start by using SQLAlchemy (the object-relational mapper) by itself.</p>
<p>Once the data model is working as expected, then it could turn into a command line tool, then potentially a WXPython application instead of a web application.  Hacker&#8217;s frameworks let the developer decide what is best for them at any given situation.  Additionally, by focusing on loosely coupling the “best of breed” components, it allows the user of a “hacker” framework, to use literally, the best component for the job.  This extra power can come in handy with more complex problems.</p>
<h2>Setup</h2>
<p>In this article we dive into building an AJAX blog using Pylons.  We cheat by using the bookmark tagging site, Del.icio.us  as an admin interface that we don&#8217;t have to write.  When a user creates content on Delicious, the Google AJAX feed API allows that content to be displayed locally on the web page. This is one of the most efficient type of blog that someone can create, as it reuses existing code, APIs, and services.</p>
<h2>Building a Pylons AJAX blog</h2>
<p>To get started you can download the whole example and run it, or you can follow the steps below.  Note that in version control, each step is a separate Pylons project.</p>
<p><strong>[ Step 1] <a href="http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/1">http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/1</a></strong></p>
<p>1:  Download <a href="http://www.pylonshq.com/download/0.9.7/go-pylons.py">http://www.pylonshq.com/download/0.9.7/go-pylons.py</a></p>
<pre>
ngift@noah][H:10471][J:0]# python gopylons.py --no-site-packages pylonsblog
New python executable in pylonsblog/bin/python
Installing setuptools..........................done.
Searching for Pylons
[snip]
</pre>
<p><strong>Note:</strong> You will need to meet all requirements of the package.</p>
<p> 2: </p>
<pre>
cd pylonsblog
</pre>
<p> 3:  Active environ</p>
<pre>
source bin/activate
</pre>
<p> 4:  Make project</p>
<pre>
mkdir -p src
paster create --template=pylons ajaxblog
</pre>
<p> 5:  Get Pylons running</p>
<pre>
cd ajaxblog

paster serve development.ini
</pre>
<p> 6:  Make a controller</p>
<pre>
paster controller blog

cd ajaxblog/controller to verify

go to page:

http://localhost:5000/blog

See Hello World, change it.

"Hello Red Hat Magazine"
</pre>
<p><strong>[Step 2] <a href="http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/step2">http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/step2</a></strong></p>
<p> 7:  Change front page</p>
<p>  Add your own content to public/index.html</p>
<p> 8:  Add a couple of templates, and hook up to blog controller</p>
<p>Create base.html<br />
Create blog.html</p>
<p>Add this line to blog.html:  </p>
<pre>
Hello from blog.html template: Red Hat Magazine
</pre>
<p> 9:  Change controller to render template</p>
<p>Edit controller/blog.py to this:</p>
<pre>
class BlogController(BaseController):

    def index(self):
        # Return a rendered template
        #   return render('/some/template.mako')
        # or, Return a response
        return render('/blog.html')
</pre>
<p><strong>[Step 3] http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/step3</strong></p>
<p>10:  Get Buzzword compliant:  Adding AJAX, RSS, Mashup and Google</p>
<p>A.  Sign up for AJAX RSS Developer Key:</p>
<p><a href="http://code.google.com/apis/ajaxfeeds/">http://code.google.com/apis/ajaxfeeds/</a></p>
<p>B.  Add javascript Code to base.html<br />
C.  Call feed div in blog.html</p>
<p>11:  See RSS Feed appear</p>
<p>If you go to localhost:5000/blog you will see my last RSS feeds</p>
<p><strong>[Step 4] <a href="http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/step4">http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/step4</a></strong></p>
<p>Bonus Points:  Try to add persistent comments using the SQLAlchemy ORM on your own!</p>
<h2>Summary</h2>
<p>In this article we explored some of the ideas behind Pylons, a hacker&#8217;s framework, and how it differs from a philosophy framework, like Django or Ruby on Rails. Note by philosophy framework, I am referring to how a developer must abide by the opinions of the developer of the framework, such as in the case of Django templates where a developer is handcuffed against running code in the template. For example, their idea of perfection might be different then yours. Some people refer to this as being an &#8220;opinionated&#8221; framework. Each one has its purpose, and place. If you just want to make a Content Management website MS website for your American Literature class project, then maybe a hacker&#8217;s framework isn&#8217;t suited for you or the project, as it is overkill. On the other hand, if you want maximum flexibility, power, (and, of course, &#8220;street cred&#8221;) you might give a hacker&#8217;s framework a try.</p>
<p>Finally, we got into making an actual Pylons AJAX blog that used Delicious to suck in feeds. This was accomplished by reusing code via the Google AJAX Feed API. Ok, enough talk, get to hacking&#8230;.</p>
<p>Extra Credit:  If you are interested diving into a more complex Pylons project template on your own take a look at this <a href="http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/bonus_project_form_validation_jonathan_ellis">source code url</a>. Jonathan Ellis, a Python hacker known for his work with SQLAlchemy, has donated a do-it-yourself tutorial on using FormAlchemy to create a simple blog in Pylons.  I have included a link to his original article on the topic in the reference section.</p>
<h2>References</h2>
<p>Pylons Book:  <a href="http://pylonsbook.com/alpha1/toc">http://pylonsbook.com/alpha1/toc</a><br />
Google AJAX Feed API:  <a href="http://code.google.com/apis/ajaxfeeds/">http://code.google.com/apis/ajaxfeeds/</a><br />
SQLAlchemy: <a href="http://www.sqlalchemy.org/">http://www.sqlalchemy.org/</a><br />
Using SQLAlchemy:  <a href="http://www.ibm.com/developerworks/aix/library/au-sqlalchemy/">http://www.ibm.com/developerworks/aix/library/au-sqlalchemy/</a><br />
How To Become a Hacker:  <a href="http://www.catb.org/~esr/faqs/hacker-howto.html">http://www.catb.org/~esr/faqs/hacker-howto.html</a><br />
Google App Engine:  <a href="http://code.google.com/appengine/">http://code.google.com/appengine/</a><br />
WebOb: <a href="http://pythonpaste.org/webob/">http://pythonpaste.org/webob/</a><br />
Source Code For Example:  <a href="http://pyatl-pylons.googlecode.com/svn/trunk/">http://pyatl-pylons.googlecode.com/svn/trunk/</a><br />
Werkzeug (An alternate hacker&#8217;s framework):  <a href="http://werkzeug.pocoo.org">http://werkzeug.pocoo.org</a><br />
Loose Coupling Computer Science Definition:  <a href="http://en.wikipedia.org/wiki/Loose_coupling#Definition">http://en.wikipedia.org/wiki/Loose_coupling#Definition</a><br />
Pylons FormAlchemy How To: <a href="http://http://spyced.blogspot.com/2008/10/formalchemy-10.html">http://spyced.blogspot.com/2008/10/formalchemy-10.html</a><br />
Extra Credit Project: <a href="http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/bonus_project_form_validation_jonathan_ellis">http://code.google.com/p/pyatl-pylons/source/browse/#svn/trunk/bonus_project_form_validation_jonathan_ellis</a></p>
<h2>About the author</h2>
<p>Noah Gift is the co-author of &#8220;Python For Unix and Linux&#8221; by O&#8217;Reilly, and &#8220;Google App Engine in Action&#8221; by Manning. He is an author, speaker, consultant, and community leader, writing for publications such as IBM Developerworks, Red Hat Magazine, O&#8217;Reilly, Manning and MacTech.   He has a Master&#8217;s degree in CIS from Cal State Los Angeles, B.S. in Nutritional Science from Cal Poly San Luis Obispo, is an Apple and LPI certified sysadmin, and has worked at companies such as, Caltech, Disney Feature Animation, Sony Imageworks, Turner Studios, and&#8211;most recently&#8211;WetaDigital.
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=noBK6sjt"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=FkjgQXNr"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=FkjgQXNr" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=YyaPnOvu"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=kQ5YrWQ2"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=kQ5YrWQ2" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=V1KrhJdq"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/rX59wG7JyRU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/11/05/introducing-pylons-a-hackers-web-framework/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/11/05/introducing-pylons-a-hackers-web-framework/</feedburner:origLink></item>
		<item>
		<title>Interview: Chris Morgan on Jopr</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/MaNL8QsvTXc/</link>
		<comments>http://www.redhatmagazine.com/2008/10/31/interview-chris-morgan-on-jopr/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 20:18:50 +0000</pubDate>
		<dc:creator>Ruth Suehle</dc:creator>
		
		<category>JBoss</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/31/interview-chris-morgan-on-jopr/</guid>
		<description><![CDATA[JBoss Operations Network (JON) recently became available as an open source solution through the Jopr project. (That&#8217;s pronounced &#8220;jopper.&#8221;) We interviewed Chris Morgan from Red Hat&#8217;s JON group to learn more.
1.  What does Jopr do?
Jopr is an open source project that provides an integrated  management platform that simplifies the development, testing, deployment, and [...]]]></description>
			<content:encoded><![CDATA[<p>JBoss Operations Network (JON) recently became available as an open source solution through the Jopr project. (That&#8217;s pronounced &#8220;jopper.&#8221;) We interviewed Chris Morgan from Red Hat&#8217;s JON group to learn more.</p>
<p><b>1.  What does Jopr do?</b><br />
<a href="http://www.jboss.org/jopr/">Jopr</a> is an open source project that provides an integrated  management platform that simplifies the development, testing, deployment, and monitoring of your JBoss technologies. From a single console you can inventory and monitor resources from the operating system to deployed applications. It also lets users control and audit application configurations to standardize deployments. It&#8217;s a robust solution to manage, monitor, and tune your applications for improved visibility, performance, and availability. </p>
<p><a id="more-1069"></a></p>
<p><b>2.  What about Embedded Jopr?</b><br />
Embedded Jopr provides many of the same features as Jopr, but only for a single instance or (in the near future) a cluster of JBoss technologies. It&#8217;s essentially an administration console to manage JBoss  products&#8211;users don&#8217;t have to rely so much on command line and XML configuration to set up their JBoss environment and applications.</p>
<p>It doesn&#8217;t offer the extensive monitoring and historical auditing capabilities of Jopr, but it is perfect for an individual developer or administrator to use. In contrast, Jopr is what you use to manage the entire enterprise or multiple instances and clusters from one location.</p>
<p><b>3.  How does Jopr fit in with JON and RHQ?</b><br />
RHQ is the platform on which Jopr is written. RHQ provides a very extensible plug-in technology that allows for many other technologies to be managed. Jopr includes all of the existing RHQ plugins, plus JBoss-specific ones. In turn, Jopr is the true upstream to commercial JBoss Operations Network (JON).</p>
<p>So you could think of it this way: RHQ is upstream to Jopr, which is upstream to JBoss Operations Network.</p>
<p><b>4. How did the project get started?</b><br />
The project has really been in the works for a while, starting when it was becoming clear that JBoss needed a tool to help enable solutions for &#8220;non-developers&#8221; as the JBoss footprint continued to grow. </p>
<p>Typically, the groups responsible for operations in an environment are not the developers, so they need a different set of tools.  Most operations staff are concerned  with uptime and making sure the environment is compliant and ready to use for the customers they support. Jopr is the open source solution to provide that for JBoss technologies.</p>
<p><b>5. Tell us about the name.</b><br />
Well, the team actually went through what seemed like hundreds of names, but almost every one we were close to choosing had some sort of issue where it was taken, trademarked, or just not &#8220;sticky&#8221; enough. So legend has it that a 1983 Matthew Broderick and Ally Sheedy flick called <em>War Games</em> was the eventual inspiration.</p>
<p>The real star of the movie was an artificial intelligence computer the military used called W.O.P.R.  (pronounced whopper). From this, Jopr was born (it&#8217;s not a acronym as in the movie&#8211;that would have opened an entire other set of issues for getting a trademark). So it met the criteria of not being taken, it could be trademarked. And it was definitely &#8220;sticky,&#8221; as there is really no project, especially not in the Java space, that is even close.</p>
<p><b>6. So how is Embedded Jopr different from the consoles that have shipped with JBoss Application Server in the past?</b><br />
Previous consoles for the application server were designed with a &#8220;developer&#8221; in mind, so they required some JBoss and Java expertise to use. With Embedded Jopr (and really, Jopr, too), it&#8217;s all about enabling JBoss for operations by making administrative and management tasks easier. We hope that with the open source community helping us, we can continue to push that goal forward.</p>
<p><b>7. Can anyone contribute? How would they get involved?</b><br />
Absolutely!  Just go to <a href="http://www.jboss.org/jopr">http://www.jboss.org/jopr</a> or <a href="http://www.jboss.org/embjopr">http://www.jboss.org/embjopr</a> and join us!</p>
<p><b>Related links</b><br />
<a href="http://www.jboss.org/jopr">http://www.jboss.org/jopr</a><br />
<a href="http://www.jboss.org/embjopr">http://www.jboss.org/embjopr</a><br />
<a href="http://www.jboss.org/feeds/">http://www.jboss.org/feeds/</a><br />
(scroll down to JBoss ON section for many of the development team blogs)<br />
<a href="http://www.rhq-project.org">http://www.rhq-project.org</a></p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=EjHgbmu2"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=fenj9CIm"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=fenj9CIm" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=20hnhfkE"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=lopMvbrv"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=lopMvbrv" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=Bbeq3ScA"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/MaNL8QsvTXc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/31/interview-chris-morgan-on-jopr/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/31/interview-chris-morgan-on-jopr/</feedburner:origLink></item>
		<item>
		<title>Video: Spotlight on PackageKit</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/Ge7aFH7AlEc/</link>
		<comments>http://www.redhatmagazine.com/2008/10/29/video-spotlight-on-packagekit/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 22:48:55 +0000</pubDate>
		<dc:creator>the editorial team</dc:creator>
		
		<category>multimedia</category>

		<category>technical</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/29/video-spotlight-on-packagekit/</guid>
		<description><![CDATA[

Download this video: [Ogg Theora]




In the second installment of the Spotlight On series, we feature Red Hat engineer Richard Hughes on the fantastic new abstraction layer called PackageKit. PackageKit allows users to manage packages in a secure way using a cross-distro, cross-architecture API. This maintains a common set of GUI features, enabling the user to [...]]]></description>
			<content:encoded><![CDATA[<div class="alignLeft">
<embed src="http://www.redhat.com/v/swf/flvplayer.swf?file=http://www.redhat.com/v/magazine/swf/HughesRHM.flv&#038;autoStart=false&#038;image=http://www.redhat.com/g/magazine/packagekit2.png" width="320" height="260" quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<div class="caption" >Download this video: [<a href="http://www.redhat.com/v/magazine/ogg/HughesRHM.ogg">Ogg Theora</a>]
</div>
<p><!-- caption --></div>
<p><!-- alignLeft --><br />
<br clear="both" /><br />
In the second installment of the Spotlight On series, we feature Red Hat engineer Richard Hughes on the fantastic new abstraction layer called PackageKit. PackageKit allows users to manage packages in a secure way using a cross-distro, cross-architecture API. This maintains a common set of GUI features, enabling the user to have a better session experience overall. For more information, visit <a href="http://www.packagekit.org">www.packagekit.org</a>. <br clear="both" />
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=lrpzV2tu"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=xSt5PEuZ"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=xSt5PEuZ" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=fHhHSrCP"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=ot2FDODu"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=ot2FDODu" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=pFNEyhb5"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/Ge7aFH7AlEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/29/video-spotlight-on-packagekit/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/29/video-spotlight-on-packagekit/</feedburner:origLink></item>
		<item>
		<title>Adding new functions to Red Hat Enterprise Linux: A process primer</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/pdZ-gpgcMLE/</link>
		<comments>http://www.redhatmagazine.com/2008/10/17/adding-new-functions-to-red-hat-enterprise-linux-a-process-primer/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 18:10:08 +0000</pubDate>
		<dc:creator>Russell Doty</dc:creator>
		
		<category>Red Hat Enterprise Linux</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/17/adding-new-functions-to-red-hat-enterprise-linux-a-process-primer/</guid>
		<description><![CDATA[People often wonder how to get new capabilities—new packages, new features in existing packages, or even bug fixes—included in Red Hat Enterprise Linux. The process for doing so is straightforward, but may be foreign to those with a background in traditional software products. 
To summarize, the process is:
1)Get the new code accepted upstream.
2)Get it included [...]]]></description>
			<content:encoded><![CDATA[<p>People often wonder how to get new capabilities—new packages, new features in existing packages, or even bug fixes—included in Red Hat Enterprise Linux. The process for doing so is straightforward, but may be foreign to those with a background in traditional software products. </p>
<p>To summarize, the process is:<br />
1)Get the new code accepted upstream.<br />
2)Get it included in Fedora.<br />
3)Get it included in Red Hat Enterprise Linux. </p>
<p>Although this article focuses on the Linux kernel, the steps apply to all Red Hat Enterprise Linux components and packages.</p>
<p>The key element in the process is that Red Hat tracks upstream. This means that Red Hat works closely with the open source community. Any new features must first be accepted upstream before they&#8217;re added to Red Hat Enterprise Linux. <a id="more-1065"></a></p>
<p>There are numerous benefits to this approach. The biggest is that it keeps the OS and its users closely aligned with Linux as it evolves. There are no dead-end branches, incompatible features, or  Red Hat-specific changes that must be maintained. New features added to Linux and key packages are easily integrated. It also means that all new development can and must be accepted by the community before integration.</p>
<p>There are also a number of challenges to the open source model. Some of these are misconceptions, while others have at least a kernel of truth.</p>
<p><strong>Open source: Multiple paths to new capabilities</strong><br />
With proprietary software, only the owner of the software can add new features and capabilities. This makes the question of new functions quite straightforward. There is one source for new features, and they either agree to or reject a request for a new feature. If they don&#8217;t agree to add the requested function, there&#8217;s no recourse.</p>
<p>With open source development, there are many ways to add a new capability:</p>
<ul>
<li>The original author of the package can add it.</li>
<li>The Linux distributor (such as Red Hat) can add it.
</li>
<li>You can customize your installation by adding it yourself.
</li>
<li>You can contract with or persuade someone to add it for you.
</li>
<li>Perhaps most importantly, anyone can add it.
</li>
</ul>
<p>With open source, it isn&#8217;t a question of who can add or enhance a feature or capability, it is a question of how widely that feature will be adopted. This changes the dynamics of adding new features from one of focusing solely on writing the code that implements the feature to one of addressing  creation, integration, acceptance, and adoption. </p>
<p>Of course you can make any changes you want to your own copy of the code. But if you want broad use and support of your new features or bugfixes, you need to go through an  acceptance process where other groups are persuaded to distribute and support the new code. </p>
<p>There is no single point of control in open source—there is no one who can order a new feature to be accepted. Red Hat can&#8217;t demand that others accept new developments by Red Hat. By virtue of being a recognized leader, we have considerable influence, but we must work within the community structure.  This community includes not just programmers, but interface designers, testers, documentation writers, project managers, support people, and marketers.</p>
<p><strong>So what&#8217;s Red Hat&#8217;s involvement?<br />
</strong>Red Hat is both a developer/contributor and an integrator. We consciously chose to do targeted development and to build on the work of thousands of other participants in the open source community. That is, we want to be a part of this community, rather than going on our own. In some cases we look to the people with a vested interest in a new feature—for example, a driver for a new piece of hardware—to develop the needed software and push it upstream (i.e. get it accepted). </p>
<p>In part 2 of this article, we&#8217;ll talk about open source development and licenses.
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=rPLVKRAa"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=REkhvCWt"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=REkhvCWt" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=Vp9FZadp"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=iZ4CgLue"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=iZ4CgLue" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=3eLgtpom"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/pdZ-gpgcMLE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/17/adding-new-functions-to-red-hat-enterprise-linux-a-process-primer/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/17/adding-new-functions-to-red-hat-enterprise-linux-a-process-primer/</feedburner:origLink></item>
		<item>
		<title>Video: Fedora 10 Connection Sharing</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/jN2d91mJy2I/</link>
		<comments>http://www.redhatmagazine.com/2008/10/16/video-fedora-10-connection-sharing/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 18:27:35 +0000</pubDate>
		<dc:creator>the editorial team</dc:creator>
		
		<category>Fedora</category>

		<category>multimedia</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/16/video-fedora-10-connection-sharing/</guid>
		<description><![CDATA[

Download this video: [Ogg Theora]Video by Colby Hoke.




Red Hat engineer Dan Williams demonstrates the shared networking capabilities of Fedora 10.


]]></description>
			<content:encoded><![CDATA[<div class="alignLeft">
<embed src="http://www.redhat.com/v/swf/flvplayer.swf?file=http://www.redhat.com/v/swf/Fedora10ConnectionSharing.flv&#038;autoStart=false&#038;image=http://www.redhat.com/g/magazine/video_stills/Fedora10ConnectionSharing.png" width="320" height="260" quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<div class="caption" >Download this video: [<a href="http://www.redhat.com/v/ogg/Fedora10ConnectionSharing.ogg">Ogg Theora</a>]<br />Video by Colby Hoke.
</div>
<p><!-- caption --></div>
<p><!-- alignLeft --><br />
<br clear="both" /><br />
Red Hat engineer Dan Williams demonstrates the shared networking capabilities of Fedora 10.<br />
<br clear="both" />
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=LdPdifmR"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=4S4ya9OH"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=4S4ya9OH" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=JjdyEypy"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=jQfx2vVm"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=jQfx2vVm" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=K5N5CE67"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/jN2d91mJy2I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/16/video-fedora-10-connection-sharing/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/16/video-fedora-10-connection-sharing/</feedburner:origLink></item>
		<item>
		<title>Video: Spotlight on Extra Packages for Enterprise Linux (EPEL)</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/VejpAmY7ZtY/</link>
		<comments>http://www.redhatmagazine.com/2008/10/09/video-spotlight-on-extra-packages-for-enterprise-linux-epel/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 22:34:50 +0000</pubDate>
		<dc:creator>the editorial team</dc:creator>
		
		<category>Red Hat Enterprise Linux</category>

		<category>multimedia</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/09/video-spotlight-on-extra-packages-for-enterprise-linux-epel/</guid>
		<description><![CDATA[

Download this video: [Ogg Theora]Video by Islam Elsedoudi.Produced by Kim Jokisch and Jesse Paddock.




We here at Red Hat are pleased to bring you a brand new set of videos aimed at showing off the latest and greatest enhancements in our technologies&#8211;featuring the very people who helped create them in the first place. The &#8220;SPOTLIGHT ON&#8221; [...]]]></description>
			<content:encoded><![CDATA[<div class="alignLeft">
<embed src="http://www.redhat.com/v/swf/flvplayer.swf?file=http://www.redhat.com/v/magazine/swf/0930_EPEL_FINAL.flv&#038;autoStart=false&#038;image=http://www.redhat.com/g/magazine/video_stills/0930_EPEL_FINAL.png" width="320" height="260" quality="high" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></p>
<div class="caption" >Download this video: [<a href="http://www.redhat.com/v/magazine/ogg/0930_EPEL_FINAL.ogg">Ogg Theora</a>]<br />Video by Islam Elsedoudi.<br />Produced by Kim Jokisch and Jesse Paddock.
</div>
<p><!-- caption --></div>
<p><!-- alignLeft --><br />
<br clear="both" /><br />
We here at Red Hat are pleased to bring you a brand new set of videos aimed at showing off the latest and greatest enhancements in our technologies&#8211;featuring the very people who helped create them in the first place. The &#8220;SPOTLIGHT ON&#8221; series highlights the ways in which collaboration drives innovation by looking at projects that have been improved by community input. In our first installment, we track down Red Hat&#8217;s own Karsten Wade and Stephen Smoogen from the University of New Mexico to talk about Extra Packages for Enterprise Linux (EPEL), the Fedora-sourced repository of add-on packages for Red Hat Enterprise Linux.  They discuss how EPEL is a tool for user-driven innovation that comes from and benefits enterprise customers with more stable code and lower business costs.<br />
<br clear="both" />
</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=wZScf8Oi"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=b6TF0t5U"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=b6TF0t5U" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=JM5ynrBa"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=mT0M2MoU"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=mT0M2MoU" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=pP5jbQEY"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/VejpAmY7ZtY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/09/video-spotlight-on-extra-packages-for-enterprise-linux-epel/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/09/video-spotlight-on-extra-packages-for-enterprise-linux-epel/</feedburner:origLink></item>
		<item>
		<title>This isn’t your grandpappy’s dd command</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/64rc6WXRqKQ/</link>
		<comments>http://www.redhatmagazine.com/2008/10/02/this-isnt-your-grandpappys-dd-command/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 15:03:10 +0000</pubDate>
		<dc:creator>Noah Gift</dc:creator>
		
		<category>Uncategorized</category>

		<category>technical</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/10/02/this-isnt-your-grandpappys-dd-command/</guid>
		<description><![CDATA[co-authored with Grig Gheorghiu
Background
The dd command is one of those ancient UNIX tools that is extremely powerful, yet at the same time, the syntax can make it feel slightly archaic. A lot of seasoned sysadmins and developers still remember the first time they saw the dd command used by a bearded wizard. He might have [...]]]></description>
			<content:encoded><![CDATA[<p><em>co-authored with Grig Gheorghiu</em></p>
<h2>Background</h2>
<p>The dd command is one of those ancient UNIX tools that is extremely powerful, yet at the same time, the syntax can make it feel slightly archaic. A lot of seasoned sysadmins and developers still remember the first time they saw the dd command used by a bearded wizard. He might have used it to test the disk I/O, capture a disk image, or restore it. </p>
<p>In some ways, dd can seem like Old Spice&#8211;only the guys over 60 use it.  But the younger generation should know that dd still has some tricks up its sleeve. In this article, we&#8217;re going to put a new twist on this old favorite and show how grandpappy really does know best sometimes. The new twist is to mix dd with Python and the Google Chart API to make a UNIX 2.0 mashup tool. (&#8221;UNIX 2.0&#8243; is a play on words for what happens when you change the original behavior of a tool like dd to make it do something a bit different.)  <a id="more-1058"></a></p>
<h2>Setup</h2>
<p>For this article, we assume you&#8217;re running Fedora Core 8. We&#8217;re actually just renting some time from Amazon in all of these examples. To do that we allocated a 1 GB Elastic Block Storage volume from Amazon and attached it as the device /dev/sdd to an Amazon Machine Instance (AMI) running Fedora Core 8.  <a href="http://www.redhat.com/solutions/cloud/">Learn more about using Amazon Cloud Computing with Red Hat.</a></p>
<h2>Using dd for disk benchmarking with Google Charts API and Python</h2>
<p>We benchmarked the throughput of the disk by running the dd command with various block sizes from 128 KB to 1 MB. (Note: If you want to run the script on your own machine, make sure that the volume you use doesn&#8217;t contain any valuable data, because the data will be erased by the dd command. Remember, data loss makes grandpappy mad!)</p>
<p>For the benchmark, we wrote a Python script that uses the commands module to run and capture the output of the dd command. The script also uses the csv module to generate a comma-separated values file so that we can graph the results later. For this example, we chose to graph the results using the Google Chart API.</p>
<pre class="screen">
#!/usr/bin/env python
import commands
import re
import csv
</pre>
<p>Next we define the main function, which takes a device name and a block size as parameters, and returns the throughput measured with dd and the unit of measure (e.g. MB/s). We use the regular expression module (re) to isolate the throughput value and unit of measure from the output of the dd command.</p>
<p><em>Editor&#8217;s note: In the code below,  <code>unit = ""</code> has been added since the article was posted.</em></p>
<pre class="screen">
def get_disk_throughput(device, blocksize):

    blocksize = str(blocksize) + 'k'

    cmd = "dd if=/dev/zero of=%s bs=%s" % (device, blocksize)

    output = commands.getoutput(cmd)

    throughput = 0

    unit = ""

    for line in output.split('n'):

        s = re.search(' copied,.*, (S+) (S+)$', line)

        if s:

            throughput = s.group(1)

            unit = s.group(2)

            break

    return (throughput, unit)
</pre>
<p>Here is the portion of the script that is executed when it&#8217;s run from the command line. We open a csv file and associate it with a csv writer. We then use the writerow method of the writer to append the header and each data row. We iterate over the list of block sizes and call the get_disk_throughput function for each block size.</p>
<p>We also compose the Google Chart URL by filling in the exact data values, represented by the throughput numbers that we obtain from the get_disk_throughput function. Then we print the URL to stdout. If you <a href="http://chart.apis.google.com/chart?cht=bvs&#038;chtt=Disk%20throughput&#038;chs=400x250&#038;chd=t:62.6,63.6,63.0,63.7&#038;chl=128k%7C256k%7C512k%7C1024k&#038;chxt=x,y&#038;chxr=1,0,73.7&#038;chds=0,73.7">check the URL</a>, you&#8217;ll see the chart generated with our data. </p>
<p>For details on the Google Chart API and what each parameter to the URL represents, see the  <a href="http://code.google.com/apis/chart">Developer&#8217;s Guide</a>.</p>
<p><em>Editor&#8217;s note: This is an updated version of the code that originally appeared with this article. It has command-line argument processing, and it composes the Google Chart URL in a better, more self-explanatory fashion. See the end of the article for the original.</em></p>
<pre class="screen">
f = open('disk_throughput.csv', 'w')
        writer = csv.writer(f)
        writer.writerow( ('Block size (KB)', 'Throughput') )
        blocksizes = [128, 256, 512, 1024]
        gchart_url = "http://chart.apis.google.com/chart?"
        gchart_type = "cht=bvs"
        gchart_title = "&#038;chtt=Disk%20throughput"
        gchart_size = "&#038;chs=400x250"
        gchart_axis_labels = "&#038;chxt=x,y"
        gchart_data = "&#038;chd=t:"
        gchart_labels = "&#038;chl="
        max_t = 0.0
        for blocksize in blocksizes:
            (t, u) = get_disk_throughput(device, blocksize)
            if float(t) > max_t:
                max_t = float(t)
            writer.writerow( (blocksize, t) )
            print 'Block Size: %sk Throughput: %s %s' % (blocksize, t, u)
            gchart_data += t + ","
            gchart_labels += str(blocksize) + "k" + "|"
        gchart_data = gchart_data.rstrip(',')
        gchart_labels = gchart_labels.rstrip('|')
        gchart_axis_range = "&#038;chxr=1,0," + str(max_t+10.0)
        gchart_scaling = "&#038;chds=0," + str(max_t+10.0)
        gchart_url += gchart_type + gchart_title + gchart_size + gchart_data + gchart_labels
        gchart_url += gchart_axis_labels + gchart_axis_range + gchart_scaling
        print "Google Chart URL (just paste in a browser):", gchart_url
    finally:
        f.close()</pre>
<p>Here is the output of the script in one of our runs:</p>
<pre class="screen">
Block Size: 128 Throughput: 62.8 MB/s

Block Size: 256 Throughput: 61.8 MB/s

Block Size: 512 Throughput: 57.1 MB/s

Block Size: 1024 Throughput: 56.5 MB/s
</pre>
<p>Now here is the actual image that gets created:<br />
<a href="http://www.flickr.com/photos/redhatmagazine/2907593650/"><img src="http://farm4.static.flickr.com/3151/2907593650_32339224ba_o.png"></a></p>
<h2>Full script</h2>
<pre class="screen">
#!/usr/bin/env python

import sys
import commands
import re
import csv
from optparse import OptionParser

def get_disk_throughput(device, blocksize):
    blocksize = str(blocksize) + 'k'
    cmd = "dd if=/dev/zero of=%s bs=%s" % (device, blocksize)
    output = commands.getoutput(cmd)
    throughput = 0
    unit = ""
    for line in output.split('n'):
        s = re.search(' copied,.*, (S+) (S+)$', line)
        if s:
            throughput = s.group(1)
            unit = s.group(2)
            break
    return (throughput, unit)

if __name__ == "__main__":

    usage = "usage: %prog options"
    parser = OptionParser(usage=usage)
    parser.add_option("-d", "--device", dest="device",
            help="Disk device to operate on (NOTE: any data on that device will be lost)")
    (options, args) = parser.parse_args()
    device = options.device
    if not device:
        parser.print_help()
        sys.exit(1)

    try:
        f = open('disk_throughput.csv', 'w')
        writer = csv.writer(f)
        writer.writerow( ('Block size (KB)', 'Throughput') )
        blocksizes = [128, 256, 512, 1024]
        gchart_url = "http://chart.apis.google.com/chart?"
        gchart_type = "cht=bvs"
        gchart_title = "&#038;chtt=Disk%20throughput"
        gchart_size = "&#038;chs=400x250"
        gchart_axis_labels = "&#038;chxt=x,y"
        gchart_data = "&#038;chd=t:"
        gchart_labels = "&#038;chl="
        max_t = 0.0
        for blocksize in blocksizes:
            (t, u) = get_disk_throughput(device, blocksize)
            if float(t) > max_t:
                max_t = float(t)
            writer.writerow( (blocksize, t) )
            print 'Block Size: %sk Throughput: %s %s' % (blocksize, t, u)
            gchart_data += t + ","
            gchart_labels += str(blocksize) + "k" + "|"
        gchart_data = gchart_data.rstrip(',')
        gchart_labels = gchart_labels.rstrip('|')
        gchart_axis_range = "&#038;chxr=1,0," + str(max_t+10.0)
        gchart_scaling = "&#038;chds=0," + str(max_t+10.0)
        gchart_url += gchart_type + gchart_title + gchart_size + gchart_data + gchart_labels
        gchart_url += gchart_axis_labels + gchart_axis_range + gchart_scaling
        print "Google Chart URL (just paste in a browser):", gchart_url
    finally:
        f.close()</pre>
<h2>Summary</h2>
<p>In this article we shattered the myth that you must be 60, have a massive grey beard, and have worked at Bell Labs to use the dd command. Even for a newer generation, dd can be used in some inventive ways. We combined Python, the Google Chart API, and Red Hat on Amazon&#8217;s cloud computing infrastructure to create a novel way to measure and chart disk I/O and performance. Go celebrate by buying yourself a bottle of Old Spice.</p>
<h2>References</h2>
<p>Python: <a href="http://www.python.org/">http://www.python.org/</a><br />
dd example scripts:  <a href="http://tldp.org/LDP/abs/html/extmisc.html">http://tldp.org/LDP/abs/html/extmisc.html</a><br />
Google Chart API:  <a href="http://code.google.com/apis/chart/">http://code.google.com/apis/chart/</a></p>
<h2>Original code</h2>
<pre class="screen">
if __name__ == "__main__":

    try:

        f = open('disk_throughput.csv', 'w')

        writer = csv.writer(f)

        writer.writerow( ('Block size (KB)', 'Throughput') )

        device = '/dev/sdd'

        blocksizes = [128, 256, 512, 1024]

        google_chart_url = "http://chart.apis.google.com/chart?cht=bvs&#038;chd=t:"

        google_chart_data = ""

        google_chart_labels = ""

        max_t = 0.0

        for blocksize in blocksizes:

            (t, u) = get_disk_throughput(device, blocksize)

            if float(t) > max_t:

                max_t = float(t)

            writer.writerow( (blocksize, t) )

            print 'Block Size: %s Throughput: %s %s' % (blocksize, t, u)

            google_chart_data += t + ","

            google_chart_labels += str(blocksize) + "k" + "|"

        google_chart_data = google_chart_data.rstrip(',')

        google_chart_labels = google_chart_labels.rstrip('|')

        google_chart_url += google_chart_data +"&#038;chl=" + google_chart_labels

        google_chart_url += "&#038;chtt=Disk%20throughput" +"&#038;chs=400x250&#038;chxt=x,y"

        google_chart_url += "&#038;chxr=1,0,%s&#038;chds=0,%s" % (str(max_t+10.0), str(max_t+10.0))

        print google_chart_url

    finally:

        f.close()
</pre>
<h2>Authors</h2>
<p><b>Noah Gift</b> is the co-author of <em>Python For Unix and Linux</em> by O&#8217;Reilly, and <em>Google App Engine in Action</em> by Manning. He is an author, speaker, consultant, and community leader, writing for publications such as IBM Developerworks, Red Hat Magazine, O&#8217;Reilly, Manning, and MacTech. He has a master&#8217;s degree in CIS from Cal State Los Angeles, a B.S. in nutritional science from Cal Poly San Luis Obispo, and is an Apple and LPI certified sys admin. He&#8217;s worked at companies that include Caltech, Disney Feature Animation, Sony Imageworks, Turner Studios, and most recently, WetaDigital.</p>
<p><strong>Grig Gheorghiu</strong> is the director of technology for RIS Technology, a web hosting company based in Los Angeles. Grig has 15 years industry experience, during which time he has worked as a programmer, research lab manager, system/network/security architect, IT consultant, and lead test engineer.</p>
<p>Grig is an active member of the Python and agile testing communities. He maintains a <a href="http://agiletesting.blogspot.com">blog</a> dedicated to agile testing, Python programming, and automated testing tools and techniques.  Grig is the founder of the Southern California Python Interest Group, aka <a href="http://socal-piggies.org">“the SoCal Piggies”</a>. He lives in Los Angeles with his wife and two children.</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=t5yXv7KJ"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=VtQWCO6b"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=VtQWCO6b" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=8zpV8Wms"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=bQnlMw9V"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=bQnlMw9V" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=CajUbBBF"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/64rc6WXRqKQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/10/02/this-isnt-your-grandpappys-dd-command/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/10/02/this-isnt-your-grandpappys-dd-command/</feedburner:origLink></item>
		<item>
		<title>Tips and tricks: What TCP/IP ports are required to be open on an RHN Satellite, Proxy or Client system?</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/SeUVQ7vvD30/</link>
		<comments>http://www.redhatmagazine.com/2008/09/30/tips-and-tricks-what-tcpip-ports-are-required-to-be-open-on-an-rhn-satellite-proxy-or-client-system/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 13:10:32 +0000</pubDate>
		<dc:creator>the editorial team</dc:creator>
		
		<category>Uncategorized</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/09/30/tips-and-tricks-what-tcpip-ports-are-required-to-be-open-on-an-rhn-satellite-proxy-or-client-system/</guid>
		<description><![CDATA[For Satellite:
If the Satellite server is &#8220;connected&#8221;, then it will initiate outbound connections to ports 80 and 443 on the Red Hat Network (RHN) hosted service (rhn.redhat.com / satellite.rhn.redhat.com). Access to these hosts and ports should not be restricted to ensure correct functioning of the satellite system. If required, an HTTP(S) proxy may be used, [...]]]></description>
			<content:encoded><![CDATA[<p><b>For Satellite:</b><br />
If the Satellite server is &#8220;connected&#8221;, then it will initiate outbound connections to ports 80 and 443 on the <a href="http://www.rhn.redhat.com">Red Hat Network</a> (RHN) hosted service (<a href="http://www.rhn.redhat.com">rhn.redhat.com</a> / <a href="http://www.satellite.rhn.redhat.com">satellite.rhn.redhat.com</a>). Access to these hosts and ports should not be restricted to ensure correct functioning of the satellite system. If required, an HTTP(S) proxy may be used, by passing the &#8220;<tt class="command">&#8211;http-proxy</tt>&#8221; option to the &#8220;<tt class="command">satellite-sync</tt>&#8221; command.</p>
<p>If using a proxy server, Satellite will initiate connections to port <tt class="command">5222</tt> on each proxy server connected. This is used for communications relating to the &#8220;<tt class="comment">OSA</tt>&#8221; service (also known as &#8220;<tt class="command">Push to Client</tt>&#8220;). If using the OSA service, access to this port should not be restricted.</p>
<p>   <a id="more-1056"></a></p>
<p>A Satellite service will also connect to individual client systems on port <tt class="command">4545</tt> if the monitoring service be enabled on these specific systems. This port needs to be unrestricted if the RHN Monitoring service is being used.</p>
<p><b>For Proxy:</b></p>
<p>The RHN proxy server will connect to ports <tt class="command">80</tt> and <tt class="command">443</tt> on the &#8220;upstream&#8221; system, either RHN Hosted or an internal Satellite server.</p>
<p>If the Monitoring Scout is enabled on a proxy server, then the proxy will initiate connections to port <tt class="command">4545</tt> on Monitoring-enabled client systems.</p>
<p><b>For Client Systems:</b></p>
<p>Client systems will initiate connections to ports <tt class="command">80</tt> and <tt class="command">443</tt> of their upstream RHN server (Satellite, Proxy or RHN Hosted).</p>
</p>
<p>If OSA is being used, then the client systems will also connect to the Jabber service running on the Satellite or Proxy server, on port <tt class="command">5269</tt>.</p>
<p class="authorblurb">Red Hat&#8217;s customer service and support teams receive technical support questions from users all over the world. Red Hat technicians add the questions and answers to Red Hat Knowledgebase on a daily basis. Access to <a href="http://kbase.redhat.com/">Red Hat Knowledgebase</a> is free. Red Hat Magazine offers a preview into the Red Hat Knowledgebase by highlighting some of the most recent entries. The information provided in this article is for your information only. The origin of this information may be internal or external to Red Hat. While Red Hat attempts to verify the validity of this information before it is posted, Red Hat makes no express or implied claims to its validity.</p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=AtcLK54h"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=0bnFt0nC"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=0bnFt0nC" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=XnnF0aFQ"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=2z3rILkO"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=2z3rILkO" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=zIkmsc0i"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/SeUVQ7vvD30" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/09/30/tips-and-tricks-what-tcpip-ports-are-required-to-be-open-on-an-rhn-satellite-proxy-or-client-system/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/09/30/tips-and-tricks-what-tcpip-ports-are-required-to-be-open-on-an-rhn-satellite-proxy-or-client-system/</feedburner:origLink></item>
		<item>
		<title>ccmixter: Red Hat soundscape, shared with you</title>
		<link>http://feedproxy.google.com/~r/RedHatMagazine/~3/PbS6DpExBxs/</link>
		<comments>http://www.redhatmagazine.com/2008/09/25/ccmixter-red-hat-soundscape-shared-with-you/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 20:06:08 +0000</pubDate>
		<dc:creator>Napoleon Wright</dc:creator>
		
		<category>multimedia</category>

		<category>music</category>

		<guid isPermaLink="false">http://www.redhatmagazine.com/2008/09/25/ccmixter-red-hat-soundscape-shared-with-you/</guid>
		<description><![CDATA[If you&#8217;ve ever watched a video from Red Hat Magazine, you&#8217;ve probably heard the soundtracks in the background.  Whether it&#8217;s the remixable Birdsong video or one of our other interviews or overviews, the music we use is often created in-house by our soundscape specialist.  Napoleon creates custom music and animations for various Red [...]]]></description>
			<content:encoded><![CDATA[<p><em>If you&#8217;ve ever watched a video from Red Hat Magazine, you&#8217;ve probably heard the soundtracks in the background.  Whether it&#8217;s <a href="http://www.redhatmagazine.com/2007/08/24/birdsong-a-requiem-for-drm/">the remixable Birdsong video</a> or one of our <a href="http://www.redhatmagazine.com/category/multimedia/">other interviews or overviews</a>, the music we use is often created in-house by our soundscape specialist.  Napoleon creates custom music and animations for various Red Hat projects, as well as commercial materials and custom beats, lyrics, and compositions.  In his free time he enjoys sampling 70s soul records to create beats for local hip-hop artists. And now he&#8217;s here to share some of his work with you.</em></p>
<p>Everybody wants to be heard. Some of us have a rhythm to go along with it.</p>
<p>I was introduced to ccmixter a couple months ago and have been hooked ever since. It is a utopia of sound for music makers and mixers alike.</p>
<p>From acapellas and samples to remixes, ccmixter wants you to download, sample, cut-up, and share music of all types. Some artists post entire albums for the community to remix.</p>
<p>Best of all, it&#8217;s all licensed under Creative Commons so there&#8217;s no worries. </p>
<p>Check out <a href="http://ccmixter.org/people/Nwright/uploads">my page of remixes</a>. </p>
<p><em>If you create a remix and want to get in touch with Napoleon&#8211;or just have a question&#8211;feel free to leave a comment (or contact information) on this post.</em></p>
<div class="feedflare">
<a href="http://feedproxy.google.com/~f/RedHatMagazine?a=KSet8OQF"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=41" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=nLEGsthl"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=nLEGsthl" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=ytWc0LzQ"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=50" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=1OIwjDzw"><img src="http://feedproxy.google.com/~f/RedHatMagazine?i=1OIwjDzw" border="0"></img></a> <a href="http://feedproxy.google.com/~f/RedHatMagazine?a=pxmVVch1"><img src="http://feedproxy.google.com/~f/RedHatMagazine?d=198" border="0"></img></a>
</div><img src="http://feedproxy.google.com/~r/RedHatMagazine/~4/PbS6DpExBxs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.redhatmagazine.com/2008/09/25/ccmixter-red-hat-soundscape-shared-with-you/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.redhatmagazine.com/2008/09/25/ccmixter-red-hat-soundscape-shared-with-you/</feedburner:origLink></item>
	</channel>
</rss>
