<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>The Gahooa Perspective &#187; reSearch</title>
	<atom:link href="http://blog.gahooa.com/category/research/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.gahooa.com</link>
	<description>Thoughts on Life, Engineering, Technology, Business, and more...</description>
	<lastBuildDate>Sun, 11 Dec 2011 19:44:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.gahooa.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Gahooa Perspective &#187; reSearch</title>
		<link>http://blog.gahooa.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.gahooa.com/osd.xml" title="The Gahooa Perspective" />
	<atom:link rel='hub' href='http://blog.gahooa.com/?pushpress=hub'/>
		<item>
		<title>Rubber Band Gun #6 &#8211; springs, etc&#8230;</title>
		<link>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-springs-etc/</link>
		<comments>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-springs-etc/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 04:25:57 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Interesting]]></category>
		<category><![CDATA[reSearch]]></category>
		<category><![CDATA[McMaster]]></category>
		<category><![CDATA[MSC]]></category>
		<category><![CDATA[Rubber Band Gun]]></category>
		<category><![CDATA[Springs]]></category>

		<guid isPermaLink="false">http://blog.gahooa.com/?p=282</guid>
		<description><![CDATA[I visited Dixon Tool and Die, Inc. today to see about having some machining done.  Bill Dixon Jr. was very helpful, and explained many of the points that will make the process go easier. Design for available parts and sizes Buy everything you can stock (pins, springs, aluminum channel, etc&#8230;) Minimize milling by doing the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=282&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I visited <a href="http://www.dixontool.net/">Dixon Tool and Die, Inc.</a> today to see about having some machining done.  Bill Dixon Jr. was very helpful, and explained many of the points that will make the process go easier.</p>
<ol>
<li>Design for available parts and sizes</li>
<li>Buy everything you can stock (pins, springs, aluminum channel, etc&#8230;)</li>
<li>Minimize milling by doing the above</li>
</ol>
<p>To that end, I did a bit of springy research, and found that neither McMaster Carr or Manhattan Supply Co. had really small springs in bulk (only precision (eg expensive) springs in those sizes).</p>
<p>So I re-placed one of the pins to fit a standard (cheap) McMaster spring, and got pricing from <a href="http://centuryspring.aitrk.com/products/extension.html" target="_blank">http://centuryspring.aitrk.com/products/extension.html</a> for a special spring.  The trigger spring has ~ a 2/1 leverage (finger/spring), so we need to have several lbs of spring pull to equal a decent trigger pull.  They have a spring with these dimensions:</p>
<div id="_mcePaste"><strong>Part #80127</strong></div>
<div id="_mcePaste">Diameter: 3/16&#8243;</div>
<div>Rest: 0.63&#8243;</div>
<div id="_mcePaste">Max Travel: 0.39&#8243;</div>
<div id="_mcePaste">Load at max: 3.9lbs</div>
<div id="_mcePaste">ID of loops at ends: .132</div>
<div id="_mcePaste">$1.20 each at 100</div>
<p>While $1.20 is more than I wanted to pay, it sure beats $2.00 to $3.00 per spring that I was looking at from McMaster.</p>
<p>With a shorter spring, I was able to re-design the pin placement, which resulted in this:</p>
<p><a href="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-23-at-12-13-03-am.png"><img class="alignnone size-full wp-image-283" title="Screen shot 2010-09-23 at 12.13.03 AM" src="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-23-at-12-13-03-am.png?w=700&#038;h=480" alt="" width="700" height="480" /></a></p>
<br /> Tagged: <a href='http://blog.gahooa.com/tag/mcmaster/'>McMaster</a>, <a href='http://blog.gahooa.com/tag/msc/'>MSC</a>, <a href='http://blog.gahooa.com/tag/rubber-band-gun/'>Rubber Band Gun</a>, <a href='http://blog.gahooa.com/tag/springs/'>Springs</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=282&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-springs-etc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>

		<media:content url="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-23-at-12-13-03-am.png" medium="image">
			<media:title type="html">Screen shot 2010-09-23 at 12.13.03 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Rubber Band Gun #6 and Pro/Engineer Wildfire</title>
		<link>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-and-proengineer-wildfire/</link>
		<comments>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-and-proengineer-wildfire/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 05:24:27 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Interesting]]></category>
		<category><![CDATA[reSearch]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Technique]]></category>
		<category><![CDATA[Pro/Engineer]]></category>
		<category><![CDATA[ProE]]></category>
		<category><![CDATA[Rubber Band]]></category>
		<category><![CDATA[Rubber Band Gun]]></category>
		<category><![CDATA[SolidWorks]]></category>
		<category><![CDATA[Wildfire]]></category>

		<guid isPermaLink="false">http://blog.gahooa.com/?p=275</guid>
		<description><![CDATA[I recently purchased a copy of Pro/Engineer Wildfire 5.0, and have been comparing it to SolidWorks. They are both nice programs, and within about a day, I have achieved about the same level of usefulness in ProE as SolidWorks. (Note: all that means is that I am a beginner at this). Anyway, I wished to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=275&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I recently purchased a copy of Pro/Engineer Wildfire 5.0, and have been comparing it to SolidWorks.  They are both nice programs, and within about a day, I have achieved about the same level of usefulness in ProE as SolidWorks.  (Note: all that means is that I am a beginner at this).</p>
<p>Anyway, I wished to share one of the models I&#8217;m working on.  This is a mechanism for a Rubber Band Gun receiver.<br />
<a href="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-1-12-53-am.png"><img class="alignnone size-full wp-image-276" title="Screen shot 2010-09-22 at 1.12.53 AM" src="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-1-12-53-am.png?w=700&#038;h=500" alt="" width="700" height="500" /></a></p>
<p><a href="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-34-52-am.png"><img class="alignnone size-full wp-image-279" title="Screen shot 2010-09-22 at 12.34.52 AM" src="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-34-52-am.png?w=700" alt=""   /></a></p>
<p><a href="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-33-18-am.png"><img class="alignnone size-full wp-image-278" title="Screen shot 2010-09-22 at 12.33.18 AM" src="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-33-18-am.png?w=700&#038;h=825" alt="" width="700" height="825" /></a></p>
<p><a href="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-51-41-am.png"><img class="alignnone size-full wp-image-280" title="Screen shot 2010-09-22 at 12.51.41 AM" src="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-51-41-am.png?w=700&#038;h=573" alt="" width="700" height="573" /></a></p>
<br /> Tagged: <a href='http://blog.gahooa.com/tag/proengineer/'>Pro/Engineer</a>, <a href='http://blog.gahooa.com/tag/proe/'>ProE</a>, <a href='http://blog.gahooa.com/tag/rubber-band/'>Rubber Band</a>, <a href='http://blog.gahooa.com/tag/rubber-band-gun/'>Rubber Band Gun</a>, <a href='http://blog.gahooa.com/tag/solidworks/'>SolidWorks</a>, <a href='http://blog.gahooa.com/tag/wildfire/'>Wildfire</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/275/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=275&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2010/09/22/rubber-band-gun-6-and-proengineer-wildfire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>

		<media:content url="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-1-12-53-am.png" medium="image">
			<media:title type="html">Screen shot 2010-09-22 at 1.12.53 AM</media:title>
		</media:content>

		<media:content url="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-34-52-am.png" medium="image">
			<media:title type="html">Screen shot 2010-09-22 at 12.34.52 AM</media:title>
		</media:content>

		<media:content url="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-33-18-am.png" medium="image">
			<media:title type="html">Screen shot 2010-09-22 at 12.33.18 AM</media:title>
		</media:content>

		<media:content url="http://gahooa.files.wordpress.com/2010/09/screen-shot-2010-09-22-at-12-51-41-am.png" medium="image">
			<media:title type="html">Screen shot 2010-09-22 at 12.51.41 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Interesting Numeric Pattern</title>
		<link>http://blog.gahooa.com/2010/05/15/interesting-numeric-pattern/</link>
		<comments>http://blog.gahooa.com/2010/05/15/interesting-numeric-pattern/#comments</comments>
		<pubDate>Sat, 15 May 2010 21:12:38 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[Interesting]]></category>
		<category><![CDATA[reSearch]]></category>
		<category><![CDATA[Math]]></category>
		<category><![CDATA[Numbers]]></category>
		<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://blog.gahooa.com/?p=223</guid>
		<description><![CDATA[&#62;&#62;&#62; for i in range(1,31): ... print(' ' + '1'*30) ... print('x ' + '1'*i) ... print('= ' + str(int('1'*30) * int('1'*i))) ... print() ... 111111111111111111111111111111 x 1 = 111111111111111111111111111111 111111111111111111111111111111 x 11 = 1222222222222222222222222222221 111111111111111111111111111111 x 111 = 12333333333333333333333333333321 111111111111111111111111111111 x 1111 = 123444444444444444444444444444321 111111111111111111111111111111 x 11111 = 1234555555555555555555555555554321 111111111111111111111111111111 x 111111 = 12345666666666666666666666666654321 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=223&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<pre>&gt;&gt;&gt; for i in range(1,31):
...     print('  ' + '1'*30)
...     print('x ' + '1'*i)
...     print('= ' + str(int('1'*30) * int('1'*i)))
...     print()
...
  111111111111111111111111111111
x 1
= 111111111111111111111111111111

  111111111111111111111111111111
x 11
= 1222222222222222222222222222221

  111111111111111111111111111111
x 111
= 12333333333333333333333333333321

  111111111111111111111111111111
x 1111
= 123444444444444444444444444444321

  111111111111111111111111111111
x 11111
= 1234555555555555555555555555554321

  111111111111111111111111111111
x 111111
= 12345666666666666666666666666654321

  111111111111111111111111111111
x 1111111
= 123456777777777777777777777777654321

  111111111111111111111111111111
x 11111111
= 1234567888888888888888888888887654321

  111111111111111111111111111111
x 111111111
= 12345678999999999999999999999987654321

  111111111111111111111111111111
x 1111111111
= 123456790111111111111111111110987654321

  111111111111111111111111111111
x 11111111111
= 1234567901222222222222222222220987654321

  111111111111111111111111111111
x 111111111111
= 12345679012333333333333333333320987654321

  111111111111111111111111111111
x 1111111111111
= 123456790123444444444444444444320987654321

  111111111111111111111111111111
x 11111111111111
= 1234567901234555555555555555554320987654321

  111111111111111111111111111111
x 111111111111111
= 12345679012345666666666666666654320987654321

  111111111111111111111111111111
x 1111111111111111
= 123456790123456777777777777777654320987654321

  111111111111111111111111111111
x 11111111111111111
= 1234567901234567888888888888887654320987654321

  111111111111111111111111111111
x 111111111111111111
= 12345679012345678999999999999987654320987654321

  111111111111111111111111111111
x 1111111111111111111
= 123456790123456790111111111110987654320987654321

  111111111111111111111111111111
x 11111111111111111111
= 1234567901234567901222222222220987654320987654321

  111111111111111111111111111111
x 111111111111111111111
= 12345679012345679012333333333320987654320987654321

  111111111111111111111111111111
x 1111111111111111111111
= 123456790123456790123444444444320987654320987654321

  111111111111111111111111111111
x 11111111111111111111111
= 1234567901234567901234555555554320987654320987654321

  111111111111111111111111111111
x 111111111111111111111111
= 12345679012345679012345666666654320987654320987654321

  111111111111111111111111111111
x 1111111111111111111111111
= 123456790123456790123456777777654320987654320987654321

  111111111111111111111111111111
x 11111111111111111111111111
= 1234567901234567901234567888887654320987654320987654321

  111111111111111111111111111111
x 111111111111111111111111111
= 12345679012345679012345678999987654320987654320987654321

  111111111111111111111111111111
x 1111111111111111111111111111
= 123456790123456790123456790110987654320987654320987654321

  111111111111111111111111111111
x 11111111111111111111111111111
= 1234567901234567901234567901220987654320987654320987654321

  111111111111111111111111111111
x 111111111111111111111111111111
= 12345679012345679012345679012320987654320987654320987654321</pre>
<br /> Tagged: <a href='http://blog.gahooa.com/tag/math/'>Math</a>, <a href='http://blog.gahooa.com/tag/numbers/'>Numbers</a>, <a href='http://blog.gahooa.com/tag/patterns/'>Patterns</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=223&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2010/05/15/interesting-numeric-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>
	</item>
		<item>
		<title>Python 3.1 and mod_wsgi performance notes</title>
		<link>http://blog.gahooa.com/2009/10/11/python-3-1-and-mod_wsgi-performance-notes/</link>
		<comments>http://blog.gahooa.com/2009/10/11/python-3-1-and-mod_wsgi-performance-notes/#comments</comments>
		<pubDate>Sun, 11 Oct 2009 09:40:31 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[AppCove]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[reSearch]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[mod_wsgi]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python 3]]></category>

		<guid isPermaLink="false">http://blog.gahooa.com/?p=154</guid>
		<description><![CDATA[We&#8217;re researching the use of Python and mod_wsgi running under apache for developing some extensive web applications.  Here are some notes on a performance test that we recently ran. ================================================================== Server: x86_64 Python 3.1.1 mod_wsgi 3.0c5 apache 2.2 RHEL 5.3 quad core xenon 8 GB ram Development system &#8211; not in production use. ================================================================== Application: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=154&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re researching the use of Python and mod_wsgi running under apache for developing some extensive web applications.  Here are some notes on a performance test that we recently ran.<br />
==================================================================<br />
Server:</p>
<p>x86_64<br />
Python 3.1.1<br />
mod_wsgi 3.0c5<br />
apache 2.2<br />
RHEL 5.3<br />
quad core xenon<br />
8 GB ram</p>
<p>Development system &#8211; not in production use.</p>
<p>==================================================================<br />
Application:</p>
<p>1 import time<br />
2<br />
3 def application(environ, start_response):<br />
4     status = &#8217;200 OK&#8217;<br />
5<br />
6     output = &#8220;hello world!&#8221;<br />
7<br />
8     #time.sleep(1)<br />
9<br />
10     response_headers = [<br />
11         ('Content-type', 'text/plain'),<br />
12         ('Content-Length', str(len(output))),<br />
13         ]<br />
14<br />
15     start_response(status, response_headers)<br />
16<br />
17     return [output]</p>
<p>==================================================================<br />
Apache Configuration:</p>
<p>WSGISocketPrefix run/wsgi<br />
&lt;VirtualHost *&gt;<br />
ServerName <a style="color:#2a5db0;" href="http://shankproject.jason.star.ionzoft.net/" target="_blank">shankproject.jason.star.ionzoft.net</a><br />
DocumentRoot /home/jason/Code/ShankProject/Web<br />
WSGIScriptAlias /Admin /home/jason/Code/ShankProject/WSGI/<br />
Admin.wsgi<br />
WSGIDaemonProcess <a style="color:#2a5db0;" href="http://shankproject.jason.star.ionzoft.net/" target="_blank">shankproject.jason.star.ionzoft.net</a> threads=15<br />
WSGIProcessGroup <a style="color:#2a5db0;" href="http://shankproject.jason.star.ionzoft.net/" target="_blank">shankproject.jason.star.ionzoft.net</a><br />
&lt;/VirtualHost&gt;</p>
<p>==================================================================<br />
Tests:</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# Baseline with one process and 15 threads<br />
# 15 threads total</p>
<p>threads=15<br />
no process definition</p>
<p>WITHOUT time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1800 / second<br />
concurrency = 100 &gt;&gt; 3900 / second</p>
<p>WITH time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1 / second<br />
concurrency = 100  &gt;&gt; 14 / second</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# Get a marginal improvement by doubling the threads to 30<br />
# 30 threads total</p>
<p>threads=30<br />
no process definition</p>
<p>WITHOUT time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1680 / second<br />
concurrency = 100 &gt;&gt; 3500 / second</p>
<p>WITH time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1 / second<br />
concurrency = 100  &gt;&gt; 30 / second</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# Take processes from 1 to 3<br />
# 90 threads total</p>
<p>threads=30<br />
processes=3</p>
<p>WITHOUT time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1770 / second<br />
concurrency = 100 &gt;&gt; 3500 / second</p>
<p>WITH time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1 / second<br />
concurrency = 100  &gt;&gt; 88 / second</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
# Take processes from 3 to 6<br />
# Take threads from 30 to 15<br />
# 90 threads total</p>
<p>threads=30<br />
processes=3</p>
<p>WITHOUT time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1550 / second<br />
concurrency = 100 &gt;&gt; 3300 / second</p>
<p>WITH time.sleep(1)<br />
concurrency = 1  &gt;&gt; 1 / second<br />
concurrency = 100  &gt;&gt; 88 / second</p>
<p>==================================================================<br />
Conclusion:</p>
<p>mod_wsgi performance is outstanding.  Even running slower requests, it<br />
can still handle significant concurrency in daemon mode without any<br />
apparent issues.</p>
<p>Questions:<br />
Is there any information on the balance between more processes less<br />
threads and more threads less processes?</p>
<p>Thanks!</p>
<br /> Tagged: Apache, mod_wsgi, Performance, Python, python 3 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/154/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/154/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/154/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=154&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2009/10/11/python-3-1-and-mod_wsgi-performance-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>
	</item>
		<item>
		<title>Update [1] on Fedora vs Redhat Enterprise Linux</title>
		<link>http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/</link>
		<comments>http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 01:48:03 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[AppCove]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[reSearch]]></category>
		<category><![CDATA[EPEL]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[YUM]]></category>

		<guid isPermaLink="false">http://blog.gahooa.com/?p=66</guid>
		<description><![CDATA[This is in reference to http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/. After the excellent comment by Sergio Olivo, I did some heavy looking into the Extra Packages for Enterprise Linux project (EPEL for short).  On a brand-spanking-new RHEL 5 box, I installed the YUM repository for EPEL, and quite immediately had access to tons of extra packages.  Erlang is there.  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=66&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>This is in reference to <a href="http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/">http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/</a>.</strong></p>
<p>After the excellent <a href="http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/#comment-2">comment</a> by Sergio Olivo, I did some heavy looking into the <a href="http://fedoraproject.org/wiki/EPEL">Extra Packages for Enterprise Linux project</a> (EPEL for short).  On a brand-spanking-new RHEL 5 box, I installed the YUM repository for EPEL, and quite immediately had access to tons of extra packages.  Erlang is there.  Git is there.  Memcached is there.  Sweet!</p>
<p>However, EPEL <a href="http://fedoraproject.org/wiki/EPEL/FAQ#Does_EPEL_replace_packages_provided_within_Red_Hat_Enterprise_Linux_or_layered_products.3F">does not update or replace</a> the version of any packages provided by RHEL.</p>
<p>So the problem of having out of date versions of PHP and Python still remain.  Next I looked into using a third party RPM repository (provided by <a href="http://www.rackspace.com">RackSpace</a>).  They provide updated versions of PHP and a number of PHP modules.  But alas, this created incompatibilities with the EPEL packages for PHP.  This is because EPEL packages are targeted for RHEL versions. Bla&#8230;</p>
<p>So here is what I decided to do (haven&#8217;t done it yet, but will soon).  We will build and package our own custom set of RPMs for RHEL 5, and publish them in an RPM repository.  Then we will simply point each server to that repository in addition to the main RHEL repository, and poof, problem solved.  We may also use EPEL for things like Erlang and git.  Or we may compile from source.  Not sure.</p>
<p>For those of you who are not familiar with YUM RPM repositories, they can be as simple as a specail directory structure served by a webserver.</p>
<p>There are a few items remaining to be concluded, but they should fall into place fairly quickly.</p>
<br /> Tagged: EPEL, Linux, RPM, YUM <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=66&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>
	</item>
		<item>
		<title>Fedora or RedHat Enterprise Linux in a production environment?</title>
		<link>http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/</link>
		<comments>http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 03:22:49 +0000</pubDate>
		<dc:creator>Jason Garber</dc:creator>
				<category><![CDATA[AppCove]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[reSearch]]></category>

		<guid isPermaLink="false">http://gahooa.wordpress.com/?p=34</guid>
		<description><![CDATA[[UPDATE AT http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/] At AppCove, we run RedHat Enterprise Linux on all of our servers.  RHEL is great, because: It works It still works Automatic security updates Did I mention, it just works? RedHat, as far as I know, takes a very serious perspective on patching all of their RPM&#8217;s and automatically pushing them out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=34&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>[UPDATE AT <a href="http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/">http://blog.gahooa.com/2009/02/08/update-on-fedora-vs-redhat-enterprise-linux/</a>]</strong></p>
<p>At AppCove, we run RedHat Enterprise Linux on all of our servers.  RHEL is great, because:</p>
<ol>
<li>It works</li>
<li>It still works</li>
<li>Automatic security updates</li>
<li>Did I mention, it just works?</li>
</ol>
<p>RedHat, as far as I know, takes a very serious perspective on patching all of their RPM&#8217;s and automatically pushing them out via the update agent (up2date).  They are <strong>very conservative</strong> on the versions of packages that they publish.  RHEL 4, for example, is still running PHP 4.x.  Python 2.3.  MySQL 4.x&#8230;  I believe that they do this to maintain stability and long term support.</p>
<p>However, for a company like AppCove, those versions are simply <strong>too old.</strong> For years we have hand-compiled about a dozen packages on RHEL 4 in order to be able to take advantage of relevant features in newer software.  PHP, Python, MySQL (from mysql.com supplied RPM), python-mysql, git, erlang, memcached, libmcrypt, and others are part of the growing list of software that we have to install manually.</p>
<p>With this growing list comes a growing issue of security updates and maintainability.  More complicated packages need more updated libraries, creating a chain-reaction of additional packages.  Etc&#8230;</p>
<p>&#8211;<br />
Recently I signed up with a &#8220;slice&#8221; at <a href="http://www.slicehost.com/">SliceHost</a>.  (SliceHost provides virtualized machines for a great price, with lots of scalability available).  I chose <a href="http://fedoraproject.org/">Fedora Core 10</a> for the OS.  I must say I have been very impressed.</p>
<p>All of the packages that I have needed were right there, available by <strong>yum install</strong>.  PHP, Python, python-mysql, erlang, memcached, php-memcached, python-memcached, git, etc&#8230;, etc&#8230;, and did I mention that <span style="text-decoration:underline;">tree</span> was even there?  And it has all &#8220;just worked&#8221;.</p>
<p>&#8211;<br />
In summary, here are the items that I need to resolve:</p>
<ol>
<li>Is fedora considered as &#8220;secure&#8221; as RHEL?  Is there a team dedicated to getting security patches our <em>fast</em> when identified?</li>
<li>Are continuous upgrades in fedora an issue?  Do software packages abruptly get updated without notice?  (this has at times been an issue with RHEL).</li>
<li>Is it possible to run RHEL while also connecting to fedora package repositories to install specific packages?  Desirable?  Undesirable?  Conflicts?</li>
</ol>
<p>The most secure computer is one that is locked in a vault <span style="text-decoration:underline;">and</span> turned off.  Since that won&#8217;t work for most needs, one must find the appropriate balance between <strong>functionality</strong> and <strong>security</strong>.</p>
<p>Comments welcome&#8230;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/gahooa.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/gahooa.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/gahooa.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.gahooa.com&amp;blog=6218261&amp;post=34&amp;subd=gahooa&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.gahooa.com/2009/01/18/fedora-or-redhat-enterprise-linux-in-a-production-environment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">gahooa</media:title>
		</media:content>
	</item>
	</channel>
</rss>
