<?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>Light Year Software &#187; Apache</title>
	<atom:link href="http://lightyearsoftware.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://lightyearsoftware.com</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 22:19:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pow, IPv6 and localhost</title>
		<link>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F04%2Fpow-ipv6-localhost%2F&#038;seed_title=Pow%2C+IPv6+and+localhost</link>
		<comments>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F04%2Fpow-ipv6-localhost%2F&#038;seed_title=Pow%2C+IPv6+and+localhost#comments</comments>
		<pubDate>Thu, 21 Apr 2011 18:52:40 +0000</pubDate>
		<dc:creator>Steve Madsen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[Ruby & Rails]]></category>

		<guid isPermaLink="false">http://lightyearsoftware.com/?p=670</guid>
		<description><![CDATA[Pow is a new zero-configuration server for Rack web applications by 37Signals. It makes development, especially on multiple applications, painless: it adds a new .dev domain, with individual apps symlinked from ~/.pow. Pow manages application instances automatically and integrates seamlessly with RVM. I&#8217;ve been using Passenger Standalone instead of WEBrick or Mongrel for a while [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pow.cx/">Pow</a> is a new zero-configuration server for Rack web applications by 37Signals. It makes development, especially on multiple applications, painless: it adds a new <tt>.dev</tt> domain, with individual apps symlinked from <tt>~/.pow</tt>. Pow manages application instances automatically and integrates seamlessly with <a href="https://rvm.beginrescueend.com/">RVM</a>.<span id="more-670"></span></p>
<p>I&#8217;ve been using Passenger Standalone instead of WEBrick or Mongrel for a while and it&#8217;s great, but Pow simplifies things even further: now I don&#8217;t even have to restart the server when switching between projects.</p>
<p>The only thing that bothered me is that it installs a firewall rule to forward traffic from port 80 to 20559. I do some PHP work under the Apache that ships with OS X and I don&#8217;t want to add a port number to my URL there, nor do I want to uglify those nice new <tt>.dev</tt> URLs for Pow.</p>
<p>Oddly enough, though, this isn&#8217;t true for me. If I go to <tt>localhost</tt>, up came the expected page from Apache, while <tt>foo.dev</tt> went to Pow. I didn&#8217;t specify a port for either.</p>
<p>What&#8217;s happening is that <tt>localhost</tt> is resolving to an IPv6 address (::1) and the <tt>ipfw</tt> rule doesn&#8217;t cover IPv6, only IPv4.</p>
<p>In this case, &#8220;it&#8217;s not a bug, it&#8217;s a feature&#8221; is 100% true. I hope Pow never &#8220;fixes&#8221; this.</p>
<p><strong>Update June 29:</strong> Sadly, while I haven&#8217;t updated Pow, Mac OS X 10.6.8 now resolves &#8220;localhost&#8221; to the IPv4 address and this little trick has stopped working for me. Using the IPv6 loopback address is still OK: <a href="http://[::1]/">http://[::1]/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F04%2Fpow-ipv6-localhost%2F&#038;seed_title=Pow%2C+IPv6+and+localhost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Announcing mod_proxy_content 1.0</title>
		<link>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F02%2Fannouncing-mod_proxy_content-1-0%2F&#038;seed_title=Announcing+mod_proxy_content+1.0</link>
		<comments>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F02%2Fannouncing-mod_proxy_content-1-0%2F&#038;seed_title=Announcing+mod_proxy_content+1.0#comments</comments>
		<pubDate>Fri, 04 Feb 2011 19:58:26 +0000</pubDate>
		<dc:creator>Steve Madsen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://lightyearsoftware.com/blog/?p=56</guid>
		<description><![CDATA[I&#8217;m pleased to announce the availability of mod_proxy_content, an Apache 2.x module that is essential for reverse proxying modern web content. It is a fork of mod_proxy_html 3.0.1, with bug fix patches through 3.1.2, enhanced to better handle CSS and Javascript content without the need to create messy regular expressions in the Apache configuration files. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce the availability of mod_proxy_content, an Apache 2.x module that is essential for reverse proxying modern web content.  It is a fork of mod_proxy_html 3.0.1, with bug fix patches through 3.1.2, enhanced to better handle CSS and Javascript content without the need to create messy regular expressions in the Apache configuration files. It does <em>not</em> depend on mod_xml2enc, and so has the same problems with non-ASCII/UTF-8 as mod_proxy_html without mod_xml2enc.<span id="more-56"></span></p>
<p>Major enhancements include:</p>
<ul>
<li>Automatic creation of regular expressions specific to CSS and Javascript for use in <tt>&lt;style&gt;</tt> and <tt>&lt;script&gt;</tt> tags, as well as external files marked with appropriate content types. This avoids false matches, in particular for Javascript when a private server&#8217;s entire URL space is mapped to a subdirectory on the public server.</li>
<li>Support for remapping URLs in <tt>style</tt> attributes.</li>
<li>A new flag allows a URL mapping to be ignored for styles.</li>
<li>Fixed a bug that silently discarded HTML comments when ProxyHTMLExtended was on.  IE conditional comments look like HTML comments, and so were lost prior to this fix.</li>
<li>HTML comments are scanned for URL matches, again to fix up resources referenced inside an IE conditional comment.</li>
<li>URLs are always mapped in the order they are defined.  Global mappings (outside of a <tt>&lt;Location&gt;</tt> directive) are always applied first.</li>
<li>Fixed the HTML 4.01 DOCTYPEs so that they always emit a complete URI.</li>
<li>ProxyHTMLExtended is more fine-grained and can be enabled for just styles or scripts, as well as both (the old behavior when set to &#8220;on&#8221;).</li>
</ul>
<p>The development of this module was funded by the <a href="http://www.bbb.org/">Council of Better Business Bureaus</a> in late 2008. Some internal discussion held up the release of the code until now, but I&#8217;m pleased it is being made available to the Apache community. Note that because my work on this module took place two years ago, I can offer only very limited support for it.</p>
<p>The source code is available on <a href="https://github.com/lightyear/mod_proxy_content">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2011%2F02%2Fannouncing-mod_proxy_content-1-0%2F&#038;seed_title=Announcing+mod_proxy_content+1.0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generate wsesslog Workloads for httperf</title>
		<link>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2009%2F02%2Fgenerate-wsesslog-workloads-for-httperf%2F&#038;seed_title=Generate+wsesslog+Workloads+for+httperf</link>
		<comments>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2009%2F02%2Fgenerate-wsesslog-workloads-for-httperf%2F&#038;seed_title=Generate+wsesslog+Workloads+for+httperf#comments</comments>
		<pubDate>Thu, 05 Feb 2009 19:13:40 +0000</pubDate>
		<dc:creator>Steve Madsen</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Apache]]></category>

		<guid isPermaLink="false">http://lightyearsoftware.com/blog/?p=63</guid>
		<description><![CDATA[Over the last couple of days I&#8217;ve been bringing up an isolated test environment for a customer&#8217;s new site. (As an aside, one of the great things about moving to an Intel Mac is that I can run nearly any OS I want under VMware Fusion at near native speeds. You can&#8217;t beat testing in [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last couple of days I&#8217;ve been bringing up an isolated test environment for a customer&#8217;s new site. (As an aside, one of the great things about moving to an Intel Mac is that I can run nearly any OS I want under VMware Fusion at near native speeds. You can&#8217;t beat testing in an identical environment, and I can throw pretty respectable virtual hardware at it, too: up to a 4-core with gigs of memory. If only Apple would let me virtualize OS X client.)</p>
<p>I&#8217;m using <a href="http://www.hpl.hp.com/research/linux/httperf/">httperf</a> to simulate client load on the test server and quickly decided that <kbd style="white-space: nowrap">--wsesslog</kbd> looked like the best choice for simulating an actual browser&#8217;s effect on the server.</p>
<p>A problem: how to generate those session workloads? I certainly don&#8217;t want to do this by hand for even one page. I want to generate a hit on every file referenced by the target page, but ignore anything hosted elsewhere.</p>
<p>A solution:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'hpricot'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'open-uri'</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">if</span> ARGV.<span style="color:#9900CC;">length</span> <span style="color:#006600; font-weight:bold;">&lt;</span> <span style="color:#006666;">1</span>
  <span style="color:#ff6633; font-weight:bold;">$stderr</span>.<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;usage: #{$0} url
&nbsp;
  'url' must include the protocol prefix, e.g. http://&quot;</span>
  <span style="color:#CC0066; font-weight:bold;">exit</span> <span style="color:#006666;">1</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
url = ARGV.<span style="color:#9900CC;">shift</span>
<span style="color:#9966CC; font-weight:bold;">if</span> url =~ <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span>^<span style="color:#006600; font-weight:bold;">&#40;</span>https?:<span style="color:#006600; font-weight:bold;">//</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">-</span>a<span style="color:#006600; font-weight:bold;">-</span>z0<span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span>.<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#40;</span>:\d<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span>?<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">*/</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span>^<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">*</span><span style="color:#006600; font-weight:bold;">&#41;</span>$<span style="color:#006600; font-weight:bold;">&#125;</span>i
  <span style="color:#ff6633; font-weight:bold;">$protocol</span> = $1
  <span style="color:#ff6633; font-weight:bold;">$host</span> = $2
  <span style="color:#ff6633; font-weight:bold;">$document_dir</span> = $4
  document_url = $5
<span style="color:#9966CC; font-weight:bold;">else</span>
  <span style="color:#ff6633; font-weight:bold;">$stderr</span>.<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'Could not parse protocol and host from URL'</span>
  <span style="color:#CC0066; font-weight:bold;">exit</span> <span style="color:#006666;">1</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
doc = Hpricot<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0066; font-weight:bold;">open</span><span style="color:#006600; font-weight:bold;">&#40;</span>url<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> puts_link<span style="color:#006600; font-weight:bold;">&#40;</span>uri<span style="color:#006600; font-weight:bold;">&#41;</span>
  <span style="color:#0000FF; font-weight:bold;">return</span> <span style="color:#9966CC; font-weight:bold;">if</span> uri.<span style="color:#0000FF; font-weight:bold;">nil</span>?
&nbsp;
  <span style="color:#9966CC; font-weight:bold;">if</span> uri =~ <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span>^<span style="color:#008000; font-style:italic;">#{$protocol}#{$host}(.*)$}</span>
    <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;    #{$1}&quot;</span>
  <span style="color:#9966CC; font-weight:bold;">elsif</span> uri !~ <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span>^https?:<span style="color:#006600; font-weight:bold;">//</span><span style="color:#006600; font-weight:bold;">&#125;</span>
    <span style="color:#9966CC; font-weight:bold;">if</span> uri =~ <span style="color:#006600; font-weight:bold;">%</span>r<span style="color:#006600; font-weight:bold;">&#123;</span>^<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#125;</span>
      <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;    #{uri}&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">else</span>
      <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;    #{$document_dir}#{uri}&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;# httperf wsesslog for #{url} generated #{Time.now}&quot;</span>
<span style="color:#CC0066; font-weight:bold;">puts</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;#{$document_dir}#{document_url}&quot;</span>
&nbsp;
<span style="color:#006600; font-weight:bold;">&#40;</span>doc<span style="color:#006600; font-weight:bold;">/</span><span style="color:#996600;">&quot;link[@rel='stylesheet']&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>stylesheet<span style="color:#006600; font-weight:bold;">|</span>
  puts_link stylesheet.<span style="color:#9900CC;">attributes</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'href'</span><span style="color:#006600; font-weight:bold;">&#93;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#006600; font-weight:bold;">&#40;</span>doc<span style="color:#006600; font-weight:bold;">/</span><span style="color:#996600;">&quot;style&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>style<span style="color:#006600; font-weight:bold;">|</span>
  style.<span style="color:#9900CC;">inner_html</span>.<span style="color:#9900CC;">scan</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">/</span>@import\s<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'&quot;])([^<span style="color:#000099;">\1</span>]+)<span style="color:#000099;">\1</span>;/).each do |match|
    puts_link match[1]
  end
end
&nbsp;
(doc/&quot;script&quot;).each do |script|
  puts_link script.attributes['</span>src<span style="color:#996600;">']
end
&nbsp;
(doc/&quot;img&quot;).each do |img|
  puts_link img.attributes['</span>src<span style="color:#996600;">']
end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://lightyearsoftware.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Flightyearsoftware.com%2F2009%2F02%2Fgenerate-wsesslog-workloads-for-httperf%2F&#038;seed_title=Generate+wsesslog+Workloads+for+httperf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.245 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-04 08:59:01 -->

