<?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>The One with the Thoughts of Frans &#187; Internet</title>
	<atom:link href="http://fransdejonge.com/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://fransdejonge.com</link>
	<description>Just a personal blog, sharing some thoughts and findings.</description>
	<lastBuildDate>Thu, 02 Feb 2012 20:52:47 +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>Why Opera&#8217;s XHTML Error Handling Is Superior</title>
		<link>http://fransdejonge.com/2011/11/why-operas-xhtml-error-handling-is-superior/</link>
		<comments>http://fransdejonge.com/2011/11/why-operas-xhtml-error-handling-is-superior/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 18:44:33 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1159</guid>
		<description><![CDATA[A quick outline of the pros and cons of various types of feedback.]]></description>
			<content:encoded><![CDATA[<p>I found this old, unfinished post in my drafts. I&#8217;m not quite sure when I originally wrote it, but it was over a year ago. Rather than updating the content I decided to publish it as is, as I&#8217;m not sure why I didn&#8217;t, with a small addendum at the end.</p>
<hr />
<p>I made a little <a href="http://i49.tinypic.com/2qwmz28.png">compilation</a> of the various error messages displayed by browsers upon encountering an XML syntax error. Firefox (Gecko) has the unfriendly looking error on top, Chromium (Webkit) renders the page up to the error, but shows a large error message (albeit not at all useful like in Opera &amp; Fx), and for Opera I included 10.10 and the latest 10.50 pre-alpha build. Note that it’s just the styles behind the error message that changed a bit: the content and helpfulness of the error message is still the same. I&#8217;ll run it down a bit more:</p>
<ul>
<li>Firefox displays an error message that&#8217;s only useful if you already know sufficiently much about X(HT)ML, whereas Opera&#8217;s error message not only highlights more clearly where parsing failed — although ultimately this difference might just be one of preference. More important, its error message might just helpfully link you precisely where you need to go to learn how to avoid it. When I first started messing about with XHTML back in &#8217;03 or so, I probably would&#8217;ve appreciated it if Opera had done that. At the time Opera behaved the same as Fx does now.</li>
<li>Chromium displays an error message that doesn&#8217;t even manage to clearly indicate what&#8217;s the problem. This compares negatively to Fx and Opera highlighting the &amp;.</li>
<li>Chromium renders the page up to the problem, which may result in a get out of jail free card. The error message doesn’t seem very annoying, but if the error is in the middle of the page it’ll still be in the way. In my sample page it’s at the end, however. (My example page is basically a standard installation of phpGraphy on which I decided to switch to application/xml+xhtml because it claims to be more or less XHTML compliant now — I had to fix all the unclosed meta and link tags first.)</li>
<li>Despite rendering the page, you won&#8217;t be able to see the page fully in Chromium. You will with Opera&#8217;s reparse as HTML function.</li>
</ul>
<p>I hope that clarifies why I think Opera&#8217;s handling is best, both as a user and as an author.</p>
<hr />
<p>This blog post is <a href="http://my.opera.com/ODIN/blog/2011/09/28/no-more-xml-parsing-failed-errors">now outdated</a>. You can return to the behavior I hailed by disabling the <a href="opera:config#UserPrefs|AutomaticallyreparseXHTMLwithparsingerrorsasHTML">opera:config#UserPrefs|AutomaticallyreparseXHTMLwithparsingerrorsasHTML</a> option.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/11/why-operas-xhtml-error-handling-is-superior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Please, Use HTTP Language Headers</title>
		<link>http://fransdejonge.com/2011/01/please-use-http-language-headers/</link>
		<comments>http://fransdejonge.com/2011/01/please-use-http-language-headers/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 15:23:34 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1740</guid>
		<description><![CDATA[Honestly, it's not that hard.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got my HTTP header set up as &#8220;Accept-Language: en-US,en;q=0.9,nl;q=0.8&#8243;, but the number of sites that actually seem to use this (that I have encountered) can be counted on one hand. Especially on Belgian sites it&#8217;s ludicrous: I&#8217;m clearly saying that I don&#8217;t want French, so unless there is a choice between English, Dutch, and French (on a minority of sites, sometimes also German) there&#8217;s no rationale whatsoever to bug me with the option for French when the only options are French and Dutch.</p>
<p>Don&#8217;t get me wrong: I want the option to override this automatic detection system with a language selector in the top-right or some such, but it seems like I&#8217;m sending out these headers to waste bandwidth. I guess I should just be grateful that they don&#8217;t make their language-selection pages Flash-based, though they do typically come attached with gigantic pictures that aren&#8217;t reused on the actual site.</p>
<p>I don&#8217;t know what the best method would be to utilize this, but in the case of the aforementioned majority of Belgian sites they tend to be like domain.be/nl/etc and domain.be/fr/etc, so I&#8217;d say just quietly redirect me to domain.be/nl (all through HTTP) whereas if I go directly to /nl or /fr nothing should happen.</p>
<p>PS The few sites that initially seemed to utilize this method (like argenta.be) actually perform some IP-based shenanigans. It happens to work out for me in this particular case, but generally speaking I consider that far worse than the redundant language selection screens, although a lot of that depends on overridability as well. Which reminds me of software that insists on displaying itself in Dutch based on my location settings while it should really just align itself with my OS language.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2011/01/please-use-http-language-headers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera 11 Addressbar Revisited</title>
		<link>http://fransdejonge.com/2010/12/opera-11-addressbar-revisited/</link>
		<comments>http://fransdejonge.com/2010/12/opera-11-addressbar-revisited/#comments</comments>
		<pubDate>Sat, 04 Dec 2010 12:16:42 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1747</guid>
		<description><![CDATA[Some musings on addressbar improvements.]]></description>
			<content:encoded><![CDATA[<p>I already <a href="http://fransdejonge.com/2010/11/24/whats-wrong-with-the-opera-11-address-bar-and-how-to-fix-it/">wrote down some thoughts about the addressbar changes in Opera 11</a> a few days ago, and it got me thinking that the addressbar could definitely be improved, just not by detracting from it.</p>
<p>To cut to the chase, here&#8217;s the addressbar I&#8217;m envisioning:</p>
<p><a href="http://fransdejonge.com/wp-content/uploads/2010/12/opera11-how-it-should-be-revisited.png"><img src="http://fransdejonge.com/wp-content/uploads/2010/12/opera11-how-it-should-be-revisited-400x274.png" alt="" title="opera11-how-it-should-be-revisited" width="400" height="274" class="alignnone size-medium wp-image-1748" /></a></p>
<p>What you see on this screenshot, however, does not tell the whole story. Let&#8217;s start with what&#8217;s visible:</p>
<ul>
<li>The protocol is grayed out. This is the method that most so-called URL highlighting uses to emphasize the domain. I think this is the wrong approach, but in the case of the protocol it seems the right thing to do. It is somewhat hidden, but still fully visible: no need to select the addressbar to find out what protocol is being used. People know that something is a web address when they see it in print thanks to the protocol, even if they have no idea what it means (and in fact many might mistakenly interpret HTTPS as safe), and combined with the large, clear button indicating security information you&#8217;d really have to try to misinterpret HTTPS as safe.</li>
<li>The domain is highlighted, specifically by bolding in this example, but it could also be done through underlining, a background color, or a combination of various things. The important part is that the domain is highlighted, rather than the rest of the URI lowlighted.</li>
<li>Query strings have parameter highlighting, and characters that separate parameters like ? and &#038; are hidden and replaced by a small outline indicating what goes with what. The space between the various parameters corresponds to the size of the hidden ? or &#038; characters and thus no shifting will occur when selecting them. I did not look into things like color blindness and the colors I used are solely for illustration purposes; they are no suggestion for specific colors.</li>
</ul>
<p>Then, what&#8217;s not visible:</p>
<ul>
<li>Complex query strings, meaning with 3 or 4 parameters or more, could be hidden from that point on, but this <strong>should be visibly indicated</strong>. An ellipsis is the standard method of conveying such information, so there&#8217;s no need to come up with something fancy. A complex query string like Google&#8217;s would thus look something like <span style="color: silver">http://</span>www.<strong>google.be</strong>/search [<span style="color: skyblue">client</span>=<span style="color: crimson">opera</span>] [<span style="color: skyblue">rls</span>=<span style="color: crimson">en</span>] [<span style="color: skyblue">q</span>=<span style="color: crimson">test</span>]…
<p>Perhaps the number of parameters before hiding occurs should be configurable as well.</p>
<p>This hiding should not affect links to IDs like #someID, which are hidden along with the query string at the moment.</li>
<li>Linkify URI segments on hover when a modifier key, such as <kbd>Ctrl</kbd> or <kbd>Shift</kbd>, is pressed. This has been implemented quite nicely by the Firefox extension <a href="http://en.design-noir.de/mozilla/locationbar2/">Locationbar²</a>.</li>
</ul>
<p>That&#8217;s about it for my proposal regarding how to truly upgrade the addressbar as opposed to trying to make it little more than a domain display.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/12/opera-11-addressbar-revisited/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>What&#8217;s Wrong With the Opera 11 Address Bar, And How to Fix It.</title>
		<link>http://fransdejonge.com/2010/11/whats-wrong-with-the-opera-11-address-bar-and-how-to-fix-it/</link>
		<comments>http://fransdejonge.com/2010/11/whats-wrong-with-the-opera-11-address-bar-and-how-to-fix-it/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 21:43:11 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1739</guid>
		<description><![CDATA[Opera 11 made some drastic changes to the addressbar. I think the thought is good, but the execution leaves quite a bit to be desired.]]></description>
			<content:encoded><![CDATA[<p>Opera 11 made some drastic changes to the addressbar. I think the thought is good, but the execution leaves quite a bit to be desired.</p>
<div id="attachment_1742" class="wp-caption alignnone" style="width: 410px"><a href="http://fransdejonge.com/wp-content/uploads/2010/11/opera1063.png"><img src="http://fransdejonge.com/wp-content/uploads/2010/11/opera1063-400x274.png" alt="" title="opera1063" width="400" height="274" class="size-medium wp-image-1742" /></a><p class="wp-caption-text">Opera 10.63</p></div>
<p>Here you can see the classic method as it is in 10.63: full URL. You could say that the security information is somewhat detached on the right.</p>
<div id="attachment_1743" class="wp-caption alignnone" style="width: 410px"><a href="http://fransdejonge.com/wp-content/uploads/2010/11/opera11.png"><img src="http://fransdejonge.com/wp-content/uploads/2010/11/opera11-400x274.png" alt="" title="opera11" width="400" height="274" class="size-medium wp-image-1743" /></a><p class="wp-caption-text">Opera 11</p></div>
<p>This is Opera 11, with the changed addressbar. The favicon is removed, the protocol and query string are hidden, and the security information is made more prevalent.</p>
<p>Generally speaking I don&#8217;t care too much about <code>http</code> vs. <code>https</code>; secure vs. insecure certainly is a better way of presenting that, lest <code>https</code> give you a false sense of security. Then again, I think that keeping the protocol and simply moving the security indication to the spot of the favicon (while still getting rid of that) would&#8217;ve accomplished the same effect better without losing out on such information. After all, if I notice some site uses https, but is insecure, I should probably notify the site, right? The lack of something like <code>ftp</code> is slightly more annoying, but the lack query strings is the absolute worst. I realize that some query strings can be overly complex, but I fail to see why the lowest common denominator should get rid of the good query strings as well. Seeing or not seeing it is only part of the issue: it also kills the ability to easily select the relevant part of the query string that you want to change (like a search term).</p>
<div id="attachment_1744" class="wp-caption alignnone" style="width: 410px"><a href="http://fransdejonge.com/wp-content/uploads/2010/11/opera11-how-it-should-be.png"><img src="http://fransdejonge.com/wp-content/uploads/2010/11/opera11-how-it-should-be-400x274.png" alt="" title="opera11-how-it-should-be" width="400" height="274" class="size-medium wp-image-1744" /></a><p class="wp-caption-text">Opera 11 as it should be</p></div>
<p>And here is my combination of both. Remove the favicon, which might give a false sense of being on the real site (and is already visible on the tab), and move the security information to where the favicon used to be. The rest of the URL can remain fully accessible, displaying information for those who can use it. Domain highlighting can take care of those who have trouble spotting the domain they&#8217;re on (and on Windows it already does, making the removal of the query string even more peculiar). No extra step is necessary to select parts of the URL.</p>
<p>I feel that this is a fair compromise: it makes the security information more accessible without compromising existing functionality.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/11/whats-wrong-with-the-opera-11-address-bar-and-how-to-fix-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript Associative Array of SVG Color Keywords</title>
		<link>http://fransdejonge.com/2010/10/javascript-associative-array-of-svg-color-keywords/</link>
		<comments>http://fransdejonge.com/2010/10/javascript-associative-array-of-svg-color-keywords/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 16:30:51 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1736</guid>
		<description><![CDATA[I thought I needed an associative array of SVG color keywords. I couldn't find one, so I created this.]]></description>
			<content:encoded><![CDATA[<p>I thought I needed an associative array of SVG color keywords. I couldn&#8217;t find one, so I created this. Enjoy.</p>
<pre><code>// see http://www.w3.org/TR/SVG/types.html#ColorKeywords
var SVGColors = new Object();
SVGColors['aliceblue'] = [240,248,255];
SVGColors['antiquewhite'] = [250,235,215];
SVGColors['aqua'] = [0,255,255];
SVGColors['aquamarine'] = [127,255,212];
SVGColors['azure'] = [240,255,255];
SVGColors['beige'] = [245,245,220];
SVGColors['bisque'] = [255,228,196];
SVGColors['black'] = [0,0,0];
SVGColors['blanchedalmond'] = [255,235,205];
SVGColors['blue'] = [0,0,255];
SVGColors['blueviolet'] = [138,43,226];
SVGColors['brown'] = [165,42,42];
SVGColors['burlywood'] = [222,184,135];
SVGColors['cadetblue'] = [95,158,160];
SVGColors['chartreuse'] = [127,255,0];
SVGColors['chocolate'] = [210,105,30];
SVGColors['coral'] = [255,127,80];
SVGColors['cornflowerblue'] = [100,149,237];
SVGColors['cornsilk'] = [255,248,220];
SVGColors['crimson'] = [220,20,60];
SVGColors['cyan'] = [0,255,255];
SVGColors['darkblue'] = [0,0,139];
SVGColors['darkcyan'] = [0,139,139];
SVGColors['darkgoldenrod'] = [184,134,11];
SVGColors['darkgray'] = [169,169,169];
SVGColors['darkgreen'] = [0,100,0];
SVGColors['darkgrey'] = [169,169,169];
SVGColors['darkkhaki'] = [189,183,107];
SVGColors['darkmagenta'] = [139,0,139];
SVGColors['darkolivegreen'] = [85,107,47];
SVGColors['darkorange'] = [255,140,0];
SVGColors['darkorchid'] = [153,50,204];
SVGColors['darkred'] = [139,0,0];
SVGColors['darksalmon'] = [233,150,122];
SVGColors['darkseagreen'] = [143,188,143];
SVGColors['darkslateblue'] = [72,61,139];
SVGColors['darkslategray'] = [47,79,79];
SVGColors['darkslategrey'] = [47,79,79];
SVGColors['darkturquoise'] = [0,206,209];
SVGColors['darkviolet'] = [148,0,211];
SVGColors['deeppink'] = [255,20,147];
SVGColors['deepskyblue'] = [0,191,255];
SVGColors['dimgray'] = [105,105,105];
SVGColors['dimgrey'] = [105,105,105];
SVGColors['dodgerblue'] = [30,144,255];
SVGColors['firebrick'] = [178,34,34];
SVGColors['floralwhite'] = [255,250,240];
SVGColors['forestgreen'] = [34,139,34];
SVGColors['fuchsia'] = [255,0,255];
SVGColors['gainsboro'] = [220,220,220];
SVGColors['ghostwhite'] = [248,248,255];
SVGColors['gold'] = [255,215,0];
SVGColors['goldenrod'] = [218,165,32];
SVGColors['gray'] = [128,128,128];
SVGColors['green'] = [0,128,0];
SVGColors['greenyellow'] = [173,255,47];
SVGColors['grey'] = [128,128,128];
SVGColors['honeydew'] = [240,255,240];
SVGColors['hotpink'] = [255,105,180];
SVGColors['indianred'] = [205,92,92];
SVGColors['indigo'] = [75,0,130];
SVGColors['ivory'] = [255,255,240];
SVGColors['khaki'] = [240,230,140];
SVGColors['lavender'] = [230,230,250];
SVGColors['lavenderblush'] = [255,240,245];
SVGColors['lawngreen'] = [124,252,0];
SVGColors['lemonchiffon'] = [255,250,205];
SVGColors['lightblue'] = [173,216,230];
SVGColors['lightcoral'] = [240,128,128];
SVGColors['lightcyan'] = [224,255,255];
SVGColors['lightgoldenrodyellow'] = [250,250,210];
SVGColors['lightgray'] = [211,211,211];
SVGColors['lightgreen'] = [144,238,144];
SVGColors['lightgrey'] = [211,211,211];
SVGColors['lightpink'] = [255,182,193];
SVGColors['lightsalmon'] = [255,160,122];
SVGColors['lightseagreen'] = [32,178,170];
SVGColors['lightskyblue'] = [135,206,250];
SVGColors['lightslategray'] = [119,136,153];
SVGColors['lightslategrey'] = [119,136,153];
SVGColors['lightsteelblue'] = [176,196,222];
SVGColors['lightyellow'] = [255,255,224];
SVGColors['lime'] = [0,255,0];
SVGColors['limegreen'] = [50,205,50];
SVGColors['linen'] = [250,240,230];
SVGColors['magenta'] = [255,0,255];
SVGColors['maroon'] = [128,0,0];
SVGColors['mediumaquamarine'] = [102,205,170];
SVGColors['mediumblue'] = [0,0,205];
SVGColors['mediumorchid'] = [186,85,211];
SVGColors['mediumpurple'] = [147,112,219];
SVGColors['mediumseagreen'] = [60,179,113];
SVGColors['mediumslateblue'] = [123,104,238];
SVGColors['mediumspringgreen'] = [0,250,154];
SVGColors['mediumturquoise'] = [72,209,204];
SVGColors['mediumvioletred'] = [199,21,133];
SVGColors['midnightblue'] = [25,25,112];
SVGColors['mintcream'] = [245,255,250];
SVGColors['mistyrose'] = [255,228,225];
SVGColors['moccasin'] = [255,228,181];
SVGColors['navajowhite'] = [255,222,173];
SVGColors['navy'] = [0,0,128];
SVGColors['oldlace'] = [253,245,230];
SVGColors['olive'] = [128,128,0];
SVGColors['olivedrab'] = [107,142,35];
SVGColors['orange'] = [255,165,0];
SVGColors['orangered'] = [255,69,0];
SVGColors['orchid'] = [218,112,214];
SVGColors['palegoldenrod'] = [238,232,170];
SVGColors['palegreen'] = [152,251,152];
SVGColors['paleturquoise'] = [175,238,238];
SVGColors['palevioletred'] = [219,112,147];
SVGColors['papayawhip'] = [255,239,213];
SVGColors['peachpuff'] = [255,218,185];
SVGColors['peru'] = [205,133,63];
SVGColors['pink'] = [255,192,203];
SVGColors['plum'] = [221,160,221];
SVGColors['powderblue'] = [176,224,230];
SVGColors['purple'] = [128,0,128];
SVGColors['red'] = [255,0,0];
SVGColors['rosybrown'] = [188,143,143];
SVGColors['royalblue'] = [65,105,225];
SVGColors['saddlebrown'] = [139,69,19];
SVGColors['salmon'] = [250,128,114];
SVGColors['sandybrown'] = [244,164,96];
SVGColors['seagreen'] = [46,139,87];
SVGColors['seashell'] = [255,245,238];
SVGColors['sienna'] = [160,82,45];
SVGColors['silver'] = [192,192,192];
SVGColors['skyblue'] = [135,206,235];
SVGColors['slateblue'] = [106,90,205];
SVGColors['slategray'] = [112,128,144];
SVGColors['slategrey'] = [112,128,144];
SVGColors['snow'] = [255,250,250];
SVGColors['springgreen'] = [0,255,127];
SVGColors['steelblue'] = [70,130,180];
SVGColors['tan'] = [210,180,140];
SVGColors['teal'] = [0,128,128];
SVGColors['thistle'] = [216,191,216];
SVGColors['tomato'] = [255,99,71];
SVGColors['turquoise'] = [64,224,208];
SVGColors['violet'] = [238,130,238];
SVGColors['wheat'] = [245,222,179];
SVGColors['white'] = [255,255,255];
SVGColors['whitesmoke'] = [245,245,245];
SVGColors['yellow'] = [255,255,0];
SVGColors['yellowgreen'] = [154,205,50];</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/10/javascript-associative-array-of-svg-color-keywords/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Damn, It Is Cold</title>
		<link>http://fransdejonge.com/2010/10/damn-it-is-cold/</link>
		<comments>http://fransdejonge.com/2010/10/damn-it-is-cold/#comments</comments>
		<pubDate>Sun, 17 Oct 2010 20:15:04 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1732</guid>
		<description><![CDATA[Weather in fall always comes paired with temperature drops, fall storms, and lots of rain. But seldom has the temperature dropped from 20°C to a mere 7°C in a mere day.]]></description>
			<content:encoded><![CDATA[<p>Weather in fall always comes paired with temperature drops, fall storms, and lots of rain. But seldom did the temperature drop from 20°C to a mere 7°C from one day to the next.</p>
<p>The release of Ubuntu 10.10 coincided with this change for wintry weather; however, while I&#8217;m sure it&#8217;s swell, you won&#8217;t see me upgrading just yet. Perhaps I&#8217;ll have to look a little harder into acquiring a netbook so I can use it with the Ubuntu Netbook Edition.</p>
<p>Of more interest is the announcement that Opera 11 will have extensions. Or, more particularly, that I was <a href="http://twitter.com/#!/opvard/status/27501719128">the first to guess this in a contest</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/10/damn-it-is-cold/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Disable Opera Speed Dial</title>
		<link>http://fransdejonge.com/2010/10/how-to-disable-opera-speed-dial/</link>
		<comments>http://fransdejonge.com/2010/10/how-to-disable-opera-speed-dial/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 14:09:40 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1731</guid>
		<description><![CDATA[As far as I'm concerned there are two reasons for disabling speed dials: it's faster, and your history doesn't misbehave.]]></description>
			<content:encoded><![CDATA[<p>As far as I&#8217;m concerned there are two reasons for disabling speed dials: it&#8217;s faster, and your history doesn&#8217;t misbehave.</p>
<p>The speed is less relevant since Opera 10, although more relevant again since Opera 10.50. The history argument is far more important to me. It really throws me off that the first page I visited in a window still allows me to go back. I don&#8217;t know why someone would want to go back to the speed dial; isn&#8217;t it faster to just open a new one?</p>
<p>To disable the speed dial, you have you change the <a href="opera:config#UserPrefs|SpeedDialState">SpeedDialState</a> setting in opera:config.</p>
<p>0: Folded<br />
1: Shown<br />
2: Read only, and always show speed dial<br />
3: Disable speed dial</p>
<p>Set it to 3 to disable speed dial completely. If you think this will impair your ability to open pages quickly and easily, you need to take note of <a href="/2010/01/25/30-days-to-becoming-an-opera-lover/">go to nickname</a> (<kbd>Shift</kbd> + <kbd>F2</kbd>).</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/10/how-to-disable-opera-speed-dial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Calendar Synchronization</title>
		<link>http://fransdejonge.com/2010/10/google-calendar-synchronization/</link>
		<comments>http://fransdejonge.com/2010/10/google-calendar-synchronization/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 20:54:47 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1729</guid>
		<description><![CDATA[syncme.se performs synchronization of Google Calendar with SyncML supporting cellphones.]]></description>
			<content:encoded><![CDATA[<p><a href="http://syncme.se">syncme.se<sup>beta</sup></a> performs synchronization of Google Calendar with SyncML supporting cellphones in a manner that easily outperforms all other alternatives.</p>
<p>Opera Mini and this kind of calendar synchronization enable me to use my now over three years old Sony Ericsson s500i much like it were a modern smartphone. I realize the phone is as ubiquitous these days as the Nokia 3310 was in the early 2000s, but I take comfort in being a pioneer: I got the phone about one to two months after it came out.</p>
<p>But none of that is really relevant. If you use Google Calendar and a phone that supports SyncML, syncme.se might just be what you were looking for.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/10/google-calendar-synchronization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What Is A Tab?</title>
		<link>http://fransdejonge.com/2010/09/what-is-a-tab/</link>
		<comments>http://fransdejonge.com/2010/09/what-is-a-tab/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 19:13:00 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Thoughts]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1721</guid>
		<description><![CDATA[I've noticed some ignorance regarding what constitutes a tab.]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve noticed some ignorance regarding what constitutes a tab, largely fueled by the announcement of the badly-named Tab Candy. Panorama is a much better name.</p>
<p>To clarify what a tab is, I looked for a <a href="http://www.openclipart.org/detail/12658">random picture of a tab</a> and added a circle around the tab.<br />
<a href="http://fransdejonge.com/wp-content/uploads/2010/07/blue-folder-tab.svg"><img src="http://fransdejonge.com/wp-content/uploads/2010/07/blue-folder-tab.svg" alt="" title="blue-folder-tab" class="alignnone size-full wp-image-1722" /></a></p>
<p>If those tabs aren&#8217;t there in some kind of metaphorical pixel-form, there are no tabs. Or to put it another way, a tab-based user interface consists of multiple internal windows with a sort of task bar.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/09/what-is-a-tab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dealing With cPanel: Setting Up a 301 Redirect to Your Main Domain And Preventing .htaccess Hell</title>
		<link>http://fransdejonge.com/2010/07/dealing-with-cpanel-setting-up-a-301-redirect-to-your-main-domain-and-preventing-htaccess-hell/</link>
		<comments>http://fransdejonge.com/2010/07/dealing-with-cpanel-setting-up-a-301-redirect-to-your-main-domain-and-preventing-htaccess-hell/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 12:32:35 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Sites]]></category>

		<guid isPermaLink="false">http://fransdejonge.com/?p=1718</guid>
		<description><![CDATA[cPanel is surprisingly ill-suited for managing domains. In this post I discuss two methods I use to prevent some issues that arise from this problem.]]></description>
			<content:encoded><![CDATA[<p>cPanel is surprisingly ill-suited for managing domains. Rather than treating each domain as a separate entity, you get one main domain and various so-called add-on domains. The most annoying aspect of this is that it always creates a subdomain when you add a new add-on domain. There should be no such thing as an add-on domain, just a bunch of domains. cPanel has some features that help you work around these defects, but I wasn&#8217;t too thrilled with those. It now seems to automatically redirect the www-subdomain to your no-www domain and you can easily set up subdomains to redirect through the interface, but it doesn&#8217;t satisfy me.</p>
<h3>Setting Up a 301 Redirect</h3>
<p>Instead of having to bother with a plethora of settings in cPanel itself, I came up with the following to stick at the top of .htaccess. A quick look around on the Internet brought up <a href="http://www.fayazmiraz.com/remove-subdomain-access-from-addon-domain/">Fayaz Miraz&#8217;s blog</a>, but while the solution suggestion was close, it misses one crucial aspect: it only redirects from the main page as far as I can tell. This is fixed easily by the addition of $1 (i.e. everything that was added after the main page).</p>
<pre><code>&lt;IfModule mod_rewrite.c&gt;
RewriteEngine On

RewriteCond %{HTTP_HOST} !^fransdejonge\.com$
RewriteRule ^(.*)$ http://fransdejonge.com/$1 [R=301,L]

&lt;/IfModule&gt;</code></pre>
<p>Simply put, it matches all possible routes of approach (whether through www or through a subdomain of another domain) and if it&#8217;s not fransdejonge.com, it will 301 redirect to fransdejonge.com. The L means no further rewriting will occur after that rule. Mostly because it would just be inefficient, and partially because something else further down the line might mess things up.</p>
<h3>Preventing .htaccess Hell</h3>
<p>Another problem is that cPanel automatically creates a <code>/public_html/addondomain</code> directory. This is bad, because <code>/public_html</code> already contains a .htaccess file for the main domain. When accessing <code>/public_html/addondomain</code>, it would first parse the .htaccess file in <code>/public_html</code> before moving on and overriding it in <code>/public_html/addondomain</code>, and that&#8217;s assuming none of the rules in <code>/public_html</code> make anything go awry!</p>
<p>To prevent this kind of nightmare from occurring I took the simple precaution of creating a new directory <code>/domains</code>. This domain is contained in <code>/domains/fransdejonge.com</code>, for instance, and any other add-on or subdomains can reside in their own <code>/domains/domain.com</code> directory to prevent any added load from needlessly parsing .htaccess files.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/07/dealing-with-cpanel-setting-up-a-301-redirect-to-your-main-domain-and-preventing-htaccess-hell/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What Is a Malamanteau?</title>
		<link>http://fransdejonge.com/2010/05/what-is-a-malamanteau/</link>
		<comments>http://fransdejonge.com/2010/05/what-is-a-malamanteau/#comments</comments>
		<pubDate>Sat, 29 May 2010 12:22:35 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Language]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1694</guid>
		<description><![CDATA[Rescued from Wikipedia.]]></description>
			<content:encoded><![CDATA[<p>The following article appeared on Wikipedia for a very short time due to <a href="http://xkcd.com/739/">a recent xkcd comic</a>. It&#8217;s a reference back to <a href="http://languagelog.ldc.upenn.edu/nll/?p=2314">Language Log</a>, which references xkcd sometimes, but the reverse seldom happens.</p>
<blockquote><p>A <b>malamanteau</b> (plural malamanteaux) is a neologism for a portmanteau created by incorrectly combining a malapropism with a neologism. It is itself a portmanteau of <a href="http://en.wikipedia.org/wiki/Malapropism" title="Malapropism">malapropism</a> and <a href="http://en.wikipedia.org/wiki/Portmanteau" title="Portmanteau">portmanteau</a>. In a less strict definition, a portmanteau of a malapropism with another word can also be considered a malamanteau. The contained malapropism must be typically a very common one, probably most people are not aware of, in order to be able to regain the meaning of a malamanteau.</p>
<p>A malamanteau often is created when somebody tries to use a neologism (alternatively, an idiom) but mistakenly confuses a word with another one. However, unlike a malapropism or an <a href="http://en.wikipedia.org/wiki/Eggcorn" title="Eggcorn">eggcorn</a>, the fumbled word is not completely replaced, but merely transfixed to the new one. A famous example is: &#8220;misunderestimate&#8221; which was popularized by the 43rd President of the United States, <a href="http://en.wikipedia.org/wiki/George_W._Bush" title="George W. Bush">George W. Bush</a>. Probably it was intended to be &#8220;underestimate&#8221; but mistakenly jumbled with &#8220;misunderstand.&#8221;</p>
<h3><span class="mw-headline" id="Examples">Examples</span></h3>
<ul>
<li>Somebody describes his misunderstanding of what someone was saying by stating, &#8220;I misconscrewed it up.&#8221;</li>
<li>Somenone explains his inability to talk while being upset by saying he was &#8220;flustrated.&#8221;</li>
<li>A meaningful malamanteau is &#8220;ambiviolent,&#8221; as in: &#8220;Beatrix Kiddo in <a href="http://en.wikipedia.org/wiki/Kill_Bill" title="Kill Bill">Kill Bill</a> was ambiviolent. She didn&#8217;t know who to kill first.&#8221;</li>
</ul>
</blockquote>
<p>I was going to write more about it when I made this draft, but by now it&#8217;s two weeks later and I&#8217;ve lost interest. Booyah.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/05/what-is-a-malamanteau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera and Link Targets</title>
		<link>http://fransdejonge.com/2010/05/opera-and-link-targets/</link>
		<comments>http://fransdejonge.com/2010/05/opera-and-link-targets/#comments</comments>
		<pubDate>Sun, 09 May 2010 12:20:49 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1693</guid>
		<description><![CDATA[How to customize Opera's handling of links.]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me and you aren&#8217;t particularly fond of sites opening in new tabs without your explicit command, you might be interested in activating <a href="opera:config#Ignore%20Target">Opera&#8217;s Ignore Target setting</a>. This setting &#8220;Unfortunately &#8230; also disables the <em>window.open()</em> method, breaking the functionality of many sites,&#8221; so you might prefer to utilize <a href="http://extendopera.org/userjs/content/remove-blank-targets">JKing&#8217;s UserJS which stops most links from opening in new windows</a>.</p>
<p>On the other hand, you might prefer all links to external sites to open in a new tab. I recently wrote <a href="http://extendopera.org/userjs/content/external-links-new-window" title="A script that opens external links in a new tab.">a script that does just that</a> for someone on the MyOpera forum.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/05/opera-and-link-targets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acceptable Advertisements</title>
		<link>http://fransdejonge.com/2010/03/acceptable-advertisements/</link>
		<comments>http://fransdejonge.com/2010/03/acceptable-advertisements/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 12:52:06 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1685</guid>
		<description><![CDATA[Advertisements should be quiet and unobtrusive.]]></description>
			<content:encoded><![CDATA[<p>I agree with everything that Faruk Ateş wrote about <a href="http://farukat.es/journal/2010/03/409-ad-blockers-versus-flash-blockers">ad blockers and flash blockers</a>, but I would like to add one more point, with which I presume he will agree; I think it&#8217;s implied by his writing by referring to certain advertisements as being beautiful and fitting with the content, but never explicified. My point is simple: the advertisements have to be compatible with the type of media I&#8217;m viewing.</p>
<p>I don&#8217;t block Flash as it typically crashes separately from Opera on Linux, nor does it seem to slow things down for me. I don&#8217;t typically block ads, either — though it is really annoying if one ad is making the entire page load slowly. However, I will generally close a page while it&#8217;s loading if I am annoyed by the ads. When do ads annoy me? Simple: <strong>when they do not fit the type of content I&#8217;m looking at</strong>. If I want to read some text, I&#8217;m fine with static textual or image-based ads. I don&#8217;t want animation, although I suppose it&#8217;s possible to change ads now and then without it being too obtrusive. Anything that utilizes Flash typically breaks these rules and comes with distracting animation. Worse, it often even comes with sound. It doesn&#8217;t really matter what I&#8217;m doing; as long as I&#8217;ve got my sound system turned on I don&#8217;t want any sound to come from my speakers that I did not explicitly ask for.</p>
<p>Now if I&#8217;m going to watch a video, like on <a href="http://www.uitzendinggemist.nl/">Uitzendinggemist</a>, then I&#8217;m perfectly fine with a video-based advertisement with audio. <small class="sidenote">Uitzendinggemist literally means &#8220;missed broadcast.&#8221; It&#8217;s an online archive of most of Dutch public television broadcasts.</small> After all, I&#8217;m requesting video with sound. A 10-15 second advertisement prior to actually viewing the particular video I requested is perfectly acceptable. Similarly, I welcome short audio clips or endorsements in podcasts if they help pay for the podcast. But don&#8217;t start playing such messages at random. Although I don&#8217;t frequently use Firefox for regular browsing, my favorite extension is StopAutoPlay. This isn&#8217;t just about ads of course and applies just as much to people who decide to stick background music on their site, or to start playing videos automatically (I&#8217;m looking at you, YouTube), though if I opened a video somewhere it&#8217;s usually not too hard to figure out where the noise is coming from.</p>
<p>What could be an acceptable form of a video-based advertisement on a non-moving Internet page would be something akin to YouTube embedded videos. These don&#8217;t autoplay, but you have to click the play button first.</p>
<p>Everything I said applies just as much to things that aren&#8217;t advertisements, but too many advertisements seem to be made as annoyingly as possible on purpose. I hope that nobody has ever gained any business from such advertisements. They sure haven&#8217;t from me.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/acceptable-advertisements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tubes Beats Yahoo Pipes: Feed Fixup</title>
		<link>http://fransdejonge.com/2010/03/tubes-beats-yahoo-pipes-feed-fixup/</link>
		<comments>http://fransdejonge.com/2010/03/tubes-beats-yahoo-pipes-feed-fixup/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 13:01:51 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Tubes]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1626</guid>
		<description><![CDATA[An unexpected extension of Tubes took little time to write.]]></description>
			<content:encoded><![CDATA[<p>Although it has only been a couple of weeks since I started work on <a href="http://bitbucket.org/frenzie/tubes/">Tubes</a>, the mechanism I put in place to output feeds is already serving me very well. So well that it&#8217;s approaching all of my personal needs. This may potentially be bad for other people, but it&#8217;s great for me. Besides, I put the code out there; it should be easy enough to fork it if you wish it to do more! Bitbucket is also said to make it easy to merge such changes in later. I should also point out that the large majority of the work was of course done by the people who made SimplePie.</p>
<p>Anyway, I wanted to subscribe to the UN News podcast. To my surprise, gPodder was incapable of handling it. No surprise, as it turns out, because it&#8217;s not even proper according to the iTunes enclosure specification (although I imagine it works in iTunes). SimplePie had a nice get_enclosure() function already, so the first step, adding a proper enclosure to my Tube&#8217;s output feed, was a matter of minutes. The UN also fails to specify any size information, however, which I can&#8217;t say I was too enthused about in my trusty gPodder interface. Another 10 minutes or so later, I finished adding some cURL magic to my application. I should probably stash it away into a class later and see if I can somehow make it utilize SimplePie&#8217;s cache system to minimize useless traffic, but for now I just stuck it straight in the feed generation code. Now the UN feed is transformed from something gPodder couldn&#8217;t handle into something that essentially fixes all the UN did wrong. Thank you SimplePie for providing this great foundation!</p>
<p>Before (RSS):</p>
<pre><code>&lt;item&gt;
  &lt;title&gt;UN Daily News 12 March 2010&lt;/title&gt;
  &lt;itunes:author&gt;United Nations Radio&lt;/itunes:author&gt;
  &lt;itunes:subtitle&gt;News and features from United Nations Radio.&lt;/itunes:subtitle&gt;
  &lt;itunes:summary&gt;&lt;/itunes:summary&gt;
  &lt;enclosure url="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="" type="audio/mpeg" /&gt;
  &lt;guid&gt;http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3&lt;/guid&gt;
  &lt;pubDate&gt;Fri, 12 Mar 2010 11:42:32 EST&lt;/pubDate&gt;
  &lt;itunes:duration&gt;0:00&lt;/itunes:duration&gt;
&lt;/item&gt;</code></pre>
<p>After (Atom):</p>
<pre><code>&lt;entry&gt;
  &lt;author&gt;
   &lt;name&gt;United Nations Radio&lt;/name&gt;
  &lt;/author&gt;
  &lt;title&gt;UN Daily News 12 March 2010&lt;/title&gt;
  &lt;summary&gt; &lt;/summary&gt;
  &lt;published&gt;2010-03-12T11:42:32-05:00&lt;/published&gt;
  &lt;updated&gt;2010-03-12T11:42:32-05:00&lt;/updated&gt;
  &lt;id&gt;http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3&lt;/id&gt;
  &lt;link rel="enclosure" type="audio/mpeg" href="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="6720384" /&gt;
  &lt;link rel="alternate" type="text/html" href="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3"/&gt;
&lt;/entry&gt;</code></pre>
<p>I realize the alternate link currently has the wrong type attribute, which I&#8217;ll look into fixing, but at least my gPodder can handle the feed now.</p>
<p>I also set up <a href="http://frans.lowter.us/test/tubes/index.php?feedset=news">a little demo</a> so you can check the difference with <a href="http://www.unmultimedia.org/radio/english/rss/itunes.xml">the original feed</a> for yourselves. I&#8217;d be curious to hear how different podcatchers handle both feeds.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/tubes-beats-yahoo-pipes-feed-fixup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="6720384" type="audio/mpeg" />
<enclosure url="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="6720384" type="audio/mpeg" />
<enclosure url="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="6720384" type="audio/mpeg" />
<enclosure url="http://downloads.unmultimedia.org/radio/en/ltd/mp3/2010/10031200.mp3" length="6720384" type="audio/mpeg" />
		</item>
		<item>
		<title>Microsoft and Video on The Web</title>
		<link>http://fransdejonge.com/2010/03/microsoft-and-video-on-the-web/</link>
		<comments>http://fransdejonge.com/2010/03/microsoft-and-video-on-the-web/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 20:47:29 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1632</guid>
		<description><![CDATA[An open letter to Microsoft worth reading.]]></description>
			<content:encoded><![CDATA[<p>Opera employee Haavard posted an <a href="http://my.opera.com/haavard/blog/2010/03/16/microsoft-letter">open letter to Microsoft regarding video on the web</a>. I&#8217;m just going to quote the last and best part.</p>
<blockquote cite="Haavard"><p>I know you are a patent licensor in the MPEG LA, and this would actually make your actions even more powerful and meaningful. You could show just how serious you are about interoperability on the Web by supporting the free and open codec rather than the one that would best suit your short-term interests.</p>
<p>This is a unique opportunity for you to win back the hearts and minds of people who might have otherwise dismissed you as carrying on with &#8220;business as usual&#8221;.</p>
<p>Are you up for it?</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/microsoft-and-video-on-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lighttpd and PHP on Ubuntu</title>
		<link>http://fransdejonge.com/2010/03/lighttpd-and-php-on-ubuntu/</link>
		<comments>http://fransdejonge.com/2010/03/lighttpd-and-php-on-ubuntu/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 11:51:11 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1615</guid>
		<description><![CDATA[Summarized guide to installing Lighttpd on Ubuntu.]]></description>
			<content:encoded><![CDATA[<p>I prefer Lighttpd over Apache on my personal computers because of its phenomenal speed and reduced memory usage. It&#8217;s surprisingly easy to get Lighttpd and PHP running on Ubuntu. For an extensive guide, including how to enable MySQL, <a href="http://www.ubuntugeek.com/lighttpd-webserver-setup-with-php5-and-mysql-support.html">Ubuntu Geek</a> is the place to be.</p>
<p>This entry only deals with the basics of getting Lighttpd up and running with PHP. To get started, use:</p>
<pre><code>sudo apt-get install lighttpd php5-cgi</code></pre>
<p>Then run <code>lighty-enable-mod</code> and enter <code>fastcgi</code>.</p>
<p>Then you can edit /etc/lighttpd/lighttpd.conf. Stick the following at the end:</p>
<pre><code>fastcgi.server = ( “.php” => ((
“bin-path” => “/usr/bin/php5-cgi”,
“socket” => “/tmp/php.socket”
)))</code></pre>
<p>Recommended: <code>sudo apt-get install php5-curl php5-tidy </code> to be able to run <a href="http://bitbucket.org/frenzie/tubes/">Tubes</a> with all functionality, and of course any other modules you might like. There&#8217;s nothing to it; you don&#8217;t even have to edit php.ini.</p>
<p>When you&#8217;re done customizing things to your liking, use <code>sudo /etc/init.d/lighttpd restart</code> to see the changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/lighttpd-and-php-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Way Alternative Text Should Be Rendered</title>
		<link>http://fransdejonge.com/2010/03/the-way-alternative-text-should-be-rendered/</link>
		<comments>http://fransdejonge.com/2010/03/the-way-alternative-text-should-be-rendered/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 09:12:40 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Browsers]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1611</guid>
		<description><![CDATA[Webkit doesn't even display alternative text. What a crock.]]></description>
			<content:encoded><![CDATA[<p>Vlad Alexander describes how <a href="http://rebuildingtheweb.com/en/how-should-browsers-render-alt-text/">browsers mess up horribly</a> on alternative text. I noticed the deficiencies in Opera and Firefox before, but what Webkit does is simply ridiculous. I don&#8217;t entirely agree with him since I don&#8217;t think that the alternative content should display without any indication that it&#8217;s alternative text whatsoever. I consider Opera&#8217;s behavior best in this regard (as opposed to the obtrusive icons most other browsers throw in there), except for the part where it applies width and height meant for images to the text thus cutting them off.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/the-way-alternative-text-should-be-rendered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera 10.50</title>
		<link>http://fransdejonge.com/2010/03/opera-10-50/</link>
		<comments>http://fransdejonge.com/2010/03/opera-10-50/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 12:30:01 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/2010/03/03/opera-10-50/</guid>
		<description><![CDATA[For those of you who read my blog, use Opera and don&#8217;t follow the latest releases, Opera 10.50 for Windows was released yesterday. Download it now!]]></description>
			<content:encoded><![CDATA[<p>For those of you who read my blog, use Opera and don&#8217;t follow the latest releases, Opera 10.50 for Windows was released yesterday. <a href="http://opera.com">Download</a> it now!</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/03/opera-10-50/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePie-based Feed Mashup</title>
		<link>http://fransdejonge.com/2010/02/simplepie-based-feed-mashup/</link>
		<comments>http://fransdejonge.com/2010/02/simplepie-based-feed-mashup/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 15:44:03 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1583</guid>
		<description><![CDATA[I wrote a basic feed mashup tool in PHP. Get it here.]]></description>
			<content:encoded><![CDATA[<p class="update">This tool is now named <strong>Tubes</strong> and is <a href="http://bitbucket.org/frenzie/tubes/">hosted on Bitbucket</a>.</p>
<p>As I wrote a few months ago, <a href="http://frans.lowter.us/2009/12/04/fun-with-yahoo-pipes-and-podcasts/">Yahoo Pipes is a nice tool</a>. Nonetheless, it has a few shortcomings which annoyed me because I could neither fix nor work around them. Therefore, I decided to write my own mashup tool. For the impatient, you can <a href="http://frans.lowter.us/wp-content/uploads/2010/02/opera-feeds.zip">download the file right now</a> before reading anything else.</p>
<p>Since SimplePie seems to be the feed aggregation library of choice for many projects, I decided to go with it. I ran into a few minor issues, but nothing I couldn&#8217;t handle easily. The code I wrote is based on the multifeeds.php demo file and SimplePie 1.1.3, because in 1.2 it didn&#8217;t work (the multifeeds demo, that is — by extension I suppose this file won&#8217;t either). It&#8217;s a little rough around the edges, and SimplePie is clearly meant for HTML output rather than XML (although its HTML isn&#8217;t quite decent either, even if the input feed is), so I decided to fix the whole thing up with Tidy, which takes care of low quality input material as well. Hopefully that makes this whole thing more robust than it would otherwise be. The code is based around bringing various Opera feeds I read together in one big feed, but this can very easily be changed.</p>
<p>So now that I&#8217;ve got the basics of output into a feed taken care of, I can easily duplicate other functionality of Yahoo Pipes if I want. Much better.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/02/simplepie-based-feed-mashup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>30 Days to Becoming an Opera Lover</title>
		<link>http://fransdejonge.com/2010/01/30-days-to-becoming-an-opera-lover/</link>
		<comments>http://fransdejonge.com/2010/01/30-days-to-becoming-an-opera-lover/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 10:24:08 +0000</pubDate>
		<dc:creator>Frans</dc:creator>
				<category><![CDATA[Opera]]></category>

		<guid isPermaLink="false">http://frans.lowter.us/?p=1368</guid>
		<description><![CDATA[30 Days helped me switch to Opera, and it can still be relevant today.]]></description>
			<content:encoded><![CDATA[<p>The <cite>30 Days to Becoming an Opera 6 Lover</cite> series may very well have been what pulled me over the edge. That which made me choose Opera instead of MyIE2 (now Maxthon). It should therefore be no surprise that I still harbor warm feelings toward it. While it may be old, and the original series is no longer hosted by <a href="http://tntluoma.com/">TnT Luoma</a> as far as I can tell, I think that the series could still teach current (aspiring) users of Opera a thing or two — even the 30 Days series for Opera 6. Due to the large part the Opera 6 series played in my personal discovery of Opera, however, my judgment may be somewhat impaired.</p>
<p>I dug into the Internet Archive and I was pleasantly surprised to discover that the <a href="http://web.archive.org/web/20060709213715/http://www.tntluoma.com/opera/lover/6/download/operalover-HTML-2002-11-29.zip">30 Days series for Opera 6</a> is available through the archive in a nice ZIP file. The <a href="http://web.archive.org/web/20060709213715/www.tntluoma.com/opera/lover/6/">original Opera 6 lover pages</a> do not seem to have been preserved, but the ZIP file is easier to use regardless.</p>
<p>The <a href="http://web.archive.org/web/20080518143933rn_1/operalover.tntluoma.com/day_1_general_preferences">30 Days series for Opera 8</a> was also preserved. <small class="sidenote">The Opera 8 series is still available in the <a href="http://tntluoma.com/category/30days/">archives of TnT Luoma</a>, but the pictures and some other things are broken. Besides, I like the old layout better; it used to be <a href="http://web.archive.org/web/20051225094143/operalover.tntluoma.com/day_1_general_preferences">blue</a>, however, which was even better — you probably don&#8217;t want to read the oldest text available, though.</small> While I would not recommend a detailed read (it is quite outdated after all), I would certainly recommend skimming through most of it.</p>
<p>By the time Opera 8 came out — and consequently, the <cite>30 Days to Becoming an Opera 8 Lover</cite> series — I was already a seasoned Opera user, so the series didn&#8217;t do much for me. I did discover one very important Opera feature thanks to it, however. In the default keyboard setup, <kbd>Shift</kbd> + <kbd>F2</kbd> is bound to <code>go to nickname</code>. If you don&#8217;t know what nicknames are, you can give bookmarks so-called nicknames; if you type them out in the address bar and press enter it will take you to the bookmark, and it will offer autocomplete suggestions while you&#8217;re typing. Useful, but not a huge time saver.</p>
<p><code>Go to nickname</code> is better, because it starts going to the nickname as soon as it&#8217;s got a match. So if you have only one bookmark with a nickname that starts with a, you&#8217;ll only have to type <kbd>a</kbd> and you&#8217;ll be on your way. I had not realized this prior to reading the Opera 8 Lover series, and it wasn&#8217;t actually written in the series, but without it I might very well never have tried this feature again. After some consideration and major inspiration by Moose I rebound <kbd>F2</kbd> to <code>new page &#038; go to nickname</code>, which means that ever since, pressing <kbd>F2</kbd> automatically opened a new page and this tremendously useful dialog. The introduction of speed dial didn&#8217;t do much for me thanks to this keyboard shortcut. It might take a few seconds more to configure, but it&#8217;s worth it. Additionally, new tabs will open even faster if you disable speed dial.</p>
]]></content:encoded>
			<wfw:commentRss>http://fransdejonge.com/2010/01/30-days-to-becoming-an-opera-lover/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

