<?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>Johannessen Design Bureau &#187; web</title>
	<atom:link href="http://db.org/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://db.org</link>
	<description></description>
	<lastBuildDate>Sun, 01 Jan 2012 23:19:25 +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>WordPress and duplicate content</title>
		<link>http://db.org/2009/10/03/duplicate-content/</link>
		<comments>http://db.org/2009/10/03/duplicate-content/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:11:05 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://db.org/?p=76</guid>
		<description><![CDATA[WordPress has come a long way with regards to it&#8217;s default URL scheme. I needed only two minor tweaks to make me completely happy with it. The first one really isn&#8217;t WorPress&#8217; fault either. I really dislike publishing the same content on http://host.example/... and http://www.host.example/..., but at the same time I want to be able [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress has come a long way with regards to it&#8217;s default URL scheme. I needed only two minor tweaks to make me completely happy with it. The first one really isn&#8217;t WorPress&#8217; fault either. I really dislike publishing the same content on <code>http://host.example/...</code> and <code>http://www.host.example/...</code>, but at the same time I want to be able to accept incoming links with both hostnames. The solution is pretty well known, though I choose to turn it on it&#8217;s head: I <strong>remove</strong> the <code>www</code> from the hostname using Apache rewrite rules:</p>
<pre>RewriteEngine On
RewriteCond %{HTTP_HOST} !^db\.org$ [NC]
RewriteRule ^(.*)$ http://db.org/$1 [R=301,L]</pre>
<p>The <code>[NC]</code> flag makes the condition case insensitive. I don&#8217;t think I&#8217;ve ever seen a HTTP client send the <code>Host:</code> header in anything except lower case, but the relevant standards certainly allow for it.</p>
<p>The <code>R=301</code> flag tells Apache to make this a <strong>permanent</strong> redirect. This allows clients to update the links at their end. The <code>L</code> flags tells Apache to stop the rewriting process here and don&#8217;t apply any more rewrite rules. This is probably needed if you have additional rewrite rules in your <code>.htaccess</code> file.</p>
<p>The second thing bugging me is the way WordPress does paging. You get a predefined number of posts on the front page, and links to <code>/page/2/</code>, <code>/page/3/</code> and so on. This holds true for archive, category, tag-cloud and probably others pages as well. The problem with this is that the content on these pages are not stable (it shifts as you post new content) and it duplicates content. I&#8217;m still pondering a solution to this&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://db.org/2009/10/03/duplicate-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+GD Progress Bar Demo</title>
		<link>http://db.org/2003/02/17/progress-bar/</link>
		<comments>http://db.org/2003/02/17/progress-bar/#comments</comments>
		<pubDate>Sun, 16 Feb 2003 22:51:15 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dborg.php5.sysedata.no/?p=65</guid>
		<description><![CDATA[This demonstrates how to create a dynamic progress bar image using the PHP GD functions. http://db.org/demo/2003/02/17/progress-bar/]]></description>
			<content:encoded><![CDATA[<p>This demonstrates how to create a dynamic progress bar image using the <acronym title="PHP Hypertext Preprocessor">PHP</acronym> <abbr title="GD Graphics Library">GD</abbr> functions.</p>
<p><a href="http://db.org/demo/2003/02/17/progress-bar/" title="PHP+GD Progress Bar Demo">http://db.org/demo/2003/02/17/progress-bar/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://db.org/2003/02/17/progress-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+GD Scale and Overlay Demo</title>
		<link>http://db.org/2003/02/14/scale-and-overlay/</link>
		<comments>http://db.org/2003/02/14/scale-and-overlay/#comments</comments>
		<pubDate>Thu, 13 Feb 2003 22:53:04 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dborg.php5.sysedata.no/?p=68</guid>
		<description><![CDATA[Someone posted a challenge to create a PHP script that would scale and overlay an image, and I couldn&#8217;t resist. http://db.org/demo/2003/02/14/scale-and-overlay/]]></description>
			<content:encoded><![CDATA[<p>Someone posted a challenge to create a <acronym title="PHP Hypertext Preprocessor">PHP</acronym> script that would scale and overlay an image, and I couldn&#8217;t resist.</p>
<p><a href="http://db.org/demo/2003/02/14/scale-and-overlay/" title="PHP+GD Scale and Overlay Demo">http://db.org/demo/2003/02/14/scale-and-overlay/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://db.org/2003/02/14/scale-and-overlay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accept-* Header Logging Results</title>
		<link>http://db.org/2003/02/11/content-negotiation/</link>
		<comments>http://db.org/2003/02/11/content-negotiation/#comments</comments>
		<pubDate>Mon, 10 Feb 2003 22:38:28 +0000</pubDate>
		<dc:creator>Bob</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://dborg.php5.sysedata.no/?p=45</guid>
		<description><![CDATA[Introduction Following a discussion on the Norwegian news group no.it.tjenester.www.design about language tags in different browsers and their default values, I configured db.org to log the contents of Accept-*: headers. The following is an analysis of this log, based on traffic from Tuesday February 4th to Tuesday February 11th 2003. Accept-Language The list below shows [...]]]></description>
			<content:encoded><![CDATA[<h4>Introduction</h4>
<p>Following a discussion on the Norwegian news group no.it.tjenester.www.design about language tags in different browsers and their default values, I configured db.org to log the contents of <code>Accept-*:</code> headers. The following is an analysis of this log, based on traffic from Tuesday February 4th to Tuesday February 11th 2003.</p>
<h4>Accept-Language</h4>
<p>The list below shows the different language tags seen during the week in question. Everything looks mostly like expected with two notable exceptions. The first is the tag <code>no-bm</code>, which i assume signifies Norwegian <span xml:lang="no">Bokm&aring;l</span>. According to the <code>User-Agent:</code> header this is sent by Opera 5.12 running under Windows 95. There is no <code>no-nn</code> tag in the list, but it would be reasonable to assume that a browser using <code>no-bm</code> for Norwegian <span xml:lang="no">Bokm&aring;l</span> also uses <code>no-nn</code> for Norwegian <span xml:lang="no">Nynorsk</span>.</p>
<p>The second issue is the use of the language tag <code>pdf</code>, comming from Mozilla 4.79 running under Windows 98. If someone has an explanation to this, or even a plausible theory, I would like to know about it.</p>
<p>The list was produced with the following command:</p>
<pre>cat negotiation.log \
| sed -e 's/^\"\(.*\)\" \"\(.*\)\" \"\(.*\)\" \"\(.*\)\"/\4/' \
| sed -e 's/,/\
/g'| sed -e 's/ *\(.*\)/\1/' \
| sed -e 's/^\(.*\);.*/\1/' \
| sort -f | uniq -i</pre>
<ul>
<li><code>bg</code></li>
<li><code>da</code></li>
<li><code>de</code></li>
<li><code>de-at</code></li>
<li><code>en</code></li>
<li><code>en-au</code></li>
<li><code>en-bz</code></li>
<li><code>en-ca</code></li>
<li><code>en-gb</code></li>
<li><code>en-ie</code></li>
<li><code>en-jm</code></li>
<li><code>en-nz</code></li>
<li><code>en-ph</code></li>
<li><code>en-tt</code></li>
<li><code>en-us</code></li>
<li><code>en-za</code></li>
<li><code>en-zw</code></li>
<li><code>es</code></li>
<li><code>es-mx</code></li>
<li><code>es-pr</code></li>
<li><code>fr</code></li>
<li><code>he</code></li>
<li><code>ie-ee</code></li>
<li><code>it</code></li>
<li><code>ja</code></li>
<li><code>lt</code></li>
<li><code>nb</code></li>
<li><code>nb-no</code></li>
<li><code>nl</code></li>
<li><code>nn</code></li>
<li><code>nn-no</code></li>
<li><code>no</code></li>
<li><code>no-bm</code></li>
<li><code>no-bok</code></li>
<li><code>no-nyn</code></li>
<li><code>pdf</code></li>
<li><code>pl</code></li>
<li><code>pt-br</code></li>
<li><code>ru</code></li>
<li><code>sk</code></li>
<li><code>sr</code></li>
<li><code>sv</code></li>
<li><code>tr</code></li>
<li><code>zh-cn</code></li>
</ul>
<h4>Accept-Encoding</h4>
<p>The selection of encodings are noticeably smaller and mostly as can be expected. I noticed that Internet Explorer, Opera and Konqueror all send both <code>gzip</code> and <code>x-gzip</code>. <code>x-compress</code> on other hand is used only by robots/spiders, in this case RPT-HTTPClient and NPBot. For those of you who, like me, has never heard of the <code>identity</code> encoding, <acronym title="Request For Comment">RFC</acronym> 2616 offers the following explanation:</p>
<blockquote cite="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5">
<p>The default (identity) encoding; the use of no transformation whatsoever. This content-coding is used only in the <code>Accept-Encoding</code> header, and SHOULD NOT be used in the <code>Content-Encoding</code> header.</p>
</blockquote>
<p>The list was produced with the following command:</p>
<pre>cat negotiation.log \
| sed -e 's/^\"\(.*\)\" \"\(.*\)\" \"\(.*\)\" \"\(.*\)\"/\3/' \
| sed -e 's/,/\
/g'| sed -e 's/ *\(.*\)/\1/' \
| sed -e 's/^\(.*\);.*/\1/' \
| sort -f | uniq -i</pre>
<ul>
<li><code>compress</code></li>
<li><code>deflate</code></li>
<li><code>gzip</code></li>
<li><code>identity</code></li>
<li><code>x-compress</code></li>
<li><code>x-gzip</code></li>
</ul>
<h4>Accept-Charset</h4>
<p>Another narrow selection. The only interesting thing to note is that Opera, on both Windows and Linux, is the only browser asking for documents in the <code>windows-1252</code> character set.</p>
<p>The list was produced with the following command:</p>
<pre>cat negotiation.log \
| sed -e 's/^\"\(.*\)\" \"\(.*\)\" \"\(.*\)\" \"\(.*\)\"/\2/' \
| sed -e 's/,/\
/g'| sed -e 's/ *\(.*\)/\1/' \
| sed -e 's/^\(.*\);.*/\1/' \
| sort -f | uniq -i</pre>
<ul>
<li><code>ISO-8859-1</code></li>
<li><code>ISO-8859-15</code></li>
<li><code>utf-16</code></li>
<li> <code>utf-8</code></li>
<li><code>windows-1252</code></li>
</ul>
<h4>Apache Configuration</h4>
<p>If you would like to make a similar analysis on your own traffic, the log file can be generated using the following directives in Apache&#8217;s httpd.conf.</p>
<pre>LogFormat "\"%{User-agent}i\"       \
\"%{Accept-charset}i\"   \
\"%{Accept-encoding}i\"  \
\"%{Accept-language}i\"\" \
negotiation
CustomLog /path/to/logdir/negotiation.log negotiation</pre>
]]></content:encoded>
			<wfw:commentRss>http://db.org/2003/02/11/content-negotiation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

