<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" >

<channel>
	<title>-Wmarc</title>
	<atom:link href="http://marcmutz.wordpress.com/feed/?mrss=off" rel="self" type="application/rss+xml" />
	<link>http://marcmutz.wordpress.com</link>
	<description>Marc Mutz on Qt, Boost, and C++</description>
	<lastBuildDate>Tue, 14 May 2013 14:18:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='marcmutz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>-Wmarc</title>
		<link>http://marcmutz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://marcmutz.wordpress.com/osd.xml" title="-Wmarc" />
	<atom:link rel='hub' href='http://marcmutz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Heise Developer: GoingNative 2012 — Gegenwart und Zukunft von C++</title>
		<link>http://marcmutz.wordpress.com/2012/02/10/heise-developer-goingnative-2012-gegenwart-und-zukunft-von-c/</link>
		<comments>http://marcmutz.wordpress.com/2012/02/10/heise-developer-goingnative-2012-gegenwart-und-zukunft-von-c/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 18:37:08 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Heise Developer]]></category>
		<category><![CDATA[C++11]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[GN12]]></category>
		<category><![CDATA[GoingNative12]]></category>
		<category><![CDATA[Heise]]></category>
		<category><![CDATA[planetkde]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=532</guid>
		<description><![CDATA[For you German speakers out there, my sixth Heise Developer article, &#8220;GoingNative 2012 — Gegenwart und Zukunft von C++&#8221; just went live on Heise&#8217;s site. It&#8217;s a sum-up of the GoingNative 2012 conference that happened on Feb 2nd-3rd. There won&#8217;t be an English translation later, since it&#8217;d be outdated by the time it appeared. The [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=532&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For you German speakers out there, my sixth <a href="http://www.heise.de/developer" title="Heise Developer">Heise Developer</a> article, &#8220;<a href="http://www.heise.de/developer/artikel/GoingNative-2012-Gegenwart-und-Zukunft-von-C-1431919.html">GoingNative 2012 — Gegenwart und Zukunft von C++</a>&#8221; just went live on Heise&#8217;s site.</p>
<p>It&#8217;s a sum-up of the GoingNative 2012 conference that happened on Feb 2nd-3rd. There won&#8217;t be an English translation later, since it&#8217;d be outdated by the time it appeared. The talks are in English, and you can download them all from Microsoft&#8217;s <a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012" target="_blank">Channel9 page</a>, though.</p>
<p>From the article:</p>
<blockquote lang="de"><p>
Die Qualität der Vorträge war durchweg hoch, wenn auch Nichtmuttersprachler einigen Vortragenden nur schwer folgen konnten. Die Konferenz macht Lust auf ein Jahr mit mehr C++-Konferenzen als seit 1999 üblich. Besonders hängen blieben das Versprechen auf schnelle Adoption des neuen Standards, auch von Clang und Microsoft, und der Versuch, die C++-Standardbibliothek in den nächsten Jahren massiv zu erweitern.
</p></blockquote>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/programming-languages/c/c0x/'>C++0x</a>, <a href='http://marcmutz.wordpress.com/category/german/'>German</a>, <a href='http://marcmutz.wordpress.com/category/columns/heise-developer/'>Heise Developer</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/532/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/532/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=532&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2012/02/10/heise-developer-goingnative-2012-gegenwart-und-zukunft-von-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GoingNative12 @ KDAB, Berlin</title>
		<link>http://marcmutz.wordpress.com/2012/01/31/goingnative12-kdab-berlin/</link>
		<comments>http://marcmutz.wordpress.com/2012/01/31/goingnative12-kdab-berlin/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 15:36:26 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++0x]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[C++11]]></category>
		<category><![CDATA[GoingNative12]]></category>
		<category><![CDATA[planetkde]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=522</guid>
		<description><![CDATA[For everyone interested in C++11, and as suggested by Herb Sutter, KDAB will show the live stream of the GoingNative12 C++ conference in it&#8217;s training facilities at Tempelhofer Ufer 11 in Berlin this Thursday and Friday (Feb 2nd and 3rd). The show is scheduled to run from 18:30 to 02:15 (CET) each day. We invite [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=522&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For everyone interested in C++11, and as <a href="http://herbsutter.com/2011/11/23/c-spring-goingnative-feb-2-3-2012/">suggested by Herb Sutter</a>, <a href="http://www.kdab.com">KDAB</a> will show the live stream of the <a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012">GoingNative12</a> C++ conference in it&#8217;s <a href="http://www.kdab.com/berlin-office">training facilities at Tempelhofer Ufer 11 in Berlin</a> this Thursday and Friday (Feb 2nd and 3rd). The show is scheduled to run from 18:30 to 02:15 (CET) each day. We invite everyone to join us, but please drop us a note at <a href="mailto:berlin@kdab.com">berlin(at)kdab.com</a> so we can plan ahead.</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/c0x/'>C++0x</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/german/'>German</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/522/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/522/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=522&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2012/01/31/goingnative12-kdab-berlin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wild Beasts</title>
		<link>http://marcmutz.wordpress.com/2011/11/28/wild-beasts/</link>
		<comments>http://marcmutz.wordpress.com/2011/11/28/wild-beasts/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 10:35:13 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Private Practice]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[casting]]></category>
		<category><![CDATA[KDTools]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[QObject]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=515</guid>
		<description><![CDATA[In &#8220;Private Practice: Taming Templates&#8221;, I had (deliberately, of course ) hidden a bug in the implementation of KDGenericFactory. I&#8217;ve now added a discussion about the bug and its fix. Filed under: C++, English, Private Practice, Qt<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=515&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In <a href="http://marcmutz.wordpress.com/private-practice/private-practice-taming-templates/" title="Private Practice: Taming&nbsp;Templates">&#8220;Private Practice: Taming Templates&#8221;</a>, I had (deliberately, of course <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) hidden a bug in the implementation of <code>KDGenericFactory</code>. I&#8217;ve now <a href="http://marcmutz.wordpress.com/private-practice/private-practice-taming-templates/#edit-20111128" title="Private Practice: Taming&nbsp;Templates">added a discussion about the bug and its fix</a>.</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/columns/private-practice/'>Private Practice</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/515/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/515/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=515&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/11/28/wild-beasts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private Practice: What&#8217;s in a Proxy-Style?</title>
		<link>http://marcmutz.wordpress.com/2011/11/24/private-practice-whats-in-a-proxy-style/</link>
		<comments>http://marcmutz.wordpress.com/2011/11/24/private-practice-whats-in-a-proxy-style/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 10:40:06 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Private Practice]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Decorator Pattern]]></category>
		<category><![CDATA[KDTools]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[Proxy Pattern]]></category>
		<category><![CDATA[QProxyStyle]]></category>
		<category><![CDATA[QPushButton]]></category>
		<category><![CDATA[QStyle]]></category>
		<category><![CDATA[Qxt]]></category>
		<category><![CDATA[QxtProxyStyle]]></category>
		<category><![CDATA[virtual function]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=509</guid>
		<description><![CDATA[A new session in the private practice, &#8220;What&#8217;s in a Proxy Style?&#8221;, examines QProxyStyle and derives some important caveat when applying a classical Design Pattern. This is the original-language version of my recent Mythos Proxy-Style article. Filed under: C++, English, Private Practice, Qt<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=509&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A new session in the private practice, <a href="http://marcmutz.wordpress.com/private-practice/whats-in-a-proxy-style/" title="What’s in a&nbsp;Proxy-Style?">&#8220;What&#8217;s in a Proxy Style?&#8221;</a>, examines <code>QProxyStyle</code> and derives some important caveat when applying a classical Design Pattern.</p>
<p>This is the original-language version of my recent <a href="http://marcmutz.wordpress.com/2011/10/31/heise-developer-mythos-proxy-style/" title="Heise Developer: Mythos&nbsp;Proxy-Style">Mythos Proxy-Style</a> article.</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/columns/private-practice/'>Private Practice</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/509/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/509/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=509&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/11/24/private-practice-whats-in-a-proxy-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Private Practice: Taming Templates</title>
		<link>http://marcmutz.wordpress.com/2011/11/18/private-practice-taming-templates/</link>
		<comments>http://marcmutz.wordpress.com/2011/11/18/private-practice-taming-templates/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 17:03:00 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Private Practice]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[KDTools]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[templates]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=488</guid>
		<description><![CDATA[I&#8217;ve started a new column, Private Practice, that looks at existing implementations and examines them. The first Private Practice article, Taming Templates, examines techniques to control template code bloat. There&#8217;s nothing particularly earth-shattering in there, but I noticed that a lot of people don&#8217;t seem to be aware of the fact that templates can cause [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=488&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve started a new column, Private Practice, that looks at existing implementations and examines them.</p>
<p>The first Private Practice article, <a href="http://marcmutz.wordpress.com/private-practice/private-practice-taming-templates/" title="Private Practice: Taming&nbsp;Templates">Taming Templates</a>, examines techniques to control template code bloat. There&#8217;s nothing particularly earth-shattering in there, but I noticed that a lot of people don&#8217;t seem to be aware of the fact that templates can cause a lot of duplicated code, so I thought I&#8217;d write about it.</p>
<p>Even if they haven&#8217;t been released under the Private Practice banner, the following articles also fit that category well:</p>
<ul>
<li><a href="http://marcmutz.wordpress.com/2011/10/31/heise-developer-mythos-proxy-style/" title="Heise Developer: Mythos&nbsp;Proxy-Style">Mythos Proxy-Style</a> <strong>[[Update 2011-11-24: EN version now available as <a href="http://marcmutz.wordpress.com/private-practice/whats-in-a-proxy-style/" title="What’s in a&nbsp;Proxy-Style?">"What's in a Proxy-Style?"</a>]]</strong></li>
<li><a href="http://marcmutz.wordpress.com/2010/07/21/heise-developer-dem-elfenbeinturm-entreisen/" title="Heise Developer: Dem&nbsp;Elfenbeinturm&nbsp;entreißen">Dem Elfenbeinturm entreißen</a></li>
</ul>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/programming-languages/c/c0x/'>C++0x</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/columns/private-practice/'>Private Practice</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/488/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=488&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/11/18/private-practice-taming-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heise Developer: Mythos Proxy-Style</title>
		<link>http://marcmutz.wordpress.com/2011/10/31/heise-developer-mythos-proxy-style/</link>
		<comments>http://marcmutz.wordpress.com/2011/10/31/heise-developer-mythos-proxy-style/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 08:51:30 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Heise Developer]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Decorator Pattern]]></category>
		<category><![CDATA[Heise]]></category>
		<category><![CDATA[KDTools]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[Proxy Pattern]]></category>
		<category><![CDATA[QProxyStyle]]></category>
		<category><![CDATA[QStyle]]></category>
		<category><![CDATA[QWidget]]></category>
		<category><![CDATA[Qxt]]></category>
		<category><![CDATA[QxtProxyStyle]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=467</guid>
		<description><![CDATA[For you German speakers out there, my fifth Heise Developer article, &#8220;Mythos Proxy-Style: Wie eine verspätete Klasse neues Licht auf ein bekanntes Entwurfsmuster wirft&#8221; just went live on Heise&#8217;s site. It examines the implementation of QProxyStyle in Qt 4.6 and, from that analysis, derives an important caveat regarding the applicability of a certain well-known design [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=467&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For you German speakers out there, my fifth <a href="http://www.heise.de/developer" title="Heise Developer">Heise Developer</a> article, &#8220;<a href="http://www.heise.de/developer/artikel/C-Wie-eine-verspaetete-Klasse-neues-Licht-auf-ein-bekanntes-Entwurfsmuster-wirf-1368462.html">Mythos Proxy-Style: Wie eine verspätete Klasse neues Licht auf ein bekanntes Entwurfsmuster wirft</a>&#8221; just went live on Heise&#8217;s site.</p>
<p>It examines the implementation of QProxyStyle in Qt 4.6 and, from that analysis, derives an important caveat regarding the applicability of a certain well-known design pattern.</p>
<p>This is the German translation of an unpublished English-language original, which I will publish here after a grace period.</p>
<p>From the article:</p>
<blockquote lang="de"><p>
In der Qt-Gemeinde existiert ein Mythos: &#8220;QProxyStyle&#8221;. Auf der einen Seite stehen Entwickler wie David Faure, seines Zeichens KDE-Urgestein und geschätzter Kollege des Autors, die behaupten, ein QProxyStyle sei unmöglich. Auf der anderen Seite stehen Entwickler von Qt-Erweiterungen, die einen QProxyStyle entwickelt haben wollen. Eine Spurensuche im Märchenwald deckt interessante Komplikationen bei der Anwendung eines bekannten Entwurfsmusters auf.
</p></blockquote>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/german/'>German</a>, <a href='http://marcmutz.wordpress.com/category/columns/heise-developer/'>Heise Developer</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/467/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/467/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=467&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/10/31/heise-developer-mythos-proxy-style/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Heise iX: QtQuick article, KDAB whitepaper; Qt Containers update</title>
		<link>http://marcmutz.wordpress.com/2011/10/18/heise-ix-qtquick-article-kdab-whitepaper-qt-containers-update/</link>
		<comments>http://marcmutz.wordpress.com/2011/10/18/heise-ix-qtquick-article-kdab-whitepaper-qt-containers-update/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 13:15:41 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[Akonadi]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[Heise]]></category>
		<category><![CDATA[iX]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[QML]]></category>
		<category><![CDATA[whitepaper]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=459</guid>
		<description><![CDATA[Together with my fellow KDABians Stephen Kelly and Volker Krause, I wrote a whitepaper on QtQuick usage in the KOMO project. From the whitepaper: Developing a serious and large application from scratch, or from an existing desktop application, presents a different set of challenges compared to your normal smart-phone &#8216;app&#8217;. Portability to different platforms, and [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=459&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Together with my fellow KDABians Stephen Kelly and Volker Krause, I wrote a whitepaper on QtQuick usage in the KOMO project. From the whitepaper:</p>
<blockquote><p>
Developing a serious and large application from scratch, or from an existing desktop application, presents a different set of challenges compared to your normal smart-phone &#8216;app&#8217;. Portability to different platforms, and long-term maintainability in the face of ever-changing mobile target platforms suddenly come into play. This paper attempts to summarize the experience we gathered using the new declarative GUI framework, QtQuick, in this project.
</p></blockquote>
<p>Unfortunately, recent events (read: Tizen) have already invalidated much of the content in the supplemental box on the future of Qt, but that&#8217;s the bane of everyone writing about Qt&#8217;s future these days&#8230;</p>
<p>Get the English version (with slightly more details) at <a href="http://www.kdab.com/whitepapers">http://www.kdab.com/whitepapers</a>, or read the German version (with better editing) in the current print issue of German computer magazine iX: <a href="http://www.heise.de/ix/inhalt/2011/11/114/">http://www.heise.de/ix/inhalt/2011/11/114/</a>.</p>
<p>In other news: I&#8217;ve updated &#8220;<a href="http://marcmutz.wordpress.com/effective-qt/containers/" title="Understand the Qt&nbsp;containers">Understand the Qt Containers</a>&#8221; with a discussion of the differences between STL and Qt containers regarding <a href="http://marcmutz.wordpress.com/effective-qt/containers/#diff-size_t" title="Understand the Qt&nbsp;containers">size types</a>, <a href="http://marcmutz.wordpress.com/effective-qt/containers/#diff-assoc-insert" title="Understand the Qt&nbsp;containers">associative container insertions</a>, and <a href="http://marcmutz.wordpress.com/effective-qt/containers/#diff-errors" title="Understand the Qt&nbsp;containers">error handling</a>. I also mention <code>QT_STRICT_ITERATORS</code> now.</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/projects/akonadi/'>Akonadi</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/german/'>German</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/459/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/459/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=459&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/10/18/heise-ix-qtquick-article-kdab-whitepaper-qt-containers-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Heise Developer: Gelernt aus Fehlern</title>
		<link>http://marcmutz.wordpress.com/2011/09/21/heise-developer-gelernt-aus-fehlern/</link>
		<comments>http://marcmutz.wordpress.com/2011/09/21/heise-developer-gelernt-aus-fehlern/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 12:40:41 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[German]]></category>
		<category><![CDATA[Heise Developer]]></category>
		<category><![CDATA[Heise]]></category>
		<category><![CDATA[planetkde]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=451</guid>
		<description><![CDATA[For you German speakers out there, Heise Developer just published a re-issue of my C++0x overview article from the 2009 Programmieren Heute, called &#8220;Gelernt aus Fehlern&#8220;. Compared to the print version, we&#8217;ve updated the content in some places, such as spending less time on the removal of concepts and more about the adoption of the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=451&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For you German speakers out there, <a href="http://www.heise.de/developer" title="Heise Developer">Heise Developer</a> just published a re-issue of my C++0x overview article from the <a href="http://marcmutz.wordpress.com/2010/07/21/heise-ix-ix-spezial-programmieren-heute-available-as-ebook/" title="Heise iX: iX Spezial “Programmieren Heute” available as&nbsp;eBook">2009 Programmieren Heute</a>, called &#8220;<a href="http://www.heise.de/developer/artikel/C-11-auch-ein-Stimmungsbild-1345406.html">Gelernt aus Fehlern</a>&#8220;.</p>
<p>Compared to the print version, we&#8217;ve updated the content in some places, such as spending less time on the removal of concepts and more about the adoption of the new standard, as well as turning the Top 10 into a Top 11 to celebrate the new standard <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>From the article:</p>
<blockquote lang="de"><p>
Die spannendste Frage wird sein, wie schnell sich C++11 gegen seinen Vorgänger C++98 wird durchsetzen können. Es war in den vergangenen zwei Dekaden regelmäßig notwendig, C++-Neuerungen konservativ einzusetzen, da Compiler den Standard nur zögerlich umgesetzt haben. [...] Hier muss sich die C++-Gemeinde umgewöhnen. Neuerungen wie Lambdas und <code>auto</code> machen C++11 zu einer deutlich produktiveren Sprache, als C++98 es war. Es gilt nun, diese Produktivitätssteigerung im Alltag auch zu nutzen, um gegen Java und .NET zu bestehen. Ein weiteres Jahrzehnt der Zersplitterung und Inkompatibilität könnte die momentan exzellente Ausgangsposition von C++ schnell wieder zunichte machen.
</p></blockquote>
<p>Hope you like it.</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/programming-languages/c/c0x/'>C++0x</a>, <a href='http://marcmutz.wordpress.com/category/german/'>German</a>, <a href='http://marcmutz.wordpress.com/category/columns/heise-developer/'>Heise Developer</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/451/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/451/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=451&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/09/21/heise-developer-gelernt-aus-fehlern/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C++98 Support Costs Extra!</title>
		<link>http://marcmutz.wordpress.com/2011/09/20/c98-support-costs-extra/</link>
		<comments>http://marcmutz.wordpress.com/2011/09/20/c98-support-costs-extra/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 15:44:17 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[C++0x]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[planetkde]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=431</guid>
		<description><![CDATA[I should note, right up front, that this post reflects my personal opinion and not that of my employer. In particular, KDAB currently does not require extra payment for C++98 support, even though, as this post will make abundantly clear, I personally wouldn&#8217;t mind if it did . So, the new C++ standard is finalised [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=431&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><img src="http://vg01.met.vgwort.de/na/0e7c40f872cc44f2bc935b1a4f6c73de" width="1" height="1" alt="">I should note, right up front, that this post reflects my personal opinion and not that of my employer. In particular, KDAB currently does not require extra payment for C++98 support, even though, as this post will make abundantly clear, I personally wouldn&#8217;t mind if it did <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>So, the new C++ standard <a href="http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/">is finalised and voted on unanimously</a>. Does that mean that we&#8217;ll have another decade of C++ incompatibilities ahead of us?</p>
<p>My answer to that is: That depends on us.</p>
<p>Will we adopt C++11 faster than C++98? Our compilers do. Will we make use of the new productivity gains (<code>auto</code>, range-for, lambdas, &#8230;) or will we continue to castrate our code to work with 15-year-old compilers? The answers of the majority of C++ programmers will determine how the next decade goes for all of us.</p>
<p>In this post, I&#8217;ll argue (strongly) for dropping C++98 support asap, and using C++11 to the fullest possible extent in all our projects. This includes dropping support for compilers and platforms that don&#8217;t (yet) support C++11 to the extent required by a particular project instead of <code>#ifdef</code>ing our way around it, as we (as an industry) have done for the past 30 years. Will these compilers and platforms be left out in the cold? Not really: they will have older versions of libraries and programs to support them. But yes, newer versions will require an up-to-date C++ compiler.</p>
<p>Is this realistic? I think it is.</p>
<p>Essentially, we have this situation already now. Many projects require fairly recent versions of libraries, precisely because 1) there&#8217;s not much point in supporting older versions, and 2) supporting many versions of one library with the same code-base is fairly expensive. I&#8217;ve tried. Gpgme++ theoretically supports gpgme&#8217;s that can be considered stone-aged. Has anyone ever tested this? Hmmm&#8230; How many Mac applications still support OS X 10.2? 10.3? 10.4? Half of the web doesn&#8217;t work anymore on KDE 3.5&#8242;s Konqueror.</p>
<p>Then why should we be so conservative when it comes to C++, the very core of what we work with? It&#8217;s not even customer-visible. Why do we accept an STL shipping in 2011 that is basically unchanged from the mid-1990s? Why do we <code>#ifdef</code> our way around MSVC6 problems in 2011? Why do we care about the quirks of GCC 3.3, or heaven forbid, 2.95?</p>
<p>My new-year&#8217;s resolution (ok, it&#8217;s a bit early, but hey): stop it!</p>
<p>C++11 support in C++ compilers now is much stronger than C++98 support was in 1998 in the then-C++-compilers. I fully expect every C++ compiler to have caught up on final C++11 with its next major release, except for source-code invisible changes like the new memory model. I <em>want</em> Qt&nbsp;5 to require a C++11 compiler. I <em>want</em> KDE&nbsp;5 to require a C++11 compiler. I will lobby inside KDAB to do the same.</p>
<p>Why? Because I&#8217;m a programmer, and we&#8217;re lazy.</p>
<p>I <em>want</em> to use <code>auto</code>. If you make me type <code>std::map&lt;std::string,std::string&gt;::const_iterator</code> instead of <code>auto</code>, it&#8217;s more work, less fun, so you should need to <em>pay extra</em>.</p>
<p>I <em>want</em> to use lambdas. If you make me write</p>
<pre class="brush: cpp; title: ; notranslate">
struct ByName : std::binary_function&lt;Foo,Foo,bool&gt; {
    result_type operator()( const Foo &amp; lhs, const Foo &amp; rhs ) const {
        return lhs.name() &lt; rhs.name() ;
    }
};
</pre>
<p>instead of <code>[](const Foo &amp;lhs, const Foo &amp;rhs) { return lhs.name() &lt; rhs.name() ; }</code>, it&#8217;s more work, less fun, so you should need to <em>pay extra</em>.</p>
<p>C++11 is a much more productive language than C++98. We as an industry can, however, only reap that productivity gain if we stop throwing C++ productivity out of the window by the bucket-load in the hopeless pursuit of compatibility with non-standard implementations. The worst offender, Microsoft, has seen the light. Their current compilers are very standards-compliant, and actively maintained. I hope that Apple won&#8217;t be the next blocker: By choosing Clang over GCC for—apparently—political reasons (GCC&nbsp;4.2 was the last GCC with GPLv2), they have lost at least one year of C++11 support that GCC and VC are ahead of Clang. Let&#8217;s hope Clang catches up soon.</p>
<p>[[EDIT 2011-09-21: If you think that VC isn't implementing C++11 fast enough, you can make yourselves heard here: <a href="http://visualstudio.uservoice.com">http://visualstudio.uservoice.com</a>, in particular <a href="http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2202961-support-c-11-features" title="Support C++11 features" target="_blank">here</a> and <a href="http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2089423-c99-support" title="C99 support" target="_blank">here</a>.]]</p>
<p>[[EDIT 2012-03-30: Microsoft <a href="http://herbsutter.com/2012/02/29/vc11-beta-on-feb-29/" target="_blank">has announced</a> that the VC++ compiler will have a faster release cycle than Visual Studio. That makes me hope that we'll see a "reasonably conforming" (Sutter) VC++ a long time before 2014. Also, Clang++ 3.1 has caught up a lot with GCC (<a href="http://clang.llvm.org/cxx_status.html#cxx11" target="_blank">http://clang.llvm.org/cxx_status.html#cxx11</a>, 3.1 currently shows up as "SVN"); it seems tooling will indeed not be the problem, after all.]]</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/programming-languages/c/c0x/'>C++0x</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/431/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/431/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=431&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/09/20/c98-support-costs-extra/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Early-Bird Registration open for &#8220;In-depth Multi-Threading with Qt&#8221; @ DevDays</title>
		<link>http://marcmutz.wordpress.com/2011/09/20/early-bird-registration-open-for-in-depth-multi-threading-with-qt-devdays/</link>
		<comments>http://marcmutz.wordpress.com/2011/09/20/early-bird-registration-open-for-in-depth-multi-threading-with-qt-devdays/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 14:03:02 +0000</pubDate>
		<dc:creator>marcmutz</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Qt]]></category>
		<category><![CDATA[KDAB]]></category>
		<category><![CDATA[multithreading]]></category>
		<category><![CDATA[planetkde]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://marcmutz.wordpress.com/?p=435</guid>
		<description><![CDATA[I&#8217;ll be giving a two-day &#8220;In-depth multi-threading with Qt&#8221; training just after the DevDays in Munich, ie. Oct&#160;27th-28th. The training language will be English. The training material is the one from the usual Qt training, but &#8220;seriously expanded&#8221; to fill the two-day schedule. From the announcement: This two-day training teaches how to use multithreading with [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=435&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ll be giving a two-day &#8220;In-depth multi-threading with Qt&#8221; training just after the DevDays in Munich, ie. Oct&nbsp;27th-28th. The training language will be English. The training material is the one from the usual Qt training, but &#8220;seriously expanded&#8221; to fill the two-day schedule.</p>
<p>From <a href="http://www.kdab.com/news/268-qin-depth-multithreading-with-qtq-training-after-developer-days-in-munich" target="_blank">the announcement</a>:</p>
<blockquote><p>
This two-day training teaches how to use multithreading with the primitives provided by Qt. Participants will gain insight into multithreading problems in general, and how they pertain to Qt programs in particular.</p>
<p>Examples include how to offload work from the GUI thread, how to increase throughput to the maximum in your application, and optimal strategies for communication between threads.</p>
<p>The training covers topics such as cross-thread signal/slot connections, QThreadPool, QObjects and multithreading, QtConcurrent, QFuture, and Qt atomic operations.</p>
<p>Participants are expected to have a working knowledge of C++ and Qt. Prior experience with multithreaded programming is recommended, but not necessary. The course will start with a one hour multithreading refresher.
</p></blockquote>
<p>To book, visit <a href="http://www.kdab.com/schedule">http://www.kdab.com/schedule</a>.</p>
<p>Until October 1st, you&#8217;ll save 200€ on the early-bird offer. Just use <tt>d94ec6fd</tt> in the <i>Voucher(s)</i> field.</p>
<p>Hope to see you there!</p>
<br />Filed under: <a href='http://marcmutz.wordpress.com/category/programming-languages/c/'>C++</a>, <a href='http://marcmutz.wordpress.com/category/english/'>English</a>, <a href='http://marcmutz.wordpress.com/category/software-libraries/qt/'>Qt</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/marcmutz.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/marcmutz.wordpress.com/435/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=marcmutz.wordpress.com&#038;blog=14776649&#038;post=435&#038;subd=marcmutz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://marcmutz.wordpress.com/2011/09/20/early-bird-registration-open-for-in-depth-multi-threading-with-qt-devdays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
