<?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>Sander&#039;s Weblog</title>
	<atom:link href="http://www.temme.net/sander/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.temme.net/sander</link>
	<description>Open Source, Apache, Apple, Cloud and maybe even some Crypto stuff</description>
	<lastBuildDate>Wed, 21 Mar 2012 00:51:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Apache HTTP Server Usage Survey Results</title>
		<link>http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/</link>
		<comments>http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 13:00:19 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[ApacheCon]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=378</guid>
		<description><![CDATA[This post ran originally on blogs.apache.org/httpd. Wouldn’t it be nice if you had an idea of how people use the software that you write? I wanted to have an idea how the Apache HTTP Server is being used, and which &#8230; <a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This post ran originally on <a href="https://blogs.apache.org/httpd/entry/apache_http_server_usage_survey">blogs.apache.org/httpd</a>. </p>
<p>Wouldn’t it be nice if you had an idea of how people use the software that you write? I wanted to have an idea how the <a href="http://httpd.apache.org/">Apache HTTP Server</a> is being used, and which features users consider important. So, I set up a short online survey of eight questions and sent a link to it to the HTTP Server project user and developer mailing lists. Over the next week and a half, I got 134 responses. Here are the survey results in shiny pie charts with witty interpretation.<br />
<span id="more-378"></span></p>
<h2>On which operating system do you typically use Apache HTTP Server?</h2>
<p>This question, actually number two in the survey, received quite a few write-in responses. I had only the top four operating systems in the answer list, but respondents wrote in several more. One respondent wrote: “I use Apache simply because it works transparently on Linux and Windows,” and another “FreeBSD on my hosting service, Linux at the office.” One respondent wrote: “Estou começando a programar em php!” (I’m starting to program in PHP!) The following graph has all of the operating systems that appeared in the survey responses:</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/operating-systems-full/" rel="attachment wp-att-373"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/operating-systems-full.png" alt="" title="Which operating system" width="500" height="375" class="aligncenter size-full wp-image-373" /></a></p>
<p>Linux and Windows make up the vast majority of operating systems in use, accounting for over 80%. Sliced another way, 80% of respondents uses Apache on Unix-like platforms.</p>
<p>Why all those write-ins? My theory is that it has to do with the desire to make one’s platform of choice known. Usually when we are asked this question, the asking is done by marketeers trying to save some money by cutting support for less popular platforms. If we don’t speak up, our platform might get cut. Fortunately, Apache doesn’t work this way: support for various operating systems and platforms is provided by the developer community. Whether a specific operating system is popular does not matter: as long as there are developers interested in supporting a platform, the Apache HTTP Server will run on it.</p>
<h2>How do you typically obtain your Apache HTTP Server Software</h2>
<p>Technically, the httpd project only releases source code: once the source code archive is up on the download servers, the project is done with the release. Anyone can download and compile the software for his own use. However, a lot of users obtain httpd through some other means. They don&#8217;t have the expertise to compile their own, or find it unnecessary because their Linux distribution comes with httpd already installed. Some platforms, like Windows, ship without a compiler and building Apache on it is non-trivial. When asked how they typically obtained their Apache HTTP Server software, this is how the user community answered:</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/how-obtained/" rel="attachment wp-att-372"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/how-obtained.png" alt="" title="How do you typically obtain your Apache HTTP Server software" width="570" height="375" class="aligncenter size-full wp-image-372" /></a></p>
<p>A large minority of respondents compiles their own httpd from source. This is a little surprising: I assumed that more users would use packages from their distributions or third party downloads. Of course, most respondents learned about the survey from the httpd developer and user mailing lists: one can expect a large proportion of sophisticated users that have the expertise and wish to exercise control over their deployments that requires custom-built HTTP Server software. What’s interesting is the same data cross-referenced by operating system:</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/platform-method/" rel="attachment wp-att-374"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/platform-method.png" alt="" title="Acquisition method by platform" width="569" height="375" class="aligncenter size-full wp-image-374" /></a></p>
<p>Third party packages are popular on Windows, which ships without a compiler. Also, it is not trivial to build httpd and its supporting libraries on the platform. It’s much easier to grab an installer, especially since members of the httpd developer community usually make one available. To the credit of the port maintainer, all respondents who run FreeBSD install their httpd from the ports collection.</p>
<h2>Which version of Apache HTTP Server do you mostly run?</h2>
<p>There is very little surprise here: Apache HTTP Server 2.2.x is the most popular by far:</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/which-version/" rel="attachment wp-att-376"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/which-version.png" alt="" title="Which version of Apache do you mostly run" width="535" height="375" class="aligncenter size-full wp-image-376" /></a></p>
<h2>Which application API modules do you use?</h2>
<p>Respondents could select multiple answers to this question. PHP remains the most popular module: this is unlikely to surprise anyone.</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/api-modules/" rel="attachment wp-att-370"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/api-modules.png" alt="" title="Which application API modules do you use" width="500" height="375" class="aligncenter size-full wp-image-370" /></a></p>
<p>It’s interesting to see a strong showing for the good old CGI interface. The results may be slightly skewed by the fact that mod_python is no longer actively developed: as several people noted, its role has been taken over by mod_wsgi. I also did not include several integrations that might prove popular, like FastCGI.</p>
<h2>How important are the following features of Apache HTTP Server to you?</h2>
<p>This question allowed respondents to indicate how important various features of httpd are to them.</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/feature-temperature/" rel="attachment wp-att-371"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/feature-temperature.png" alt="" title="How important are these features to you" width="545" height="375" class="aligncenter size-full wp-image-371" /></a></p>
<p>The features people feel most passionate about are clearly SSL support and URL rewriting/mapping: these each got about 50% “can’t live without.” Nobody does not care about URL rewriting. Scalability and extensibility are important, but aren’t “can’t live without” features. The easy configuration gets only a small amount of passion: I guess that if you are familiar enough with httpd to fill out the survey, you tend to not be intimidated by its configuration language.</p>
<h2>Will you upgrade to Apache HTTP Server 2.4 when it is released?</h2>
<p>At the time of the survey, version 2.4 of the server had not been released. Asked whether they would upgrade immediately upon release, most respondents chose the safe route of waiting a while. A few intrepid souls (fewer than 20%) planned to upgrade immediately.</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/when-upgrade/" rel="attachment wp-att-375"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/when-upgrade.png" alt="" title="when-upgrade" width="500" height="375" class="aligncenter size-full wp-image-375" /></a></p>
<h2>In which environment do you mostly use Apache HTTP Server?</h2>
<p>This was the only demographic question in the survey: an attempt to learn a little bit about the respondents.</p>
<p><a href="http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/work-environment/" rel="attachment wp-att-377"><img src="http://www.temme.net/sander/wp-content/uploads/2012/03/work-environment.png" alt="" title="Which work environment" width="550" height="375" class="aligncenter size-full wp-image-377" /></a></p>
<p>Almost half of the respondents use httpd in a small or medium-sized business, and only one eight work in a Fortune 500 company. This discrepancy may be partially caused by the fact that there are millions of small and medium businesses, and the number of Fortune 500 companies is limited to… 500. Consultants and non-profit organizations are well represented; government respondents are a small minority.</p>
<p>If I could improve one thing about Apache HTTP Server, it would be…</p>
<p>This was a free-form write-in question: respondents could fill in whatever they wanted. Just under half of the respondents took advantage of this opportunity. The full list of responses will be shared with the HTTP Server development community, but I will quote a few.</p>
<p>Some respondents wanted to improve the feature set, such as:</p>
<ul>
<li>“A more advanced interface for adding or removing backend servers in reverse/balancer situations”</li>
<li>“Proper cluster synchronized cache”</li>
<li>“Easy cache control”</li>
</ul>
<p>Quite a few addressed the configuration process:</p>
<ul>
<li>“Ease of configuration”
</li>
<li>“The overall configuration spaghetti jungle. While I do understand the–extreme–flexibility, when you investigate someone else’s server, you have to wade through 10s of files for perhaps one website”
</li>
<li>“Easier configuration of virtual hosts”
</li>
<li>“Configuration file syntax; I&#8217;d completely re-do it to be more modern and less confusing”
</li>
<li>“Config process could be simpler.”
</li>
</ul>
<p>One person asked for “a config GUI.” Another suggested a fixed interval release cycle. Documentation was another frequently raised topic. It is tempting to address or rebut many of the comments. I purposely refrained from editorializing here: a discussion about these comments should develop within the development community, on the developer mailing list.</p>
<h2>Conclusion</h2>
<p>The survey confirmed several things I suspected. For instance, Linux and PHP are popular. Apache HTTP Server 2.2.x is by far the most widely used version of the server. Other findings may be more unexpected: the importance of SSL and URL rewriting for so many, or the relatively strong showing of the CGI interface.</p>
<p>To my delight, one person offered in the write-in space: “It serves my needs completely” and another wanted to improve “nothing. The current product meets my needs. Thank you so much.”</p>
<p>You are very welcome.</p>
<p>Apache HTTP Server is a trademark of the <a href="http://www.apache.org/">Apache Software Foundation</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2012/03/13/apache-http-server-usage-survey-results/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Somebody, Turn off That Tap!</title>
		<link>http://www.temme.net/sander/2012/02/07/somebody-turn-off-that-tap/</link>
		<comments>http://www.temme.net/sander/2012/02/07/somebody-turn-off-that-tap/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 14:00:22 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">https://www.temme.net/sander/?p=364</guid>
		<description><![CDATA[I recently attended a keynote address by the CTO of a leading anti-virus firm. His company is fighting the good fight. Having recognized that signature-based malware detection no longer suffices, they have turned to a combination of detection and prevention &#8230; <a href="http://www.temme.net/sander/2012/02/07/somebody-turn-off-that-tap/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I recently attended a keynote address by the CTO of a leading anti-virus firm. His company is fighting the good fight.  Having recognized that signature-based malware detection no longer suffices, they have turned to a combination of detection and prevention to find and weed out bad actors. Big Data is crunched in The Cloud to find the malware which is then manually investigated to find out what it does. Once identified, sites serving malware are blacklisted for the benefit of this firm’s customers. The CTO proceeded to show an example of a piece of malware that changed the Windows <em>hosts</em> file to point a list of banking URLs to a single IP address, where one presumes the unsuspecting user would find a rogue copy of their banking website intent on stealing the user’s credentials or worse. </p>
<p>Now, this is only one example of the forty-thousand-odd unique malware infestations spotted in a depressingly short time, but my question is thus: why was a piece of malicious software running (inadvertently one assumes) on behalf of a user allowed to change a system-wide file like <em>hosts</em>? Shouldn’t there be a sandbox for code downloaded from the network that, if it needs to be run at all, prevents it from damaging the underlying operating system? </p>
<p>This situation paints for me the following picture: a tap is running, malware flowing like water into a sieve and onto the floor. The security industry is frantically mopping the floor, trying to stem the flow of malware. They are paid well for their trouble, but meanwhile the expensive rug that represents your business is getting awfully wet. It would be nice if someone could turn off the tap, or design an operating system that doesn’t leak like a sieve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2012/02/07/somebody-turn-off-that-tap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Goodbye, Quicken</title>
		<link>http://www.temme.net/sander/2011/07/20/goodbye-quicken/</link>
		<comments>http://www.temme.net/sander/2011/07/20/goodbye-quicken/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 04:53:30 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">https://www.temme.net/sander/?p=355</guid>
		<description><![CDATA[In the early aughts, I purchased a copy of the game Civilization III for my Mac. I have played it ever since, especially after I learned that its copy protection code would mistake a mounted disk image of its CD &#8230; <a href="http://www.temme.net/sander/2011/07/20/goodbye-quicken/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the early aughts, I purchased a copy of the game Civilization III for my Mac.  I have played it ever since, especially after I learned that its copy protection code would mistake a mounted disk image of its CD for the real thing so I could run it without a CD in the drive (no funny business here: I still have the CD and in fact recently came across it).  A great casual game, suitable for mindlessly clicking away, I used to play it on the bus home from work.  Another regular commuter even accosted me once saying &ldquo;You’ve been playing that same game for years!  Haven’t you ever thought of getting a different game?&rdquo;  I still occasionally play it even though I have several versions of its successor Civilization IV, because III is easier on the battery and improved copy protection in IV doesn’t fall for the disk image trick.  Now, its long tenure is coming to an end.  Apple is releasing <a href="http://www.apple.com/macosx/">OS X Lion</a> and retiring the PowerPC compatibility layer.  Goodbye Civilization III, you will be missed. </p>
<p>However, this post is not about Civilization III.  It’s about the only other application I use that requires PowerPC compatibility: Quicken 2007.  I have now used it for over ten years to manage my finances, track my investments, time and pay my bills, and forecast savings.  A couple of weeks ago, Intuit sent out a notice to the effect that Quicken 2007 would <a href="http://quicken.intuit.com/support/articles/getting-started/upgrading-and-conversion/8207.html">not be compatible with Lion</a>, and support for it (such as it was) would end.  Customers were advised to migrate to Quicken for Windows (ha!) or Quicken Essentials, their long awaited ground-up rewrite that does take advantage of current SDKs and runs natively on Intel Macs.  </p>
<p>Unfortunately, Quicken Essentials has <a href="http://quicken.intuit.com/support/articles/using-quicken/features-and-tools/7696.html">significant feature discrepancies</a> compared with the older product.  It has no bill pay feature.  It also can’t track investments: the web site suggests that you manually enter stock and fund prices which seems to me a slightly less fun proposition than drying untreated wooden plates and spoons with a tea towel.  Finally, Intuit states that they &ldquo; we are evaluating options for Quicken Essentials for Mac&rdquo;, which to me sounds like &ldquo;It’s dead but we won’t tell you yet because we want to get some more revenue out of it&rdquo; and is not a confidence builder.  </p>
<p>Here’s what I would like my next financial management app to do: </p>
<ul>
<li>Run natively on my Mac, without having to run a VM</li>
<li>Ingest bank statement data through OFX files from multiple financial institutions</li>
<li>Ideally, pull said OFX files directly from the respective fiancial institutions’ websites (dream, dream)</li>
<li>Track inter-account transfers.  Ideally, instigate inter-account transfers but I’m not holding my breath</li>
<li>Pay bills, with a settable future payment date.  Quicken 2007 lost this capability when Wells Fargo dropped support for that version and WF’s interface is nice, but I now have to enter payments in two different places.  This is not ideal</li>
<li>Track loans: Balance, Interest and Impound</li>
<li>Break down my Paycheck into various taxes and withholdings (a welcome new feature in Quicken 2007)</li>
<li>Report on spending by category, tax table, comparison with previous years etc.</li>
<li>Track investments, keeping track of security prices, cost basis, dividends, etc. for various investment accounts at multiple financial institutions</li>
</ul>
<p>As far as I can see, I have the following alternatives: </p>
<ul>
<li>Drop $50 (or, temporarily, $25) on Quicken Essentials, see if I can live with the reduced feature set, and hope they don’t put me in the same position in the near future</li>
<li><a href="http://www.gnucash.org/">GNU Cash</a>, an open source finance tracker which seems to have a fairly horrid user interface at first glance, but the major advantage is that there is no company that can unilaterally pull the plug on it</li>
<li>Buy and Install Quicken for Windows on a VM and use that.  Not a viable option as far as I’m concerned</li>
<li>Buy <a href="http://itunes.apple.com/us/app/ibank/id402422773?mt=12">iBank</a> from the Apple App Store for $60 and see what it’s like.  It’s getting some good recent reviews from people clearly in the same boat as I am</li>
<li>Start using <a href="http://www.mint.com/">mint.com</a>, which is now also owned by Intuit and has never struck me as the financial management app I need</li>
</ul>
<p>Dear LazyWeb, what are your experiences with the above?  Any alternatives I missed?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2011/07/20/goodbye-quicken/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lessons on Rails</title>
		<link>http://www.temme.net/sander/2011/05/22/lessons-on-rails/</link>
		<comments>http://www.temme.net/sander/2011/05/22/lessons-on-rails/#comments</comments>
		<pubDate>Mon, 23 May 2011 06:20:37 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=348</guid>
		<description><![CDATA[Spent a not-very-fun day today playing around with Rails, Cucumber and their friends. I hope I learned something, because otherwise my output of today is decidedly minimal. These are some things I picked up, in the hope that they prove &#8230; <a href="http://www.temme.net/sander/2011/05/22/lessons-on-rails/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Spent a not-very-fun day today playing around with Rails, Cucumber and their friends.  I hope I learned something, because otherwise my output of today is decidedly minimal.  These are some things I picked up, in the hope that they prove useful to someone else.<br />
<span id="more-348"></span><br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-2187361828904218";
/* In-post Ad Block */
google_ad_slot = "9975512489";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<ul>
<li>Don&#8217;t put both <tt>webrat</tt> and <tt>capybara</tt> in your Gemfile.  They both define a <tt>visit</tt> method with different behavior.  I had to search long and hard until I happened upon <a href="https://github.com/rspec/rspec-rails/issues/367#issuecomment-1150935">a discussion</a> that clued me in.</li>
<li>Upgrading to the latest, greatest is very exciting, but if you pull in Rails 2.3.2 as an update, that&#8217;s what your installation will default to.  This makes your app really unhappy if it&#8217;s based on Rails 3.  Enforce your expectations by putting <tt>gem 'rails', '>= 3.0.0'</tt> in your Gemfile.</li>
<li>Another way to get bitten by upgrades is finding out that the Rake developers took their Domain Specific Language definition private, leaving the rest of the world in the cold.  The symptom is that Rake suddenly won&#8217;t do anything but emit <tt>rake aborted! undefined method `task' for #<YourApp::Application:0x9223b6c></tt>.  Until the world catches up, you&#8217;ll need to put a <a href="http://stackoverflow.com/questions/5287121/undefined-method-task-using-rake-0-9-0-beta-4/5290331#5290331">small hack</a> in your Rakefile.  </li>
<li>Ubuntu Linux&#8217; package manager installs Ruby 1.8.7 as &#8216;ruby&#8217;, but Ruby 1.9.1 as &#8216;ruby1.9.1&#8242;.  This is a pain, especially when you want to work on your code on several different systems.  Fortunately, <a href="http://ubuntuforums.org/showpost.php?p=10057489&#038;postcount=6">a post on an Ubuntu forum</a> explains how to use their update-alternatives system to pick one over the other.</li>
<li>When you use the Debian apt Ruby package, you&#8217;ll find that Ruby Gems get installed in /var/lib/gems which is not bad in and of itself, but to use the binaries like rake, cucumber and rails itself, you&#8217;ll want to put <tt>/var/lib/gems/1.9.1/bin</tt> on your <tt>PATH</tt>.</li>
<li>You&#8217;ll find that this Debian/Ubuntu <tt>ruby1.9.1</tt> package actually contains 1.9.2p0 (as of this writing).</li>
</ul>
<p>Now that this is out of the way, I hope to have some fun with Behaviour Driven Development.  Hope the development behaves better than the underlying tools did today.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2011/05/22/lessons-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EC2 is Not a Web Hosting Company</title>
		<link>http://www.temme.net/sander/2011/04/25/ec2-is-not-a-web-hosting-company/</link>
		<comments>http://www.temme.net/sander/2011/04/25/ec2-is-not-a-web-hosting-company/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 16:30:58 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=336</guid>
		<description><![CDATA[The entire universe is abuzz and atwitter about the big Amazon EC2 outage this past week. A cascading series of glitches in their Elastic Block Storage (EBS) system took down several high profile websites hosted in their Eastern Region data &#8230; <a href="http://www.temme.net/sander/2011/04/25/ec2-is-not-a-web-hosting-company/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The entire universe is <a href="http://blog.dotcloud.com/working-around-the-ec2-outage">abuzz</a> and <a href="https://twitter.com/#!/DEVOPS_BORAT">atwitter</a> about the big <a href="http://money.cnn.com/2011/04/21/technology/amazon_server_outage/index.htm">Amazon EC2 outage</a> this past week.  A cascading series of glitches in their Elastic Block Storage (EBS) system took down several high profile websites hosted in their Eastern Region data centers.  The <a href="http://status.aws.amazon.com/">AWS Status Dashboard</a> has a considerable write-up on the outage as it progressed over the latter half of last week.  </p>
<p>Responses to the outage were mixed.  As question-and-answer service <a href="http://www.quora.com/">Quora</a> posted on their outage page: &#8220;we&#8217;d point fingers, but we wouldn&#8217;t be where we are today without EC2.&#8221;  This is true: Amazon and its ilk provide relatively affordable and scalable hosting for applications, and  relieve the current wave of startups of the burden of having to invest in and operate their own hosting.  However, when you host your application on Amazon, you still have a single point of failure unless you very specifically engineer it to be resilient under failures.  EC2 offers many features that can take you beyond a single host deployment.  Customers who have adapted their deployment to take advantage of these features withstood last week&#8217;s outage with little or no customer-visible impact.  Without such adaptations, your web application is no better off than if it were hosted on a conventional web hosting platform.  </p>
<p>Amazon operates multiple Availability Zones that are supposed to isolate failures&#8230; which did not work too well last week because the issues cascaded across availability zones until the entire Eastern Region was affected.  Resilience across geographic regions is not straightforward because the <a href="http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf">CAP Theorem</a> kicks in: Consistency, Availability, Partition Tolerance, pick two.  You can&#8217;t have all three at the same time.  Engineering an application to withstand outage by distributing it across different availability zones, across regions, or even across different providers is a considerable and costly undertaking, which is not lightly embarked upon by a cash-strapped startup trying to get swiftly to market.  Whether to spend this time and money, or whether to tolerate and respond to the occasional outage is a determination that every company will have to make for themselves.  </p>
<p><script type="text/javascript"><!--
google_ad_client = "ca-pub-2187361828904218";
/* In-post Ad Block */
google_ad_slot = "9975512489";
google_ad_width = 300;
google_ad_height = 250;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2011/04/25/ec2-is-not-a-web-hosting-company/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ApacheCon Meetup: Whither HTTPD?</title>
		<link>http://www.temme.net/sander/2010/10/08/apachecon-meetup-whither-httpd/</link>
		<comments>http://www.temme.net/sander/2010/10/08/apachecon-meetup-whither-httpd/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 14:00:40 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[ApacheCon]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=311</guid>
		<description><![CDATA[You can now suggest Meetup topics for the evenings of ApacheCon. I&#8217;m not sure what a Meetup is in this context: perhaps it&#8217;s a little like a BOF. Anyway, I went ahead and registered a Meetup with the following topic: &#8230; <a href="http://www.temme.net/sander/2010/10/08/apachecon-meetup-whither-httpd/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://na.apachecon.com/c/acna2010/"><img src="http://www.temme.net/sander/wp-content/uploads/2010/10/125x125-basic.gif" alt="ApacheCon North America 2010" title="ApacheCon North America 2010 125x125 Basic" width="125" height="125" class="alignright size-full wp-image-315" /></a>You can now suggest <a href="http://wiki.apache.org/apachecon/ApacheMeetupsNa10">Meetup topics</a> for the evenings of <a href="http://na.apachecon.com/c/acna2010/">ApacheCon</a>.  I&#8217;m not sure what a Meetup is in this context: perhaps it&#8217;s a little like a BOF.  Anyway, I went ahead and registered a Meetup with the following topic:</p>
<p><strong>HTTP Server 3.0: Who Needs It? Who Wants It? Who will Write It?</strong><br />
<em>Whither httpd? Does our User Community need a quantum shift that would require a major new version number? Does our Developer have this need and would/could/are they in a position to start major new development on the project? Will 2.x serve us until the end of time?</em></p>
<p>This topic is partially inspired by the Keynote session Roy Fielding presented in Amsterdam in 2008 on <a href="http://roy.gbiv.com/talks/200804_Apache3_ApacheCon.pdf">Apache 3.0</a>: two-and-a-half years later seems like a good time to take stock.  If you want to talk about this, come to ApacheCon and join the Meetup.  Did I mention that rates go up after Friday, October 8?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2010/10/08/apachecon-meetup-whither-httpd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Icons of the Web</title>
		<link>http://www.temme.net/sander/2010/08/26/icons-of-the-web/</link>
		<comments>http://www.temme.net/sander/2010/08/26/icons-of-the-web/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 17:47:47 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Stuff]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/2010/08/26/icons-of-the-web/</guid>
		<description><![CDATA[The nmap project has, as a technology showcase, created a popularity map of the web. They have taken Alexa traffic data, downloaded the Favicon of each site and made a popularity map of the result. If you search for temme.net, &#8230; <a href="http://www.temme.net/sander/2010/08/26/icons-of-the-web/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://nmap.org/">nmap project</a> has, as a technology showcase, created a popularity map of the web.  They have taken <a href="http://www.alexa.com/topsites">Alexa traffic data</a>, downloaded the Favicon of each site and made a popularity map of the result.  </p>
<p>If you <a href="http://nmap.org/favicon/?q=temme.net">search for temme.net</a>, you find that it is just east of <a href="http://facebook.com/">Facebook</a> and just north of <a href="http://www.microsoft.com/">Microsoft</a>&#8230; and it&#8217;s certainly not the smallest possible size.  Not bad for a little vanity website!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2010/08/26/icons-of-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing With Rails</title>
		<link>http://www.temme.net/sander/2010/08/22/playing-with-rails/</link>
		<comments>http://www.temme.net/sander/2010/08/22/playing-with-rails/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 23:34:23 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=307</guid>
		<description><![CDATA[I need to prepare for my upcoming speaking engagement, so I&#8217;m playing around with Ruby on Rails today. Excellent opportunity to learn a new web technology. No, the speaking gig has nothing to do with RoR: this is pure procrastination. &#8230; <a href="http://www.temme.net/sander/2010/08/22/playing-with-rails/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I need to prepare for my upcoming speaking engagement, so I&#8217;m playing around with Ruby on Rails today.  Excellent opportunity to learn a new web technology.  No, the speaking gig has nothing to do with RoR: this is pure procrastination.  </p>
<p>Learned a couple of interesting things: </p>
<ul>
<li>When you run <tt>gem outdated</tt> on a stock Snow Leopard system, it pulls information from an outdated source which makes it fail to run the next time.  Only successfully updating RubyGems itself solves this issue.</li>
<li>Nobody ever tells you that after <tt>sudo gem update rubygems-update</tt>, you have to run <tt>sudo /usr/bin/update_rubygems</tt>.  Otherwise, it will keep using the old version and a) can&#8217;t update sqlite3-ruby which needs the newer RubyGems and b) will try to keep accessing the outdated source. </li>
<li>When you want to use <a href="http://www.aptana.com/products/studio3">Aptana Studio</a> with <a href="http://www.eclipse.org/">Eclipse 3.6 (Helios)</a>, make sure to install the plugin in the Eclipse installation itself, not under your own user account.  This seems to be a bug in Eclipse itself that affects all plugins: if installed under a user account (for instance because the application installation directory is not writable by the user), the plugins don&#8217;t show up in the IDE and can&#8217;t be used.
</ul>
<p>There is no better way to procrastinate than to go learn something, and there is no better way to put off learning something than to mess around with tools.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2010/08/22/playing-with-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speaking at SofTECH</title>
		<link>http://www.temme.net/sander/2010/08/20/speaking-at-softech/</link>
		<comments>http://www.temme.net/sander/2010/08/20/speaking-at-softech/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 16:00:40 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=303</guid>
		<description><![CDATA[I will be speaking next Wednesday at the monthly meeting of SofTECH. The topic will be Security and Open Source Software: Many software choices are available to professionals who need to run applications in their business. Some of these will &#8230; <a href="http://www.temme.net/sander/2010/08/20/speaking-at-softech/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I will be speaking next Wednesday at the monthly meeting of <a href="http://www.softech.org/">SofTECH</a>.  The topic will be Security and Open Source Software: </p>
<p><em> Many software choices are available to professionals who need to run applications in their business.  Some of these will be delivered by conventional vendors who have full control over the product and its development.  However, over the past decade many Open Source applications have emerged as viable alternatives, developed using an open process by volunteers from many different companies.</p>
<p>Speaking from his experience as an Open Source Software developer, Sander will compare some security aspects of Open Source and Closed Source software, likely debunking some myths along the way.  We will examine the security vulnerability mitigation process used by the Apache Software Foundation and discuss how an open development process can provide enhanced security.<br />
</em></p>
<p>See the <a href="http://www.softech.org/content.aspx?page_id=22&#038;club_id=161006&#038;module_id=79833">meeting page</a> for details.  An RSVP link is at the bottom of the page. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2010/08/20/speaking-at-softech/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File System Permissions for Apache</title>
		<link>http://www.temme.net/sander/2010/07/30/file-system-permissions-for-apache/</link>
		<comments>http://www.temme.net/sander/2010/07/30/file-system-permissions-for-apache/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 16:00:03 +0000</pubDate>
		<dc:creator>Sander</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.temme.net/sander/?p=301</guid>
		<description><![CDATA[I don&#8217;t spend a lot of time on The Apache HTTP Server Users mailing list, but a discussion sprang up there this week on which I think I should share my response. The issue was why the server in question &#8230; <a href="http://www.temme.net/sander/2010/07/30/file-system-permissions-for-apache/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t spend a lot of time on <a href="http://mail-archives.apache.org/mod_mbox/httpd-users/">The Apache HTTP Server Users mailing list</a>, but a discussion sprang up there this week on which I think I should share my response.  The issue was why the server in question did not have permission to show a particular file.  The initial response was &#8220;just chown your document root to the Apache user&#8221; and, when pointed out that this introduced security issues, </p>
<pre>Oh man an experienced sys admin told me to do it that way.
Please tell me what is wrong in this and where is this documented on Apache
docs.
I want to read.</pre>
<p>Here is <a href="http://mail-archives.apache.org/mod_mbox/httpd-users/201007.mbox/%3c51DD9383-2E8A-45B0-BD64-293A06202FF0@apache.org%3e">my response</a> reproduced: read on.</p>
<p>The Apache HTTP Server needs read access to its configuration files and the files it serves.  In and of itself, the server does not need write access anywhere on the system: even its log files are opened for write when the server is still root, and the open file descriptors passed to the child processes which change their user id to the lesser privileged user.  </p>
<p>Read access <strong>only</strong>.  The web server user should not own, or be able to write to, its configuration files or content.  </p>
<p>Content, other than CGI scripts, generally does not need Execute permissions.  Even PHP files that are interpreted by the server do not need to be Executable.  </p>
<p>Certain applications, especially publishing platforms and Content Management Systems that you manage and populate through the web server itself using a browser, require that certain directories on the system be made writable by the web server user.  You can do this by changing the owner of the directory to that user (usually www but ymmv), or by making the directory group-writable and changing the group to the group as which Apache runs. </p>
<p>Making directories writable by the web server should be done only with care and consideration.  The usual threat model is that someone manages to upload (for instance) a PHP script of their own making into the document root, and simply executes that by accessing it through a browser.  Now someone is executing code on your machine.  Google for &#8216;r57&#8242; for an example of what such code can do.  </p>
<p>If a web app needs writable directories, it&#8217;s often better to have those outside the DocumentRoot: that way the uploads can&#8217;t be accessed from the outside through a direct URL.  Some applications (<a href="http://www.wordpress.org/">WordPress</a> for instance) support this, others do not.  </p>
<p>In many cases, writable directories are not strictly necessary even though the web app might like them: rather than upload plugins (which contain code that gets executed or interpreted, yech!) through the web browser, upload them through ssh and manually unpack them on the server.  The CMS <a href="http://www.joomla.org/">Joomla!</a> likes to write its configuration file to the Document Root on initial install (which promptly becomes a popular attack target) but if it can&#8217;t write to the Document Root, it will output the config to the browser to the user can manually upload it.  </p>
<p>The Apache Documentation will merely <a href="http://httpd.apache.org/docs/trunk/misc/security_tips.html#serverroot">tell you</a> to make the server installation root-owned.  The HTTP Server Documentation does not cover third party applications like <a href="http://www.wordpress.org/">WordPress</a> or <a href="http://www.joomla.org/">Joomla!</a>, so it will not discuss their need to have some directories writable.  I hope the above makes the picture a little more complete.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.temme.net/sander/2010/07/30/file-system-permissions-for-apache/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

