<?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>dev. &#187; niels</title>
	<atom:link href="http://coliena.com/blog/author/niels/feed/" rel="self" type="application/rss+xml" />
	<link>http://coliena.com/blog</link>
	<description>some software engineers&#039; random rants and thoughts</description>
	<lastBuildDate>Mon, 30 Aug 2010 20:02:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to repair the Apple iCal</title>
		<link>http://coliena.com/blog/2010/08/how-to-repair-the-apple-ical/</link>
		<comments>http://coliena.com/blog/2010/08/how-to-repair-the-apple-ical/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 20:02:16 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[helpdesk]]></category>
		<category><![CDATA[10.6]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[os x]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=371</guid>
		<description><![CDATA[My iCal kept crashing constantly due to a segmentation fault (EXC_BAD_ACCESS, SIGSEGV). In the short time right before it crashed, I noticed that iCal tried to sync with a corrupt external calendar. The bad data got into iCal once, and iCal didn&#8217;t stand it If you happen to meet a failing iCal one day, and [...]]]></description>
			<content:encoded><![CDATA[<p>My iCal kept crashing constantly due to a segmentation fault (EXC_BAD_ACCESS, SIGSEGV). In the short time right before it crashed, I noticed that iCal tried to sync with a corrupt external calendar. The bad data got into iCal once, and iCal didn&#8217;t stand it <img src='http://coliena.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
If you happen to meet a failing iCal one day, and you can&#8217;t remove the mischief from within iCal, you have two options:</p>
<ol>
<li>get the decent <a href="http://purityapp.com/">Purity</a> app, unplug the network (so that iCal won&#8217;t sync before the culprit has been removed), and clean the iCal cache</li>
<li>have a closer look at <em>~/Library/Calendars/</em>, where all the calendars are stored. Inspect the info.plist files and .ics event data to find the bad calendar and move its folder to another location. Restart iCal. If it is still crashing you got the wrong calendar &#8211; put the moved calendar back and keep on searching.</li>
</ol>
<p>No. 2 did the trick for me.<br />
Plain text files and simple folder layouts might not look as evolved as SQL tables and mysterious binary data files &#8211; but they work just fine in this scenario and are pretty easy to debug.</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/08/how-to-repair-the-apple-ical/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apples vs. Oranges</title>
		<link>http://coliena.com/blog/2010/08/apples-vs-oranges/</link>
		<comments>http://coliena.com/blog/2010/08/apples-vs-oranges/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 09:15:15 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[life out there]]></category>
		<category><![CDATA[note to self]]></category>
		<category><![CDATA[applesvsoranges]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=362</guid>
		<description><![CDATA[Apparently comparing apples and oranges makes sense after all: Apples and Oranges &#8212; A Comparison by Scott A. Sandford, NASA Ames Research Center, Mountain View, California]]></description>
			<content:encoded><![CDATA[<p>Apparently comparing apples and oranges makes sense after all:<br />
<a href="http://improb.com/airchives/paperair/volume1/v1i3/air-1-3-apples.html">Apples and Oranges &#8212; A Comparison by Scott A. Sandford, NASA Ames Research Center, Mountain View, California</a></p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/08/apples-vs-oranges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adjusting Brightness on a Samsung NC10 Running (K)Ubuntu</title>
		<link>http://coliena.com/blog/2010/07/adjusting-brightness-on-a-samsung-nc10-running-kubuntu/</link>
		<comments>http://coliena.com/blog/2010/07/adjusting-brightness-on-a-samsung-nc10-running-kubuntu/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 16:53:34 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[helpdesk]]></category>
		<category><![CDATA[linux kubuntu ubuntu]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=358</guid>
		<description><![CDATA[The hardware keys for adjusting brightness on a Samsung NC10 aren&#8217;t working in an out-of-the-box Kubuntu 10.04. The brightness slider in the Power Management tray application isn&#8217;t working as designed as well. Fortunately, you can set the display brightness using the hardware keys in GRUB, the bootloader that let&#8217;s you choose what OS and/or Kernel [...]]]></description>
			<content:encoded><![CDATA[<p>The hardware keys for adjusting brightness on a Samsung NC10 aren&#8217;t working in an out-of-the-box Kubuntu 10.04. The brightness slider in the Power Management tray application isn&#8217;t working as designed as well.</p>
<p>Fortunately, you can set the display brightness using the hardware keys in GRUB, the bootloader that let&#8217;s you choose what OS and/or Kernel you want to start.</p>
<p>Settings are lost on reboot, and you still can&#8217;t change the brightness at runtime, but it&#8217;s better than nothing.</p>
<p><strong>Update:</strong><br />
Actually, there is a way to enable the brightness keys. And you don&#8217;t even have to edit your X.org conf manually. Just head over to <a href="http://ubuntu-tweak.com/app/samsung-tools/">ubuntu-tweak.com</a> and install <code>samsung-brightness</code> <img src='http://coliena.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/07/adjusting-brightness-on-a-samsung-nc10-running-kubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quote Of The Day</title>
		<link>http://coliena.com/blog/2010/07/quote-of-the-day/</link>
		<comments>http://coliena.com/blog/2010/07/quote-of-the-day/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 17:49:03 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[life out there]]></category>
		<category><![CDATA[qotd]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=352</guid>
		<description><![CDATA[It&#8217;s forgotten all too often: Search is a way to harvest demand, not to create it. (Drew Houston, co-founder &#38; CEO of Dropbox, about Google AdWords in his &#8220;Startup Lessons Learned&#8221; presentation). via Jeff Barr.]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s forgotten all too often:</p>
<blockquote><p>Search is a way to harvest demand, not to create it.</p></blockquote>
<p>(Drew Houston, co-founder &amp; CEO of Dropbox, about Google AdWords in his <a href="http://www.slideshare.net/gueste94e4c/dropbox-startup-lessons-learned-3836587">&#8220;Startup Lessons Learned&#8221; presentation</a>).</p>
<p>via <a href="http://www.jeff-barr.com/?p=1551">Jeff Barr</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/07/quote-of-the-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better Threads with Active Objects</title>
		<link>http://coliena.com/blog/2010/07/better-threads-with-active-objects/</link>
		<comments>http://coliena.com/blog/2010/07/better-threads-with-active-objects/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:13:36 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[pattern]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=347</guid>
		<description><![CDATA[As part of his Effective Concurrency column, Herb Sutter describes the Active Object Pattern this month. It&#8217;s not just a C++ thing, but usable in C# and Java as well. Suggested reading]]></description>
			<content:encoded><![CDATA[<p>As part of his Effective Concurrency column, <a href="http://www.drdobbs.com/go-parallel/article/showArticle.jhtml;jsessionid=JM3XD1KM22SCRQE1GHPSKH4ATMY32JVN?articleID=225700095">Herb Sutter describes the Active Object</a> Pattern this month.<br />
It&#8217;s not just a C++ thing, but usable in C# and Java as well.</p>
<p>Suggested reading <img src='http://coliena.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/07/better-threads-with-active-objects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying the latest global Subversion revision ID in an application</title>
		<link>http://coliena.com/blog/2010/06/displaying-the-latest-subversion-revision-id-in-an-application/</link>
		<comments>http://coliena.com/blog/2010/06/displaying-the-latest-subversion-revision-id-in-an-application/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 19:40:12 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=338</guid>
		<description><![CDATA[When you have to display the latest global svn revision number in your application you face different options. Using Subversion keywords, like $Revision$ or $Id$, sounds like the most natural approach. Unfortunately the keywords are updated only when you change and commit the corresponding file. In short: if you intend to grab the revision ID [...]]]></description>
			<content:encoded><![CDATA[<p>When you have to display the latest global svn revision number in your application you face different options.<br />
Using Subversion keywords, like $Revision$ or $Id$, sounds like the most natural approach. Unfortunately the keywords are updated only when you change and commit the corresponding file. In short: if you intend to grab the revision ID from a central header file, like version.h, this file has to be edited and committed whenever a svn commit on any file in your project takes place. So either you do that manually (<em>&#8220;erm, no?&#8221;</em> &#8211; right!), or you create a commit hook and bloat your repository.<br />
Another approach is to fetch the latest number of the latest revision and update your version.h as part of your build. In short: whenever you trigger a build by calling <em>make</em>, <em>ant</em> or build your project in your IDE, you invoke a script that generates your header file (or .java, .cs, .rb &#8230; you name it). On Linux and Unix, you might use a script just like this:<br />
<span id="more-338"></span></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/csh</span>
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">SVNREV</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">svnversion</span> -n<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">FILENAME</span>=<span style="color: #007800;">$my</span><span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>include<span style="color: #000000; font-weight: bold;">/</span>version.h
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'/*******************************************************************'</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'* '</span><span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'* This include file is automatically generated. All manual '</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'* changes will be lost.'</span>  <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'* '</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'*******************************************************************/'</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">''</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'/* latest Subversion revision */'</span>  <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">'#define SVNREV '</span> <span style="color: #007800;">$SVNREV</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">''</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #007800;">$FILENAME</span></pre></div></div>

<p>If you develop on Windows, you might adopt this script:</p>

<div class="wp_syntax"><div class="code"><pre class="bat" style="font-family:monospace;">@echo off
&nbsp;
REM store latest revision number as SVNREV
for /f &quot;delims=:&quot; %%a in ('svnversion') do @set SVNREV=%%a
&nbsp;
set FILENAME=%my%\path\to\include\version.h
echo /*******************************************************************  &gt; %FILENAME%
echo * &gt;&gt; %FILENAME%
echo * This include file is automatically generated. All manual  &gt;&gt; %FILENAME%
echo * changes will be lost.  &gt;&gt; %FILENAME%
echo * &gt;&gt; %FILENAME%
echo *******************************************************************/  &gt;&gt; %FILENAME%
echo.  &gt;&gt; %FILENAME%
echo /* latest Subversion revision */  &gt;&gt; %FILENAME%
echo #define SVNREV  %SVNREV$ &gt;&gt; %FILENAME%
echo.  &gt;&gt; %FILENAME%</pre></div></div>

<p>Make sure that you add version.h to svn:ignore.</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/06/displaying-the-latest-subversion-revision-id-in-an-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piping text to the clipboard in Vista and Windows 7</title>
		<link>http://coliena.com/blog/2010/05/piping-text-to-the-clipboard-in-vista-and-windows-7/</link>
		<comments>http://coliena.com/blog/2010/05/piping-text-to-the-clipboard-in-vista-and-windows-7/#comments</comments>
		<pubDate>Mon, 31 May 2010 12:39:24 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[shell]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=334</guid>
		<description><![CDATA[Microsoft added a new command line tool to Vista and Windows 7: clip.exe. This nifty little utility allows user to copy program output to the clipboard on the windows command line. Its usage is pretty straightforward: dir &#124; clip &#8211; copies the output of the dir command to the clipboard clip &#60; example.txt – copy [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft added a new command line tool to Vista and Windows 7: clip.exe. This nifty little utility allows user to copy program output to the clipboard on the windows command line. Its usage is pretty straightforward:</p>
<p><code>dir | clip</code> &#8211; copies the output of the <em>dir </em>command to the clipboard<br />
<code>clip &lt; example.txt </code>– copy the contents of the file <em>example.txt</em> to the clipboard</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/05/piping-text-to-the-clipboard-in-vista-and-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fighting Windows Sockets Legacy Troubles</title>
		<link>http://coliena.com/blog/2010/05/winsock-troubles/</link>
		<comments>http://coliena.com/blog/2010/05/winsock-troubles/#comments</comments>
		<pubDate>Fri, 14 May 2010 19:00:31 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=290</guid>
		<description><![CDATA[I came across a really annoying problem while using win32 sockets one of my bigger projects. In short, the VisualC compiler complained about redefinitions of basic Windows socket macros: C:\sdk\windows\v6.0a\include\ws2def.h&#40;91&#41; : warning C4005: 'AF_IPX' : macro redefinition C:\sdk\windows\v6.0a\include\winsock.h&#40;460&#41; : see previous definition of 'AF_IPX' C:\sdk\windows\v6.0a\include\ws2def.h&#40;124&#41; : warning C4005: 'AF_MAX' : macro redefinition C:\sdk\windows\v6.0a\include\winsock.h&#40;479&#41; : see [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a really annoying problem while using win32 sockets one of my bigger projects. In short, the VisualC compiler complained about redefinitions of basic Windows socket macros:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">91</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> warning C4005<span style="color: #339933;">:</span> <span style="color: #ff0000;">'AF_IPX'</span> <span style="color: #339933;">:</span> macro redefinition
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\winsock.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">460</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> see previous definition of <span style="color: #ff0000;">'AF_IPX'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">124</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> warning C4005<span style="color: #339933;">:</span> <span style="color: #ff0000;">'AF_MAX'</span> <span style="color: #339933;">:</span> macro redefinition
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\winsock.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">479</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> see previous definition of <span style="color: #ff0000;">'AF_MAX'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">163</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> warning C4005<span style="color: #339933;">:</span> <span style="color: #ff0000;">'SO_DONTLINGER'</span> <span style="color: #339933;">:</span> macro redefinition
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\winsock.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">402</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> see previous definition of <span style="color: #ff0000;">'SO_DONTLINGER'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">206</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> error C2011<span style="color: #339933;">:</span> <span style="color: #ff0000;">'sockaddr'</span> <span style="color: #339933;">:</span> <span style="color: #ff0000;">'struct'</span> type redefinition
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\winsock.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">485</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> see declaration of <span style="color: #ff0000;">'sockaddr'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">384</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> error C2143<span style="color: #339933;">:</span> syntax error <span style="color: #339933;">:</span> missing <span style="color: #ff0000;">'}'</span> before <span style="color: #ff0000;">'constant'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">384</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> error C2143<span style="color: #339933;">:</span> syntax error <span style="color: #339933;">:</span> missing <span style="color: #ff0000;">';'</span> before <span style="color: #ff0000;">'constant'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">384</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> error C2059<span style="color: #339933;">:</span> syntax error <span style="color: #339933;">:</span> <span style="color: #ff0000;">'constant'</span>
C<span style="color: #339933;">:</span>\sdk\windows\v6.0a\include\ws2def.<span style="color: #202020;">h</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">437</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> error C2143<span style="color: #339933;">:</span> syntax error <span style="color: #339933;">:</span> missing <span style="color: #ff0000;">';'</span> before <span style="color: #ff0000;">'}
(...)</span></pre></div></div>

<p><span id="more-290"></span><br />
After some digging in the code I noticed that <em>windows.h</em> had been included before <em>winsock2.h</em>. And that <em>windows.h</em> includes <em>winsock.h</em>. When digging deeper, I found <a href="http://msdn.microsoft.com/en-us/library/ms738562.aspx">an article in the MSDN</a> describing what had happened here:<br />
actually, this is a legacy problem. In Windows versions <= Windows 98, WinSock 1.1 had been used. The current win32 socket implementation, Windows Sockets 2 (WinSock 2.0), is backwards compatible to Windows Sockets 1.1. Additionally, the <em>winsock2.h</em> header files prevents the inclusion of the legacy <em>winsock.h</em> header file. But once you include <em>winsock.h</em>, you can not include <em>winsock2.h</em> later on.<br />
Unfortunately, <em>windows.h</em> still includes <em>winsock.h</em>.<br />
Fortunately, you can disable the legacy parts of the Windows SDK easily:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#define WIN32_LEAN_AND_MEAN</span></pre></div></div>

<p>You will not be able to build Windows 95/Windows 98 applications when using this definition. But if you were targeting those OS versions, you wouldn&#8217;t be using Windows Sockets 2 anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/05/winsock-troubles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entering Foreign Characters in Firefox</title>
		<link>http://coliena.com/blog/2010/05/entering-foreign-characters-in-firefox/</link>
		<comments>http://coliena.com/blog/2010/05/entering-foreign-characters-in-firefox/#comments</comments>
		<pubDate>Tue, 04 May 2010 17:11:08 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[helpdesk]]></category>
		<category><![CDATA[life out there]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=321</guid>
		<description><![CDATA[When dealing with foreign names, it is a matter of both correctness and courtesy to use the right spelling. But quite often it is also a problem of “how do I enter this darn character”. Luckily, there is abcTajpu, a Firefox extension that allows you to select foreign characters, umlauts, … quite easily. Free, no [...]]]></description>
			<content:encoded><![CDATA[<p>When dealing with foreign names, it is a matter of both correctness and courtesy to use the right spelling. But quite often it is also a problem of “how do I enter this darn character”.</p>
<p>Luckily, there is <a href="https://addons.mozilla.org/firefox/459/">abcTajpu</a>, a Firefox extension that allows you to select foreign characters, umlauts, … quite easily.</p>
<p>Free, no ads – really worth a try <img src='http://coliena.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://coliena.com/blog/wp-content/uploads/abcTaipu.png"><img class="alignnone size-medium wp-image-319" title="abcTaipu.png" src="http://coliena.com/blog/wp-content/uploads/abcTaipu-199x300.png" alt="" width="199" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/05/entering-foreign-characters-in-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchronizing Google Contacts and Google Calendar in KDE 4</title>
		<link>http://coliena.com/blog/2010/05/synchronizing-google-contacts-and-google-calendar-in-kde-4/</link>
		<comments>http://coliena.com/blog/2010/05/synchronizing-google-contacts-and-google-calendar-in-kde-4/#comments</comments>
		<pubDate>Sun, 02 May 2010 13:12:30 +0000</pubDate>
		<dc:creator>niels</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://coliena.com/blog/?p=313</guid>
		<description><![CDATA[The support for Google Contacts and Google Calendar in KDE 4.4 is pretty good. All you need is libgcal (sudo apt-get install libgcal0 in Kubuntu). This library provides Akonadi access to your Google account. Once it is installed you just have to configure it in Akonadi, and then you can access your Google contacts and [...]]]></description>
			<content:encoded><![CDATA[<p>The support for Google Contacts and Google Calendar in KDE 4.4 is pretty good. All you need is <em>libgcal</em> (<em>sudo apt-get install libgcal0</em> in Kubuntu). This library provides Akonadi access to your Google account. Once it is installed you just have to configure it in Akonadi, and then you can access your Google contacts and calendar in KMail, KAddressBook, Kontact and Korganizer.</p>
<p>Unfortunately there is no sync option for Akregator and Google Reader yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://coliena.com/blog/2010/05/synchronizing-google-contacts-and-google-calendar-in-kde-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
