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

<channel>
	<title>Jeff&#039;s Professional Side</title>
	<atom:link href="http://jeffgehlbach.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://jeffgehlbach.com</link>
	<description>It&#039;s unprofessional to have a witty tagline</description>
	<lastBuildDate>Tue, 06 Oct 2009 13:21:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AUUG talk notes: Centralized logging and syslog-ng</title>
		<link>http://jeffgehlbach.com/?p=213</link>
		<comments>http://jeffgehlbach.com/?p=213#comments</comments>
		<pubDate>Tue, 06 Oct 2009 13:21:48 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[atlanta]]></category>
		<category><![CDATA[auug]]></category>
		<category><![CDATA[Network Management]]></category>
		<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[syslog-ng]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=213</guid>
		<description><![CDATA[Last night Bobby, Jason, and I returned to our old habit of attending a monthly meeting of the Atlanta UNIX Users Group. Returning speaker Ryan Matteson gave a rather informative presentation on the topic of  Centralized Logging with syslog-ng. I&#8217;ve used syslog-ng on and off over the years, and we recommend the GPLv2 version [...]]]></description>
			<content:encoded><![CDATA[<p>Last night <a href="http://twitter.com/bobbykrupczak">Bobby</a>, <a href="http://twitter.com/jatram">Jason</a>, and I returned to our old habit of attending a monthly meeting of the <a href="http://www.auug.org/">Atlanta UNIX Users Group</a>. Returning speaker <a href="http://prefetch.net">Ryan Matteson</a> gave a rather informative presentation on the topic of <em> Centralized Logging with <a href="http://www.balabit.com/network-security/syslog-ng">syslog-ng</a></em>. I&#8217;ve used syslog-ng on and off over the years, and we recommend the GPLv2 version to our <a href="http://www.opennms.com/services.html">services</a> and <a href="http://www.opennms.com/support.html">support</a> customers for use in conjunction with the <a href="http://www.opennms.org/wiki/Syslogd">syslog listener</a> built into <a href="http://www.opennms.org/">OpenNMS</a>. Despite all this, I had never had a proper introduction to syslog-ng, so this meeting was one not to be missed.</p>
<p>Taking a cue from <a href="http://www.opennms.org/blog/?p=210">DJ&#8217;s recent post</a>, I&#8217;m putting my notes from the talk online. Ryan has also put his <a href="http://prefetch.net/blog/index.php/2009/10/05/slides-from-syslog-ng-presentation/">slides</a> online, so there&#8217;s not much marginal value in the following except for a couple of verbal comments that I rolled in.</p>
<p><span id="more-213"></span></p>
<pre>
AUUG 2009-10-05: Ryan Matteson on syslog-ng

* what is syslog-ng?
syslog-ng: a flexible, robust, open source syslog implementation
features:
	logging vai udp or tcp
	mutual auth via certificates
	tls encryption
	filters to sort traffic by host, facility, log level, message contents, etc.
	messages can be parsed and rewritten (especially useful for removing sensitive data)
	log to SQL database

* how does syslog-ng work?
configured through a single text file, broken into sections describing where to read messages from, how to process them, where to send them
sections broken down into:
	global options
	filter statements
	parser, rewrite statements
	traffic sources
	traffic destinations
	log statement

* syslog-ng global options
allow you to control the global behavior
options include:
	entries to resolve hosts via dns
	how many log entries to write(2) at a time - no mandatory synchronous writes on socket / fdsync() on files, saves on disk i/o
	permissions to assign to files
	buffer sizes
	whether or not to preserve names whentries are forwarded through another syslog process

* global options example
specified in an options block:
@version: 3.0
options{
	flush_lines(100);
	use_dns(no);
	owner(root);
	group(logs);
	perm(0640);
	dir_perm(0750);
	dir_owner(root);
	dir_group(logs);
	...
}

* traffic sources
uses traffic sources to define where syslog-ng should log messages from
types of sources:
	internal - internally generated
	file
	fifo (named pipe)
	program
	tcp/udp socket
	unix-dgram

* example sources
created by adding a source statement along with one or more configuration directives to a source block:
source local {
	file("/proc/kmsg" log_prefix("kernel: ");
	unix-stream("/dev/log");
	internal();
}

source network {
	udp(ip(0.0.0.0) port(514));
};

* log dests
specify where messages should be written / forwarded
types:
	file
	fifo
	program
	sql
	tcp / udp
	unix-dgram / unix-stream
	usertty
macros for flexible naming:
	$HOST
	$IP (source IP address)
	$MONTH, $DAY, $YEAR - date message created. other timestamps also available.
	syslog-ng 3.x man page has the complete list

* example destination
created by defining a destination {} with a log dest, and adding optional dest options:
destination d_unix_oom_msgs {
file("/log/unix/kernoom.$HOST.$YEAR.$MONTH.$DAY"
	owner(matty) group(matty) perm(0600)
	dir_owner(matty) dir_group(matty)
	dir_perm(0700);
};

* filters
allow you to route incoming msgs to dests based on criteria
matched using one or more filter funcs:
	facility
	level
	match - match against a string in message, headers
	message - matches a string against the message body
	host - match ip or hostname
	netmask
	additional funcs in man page
complex filters possible using POSIX, PCRE regexes plus boolean (or, and, not) operators

* example filter
lok for messages from 192.168.1.1, 1.2 that are part of kern facility and contain "Out of Memory":
filter f_kern_oom {
	((host(192.168.1.1") or
	host("192.168.1.2")) and
	facility(kern) and
	level(debug...emerg) and
	message("Out of Memory"));
};

* log statements
let you combine filters, sources, dests to control where messages are sent:
log { source(network);
	filter(f_kern_oom);
	destination(d_unix_oom_msgs);
	flags(final);
};

* monitoring syslog-ng usage
syslog-ng gathers stats for each log dest, and will write them out periodically -- interval controlled by the stats(time interval) directive -- to the system logs. look in system logs for "syslog-ng.* Log statistics"

* debugging syslog-ng issues
if a filter isn't working as expected, run syslog-ng with "-d" (debug) and "-e" (log to stderr) options to observe rule processing:
$ syslog-ng -e -d > /var/tmp/syslog.out 2>&#038;1

* conclusion
offers a flexible and easy way to configure centralized logging solution
combined with tools like logwatch and swatch, ou will know exactly what is going on with your servers, and will have one place to look when things go wrong

* references
syslog-ng web site: http://www.balabit.com/network-security/syslog-ng
manual: http://www.balabit.com/dl/guides/syslog-ng-v3.0-guide-admin-en.pdf

discussion:
windows stuff; google: syslog-ng windows agent (looks to be a pay-for addon)
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=213</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Atlanta Linux Fest 2009</title>
		<link>http://jeffgehlbach.com/?p=207</link>
		<comments>http://jeffgehlbach.com/?p=207#comments</comments>
		<pubDate>Wed, 23 Sep 2009 19:10:08 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[Geeky]]></category>
		<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[atlanta]]></category>
		<category><![CDATA[atlantalinuxfest]]></category>
		<category><![CDATA[atllinuxfest]]></category>
		<category><![CDATA[canonical]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Network Management]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=207</guid>
		<description><![CDATA[The second annual Atlanta Linux Fest took place this past Saturday, the 19th September 2009. IBM was gracious enough to provide the facility, and Canonical and eApps also provided major sponsorship. The show was a success by all measures, well exceeding the organizers&#8217; expectations. The official attendance numbers have not been published, but I have [...]]]></description>
			<content:encoded><![CDATA[<p>The second annual Atlanta Linux Fest took place this past Saturday, the 19th September 2009. <a href="http://www.ibm.com/">IBM</a> was gracious enough to provide the facility, and <a href="http://www.canonical.com/">Canonical</a> and <a href="http://www.eapps.com/">eApps</a> also provided major sponsorship. The show was a success by all measures, well exceeding the organizers&#8217; expectations. The official attendance numbers have not been published, but I have heard numbers between 600 and 700 &#8212; not bad for a show only in its second year and that fell on a very rainy day!</p>
<p>At <a href="http://www.boredandblogging.com/">Nick</a>&#8217;s request, I had convinced <a href="http://www.adventuresinoss.com/">Tarus</a> to give a talk, and I pretty much unilaterally decided that <a href="http://www.opennms.org/">OpenNMS</a> would also be an exhibitor. We scored an absolutely prime spot in the exhibit area and drew in lots of traffic. Our good friends Mita and Robbie at <a href="http://presentationrentals.com/">Presentation Rentals</a> (which sponsors <a href="http://www.ansmtug.org/">ANSMTUG</a> monthly) got us a great deal on a big monitor on which we ran our loop. My amazing <a href="http://plowkeeper.blogspot.com/">wife</a> volunteered to help out with the booth, her first time ever &#8220;wearing the shirt&#8221; though she&#8217;d hung out with us last October at a show in London. We always like to have as many community members representing as we have <a href="http://www.opennms.com/">OpenNMS Group</a> employees, so I recruited local friends <a href="http://www.krupczak.org/">Bobby</a> and <a href="http://ipsek.net/">Robert</a> to help man the booth. I&#8217;m confident that each of them fully earned a 100% commission on the free software he sold that day.</p>
<div id="attachment_208" class="wp-caption alignleft" style="width: 235px"><img src="http://jeffgehlbach.com/wp-content/uploads/2009/09/0919_132532-225x300.jpg" alt="A plethora of Papa John&#039;s pizza pies, constituting lunch at Atlanta Linux Fest 2009" title="A plethora of Papa John&#039;s pizza pies" width="225" height="300" class="size-medium wp-image-208" /><p class="wp-caption-text">A plethora of Papa John's pizza pies, constituting lunch at Atlanta Linux Fest 2009</p></div>
<p>This show was the project&#8217;s first in Atlanta, and as happens in every new city, people came out of the woodwork who use OpenNMS to keep the IT infrastructure running smoothly at local companies that we previously had no idea were part of our user community. It turns out that <a href="http://www.gatech.edu">Georgia Tech</a>, which hosted last year&#8217;s <a href="http://www.opennms.org/wiki/Dev-Jam_2008">Dev-Jam</a>, is a user, as is <a href="http://georgiapower.com/">Georgia Power</a>. Less widely known users that we learned about include the company that provides the data underlying <a href="http://maps.google.com/">Google Maps</a>&#8216; and other providers&#8217; integrated roadway traffic services. I hope that some of these people will join the <a href="http://www.opennms.org/wiki/OBP">Order of the Blue Polo</a>, especially since both my wife and Bobby were modeling the shirt in question. It&#8217;s fitting, and a testament to the show organizers&#8217; excellent taste, that lunch came from a company represented in the OBP.</p>
<p>It was such a busy day for us that nobody had time to snap any pictures of our booth! We were fortunate enough to have, in the booth adjacent to ours, shutterbug Jane Ullah, who captured three of us <a href="http://www.flickr.com/photos/jeaniegal05/3935331585/">loafing</a> during a lull in the show traffic. If some images emerge that paint us in a less idle light, I&#8217;ll update this post to include them <img src='http://jeffgehlbach.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=207</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gone shootin&#8217;. Practically.</title>
		<link>http://jeffgehlbach.com/?p=193</link>
		<comments>http://jeffgehlbach.com/?p=193#comments</comments>
		<pubDate>Mon, 20 Jul 2009 20:58:42 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[2ndamendment]]></category>
		<category><![CDATA[family]]></category>
		<category><![CDATA[marksmanship]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=193</guid>
		<description><![CDATA[I like to shoot. I&#8217;ve been lucky enough so far never to have needed to shoot an animal for food or a fellow human being out of self defense. Although I consider myself a moderate on most issues, the right to keep and bear arms is a freedom that I cherish. That&#8217;s probably due in [...]]]></description>
			<content:encoded><![CDATA[<p>I like to shoot. I&#8217;ve been lucky enough so far never to have needed to shoot an animal for food or a fellow human being out of self defense. Although I consider myself a moderate on most issues, the <a href="http://en.wikipedia.org/wiki/Second_Amendment_to_the_United_States_Constitution">right to keep and bear arms</a> is a freedom that I cherish. That&#8217;s probably due in part to the fact that I grew up in a fairly rural area, and from a fairly young age tagged along with my father to the gun range for target practice. I was probably ten years old when I first personally shot anything, and I seem to recall having reliably hit a target at that age. After a few years of no shooting at all, I pretty easily earned my <a href="http://www.scouting.org/scoutsource/BoyScouts/AdvancementandAwards/MeritBadges/mb-RIFL.aspx">Rifle Shooting Merit Badge</a> at <a href="http://www.scbsa.org/CampDavyCrockett.html">Boy Scout camp</a>. That was more years ago than I like to admit, and unless you count <a href="http://en.wikipedia.org/wiki/Paintball">paintball</a> I haven&#8217;t discharged a firearm since.</p>
<p>That is, until last weekend, when I visited family for a wedding. (Insert hillbilly joke here.) My uncle, who is a part-time competitive marksman (and father of the bride), took dad and me to the <a href="http://www.bgslinc.com/modules.php?name=BGSL_Division_Pistol&#038;file=page&#038;load=Home.html">pistol range</a> for a few hours of turning neatly cast bits of lead and brass into irregularly flat ones.</p>
<div id="attachment_198" class="wp-caption alignright" style="width: 310px"><img src="http://jeffgehlbach.com/wp-content/uploads/2009/07/Photo-161-300x222.jpg" alt="My guest pass to Bluegrass Sportsmens League" title="Bluegrass Sportsmens League guest pass" width="300" height="222" class="size-medium wp-image-198" /><p class="wp-caption-text">My guest pass to Bluegrass Sportsmens League</p></div>
<p>This trip was my first time doing <a href="http://en.wikipedia.org/wiki/Practical_shooting">practical shooting</a>, in which time counts as much as accuracy. It turns out that from the holster at thirty yards I can reliably hit four rectangular steel plates, each about the size of an average <a href="http://www.networkgeek.org/">Dell notebook computer</a>, and then a larger fifth plate, in just over six seconds. That&#8217;s about a second slower than my dad and about three seconds slower than my uncle, but not a bad time for someone who hasn&#8217;t handled a loaded weapon in about 536 million seconds. More amazing is that I can do this with no damage to that flap of skin between the thumb and forefinger of the dominant hand, a part of the less experienced shooter that Glock actions seem to take particular delight in biting.</p>
<p>I&#8217;m now going to have to join my wife in applying for a Georgia firearms license (Georgia, my home these days, is one of the few United States that <a href="http://www.georgiacarry.org/cms/georgias-carry-laws-explained/frequently-asked-questions/#I_Do_Not_Have_a_Firearms_License">requires a license</a> to carry openly) and see if I can get that time under six seconds before my next visit to <a href="http://www.bgslinc.com/">BGSL</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nominations Open for SourceForge.net Community Choice Awards 2009</title>
		<link>http://jeffgehlbach.com/?p=125</link>
		<comments>http://jeffgehlbach.com/?p=125#comments</comments>
		<pubDate>Thu, 14 May 2009 15:47:55 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[sourceforge]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=125</guid>
		<description><![CDATA[Last week, SourceForge opened nominations for the 2009 Community Choice Awards. These annual awards provide a chance for the larger open source community to recognize the projects that they get the most out of. The OpenNMS project has made a strong showing in past years in the &#8220;Best Project for the Enterprise&#8221; category: a crowded [...]]]></description>
			<content:encoded><![CDATA[<p>Last week, <a href="http://www.sourceforge.net/">SourceForge</a> opened nominations for the <a href="http://sourceforge.net/community/cca09">2009 Community Choice Awards</a>. These annual awards provide a chance for the larger open source community to recognize the projects that they get the most out of. The <a href="http://www.opennms.org/">OpenNMS</a> project has made a strong showing in past years in the &#8220;Best Project for the Enterprise&#8221; category: a crowded field to be sure, but we think the most appropriate for a product that spans so many of the other categories.</p>
<p>If you use and love OpenNMS, you can help by nominating the project yourself &#8212; just click either of the logos below, then select &#8220;Best Project for the Enterprise&#8221; from the drop-down list. Thanks in advance!</p>
<p><a href="http://sourceforge.net/community/cca09/nominate/?project_name=OpenNMS&#038;project_url=http://sourceforge.net/projects/opennms/"><img src="http://opennms.svn.sourceforge.net/svnroot/opennms/opennms/trunk/opennms-webapp/src/main/webapp/images/logo.png" border="0" /><br />
<img src="http://sourceforge.net/images/cca/cca_nominate.png" border="0"/></a></p>
<p>If you&#8217;d like to pass along the word, here&#8217;s some HTML that you can paste into your own blog or other web page:</p>
<blockquote><p>
<code><br />
&lt;a href="http://sourceforge.net/community/cca09/nominate/?project_name=OpenNMS&amp;project_url=http://sourceforge.net/projects/opennms/"&gt;<br />
&lt;img src="http://sourceforge.net/images/cca/cca_nominate.png" border="0"/&gt;&lt;/a&gt;<br />
</code>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=125</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I configured OpenNMS to monitor Twitter</title>
		<link>http://jeffgehlbach.com/?p=118</link>
		<comments>http://jeffgehlbach.com/?p=118#comments</comments>
		<pubDate>Wed, 13 May 2009 21:33:37 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[Network Management]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=118</guid>
		<description><![CDATA[Shortly after Tarus published this post, I received a Twitter DM from Esmir Alemic asking if I would mind sharing the configuration for the Twitter service monitor. I tried to post this as a comment to Tarus&#8217; post, but my pre-formatted HTML got stripped out. So here it is. I used the Provisioning Groups feature [...]]]></description>
			<content:encoded><![CDATA[<p>Shortly after Tarus published <a href="http://blogs.opennms.org/?p=893">this post</a>, I received a Twitter DM from <a href="http://twitter.com/alemic">Esmir Alemic</a> asking if I would mind sharing the configuration for the Twitter service monitor. I tried to post this as a comment to Tarus&#8217; post, but my pre-formatted HTML got stripped out. So here it is. I used the <a href="http://www.opennms.org/index.php/Provisioner">Provisioning Groups</a> feature to create the twitter.com node and Twitter service, which in OpenNMS 1.6 requires the addition of a dummy protocol plugin to the <tt>capsd-configuration.xml</tt> file (in 1.8 you&#8217;ll be able to do this using Provisiond instead):</p>
<blockquote><p>
<code><br />
&lt;protocol-plugin protocol="Twitter" class-name="org.opennms.netmgt.capsd.plugins.LoopPlugin" scan="off" /&gt;<br />
</code>
</p></blockquote>
<p>The real magic lives in the <tt>poller-configuration.xml</tt> file. Define the Twitter service in the appropriate package (beware the default-empty &#8220;strafer&#8221; package):</p>
<blockquote><p>
<code></p>
<p>&lt;service name="Twitter" interval="600000" user-defined="false" status="on"&gt;<br />
 &lt;parameter key="retry" value="1" /&gt;<br />
 &lt;parameter key="timeout" value="5000" /&gt;<br />
 &lt;parameter key="page-sequence"&gt;<br />
  &lt;page-sequence&gt;<br />
   &lt;page path="/twitter" port="80" successMatch="(?s).*&lt;title&gt;Twitter \(twitter\) on Twitter.*"<br />
      virtual-host="twitter.com"<br />
      user-agent="OpenNMS/1.6 (JVM; I; Most Any Platform; en-us)" /&gt;<br />
  &lt;/page-sequence&gt;<br />
 &lt;/parameter&gt;<br />
&lt;/service&gt;<br />
</code>
</p></blockquote>
<p>Finally, don&#8217;t forget to tell the poller which monitor class to use for the Twitter service:</p>
<blockquote><p>
<code><br />
&lt;monitor service="Twitter" class-name="org.opennms.netmgt.poller.monitors.PageSequenceMonitor" /&gt;<br />
</code>
</p></blockquote>
<p>I used the <a href="http://www.opennms.org/index.php/Page_Sequence_Monitor_%28PSM%29_Setup">PageSequenceMonitor</a> rather than the more basic <a href="http://www.opennms.org/index.php/HttpMonitor">HttpMonitor</a> because I plan on coming back later and making the page sequence include logging in to a Twitter account, verifying that some more sophisticated tests pass, and logging out again.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=118</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cakes and Ale</title>
		<link>http://jeffgehlbach.com/?p=103</link>
		<comments>http://jeffgehlbach.com/?p=103#comments</comments>
		<pubDate>Tue, 10 Mar 2009 13:54:50 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Food]]></category>
		<category><![CDATA[atlanta]]></category>
		<category><![CDATA[cakesandale]]></category>
		<category><![CDATA[decatur]]></category>
		<category><![CDATA[restaurant]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=103</guid>
		<description><![CDATA[Add to the list of places we must try: Cakes and Ale in Decatur. Also add to the list of restaurants with a dish on the menu that includes fennel pollen. Hope I&#8217;m not allergic!
]]></description>
			<content:encoded><![CDATA[<p>Add to the list of places we must try: <a href="http://www.cakesandalerestaurant.com/eat.html">Cakes and Ale</a> in Decatur. Also add to the list of restaurants with a dish on the menu that includes fennel pollen. Hope I&#8217;m not allergic!</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=103</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feeding the Ecosystem vs. Feeding the Trolls</title>
		<link>http://jeffgehlbach.com/?p=96</link>
		<comments>http://jeffgehlbach.com/?p=96#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:03:41 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[diaf]]></category>
		<category><![CDATA[digium]]></category>
		<category><![CDATA[ecosystem]]></category>
		<category><![CDATA[foad]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[stewardship]]></category>
		<category><![CDATA[troll]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=96</guid>
		<description><![CDATA[One of the lists that I read, and occasionally post to, is asterisk-dev. I usually don&#8217;t have time to follow the discussion closely, but this morning Russell posted (and blogged) about the possibility of the Asterisk project getting involved with Google&#8217;s Summer of Code this year. Russell solicited input from the list on projects that [...]]]></description>
			<content:encoded><![CDATA[<p>One of the lists that I read, and occasionally post to, is <a href="http://lists.digium.com/mailman/listinfo/asterisk-dev">asterisk-dev</a>. I usually don&#8217;t have time to follow the discussion closely, but this morning <a href="http://www.russellbryant.net/">Russell</a> posted (and <a href="http://www.russellbryant.net/blog/2009/03/09/google-summer-of-code-2009/trackback">blogged</a>) about the possibility of the <a href="http://www.asterisk.org/">Asterisk</a> project getting involved with Google&#8217;s <a href="http://code.google.com/soc/">Summer of Code</a> this year. Russell solicited input from the list on projects that people would be interested to see worked on and, more importantly, willing to mentor. The <a href="http://www.opennms.org/">OpenNMS</a> project (which <a href="http://www.opennms.com/">my employer</a> sponsors and helps maintain) was a mentoring organization in the 2008 GSoC, so I sat up and paid attention.<br />
<span id="more-96"></span><br />
The first <a href="http://lists.digium.com/pipermail/asterisk-dev/2009-March/037067.html">response</a> was a suggestion for a third-party license server. Now on its own, that proposal is at least somewhat reasonable &#8212; developers of commercially-licensed applications that run on GPL-licensed Asterisk would of course like to be freed from the drudgery of bringing their own license enforcement code, and a trickle-down benefit to the Asterisk project could arguably result. However, the person making this suggestion felt the need to go from &#8220;somewhat reasonable&#8221; to &#8220;colossal <a href="http://www.catb.org/~esr/jargon/html/T/troll.html">troll</a>&#8221; by adding the following zinger:</p>
<blockquote><p>Seems no one at digium is capable of implementing it so why not give some 18 year old kid the chance. </p></blockquote>
<p>Russell identified the project suggestion as not necessarily fitting the spirit of GSoC, and the comment as completely unnecessary. The troll, of course, <a href="http://lists.digium.com/pipermail/asterisk-dev/2009-March/037069.html">didn&#8217;t take the hint</a>.</p>
<p>First, let me defend those insulted here. I know personally and/or have worked with professionally probably a dozen or more Digium employees, and every one of them is a first-class developer, engineer, product manager, or people manager. I have also been a GSoC mentor, and can say without reservation that as a rule, any student who has made the cut to participate in the Summer of Code is not &#8220;some 18 year old kid&#8221; but an adult (in more than just the legal sense) worthy of the same respect as any other colleague.</p>
<p>Second, for those who don&#8217;t instinctively understand why a third-party license server, even an open-source one, is outside the spirit of GSoC, let me refer to the <a href="http://code.google.com/opensource/gsoc/2009/faqs.html#0_1_what_is_9602427361688181_0">2009 GSoC FAQ</a> on the first of several goals the program aims to accomplish:</p>
<blockquote><p>Get more open source code created and released for the benefit of all;</p></blockquote>
<p>As discussed above, such a project could arguably have an indirect benefit to the Asterisk project by easing one unpleasant development task and therefore making Asterisk more attractive to a wider range of developers. The problem is that the only developers who are currently saddled with that unpleasantness are, by definition, ones who are creating non-open-source products. I&#8217;ll stop short of saying that any commercial licensing libraries exist that are &#8220;perfectly good&#8221;, but there are ones out there that get the job done if you&#8217;re willing to pay to include them in your products. Apparently this troll thinks that Digium owes him a free alternative to those products, and that if Digium won&#8217;t spend its own money to write one for him, perhaps they could dupe <a href="http://www.google.com/">Google</a> into paying a $5,000 USD stipend to some hapless code-monkey kid who&#8217;ll write it for them.</p>
<p>That&#8217;s not what GSoC is about, and it&#8217;s not what open source software generally is about, and it&#8217;s not what Digium is about. Here&#8217;s the kind of company Digium is.</p>
<p>Around ten years ago, a friend of mine was running a business called Linux Support Services. Realizing that he needed a phone system, he looked around and saw that the options on the market that could meet his needs were impossibly expensive for the budget of his company, which he had bootstrapped in his parents&#8217; garage before moving its offices to a bigger city. Since he was a telephony geek and a Linux geek and a brilliant guy who didn&#8217;t know to be afraid of the task, he sat down and started writing a software <a href="http://en.wikipedia.org/wiki/Private_branch_exchange">PBX</a> that ran on Linux. When it got to the point of being usable, he decided to release it under an open-source license for anybody to download and use for free. Over the course of a couple years, the PBX software grew in maturity and popularity to the point that the company was doing more business around the PBX software than in the area of Linux support. The company found further success building and selling hardware for interfacing the PBX software with the traditional telephone network, and since the company had either sole or joint copyright on all the PBX code it was also able to sell a thoroughly quality-assured, supported version of the PBX software under a commercial license to customers with a need for such a thing. Never has the commercial product had any features that were missing from the open-source product, and the direction the company has chosen for the project has always been heavily informed by the wishes of the open-source development community outside the company. Since the company had moved fully into the digital telephony space, it changed its name. To Digium.</p>
<p>One of the things I&#8217;ve always admired about Digium as a company is that it&#8217;s very good, on balance, about recognizing that the community of open-source developers outside the company is an essential part of what makes Asterisk great. It&#8217;s an attribute that we try our best to share as we <a href="http://www.opennms.com/">make money</a> in support of our stewardship of the <a href="http://www.opennms.com/">OpenNMS</a> project. Digium also recognizes that the ecosystem of third-party commercial products and services that has grown up around Asterisk must be nourished if the platform is to remain innovative and relevant. The community and the ecosystem usually coexist peacefully even if they don&#8217;t entirely agree on all points, or entirely understand each other at all times. This morning&#8217;s incident, I think, serves as an extreme example of what can happen when somebody from the ecosystem with an inflated sense of his own entitlement metaphorically drives a truck through the front window of the room where the community is busy working. It&#8217;s a testament to the mettle of the Asterisk community that the troll got only a single, cool-headed reply to his overture, and then nothing but silence when he tried to stir things up again. The thread about GSoC, meanwhile, has yielded lots of good discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool GE Smart Grid Flash &#8220;hologram&#8221; gizmo</title>
		<link>http://jeffgehlbach.com/?p=78</link>
		<comments>http://jeffgehlbach.com/?p=78#comments</comments>
		<pubDate>Fri, 06 Mar 2009 23:43:58 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[deadtree]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[ge]]></category>
		<category><![CDATA[generalelectric]]></category>
		<category><![CDATA[ironic]]></category>
		<category><![CDATA[plugintothesmartgrid]]></category>
		<category><![CDATA[retweet]]></category>
		<category><![CDATA[taylorbanks]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=78</guid>
		<description><![CDATA[I wanted to to a little more than just re-tweet the link that Taylor posted earlier. I don&#8217;t have time to do a full-blown post, but here are some screen shots of the pseudo-holographic Flash gizmo that GE is doing as part of its Plug Into the Smart Grid campaign at work.

When you first visit [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to to a little more than just <a href="http://www.urbandictionary.com/define.php?term=retweet">re-tweet</a> the link that <a href="http://taylorbanks.com/">Taylor</a> posted earlier. I don&#8217;t have time to do a full-blown post, but here are some screen shots of the pseudo-holographic Flash gizmo that <a href="http://www.ge.com">GE</a> is doing as part of its <a href="http://plugintothesmartgrid.com">Plug Into the Smart Grid</a> campaign at work.<br />
<span id="more-78"></span></p>
<p>When you first visit the site, it asks you to print out a <a href="http://ge.ecomagination.com/smartgrid/ar/printme.pdf">Solar Panel Marker</a>. Like, with your printer. Now that I think about it, there&#8217;s a small irony in asking me to do that as part of a &#8220;green&#8221; campaign, but I digress. Print yours on the back side of a piece of scrap paper if you want to indulge your conscience.</p>
<p>So I&#8217;ve got this piece of dead tree in my hand, and from the <a href="http://ge.ecomagination.com/smartgrid/#/augmented_reality">Smart Grid Augmented Reality</a> page I launch the windmill demo. Hold up the paper to my webcam, which just looks like this:</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 310px"><img src="http://jeffgehlbach.com/wp-content/uploads/2009/03/photo-10-300x225.jpg" alt="Holding up the Solar Panel Marker" title="photo-10" width="300" height="225" class="size-medium wp-image-79" /><p class="wp-caption-text">Holding up the Solar Panel Marker - BORING</p></div>
<p>Once I grant the Flash gizmo access to my camera and speakers, though, it draws on top of the webcam input an animated, quasi-holographic plot of a scene with three wind turbines and that scarecrow that I still don&#8217;t understand because I didn&#8217;t watch any of the Superb Owl, not even the commercials. Move the piece of dead tree around, and the camera angle changes. It&#8217;s really the kind of thing you just have to try for yourself &#8212; as Taylor commented, <a href="http://twitter.com/taylorbanks/statuses/1289888509">::mind is blown::</a>. Here&#8217;s the windmill demo:</p>
<div id="attachment_81" class="wp-caption aligncenter" style="width: 310px"><img src="http://jeffgehlbach.com/wp-content/uploads/2009/03/picture-4-300x242.png" alt="Windmill demo - Spiffy!" title="picture-4" width="300" height="242" class="size-medium wp-image-81" /><p class="wp-caption-text">Wind Turbine demo - Spiffy</p></div>
<p>And here&#8217;s the solar panel one:</p>
<div id="attachment_80" class="wp-caption aligncenter" style="width: 310px"><img src="http://jeffgehlbach.com/wp-content/uploads/2009/03/picture-3-300x242.png" alt="The solar panel demo from GE&#039;s Augmented Reality gizmo" title="picture-3" width="300" height="242" class="size-medium wp-image-80" /><p class="wp-caption-text">Solar Panel demo - Also spiffy</p></div>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=78</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regarding &#8220;The Most Free(tm) Way to Make Money from Open Source&#8221;</title>
		<link>http://jeffgehlbach.com/?p=62</link>
		<comments>http://jeffgehlbach.com/?p=62#comments</comments>
		<pubDate>Sat, 28 Feb 2009 22:43:41 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[OpenNMS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[hyperic]]></category>
		<category><![CDATA[opencore]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[reductive]]></category>
		<category><![CDATA[zenoss]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=62</guid>
		<description><![CDATA[I was going to hold off until Tarus had a chance to respond to Luke&#8217;s post, but I&#8217;m guessing Tarus is away from the intarwebs today. After having trouble posting my comment (probably just too long to be accepted) on Luke&#8217;s blog, I&#8217;m doing it as a post here on my own.
Without presuming to speak [...]]]></description>
			<content:encoded><![CDATA[<p>I was going to hold off until <a href="http://blogs.opennms.org/">Tarus</a> had a chance to respond to <a href="http://madstop.com/2009/02/28/the-most-freetm-way-to-make-money-from-open-source">Luke&#8217;s post</a>, but I&#8217;m guessing Tarus is away from the intarwebs today. After having trouble posting my comment (probably just too long to be accepted) on Luke&#8217;s blog, I&#8217;m doing it as a post here on my own.</p>
<p>Without presuming to speak for Tarus (<a href="http://www.raccoonfink.com/">Ben</a> and I both work with Tarus and so are quite familiar with his philosophies) I&#8217;d like to lay out a few places where I think Luke&#8217;s post missed the mark. These thoughts are ones that I really wanted to get across in person during our brief conversation in January after Luke&#8217;s talk at CloudCampATL, but I didn&#8217;t want to hog his time.</p>
<p>My points follow.</p>
<ol>
<li>Open-core is not invalid as a business model, it&#8217;s just not the same as open-source</li>
<p>Tarus&#8217; campaign is not against the open-core business model itself.  It&#8217;s against open-core companies that want to have it both ways by playing the necessary-feature-withholding game but still calling themselves &#8220;open source companies&#8221;. It&#8217;s <a href="http://blogs.opennms.org/?p=163">not about hate</a> but about calling something what it is.</p>
<li>Joint ownership of copyright and why we as a project sponsor pursued it</li>
<p>As the maintainers of OpenNMS, we do require all contributors to execute an agreement that concerns copyright.  It&#8217;s not about attribution or assignment, though, as assignment in particular is essentially impossible under current U.S. copyright law.  It&#8217;s actually about declaring a shared or joint copyright.  A contributor who executes the <a href="http://www.opennms.org/documentation/ContributorAgreement.pdf">OpenNMS Contributor Agreement</a> (which Tarus blogged about <a href="http://blogs.opennms.org/?p=227">here</a>) forfeits exactly zero rights while simultaneously granting us the same set of rights that the contributor has.  The contributor is still free to do anything he wishes with his contribution &#8212; license it commercially, give it away under a non-GPL-compatible license, print it out and roll a joint with it, or (gasp) also contribute it to <a href="http://www.hyperic.com/">Hyperic</a>.  That point was key in our selecting this agreement, which as <a href="http://madstop.com/2009/02/28/the-most-freetm-way-to-make-money-from-open-source/?disqus_reply=6731543#comment-6723928">Ben pointed out earlier</a> is literally the <a href="http://www.sun.com/software/opensource/sca.pdf">Sun Contributor Agreement</a> with e-mail and fax information added and &#8220;Sun Microsystems&#8221;, &#8220;OpenSolaris&#8221;, and &#8220;California&#8221; changed to &#8220;The OpenNMS Group&#8221;, &#8220;OpenNMS&#8221;, and &#8220;North Carolina&#8221; respectively. We were incredibly hesitant to add this kind of requirement, and we didn&#8217;t do so unilaterally.  When we went shopping for an agreement, we created a committee of non-employees from the <a href="http://www.opennms.org/index.php/Order_of_the_Green_Polo">Order of the Green Polo</a> (the secret society of core OpenNMS contributors) to do the research and waited months for them to make a recommendation &#8212; they all have day jobs, after all.  We knew that we ran the risk of pissing off and maybe even running off valuable community members, something that thankfully did not happen.  Even with OCAs on file for all our contributors, we still don&#8217;t hold all the copyright since we inherited the code from the original creator, Oculan (formerly PlatformWorks, then Atipa, now part of Raritan through subsequent acquisitions).  Raritan doesn&#8217;t want to sell us the intellectual property for one dollar, so we couldn&#8217;t do anything evil with the code today even if we had the desire to do so.</p>
<p>At the end of the day, our motivation for adding the OCA was about protecting the community, not about enriching ourselves.  Having all the rights conferred under U.S. copyright law is the only way that we as a company can take legal action to protect the community from having its work <a href="http://blogs.opennms.org/?p=181">(allegedly!) ripped off</a> by people whose primary interest actually <em>is</em> self-enrichment. it&#8217;s incredibly tricky to pursue a GPL-violation lawsuit when you don&#8217;t hold copyright on your entire code base. Having an OCA for each contributor means that if the project ever has to appear in court, we don&#8217;t have to go broke flying everybody who&#8217;s ever contributed code to the venue.  One other thing that a folder full of OCAs allows us to consider doing is offering patent indemnification to our support customers.</p>
<li>Making money selling software, and pragmatism</li>
<p>As far as development costing money, <a href="http://www.opennms.com/">The OpenNMS Group</a> is in exactly the same boat as Reductive Labs.  We&#8217;re not running a charity either, and we&#8217;ve all got heads full of ideas that we just don&#8217;t have the resources to translate into code.  It takes real discipline when you love the project as much as I do to put off work on an amazingly cool feature until we find somebody willing to fund it, and go work on weatherizing the damn house instead (which I should be doing right now).  Would we ever sell some software?  We&#8217;ve talked about it, but we would never sell OpenNMS to end users.  If we held all the copyright would we maybe license the code commercially to, hypothetically, HP as the foundation of a completely redone OpenView Network Node Manager?  Only if the community were on board, and the version HP got would be exactly the same as the GPL version, and we&#8217;d plow almost every penny of profit back into the project the same as we do today. This all in keeping with our promise that &#8220;OpenNMS will never suck, and it will always be free.&#8221;</p>
<li>Supported binaries and what we&#8217;re willing to support</li>
<p>Luke refers to a model of producing supported binaries &#8212; which we do, but we also are just as happy to support a customer who builds everything from source.  There&#8217;s no shrink-wrapped version of OpenNMS is what I&#8217;m getting at here, and if there ever is, it won&#8217;t affect our willingness to support people who roll their own.  We even support customers who make substantial changes to the code provided they <a href="http://www.opennms.com/pricing.html">purchase</a> a Developer Support agreement in addition to Basic or Enterprise support.  <a href="http://www.digium.com/">Digium</a> is going through a transition to a similar model right now &#8212; they&#8217;re about to start offering support contracts for <a href="http://www.asterisk.org/">GPL Asterisk</a> where they previously offered support only as part of the cost of the shrink-wrapped <a href="http://www.digium.com/en/products/software/abe.php">Asterisk Business Edition</a>.  While I wish we had something like Digium&#8217;s <a href="http://www.digium.com/en/products/digital/">hardware</a> revenue stream to draw from, I do think that their move is something of a validation of our model.</p>
<li>The greater sin is (C), both of the above</li>
<p>Last item, and this one&#8217;s actually way more than just the semantic distinction that I thought it would be when I wrote this paragraph the first time.  Luke asks, &#8220;Is it a greater sin to only accept patches to your product if the contributor is willing to assign copyright to your commercial company, or to produce some closed-source code?&#8221;  I would like to point out that the open-core guys, in our sector at least, are doing both.  See <a href="http://www.zenoss.com/community/get-involved/zenoss-contributor-agreement">Zenoss</a>&#8216; and <a href="http://support.hyperic.com/display/hypcomm/Hyperic+Contributor+HOWTO">Hyperic</a>&#8217;s terms.  In so doing, these guys are accepting code from the community and reserving the right to roll it into their closed-source code.
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=62</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CloudCampATL video!</title>
		<link>http://jeffgehlbach.com/?p=41</link>
		<comments>http://jeffgehlbach.com/?p=41#comments</comments>
		<pubDate>Sat, 24 Jan 2009 19:23:04 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Geeky]]></category>
		<category><![CDATA[ccatl]]></category>

		<guid isPermaLink="false">http://jeffgehlbach.com/?p=41</guid>
		<description><![CDATA[In an effort to be helpful, meet some new folks, and figure out which aspects of the current cloud computing craze will actually be relevant in the future, I volunteered at the first CloudCampATL. Originally I was supposed to be the network administrator, but there ended up being no network to administer so I handed [...]]]></description>
			<content:encoded><![CDATA[<p>In an effort to be helpful, meet some new folks, and figure out which aspects of the current <a href="http://en.wikipedia.org/wiki/Cloud_Computing">cloud computing</a> craze will actually be relevant in the future, I volunteered at the first <a href="http://www.cloudcamp.com/?page_id=244">CloudCampATL</a>. Originally I was supposed to be the network administrator, but there ended up being no network to administer so I handed out shirts to the other volunteers, helped out at badge pick-up, and took some video using one of the two <a href="http://www.theflip.com">Flip</a> video recorders that one of the event sponsors kindly donated, and which we gave away in a drawing at the end of the evening. <a href="http://twitter.com/siddhartha">Sid</a> and I each shot some, and I&#8217;ve since spent hours trying to get the video off of my Mac and onto a sharing site. Right when I was ready to give up on YouTube, <a href="http://www.dougmcclure.net">Doug McClure</a> suggested <a href="http://blip.tv">blip.tv</a>, so that&#8217;s where it&#8217;s going. All  the videos that I&#8217;m aware of are embedded after the jump. It&#8217;s also available directly from blip by searching tag <a href="http://blip.tv/search/?topic_name=ccatl"><em>ccatl</em></a>. If anybody knows who the speaker is in the Joyent video, please let me know.<br />
<span id="more-41"></span></p>
<h2>John Willis on What is a Cloud?</h2>
<p><embed src="http://blip.tv/play/AefhGpOcRg" type="application/x-shockwave-flash" width="640" height="375" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<h2>Sudesh Oudi on EC2 and Windows</h2>
<p><embed src="http://blip.tv/play/AeiLJQA" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<h2>Unknown Speaker on Joyent User Experience 1/3</h2>
<p><embed src="http://blip.tv/play/AeiLKJOfZQ" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<h2>Unknown Speaker on Joyent User Experience 2/3</h2>
<p><embed src="http://blip.tv/play/AeiOUwA" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed></p>
<h2>Unknown Speaker on Joyent User Experience 3/3</h2>
<p><embed src="http://blip.tv/play/AeiQepOfZQ" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<h2>Luke Kanies on Puppet</h2>
<p><embed src="http://blip.tv/play/AeiXK5OfZQ" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<h2>Dave Wright on Jungle Disk</h2>
<p><embed src="http://blip.tv/play/AeigIZOfZQ" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
<h2>Russell Jurney on Scalr</h2>
<p><embed src="http://blip.tv/play/AeigJ5OfZQ" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed> </p>
]]></content:encoded>
			<wfw:commentRss>http://jeffgehlbach.com/?feed=rss2&amp;p=41</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
