<?xml-stylesheet type="text/xsl" href="http://www.globalherald.net/jb01/weblog/rss/rssstyles.xsl"?>
<rss version='2.0'   xmlns:dc='http://purl.org/dc/elements/1.1/'>
    <channel xml:base='http://www.globalherald.net/jb01/weblog/'>
        <title><![CDATA[Joshua Kramer : Weblog]]></title>
        <description><![CDATA[The weblog for Joshua Kramer, hosted on GlobalHerald.NET.]]></description>
        <generator>Elgg</generator>
        <link>http://www.globalherald.net/jb01/weblog/</link>        
        <item>
            <title><![CDATA[Arbitrary Python Object XML Generator]]></title>
            <link>http://www.globalherald.net/jb01/weblog/20.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/20.html</guid>
            <pubDate>Thu, 04 Dec 2008 04:06:59 GMT</pubDate>
		<dc:subject><![CDATA[object]]></dc:subject>
		<dc:subject><![CDATA[python]]></dc:subject>
		<dc:subject><![CDATA[recursion]]></dc:subject>
		<dc:subject><![CDATA[recursive]]></dc:subject>
		<dc:subject><![CDATA[xml]]></dc:subject>
		<dc:subject><![CDATA[generator]]></dc:subject>
            <description><![CDATA[<p>Howdy Folks,</p><p>The ElementTree library is an excellent way to allow your Python apps to read and manipulate XML files in a Pythonic manner.&nbsp; But what do you do if you want to create XML from a Python object with arbitrary dictionaries and lists?</p><p>To tackle this task, I have created the recursive xmlObjectCreator.&nbsp; Its code is noted below.&nbsp; When you pass it an arbitrary Python object and a few other parameters, it will give you back an ElementTree representing the Python object.&nbsp; You can then dump or write the tree to your heart's content.</p><p>There is one caveat, however.&nbsp; To avoid unneeded complexity, I did not provide any method by which you can describe metadata.&nbsp; This basically means that for lists, the actual items will have element names set to the list name plus a static string.&nbsp; So, you might have myList['One', 'Two'], and it would generate XML like this:</p><p>&lt;myList&gt;&lt;myList_item&gt;One&lt;/myList_item&gt;&lt;myList_item&gt;Two&lt;/myList_item&gt;&lt;/myList&gt;</p><p>To run the method, you do this: </p><pre>xmlObject = xmlObjectCreator<br />    (inputObject, topLevelTag, etreeRootObj, structType, etreeRootObj, True)</pre> <p>The input parameters are as follows:</p><ol><li>inputObject.&nbsp; This your arbitrary Python structure.</li><li>topLevelTag.&nbsp; This is the tag that you want your root level object to have.</li><li>etreeRootObj (parameters 3 and 5).&nbsp; This is a valid ElementTree tree object.&nbsp; It should not have any elements.</li><li>structType: an empty string.&nbsp; This is used internally during recursion.</li><li>True.&nbsp; This is always set to True.</li></ol><p>The extra string parameter, root object paremeter and the tailing True are needed because the method is recursive, and it will pass different values for these paremeters depending on the depth of recursion and the current object it's working on.&nbsp; Some folks have suggested alternate, cleaner ways to handle this - and those ways will be implemented in future revisions of the library. </p><p><a class="mediafile" href="http://www.globalherald.net/jb01/files/-1/21/xmlObjectCreator.py">xmlObjectCreator.py</a> </p><p>UPDATE:&nbsp; I've updated the code to use introspection instead of try/catch exception blocks.</p><p> <a class="mediafile" href="http://www.globalherald.net/jb01/files/-1/22/xoc.py">xoc.py</a> </p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Futurist I]]></title>
            <link>http://www.globalherald.net/jb01/weblog/14.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/14.html</guid>
            <pubDate>Tue, 15 Jul 2008 16:25:37 GMT</pubDate>
		<dc:subject><![CDATA[futurist]]></dc:subject>
		<dc:subject><![CDATA[timeline]]></dc:subject>
		<dc:subject><![CDATA[future]]></dc:subject>
            <description><![CDATA[<p>&quot;Never let the future disturb you. You will meet it, if you have to, with the same weapons of reason which today arm you against the present.&quot; --<a href="http://en.wikiquote.org/wiki/Marcus_Aurelius_Antoninus"  title="Marcus Aurelius Antoninus">Marcus Aurelius Antoninus</a> (Meditations)</p><p><br />Energy prices.&nbsp; The disjuxtaposition of the mortgage system in the U.S.&nbsp; The decline of <a href="http://news.nationalgeographic.com/news/2003/05/0515_030515_fishdecline.html"  target="_blank">fish stocks</a> near the coasts.</p><p>So what's with the future, anyway?&nbsp; Some things, such as the mortgage mess and resulting economic turmoil, are a result of the need for instant gratification of a large number of our brothers and sisters.&nbsp; These things are but a blip in the geohistorical radar, much like the <a href="http://en.wikipedia.org/wiki/Great_Depression"  target="_blank">Great Depression</a>.&nbsp; They may be a large disrupting effect on human systems of exchange, but can be recovered from. </p><p>However, as citizens of the Earth, we seem to have reached a few geological&nbsp; &quot;hard limits&quot;.&nbsp; Indeed, we seem to have created some of them ourselves.&nbsp; The two biggest hard limits I am speaking of are climate change and the end of cheap oil.&nbsp; Regardless of the root causes of these problems - whether human events are the cause of global warming, or it is a geological cycle; and whether we have reached &quot;<a href="http://en.wikipedia.org/wiki/Peak_oil"  target="_blank">peak oil</a>&quot; or still have a few years to go - the symptoms created by these problems present some unique challenges for our species in the coming decades.&nbsp; Will we run out of oil and reach a point where we don't have enough energy or raw materials to continue even the most basic scientific research?&nbsp; Or will we 'power through' the next few decades and become an interstellar species?</p><p>&quot;Take hold of the future or the future will take hold of you - be futurewise.&quot; -- <a href="http://en.wikiquote.org/wiki/Patrick_Dixon"  title="Patrick Dixon">Patrick Dixon</a> - Futurist and author Futurewise 1998/2005 </p><p>There are a number of interesting resources to start a brainstorm about the future.&nbsp; Some of these have a basis in reality, and some are intended to be pure science fiction.</p><p><a href="http://www.btplc.com/Innovation/News/timeline/TechnologyTimeline.pdf"  target="_blank">http://www.btplc.com/Innovation/News/timeline/TechnologyTimeline.pdf</a></p><p><a href="http://www.btplc.com/innovation/news/timeline/"  target="_blank">http://www.btplc.com/innovation/news/timeline/</a></p><p><a href="http://www.trekmania.net/conference/chronology.htm "  target="_blank">http://www.trekmania.net/conference/chronology.htm&nbsp;</a></p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Secure Web Hosting for Python Applications]]></title>
            <link>http://www.globalherald.net/jb01/weblog/13.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/13.html</guid>
            <pubDate>Mon, 26 May 2008 18:01:39 GMT</pubDate>
		<dc:subject><![CDATA[linux centos rhel selinux python mod_wsgi security secure]]></dc:subject>
            <description><![CDATA[<p>Howdy Folks,</p><p>I have an article up on Packt Publishing's Article Network here:</p><p><a href="http://www.packtpub.com/article/selinux-secured-web-hosting-python-based-web-applications"  target="_blank">Click Here</a></p><p>This article shows how to secure your web-based Python applications with mod_wsgi and SELinux on RHEL5 (or CentOS 5 for that matter).</p><p>More blog posts to come shortly!</p><p>Cheers,</p><p>-J</p><p>&nbsp;</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[My Numb3rs Blog]]></title>
            <link>http://www.globalherald.net/jb01/weblog/11.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/11.html</guid>
            <pubDate>Sun, 18 Nov 2007 21:08:07 GMT</pubDate>
            <description><![CDATA[<p>For a while now, I&#39;ve been a fan of the CBS show <em>Numb3rs</em>.&nbsp; Like many CBS shows, it exhibits a tad bit more depth than most prime-time shows.&nbsp; The bits of math thrown in to the plot tickle my&nbsp; neurons in an interesting way, and the action balances it out.&nbsp; For the most part, at least up until this 4th season, it seemed as if the producers made a concerted effort to integrate the math into the plots and explain it in some detail.&nbsp; However, this last season seems to be a bit &#39;off&#39; in this regard - to appeal to a more mainstream audience, it seems they&#39;re relegating the math to the background.</p><p>I had intended to create a blog section on the math aspects of the show, but the folks at Wolfram publishing beat me to it.&nbsp; Here&#39;s the link: <a href="http://numb3rs.wolfram.com/"  target="_blank">http://numb3rs.wolfram.com/</a></p><p>The show used to do a very good job of avoding &quot;T.V. Science&quot;, that bad habit of show producers to invent whatever science happens to be handy for solving their plot.&nbsp; However, this last episode (aired on November 16) delivered a couple of doozies.</p><p>For the record, here is what a real <a href="http://www.dschmidt.com/dtmf.html"  target="_blank">DTMF decoder</a> looks like:</p><p><img src="http://www.globalherald.net/jb01/files/1/7/dtmf232a.jpg"  border="0"  alt="DTMF Decoder"  title="DTMF Decoder"  width="200"  height="95" /></p><p>It&#39;s not the size of a PC&#39;s motherboard, with heatsinks and all that.&nbsp; Decoding the DTMF tones won&#39;t tell you anything except what numbers were dialed - it surely won&#39;t pull up the location of the phon on Google Maps.&nbsp; And who solders circuits without cutting the power, anyway?</p><p>&nbsp;</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Vectors and Smoothable Curves]]></title>
            <link>http://www.globalherald.net/jb01/weblog/10.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/10.html</guid>
            <pubDate>Sun, 11 Nov 2007 09:50:26 GMT</pubDate>
            <description><![CDATA[<p>I have a book called <a href="http://www.amazon.com/Vectors-Smoothable-Curves-Collected-Essays/dp/1883689325">Vectors and Smoothable Curves</a> by William Bronk.&nbsp; Upon entering the title in Google, I get the following suggestion:</p><p>&nbsp;<img src="http://www.globalherald.net/jb01/files/1/6/image002.gif"  border="0" /></p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Picking up a new language...]]></title>
            <link>http://www.globalherald.net/jb01/weblog/7.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/7.html</guid>
            <pubDate>Tue, 13 Feb 2007 20:57:29 GMT</pubDate>
		<dc:subject><![CDATA[development]]></dc:subject>
		<dc:subject><![CDATA[linux]]></dc:subject>
		<dc:subject><![CDATA[software]]></dc:subject>
		<dc:subject><![CDATA[windows]]></dc:subject>
		<dc:subject><![CDATA[python]]></dc:subject>
            <description><![CDATA[<p>One of the challenges of software development - and specifically, paying for software development - is the time it takes to develop something useful.&nbsp; The tools that make development time shorter, while still allowing a quality product, are worth their price in gold.&nbsp; Even many of the free tools provide a large savings in the amount of time it takes to create and maintain an app.&nbsp; In this posting, I&#39;ll describe my endeavor to pick up a highly productive language, Python.</p><p>A while back, my employer sent a few of us to .<a href="http://msdn2.microsoft.com/en-us/netframework/default.aspx"  target="_blank">NET</a> training.&nbsp; This was optional, as our particular development group doesn&#39;t use .NET.&nbsp; However, just for kicks, I decided to take the class.&nbsp; This was a mental challenge for me, as I&#39;m well aware of the problems that are caused by the vendor lock-in precipitated by, and supporting the monopoly of, Microsoft.&nbsp; But I&#39;m open to most things that will make me more valuable to my employer, so I bit the bullet.</p><p>We had the pleasure of taking the class from a Microsoft MVP, <a href="http://aspadvice.com/blogs/ssmith/"  target="_blank">Steve Smith</a>. Overall, the class was very productive, and Steve was informative.&nbsp; And, as I learned,&nbsp; Microsoft&#39;s developer tools make developers very productive.&nbsp; It&#39;s very apparent why smaller software development firms use .NET; it keeps their costs lower.</p><p>However, there are still problems with the Microsoft way of doing things, which I will describe in a subsequent post.&nbsp; Where the costs of developing software using Microsoft tools may seem to be lower, the cost of running a Microsoft platform is higher (than running Linux or Mac OS X), in some cases much higher.&nbsp; So, while I was taking this .NET class, I was wondering in my mind how we could get the same excellent productivity while developing cross-platform apps.</p><p>In the past, I had heard about <a href="http://www.python.org"  target="_blank">Python</a> and how easy it is to <a href="http://www.diveintopython.org/"  target="_blank">pick up</a>, so I thought I&#39;d check it out.&nbsp; A number of companies have found that their use of Python enables them to save a lot of time while increasing code quality, even when non-developers are trained to use it:</p><ul><li>&quot;We achieve immediate functioning code so much faster in Python than in any other language that it&#39;s staggering,&quot; says Friedrich.&nbsp; <a href="http://www.python.org/about/success/usa"  target="_blank">United Space Alliance</a></li><li>&quot;Nexedi is sometimes asked: Why not Java and J2EE? While it would be possible to create a similar system with Java and J2EE, development costs would be much higher.&quot;&nbsp; <a href="http://www.python.org/about/success/nexedi"  target="_blank">NexEDI</a></li></ul><p>Python offers drop-in simplicity for most of its functionality.&nbsp; For example, I do most of my hobby development on <a href="http://www.centos.org"  target="_blank">CentOS</a>, a clone of <a href="http://www.redhat.com/rhel/"  target="_blank">RedHat Enterprise Linux</a>.&nbsp; CentOS comes with a very mature, but relatively old, version of Python.&nbsp; I wanted to use a newer version with a few nifty addons such as <a href="http://www.wxpython.org"  target="_blank">wxWidgets</a> and <a href="http://www.zope.org">Zope</a>.&nbsp; It was very easy to drop python into its own directory, add the external packages, and then tell my scripts to use the new python instead of the system-wide, original version.&nbsp; It ws also very easy to deploy these new components onto a Windows-based system that had Python installed.</p><p>So will Python live up to its promises?&nbsp; Watch this space to find out. Being able to quickly develop a GUI app that needs no recompiling for Windows or Linux is a definite plus...</p><p><br />Cheers,</p><p>-J&nbsp;</p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Running with Huskies]]></title>
            <link>http://www.globalherald.net/jb01/weblog/6.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/6.html</guid>
            <pubDate>Sun, 07 Jan 2007 04:57:10 GMT</pubDate>
            <description><![CDATA[<h4>It&#39;s almost as dangerous as running with scissors!</h4> Most guys I know, myself included, like G-forces.&nbsp; The masculine thing to do with anything big enough to ride, it seems, is to put a motor and wheels on it.&nbsp; Or, if it already has a motor and wheels, to put a bigger motor and wheels on it.&nbsp; But in the end, it&#39;s always the G-forces that matter - there&#39;s nothing like a swift kick in the rear provided by some menacing machinery.<br /><br />Those of you who have housecats know that they run - and run <em>fast</em> - when they want to.&nbsp; Somewhere around the upper end of 20 miles per hour is the velocity at which many cats happily travel, even while inside the house, and even on hardwood floors.&nbsp;&nbsp; But what about dogs?&nbsp; Given the additional mass present on most dogs who can really run, it&#39;s hard to get going in the confines of a house.&nbsp; Cats accelerate pretty quickly; we clocked one of the Bengals at 23 MPH within the span of 25 feet (giving it about 50 - or was that 500? - times the power-to-weight ratio of a Dodge Viper).<br /><br />But, as you can most likely guess by the title of this post, a well-built dog can get going just as fast.<br /><br />I&#39;ve been meaning to start some sort of exercise program.&nbsp; While we usually walk the dogs about a mile per day, that&#39;s only a notch above the sedentary lifestyle I was once used to.&nbsp; Therefore, I decided to run instead of walk.&nbsp; Before I knew the full ramifications of my actions, I found myself buying some harnesses so they wouldn&#39;t choke when they&#39;re running full tilt (and because I do intend to teach the Huskies how to pull a sled, or pull me on skis).&nbsp; I had remembered something the trainer at obedience school had said about sled dogs wanting to compete (and therefore run faster), but I didn&#39;t remember enough to know to watch out...<br /><br /> <h4>The First (and Last) Run</h4> Running with Huskies is something that is quite exhilarating; it&#39;s like falling: it feels good until you realize you have to stop at some point.&nbsp; Usually, a sled dog is pulling something of mass, that has its own mechanical means of stopping, across a snowy field (hence friction).&nbsp; But this wasn&#39;t the case; there was just me, and while I have more mass than the average sled, there wasn&#39;t any friction between me and the ground - nor was there any mechanical means of stopping.&nbsp; But enough about stopping - how did it <em>go</em>?<br /><br />When we took the girls to puppy kindergarten, one of the things the trainer warned us about is competition.&nbsp; The dogs will always compete at whatever they&#39;re doing, and pulling things is one of those competitions.<br /><br />We started out with a light jog, and everything was going smoothly.&nbsp; I then let the girls know that they could take off, and take off they did.&nbsp; First, Dakota took the lead and went a bit faster.&nbsp; Then, Nikita, matching Dakota, looked over and decided that she&#39;d go faster.&nbsp; This went back and forth once more, and with each one-updogship came a burst of energy.&nbsp; And then I, at first under my own propulsion, realized that I was merely lifting my feet off the pavement to maintain an upright position.&nbsp; And I needed to stop.&nbsp; Soon.<br /><br />Luckily, there was no impending disaster and therefore 150 feet was plenty of distance under which I could safely put a halt to our rapid pace.&nbsp; But - <em>wow</em> - I hadn&#39;t felt acceleration like that since my younger days when I used to race cars.&nbsp; I never realized that dogs can run as fast as cats - they just need some distance to safely get going.&nbsp; And safely stopping is a whole different matter entirely...]]></description>
        </item>
                
        <item>
            <title><![CDATA[Think first, then act intelligently.]]></title>
            <link>http://www.globalherald.net/jb01/weblog/5.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/5.html</guid>
            <pubDate>Sun, 07 Jan 2007 04:56:05 GMT</pubDate>
            <description><![CDATA[When I mention to someone I&#39;ve just met that I major in Philosophy, the next statement usually follows: &quot;Do you want fries with that?&quot;&nbsp; The implication, of course, is that a liberal arts degree has little practical use.&nbsp;&nbsp; While this is a popular view, it overlooks some important advantages of the liberal arts education.&nbsp; As I will demonstrate, a liberal arts major carries unique traits that are useful in many professional positions. For this demonstration, I&#39;ll describe the traits that are useful in the a Network Administrator posiion. Granted, it would be an error to hire someone with a BA in Russian Literature who had no practical experience; but many liberal arts majors either have prior work experience or minor in a field that makes them highly employable.<br /><br /><strong>Think first, then act intelligently.</strong><br /><br />Often, information technology (IT) workers see themselves as an end result.&nbsp; Therefore, we have &quot;IT Projects&quot; that cost money.&nbsp; But an oft-overlooked and important rule is this: IT exists to serve its customers.&nbsp; A company that makes widgets will derive benefit when it automates its widget manufacturing capability.&nbsp; The IT workers in that company don&#39;t work to &quot;implement sophisticated factory controls&quot; or &quot;automate customer reporting&quot;, they work to improve the efficiencies of and to protect the interests of the business - in short, increase profit by increasing revenue or increasing savings.&nbsp; Therefore, we have &quot;business projects that have an IT component to them&quot;.<br /><br />Majoring in liberal arts gives a candiate a &quot;big picture&quot; view of the environment (internal and external customers) and the role of IT in that environment.&nbsp; Starting from the top: is this a for-profit hospital, or a non-profit? What are the practical business, financial, legal, technological, and human resource needs? Will any given implementation of a network change help or hinder these needs? While planning new implementations, how can we best meet those needs? Even if it is not practical to spend an extended amount of time making these considerations for each project, the candidate will know enough about the environment (and should take the time when first starting a new job to understand all of these facets of the environment) to make a careful consideration.<br /><br />The job of the candidate is to make business processes more efficient (therefore saving money or increasing revenue), and considering these attributes of the environment noted above is essential in this goal.<br /><br />Of course, all of the philosophizing in the world won&#39;t help if the tire never meets the road, and that&#39;s another area in which the candidate should excel. In a technology position, it is common to &quot;go with the flow&quot; and, for example, just buy a Cisco router when needed. Instead, the candidate should consider the facets of the environment discussed above and work to find the most efficient end result. Usually, this is accomplished via Service Level Agreement. This agreement, a specification determined as part of the planning process, defines things such as:<br /><br /> <ul><li>Availability. (Is this a mission-critical network that must be available 24/7?)</li><li>Capacity.&nbsp; (How many nodes on the network?&nbsp; At what speed?&nbsp; Are there any special circumstances?)<br /></li><li>Contingency Plans.&nbsp; (What happens if the network goes bump in the night?)</li><li>Human Resource Issues.&nbsp; (Do users require retraining?&nbsp; Will they need incentives?)</li><li>Responsibility.&nbsp; (Who is responsible if the network goes bump in the night?)</li><li>Psychological or Political dimensions.&nbsp; (<em>While this is generally not a part of the written agreement, it is nevertheless an important part of any implementation.</em>&nbsp; What rules or responsibilities must we define to ensure that management and the userbase is comfortable with our decision?&nbsp; What is the value of &quot;go with BigBrandX because then there&#39;s somebody to sue if it goes bump&quot; (even though licensing may preclude this), compared to a more financially cost-effective approach?</li></ul> <br />The last point is addressed by one of the strongest effects of an excellent Service Level Agreement: to make the &quot;human factor&quot; comfortable.&nbsp; If, given a defined set of specifications, one could either choose a BigBrandX solution for $25,000 or an Open Source solution for $12,500, <em>and both solutions fully met all requirements of the SLA</em>, then justifying the implementation of the more cost effective (and therefore more efficient) solution is that much easier.<br /><br /><strong>Think first, then act intelligently.</strong>&nbsp; This is my first post on hiring liberal arts majors, and it&#39;s a good overview.&nbsp; I&#39;ll continue to blog on this subject as I think of more ideas.<br /><br />Cheers,<br />-JB]]></description>
        </item>
                
        <item>
            <title><![CDATA[Freedom For You: Making Linux Easy]]></title>
            <link>http://www.globalherald.net/jb01/weblog/4.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/4.html</guid>
            <pubDate>Sun, 07 Jan 2007 04:55:00 GMT</pubDate>
            <description><![CDATA[<p>This is a draft, seeking publication, of the book I wrote a while ago about using Linux on the desktop. While this version is based on Mandrake 10, I am currently rewriting several parts of this book for Redhat Enterprise Linux 4.</p><p>&nbsp;</p><p><a class="mediafile pdf" href="http://www.globalherald.net/jb01/files/1/3/Free4You-rc4.pdf">Freedom 4 You</a>  <br /></p>]]></description>
        </item>
                
        <item>
            <title><![CDATA[Resources for Capitalism and the Constitution - Capital University Rel/Phil Seminar 16-Sep-06]]></title>
            <link>http://www.globalherald.net/jb01/weblog/3.html</link>
            <guid isPermaLink="true">http://www.globalherald.net/jb01/weblog/3.html</guid>
            <pubDate>Sun, 07 Jan 2007 04:52:54 GMT</pubDate>
            <description><![CDATA[<p>This post contains resources for the Capitalism and the Constitution project that I completed for my Senior Thesis in May of 2006.&nbsp; The paper itself is attached below.<br /><br />Here are a couple of links to the Ketola paper I cited in this project: <a href="http://www.bseconference.org/bse2005/proceedings/50347096cd1037210.html">One</a> and <a href="http://www.bseconference.org/bse2005/proceedings/50347096cd1037210.html">Two</a><br /><br /> Ketola&#39;s paper is important to this project, as it short-circuits the argument of proponents of laissez-faire capitalism that the capitalist model itself will regulate bad behavior.&nbsp; Instead, Ketola argues, the actors of capitalism (in this case, corporations) perform acts which have effects on uninterested third parties, and it is these effects - which can be devistating - that the capitalist model does not serve to protect against.&nbsp; Ketola presents a sort of &#39;holistic capitalism&#39; if you will, and describes how capitalism can coexist amicably with the interests of third parties.<br /><br />Indeed, it is clear that Adam Smith&#39;s model of capitalism only works in small agrarian economies, not the global economy we have today.</p><p>&nbsp;</p><p><a class="mediafile pdf" href="http://www.globalherald.net/jb01/files/1/1/CapstonePaperRevised_Sep06.pdf">Corporatism and the Constitution</a> </p><p><a class="mediafile pdf" href="http://www.globalherald.net/jb01/files/1/2/Sept16Handout.pdf">Capstone Handout</a> &nbsp;</p>]]></description>
        </item>
        
    </channel>
</rss>