<?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>Mateusz Loskot</title>
	<atom:link href="http://mateusz.loskot.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://mateusz.loskot.net</link>
	<description>Into the Source of Software for Geospatial</description>
	<lastBuildDate>Tue, 03 Aug 2010 16:33:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>&#8220;I have a confession to make&#8230;&#8221;</title>
		<link>http://mateusz.loskot.net/2010/07/07/i-have-a-confession-to-make/</link>
		<comments>http://mateusz.loskot.net/2010/07/07/i-have-a-confession-to-make/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 10:36:14 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[osgeo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javatar]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2073</guid>
		<description><![CDATA[- Hey, what are guys up to?
- We are just enjoying some porn
- Hope you&#8217;re not doing Java and open source
- No!
The hilarious trailer of JAVATAR makes a brilliant psychological observation of human beings approaching different or new technologies. The technological emotions syndrome as pictured here is funny and scary at the same time. Had [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>- Hey, what are guys up to?<br />
- We are just enjoying some porn<br />
- Hope you&#8217;re not doing Java and open source<br />
- No!</p></blockquote>
<p>The hilarious trailer of JAVATAR makes a brilliant psychological observation of human beings approaching different or new technologies. The <em>technological emotions syndrome</em> as pictured here is funny and scary at the same time. Had there been no emotions expressed about IT, we wouldn&#8217;t observe all the holy battles <em>trolled out</em> loudly out there.</p>
<blockquote><p>- Dad&#8230;I have a confession to make<br />
- I use&#8230;</p></blockquote>
<p><object width="480" height="295"><param name="movie" value="http://www.youtube.com/v/fzza-ZbEY70&amp;hl=en_GB&amp;fs=1?rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/fzza-ZbEY70&amp;hl=en_GB&amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object></p>
<p>Alternative <a href="http://www.youtube.com/watch?v=ZUAKm6pT_pg">link</a> to the trailer.</p>
<p>Linux vs Windows. FOSS vs Proprietary. C++ vs Java. OSGeo vs ESRI. Python vs PHP. &lt;your favourite technology&gt; vs &lt;your hated technology&gt;</p>
<p>The funny part is the situation comedy being pictured. The worrying thing is, had the comedy not been pictured, we wouldn&#8217;t see it&#8217;s a comedy. A kind of drama, actually.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/07/07/i-have-a-confession-to-make/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Inheritance misunderstood</title>
		<link>http://mateusz.loskot.net/2010/05/27/inheritance-misunderstood/</link>
		<comments>http://mateusz.loskot.net/2010/05/27/inheritance-misunderstood/#comments</comments>
		<pubDate>Thu, 27 May 2010 12:13:10 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[c++]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[inheritance]]></category>
		<category><![CDATA[liskov]]></category>
		<category><![CDATA[lsp]]></category>
		<category><![CDATA[subtype]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2070</guid>
		<description><![CDATA[In C++ inheritance is not for code reuse. Full stop. Think subtyping. Think interface. Think substitution. Think specification. Learn about LSP &#8211; Liskov Substitution Principle. Never ever think reuse.
I&#8217;m amazed, shamefully, how often I forget about it and I drift away thinking how to save on keyboard use and typing.
]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.parashift.com/c++-faq-lite/smalltalk.html">C++</a> inheritance is <strong>not for code reuse</strong>. Full stop. Think <a href="http://en.wikipedia.org/wiki/Subtyping">subtyping</a>. Think interface. Think substitution. Think specification. Learn about LSP &#8211; <a href="http://en.wikipedia.org/wiki/Liskov_substitution_principle">Liskov Substitution Principle</a>. Never ever think reuse.</p>
<p>I&#8217;m amazed, shamefully, how often I forget about it and I drift away thinking how to save on keyboard use and typing.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/05/27/inheritance-misunderstood/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boost Geometry on FOSS4G 2010?</title>
		<link>http://mateusz.loskot.net/2010/04/15/boost-geometry-on-foss4g-2010/</link>
		<comments>http://mateusz.loskot.net/2010/04/15/boost-geometry-on-foss4g-2010/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 20:42:47 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[boost]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[ggl]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[osgeo]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2064</guid>
		<description><![CDATA[
I&#8217;ve just submitted abstract of Boost Geometry presentation for FOSS4G 2010. I&#8217;m looking forward to spreading the word and give Introduction to Boost Geometry Library at the FOSS4G conference. Fingers crossed!
]]></description>
			<content:encoded><![CDATA[<p><a href="http://2010.foss4g.org"><img src="/images/foss4g2010-logo.png" alt="FOSS4G 2010 - The leading Conference on Geospatial Free and Open Source Software" width="400" height="61" border="0" style="margin: 5px" /></a></p>
<p>I&#8217;ve just submitted abstract of <a href="http://trac.osgeo.org/ggl/">Boost Geometry</a> presentation for <a href="http://2010.foss4g.org">FOSS4G 2010</a>. I&#8217;m looking forward to spreading the word and give <strong>Introduction to Boost Geometry Library</strong> at the FOSS4G conference. Fingers crossed!</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/04/15/boost-geometry-on-foss4g-2010/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Boost.Geometry on BoostCon&#8217;10</title>
		<link>http://mateusz.loskot.net/2010/04/09/boost-geometry-on-boostcon10/</link>
		<comments>http://mateusz.loskot.net/2010/04/09/boost-geometry-on-boostcon10/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 21:38:55 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[boost]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[ggl]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Barend Gehrels]]></category>
		<category><![CDATA[boost.geometry]]></category>
		<category><![CDATA[boostcon]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[event]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2058</guid>
		<description><![CDATA[Boost.Geometry talk is scheduled for BoostCon&#8217;10 conference. Thanks to Barend Gehrels, Boost.Geometry team will be represented on the conference.
In spite of the fact I&#8217;m listed as a speaker for BoostCon&#8217;10, I will not attend this amazing event. I&#8217;ve planned to be there, I can&#8217;t make it this year, unfortunately.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.osgeo.org/ggl/"><img src="/images/logos/ggl-logo.png" alt="Boost Geometry (aka Generic Geometry Library, GGL)"  width="200" height="80" align="left" border="0" style="margin: 5px" /></a><a href="http://www.boostcon.com/program/sessions#gehrels-lalande-loskot-generic-programming-for-geometry">Boost.Geometry talk</a> is <a href="http://www.boostcon.com/program">scheduled</a> for <a href="http://www.boostcon.com/">BoostCon&#8217;10</a> conference. Thanks to <a href="http://barendgehrels.blogspot.com/">Barend Gehrels</a>, <a href="http://trac.osgeo.org/ggl/">Boost.Geometry</a> team will be represented on the conference.</p>
<p>In spite of the fact I&#8217;m <a href="http://www.boostcon.com/program/speakers">listed as a speaker</a> for <a href="http://www.boostcon.com/">BoostCon&#8217;10</a>, I will not attend this amazing event. I&#8217;ve planned to be there, I can&#8217;t make it this year, unfortunately.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/04/09/boost-geometry-on-boostcon10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Source, Decoupled and Accelerated</title>
		<link>http://mateusz.loskot.net/2010/03/17/open-source-decoupled-and-accelerated/</link>
		<comments>http://mateusz.loskot.net/2010/03/17/open-source-decoupled-and-accelerated/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 23:37:04 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[boost]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[osgeo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[David Abrahams]]></category>
		<category><![CDATA[foss]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2022</guid>
		<description><![CDATA[All right, I confess, I&#8217;ve lied a bit in the topic. I&#8217;m not going to discuss any of the Free and Open Source Software philosophies here. What I&#8217;m going to do is to smuggle an interesting discussion that I believe it may be interesting to other Open Source Software hackers, especially projects from the C/C++ [...]]]></description>
			<content:encoded><![CDATA[<p>All right, I confess, I&#8217;ve lied a bit in the topic. I&#8217;m not going to discuss any of the <a href="http://en.wikipedia.org/wiki/Free_and_open_source_software">Free and Open Source Software</a> philosophies here. What I&#8217;m going to do is to smuggle an interesting discussion that I believe it may be interesting to other Open Source Software <a href="http://catb.org/hacker-emblem/">hackers</a>, especially projects from the C/C++ camp of the <a href="http://www.osgeo.org">OSGeo Foundation</a>. I would also say that subject of this discussion is quite idiomatic to the universe of <a href="http://producingoss.com/">FOSS production</a>. It is about a software project. A project that has grown and it has grown in many dimensions, also in parallel dimensions.</p>
<blockquote><p>&#8220;See the turtle of enormous girth!<br />
On his shell he holds the earth.&#8221; &#8212; <a href="http://www.stephenking.com/DarkTower/">Stephen King</a></p></blockquote>
<p>Infrastructure supporting a project becomes insufficient, maintenance is difficult, <em>release process is a full-time job</em> and <em>situation has taken a lot of the fun out of participating</em>. Population of users and developers has grown. As the <a href="http://lists.osgeo.org">Community</a> gathers appreciable portfolio of <a href="http://www.boost.org/users/people.html">masters of the software development craft</a>, it is in constant state of snowball war exchanging fire of ideas, new projects and discussions. It&#8217;s truly a pleasure to learn about them but, well, it pours oil on the fire of entropy. Here we come to the crux.</p>
<blockquote><p>Gain of entropy eventually is nothing more nor less than loss of information &#8212; <a href="http://en.wikipedia.org/wiki/Gilbert_Newton_Lewis">Gilbert N. Lewis</a></p></blockquote>
<p>Today, <a href="http://en.wikipedia.org/wiki/David_Abrahams_%28computer_programmer%29">David Abrahams</a> posted, somewhat provocative, e-mail to the <a href="http://www.boost.org">Boost</a> project mailing list. It is titled <a href="http://article.gmane.org/gmane.comp.lib.boost.devel/200952">Boost, Decoupled and Accelerated</a> and delivers the following message: <em>It&#8217;s time to make Boost development fun again</em>.</p>
<p>It may sound like yet another internal discussion within an Open Source project. There are zillions of similar debates archived around. Yes, indeed, but not exactly. In fact, David announced something that may be of wider interested. It is</p>
<blockquote><p>a system called <a href="http://www.ryppl.org/">Ryppl</a> to decentralize development, testing, release, and installation of interdependent projects</p></blockquote>
<p>followed by yet more interesting comment</p>
<blockquote><p>I believe this project has the potential to change the face not only of Boost, but of open-source software in general.</p></blockquote>
<p>One may think, well, it seems related to the issue of <a href="http://www.scottberkun.com/blog/category/myths-of-innovation/">the current trends</a> or we&#8217;re suffering redundancy in <a href="http://twitter.com/timoreilly/statuses/10186975174">IT prophets</a>. <a href="http://www.lyricsdepot.com/DORIS-DAY/perhaps-perhaps-perhaps.html">Perhaps, perhaps, perhaps&#8230;</a> but what I know for sure is that David Abrahams is one of my favourite and highly regarded software developer and author. I can hardly recall any of David&#8217;s comments, observations or suggestions that would be lacking of point, I mean a very rational point.</p>
<p>I have licked a bit of experience myself of working with or maintaining complex projects or projects that feel complex. I think I wouldn&#8217;t risk anything saying David has a point. I&#8217;m looking forward learning more about the whole idea.</p>
<p>I hope I&#8217;ll be able to confirm it myself while listening to David&#8217;s presentation at <a href="http://www.boostcon.com/">BoostCon&#8217;10</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/17/open-source-decoupled-and-accelerated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boost.Geometry blog</title>
		<link>http://mateusz.loskot.net/2010/03/14/boost-geometry-blog/</link>
		<comments>http://mateusz.loskot.net/2010/03/14/boost-geometry-blog/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 22:12:15 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[boost]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[ggl]]></category>
		<category><![CDATA[gis]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[osgeo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Barend Gehrels]]></category>
		<category><![CDATA[boost.geometry]]></category>
		<category><![CDATA[geometry]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2014</guid>
		<description><![CDATA[It&#8217;s been a month since Barend Gehrels launched blog dedicated to development of Boost.Geometry library which is also known of its former name as Generic Geometry Library or shortly GGL.
Here I go we a bit delayed announcement: http://barendgehrels.blogspot.com
]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.osgeo.org/ggl/"><img src="/images/logos/ggl-logo.png" alt="Boost Geometry (aka Generic Geometry Library, GGL)"  width="200" height="80" align="left" border="0" style="margin: 5px" /></a>It&#8217;s been a month since <a href="http://www.boostcon.com/program/speakers">Barend Gehrels</a> launched blog dedicated to development of <a href="http://trac.osgeo.org/ggl/">Boost.Geometry</a> library which is also known of its former name as <a href="http://industry.slashgeo.org/industry/09/02/17/1715248.shtml">Generic Geometry Library</a> or shortly GGL.</p>
<p>Here I go we a bit delayed announcement: <a href="http://barendgehrels.blogspot.com">http://barendgehrels.blogspot.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/14/boost-geometry-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where is my donut?</title>
		<link>http://mateusz.loskot.net/2010/03/14/where-is-my-donut/</link>
		<comments>http://mateusz.loskot.net/2010/03/14/where-is-my-donut/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 02:56:31 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[gis]]></category>
		<category><![CDATA[health]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=2002</guid>
		<description><![CDATA[I&#8217;m reading Darren&#8217;s post about The Geography of Tim Hortons. It&#8217;s interesting. It&#8217;s fun. The geospatial-enabled fast food consumption seems to be well aligned with the recent prophecies about what&#8217;s lucrative now, apart from donuts. It could be interesting to compare the Hortons&#8217; trend with country-level version of this map. Perhaps, ST_Overlaps would return false, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m reading <a href="http://darrencope.com/">Darren&#8217;s</a> post about <a href="http://darrencope.com/2010/03/11/the-geography-of-tim-hortons/">The Geography of Tim Hortons</a>. It&#8217;s interesting. It&#8217;s fun. The geospatial-enabled fast food consumption seems to be well aligned with the recent prophecies about <a href="http://twitter.com/timoreilly/status/10186975174">what&#8217;s lucrative now</a>, apart from donuts. It could be interesting to compare the Hortons&#8217; trend with country-level version of <a href="http://thestar.blogs.com/maps/2009/08/map-of-the-week-obesity.html">this map</a>. Perhaps, <a href="http://postgis.org/documentation/manual-svn/ST_Overlaps.html">ST_Overlaps</a> would return false, but <a href="http://postgis.org/documentation/manual-svn/ST_Intersection.html">ST_Intersection</a> would likely return a pretty large geometry.</p>
<p>Anxiously, however, my enthusiasm is being a little bit repressed. The idea is a double edged sword and instead of navigating ourselves straight to donut heavens, we should rather <em>start hiding such dangerous places</em> from all publicly available maps and guides. This could be a part of health promoting geocaching campaign <em>&#8220;Burn to Find&#8221;</em>.</p>
<p>And I&#8217;m not going to put any smiles in here.</p>
<p><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/JamieOliver_2010-medium.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/JamieOliver-2010.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=765&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=jamie_oliver;year=2010;theme=new_on_ted_com;theme=ted_prize_winners;theme=a_taste_of_ted2010;event=TED2010;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/JamieOliver_2010-medium.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/JamieOliver-2010.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=765&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=jamie_oliver;year=2010;theme=new_on_ted_com;theme=ted_prize_winners;theme=a_taste_of_ted2010;event=TED2010;"></embed></object></p>
<p><em>Direct costs are estimated to be &pound;4.2 billion and Foresight have forcasted that this will more than double by 2050 if we continue as we are.</em> &#8212; <a href="http://www.dh.gov.uk/en/Publichealth/Healthimprovement/Obesity/DH_078098">UK DoH report</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/14/where-is-my-donut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Boost.Geometry and macros made by Apple</title>
		<link>http://mateusz.loskot.net/2010/03/10/cc-macros-made-by-apple/</link>
		<comments>http://mateusz.loskot.net/2010/03/10/cc-macros-made-by-apple/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 00:48:39 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[boost]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[osgeo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[boost.geometry]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[geometry]]></category>
		<category><![CDATA[macosx]]></category>
		<category><![CDATA[macros]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1984</guid>
		<description><![CDATA[I have no pleasure continuing my macros are evil tales but the life of C++ programmer eagerly wants to writes add another chapter to the story. Today, it&#8217;s time to rant on Apple and its XCode.
One of Boost Geometry (aka GGL) users, Mark, reported that he can not compile his program using the library with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://trac.osgeo.org/ggl/"><img src="/images/logos/ggl-logo.png" alt="Boost Geometry (aka Generic Geometry Library, GGL)"  width="200" height="80" align="left" border="0" style="margin: 5px" /></a>I have no pleasure continuing my <a href="/&#038;p=1755">macros are evil tales</a> but the life of C++ programmer eagerly wants to writes add another chapter to the story. Today, it&#8217;s time to rant on <a href="http://www.apple.com">Apple</a> and its <a href="http://en.wikipedia.org/wiki/XCode">XCode</a>.</p>
<p>One of <a href="http://trac.osgeo.org/ggl/">Boost Geometry</a> (aka GGL) users, Mark, <a href="http://lists.osgeo.org/pipermail/ggl/2010-March/000649.html">reported</a> that he can not compile his program using the library with GNU C++ compiler from XCode. The compiler throws mysterious complain of a very low-level nature of C++ programming language:</p>
<pre>Expected unqualified-id before 'do' in
/usr/local/include/boost_1_42_0/boost/geometry/geometries/concepts/check.hpp</pre>
<p>Thanks to <a href="http://lists.osgeo.org/pipermail/ggl/2010-March/000653.html">follow-up by Stjepan</a> we quickly know who to blame for that. It is XCode header <code>AssertMacros.h</code>. It even might be <a href="http://www.opensource.apple.com/source/xnu/">one of public headers</a> from development package of <a href="http://en.wikipedia.org/wiki/XNU">XNU</a>, the Mac OS X kernel, what&#8217;s even more fun.</p>
<h3>What actually happens that causes the problem?</h3>
<p>Boost Geometry defines function template for concept checking:</p>
<pre><code>template &lt;typename Geometry&gt;
inline void check()
{
    detail::checker&lt;Geometry, boost::is_const&lt;Geometry&gt;::type::value&gt; c;
    boost::ignore_unused_variable_warning(c);
}</code></pre>
<p>Apple XCode defines macro using exactly the same name as the function <code>check</code>. The C++ preprocessor, which operates before compiler, substitutes the name <code>check</code> with content of the macro. For the Boost Geometry function <code>check</code> it means that a pile of garbage is injected in place were the function name is expected:</p>
<pre><code>template &lt;typename Geometry&gt;
inline void do { if ( __builtin_expect(!(), 0) ) { DebugAssert('?*?*',
0, "Third Party Client" ": " "", 0, 0, "/usr/local/include/boost/
geometry/geometries/concepts/check.hpp", 181, (void*)0); } } while ( 0 )
{
     detail::checker<geometry , boost::is_const<Geometry>::type::value> c;
     boost::ignore_unused_variable_warning(c);
}</geometry></code></pre>
<p>Obviously, it makes compiler to give up to instantiate the <code>check</code> function from the template and to compile it properly.</p>
<p>C/C++ macros are evil, however, not by design but by insanity of programmers. Every macro defined in a public C/C++ header, should be defined using <em>as unique as possible, but still usable</em> name. I wish Apple folks designed their C/C++ macros as unique as they make their hardware products, even if <a href="http://en.wikipedia.org/wiki/Made_in_China#Marketing_significance">made in China</a> eventually. This particular macro that caused the problems discussed here, could be named to <code>APPLE_XNU_CHECK</code> and life would be easier. Or, given the fact that <a href="https://svn.boost.org/trac/boost/ticket/2115#comment:7">almost 3000 files using these identifiers</a> live in <a href="http://www.boost.org">Boost C++ Libraries</a> only, I probably should say: life would be more productive, efficient and cheaper.</p>
<p>By the way, it&#8217;s a known problem @ Boost and it looks Boost Folks are trying to figure out best solution. See ticket <a href="https://svn.boost.org/trac/boost/ticket/2115">#2115 &#8211; Avoid bad Apple macros</a>.</p>
<p>&#8230;to be continued</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/10/cc-macros-made-by-apple/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kudos to RMS and Torvalds</title>
		<link>http://mateusz.loskot.net/2010/03/06/kudos-to-rms-and-torvalds/</link>
		<comments>http://mateusz.loskot.net/2010/03/06/kudos-to-rms-and-torvalds/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 19:08:05 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[author]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Linus Torvalds]]></category>
		<category><![CDATA[Richard Stallman]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1976</guid>
		<description><![CDATA[I have just given ohloh.net kudos to Richard Stallman and Linus Torvalds.

Hehe, and I didn&#8217;t do it because I expect to be given back with a kudo from RMS or Torvalds. I did it because I appreciated the bloody good software development works they do: my favourite C/C++ compiler from GCC, one of my favourite [...]]]></description>
			<content:encoded><![CDATA[<p>I have just given <a href="https://www.ohloh.net/">ohloh.net</a> <a href="https://www.ohloh.net/about/kudos">kudos</a> to <a href="https://www.ohloh.net/accounts/rms">Richard Stallman</a> and <a href="https://www.ohloh.net/accounts/9897">Linus Torvalds</a>.</p>
</p>
<p>Hehe, and I didn&#8217;t do it because I expect to be given back with a kudo from <a href="http://stallman.org/">RMS</a> or <a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Torvalds</a>. I did it because I appreciated the bloody good software development works they do: my favourite C/C++ compiler from <a href="https://www.ohloh.net/p/gcc">GCC</a>, one of my favourite text editors <a href="https://www.ohloh.net/p/emacs">GNU Emacs</a> and my favourite operating system &#8211; <a href="https://www.ohloh.net/p/linux">Unix for Masses</a> and my favourite version control system <a href="https://www.ohloh.net/p/git">Git</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/06/kudos-to-rms-and-torvalds/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>git info script</title>
		<link>http://mateusz.loskot.net/2010/03/06/git-info-script/</link>
		<comments>http://mateusz.loskot.net/2010/03/06/git-info-script/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 18:16:52 +0000</pubDate>
		<dc:creator>mloskot</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[Duane Johnson]]></category>

		<guid isPermaLink="false">http://mateusz.loskot.net/?p=1973</guid>
		<description><![CDATA[As a long time user of Subversion, I&#8217;ve got used to use of svn info command. Since I started drifting to Git system, I&#8217;ve missed this command pretty much until I found git-info script crafted by Duane Johnson
Kudos to Duane! And, I suggest any SVN user who reincarnated as Git user to grab and try [...]]]></description>
			<content:encoded><![CDATA[<p>As a long time user of <a href="http://subversion.apache.org/">Subversion</a>, I&#8217;ve got used to use of <a href="http://svnbook.red-bean.com/en/1.2/svn.ref.svn.c.info.html">svn info</a> command. Since I started drifting to <a href="http://git-scm.com/">Git</a> system, I&#8217;ve missed this command pretty much until I found <a href="http://blog.inquirylabs.com/2008/06/12/git-info-kinda-like-svn-info/">git-info script crafted by Duane Johnson</a></p>
<p>Kudos to Duane! And, I suggest any SVN user who reincarnated as Git user to grab and try it.</p>
]]></content:encoded>
			<wfw:commentRss>http://mateusz.loskot.net/2010/03/06/git-info-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
