<?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>Dennis NienhüserDennis Nienhüser</title>
	<atom:link href="http://nienhueser.de/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://nienhueser.de/blog</link>
	<description>All things Free Software.</description>
	<lastBuildDate>Sun, 06 Jan 2013 16:21:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Marble&#8217;s Desktop GUI revisited</title>
		<link>http://nienhueser.de/blog/?p=550</link>
		<comments>http://nienhueser.de/blog/?p=550#comments</comments>
		<pubDate>Sun, 06 Jan 2013 15:23:34 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=550</guid>
		<description><![CDATA[In the last five years the Desktop user interface of Marble hasn&#8217;t changed much: A QMainWindow with a central, large map (MarbleWidget) and a QTabBar based left sidebar with several widgets to control the map, perform searches and routing etc. Marble 1.5 (KDE 4.10) for example looks like this: There are two main disadvantages when[...]]]></description>
				<content:encoded><![CDATA[<p>In the last five years the Desktop user interface of Marble hasn&#8217;t changed much: A QMainWindow with a central, large map (MarbleWidget) and a QTabBar based left sidebar with several widgets to control the map, perform searches and routing etc. Marble 1.5 (KDE 4.10) for example looks like this:</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-tabbar2.png"><img class="aligncenter  wp-image-556" alt="marble-tabbar2" src="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-tabbar2.png" width="698" height="665" /></a></p>
<p style="text-align: left;">There are two main disadvantages when using a QTabBar here: Only one of its widgets can be visible at a time, and switching between the widgets in the tabs involves much mouse moving from top to bottom and the other way round (have a look at the tab positions in the screenshot).</p>
<p style="text-align: left;">To improve things we now introduced a new layout based on QDockWidgets. Its initial view resembles the old look and feel with a sidebar on the left, but shows two widgets at one time:</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-default-panels2.png"><img alt="marble-default-panels2" src="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-default-panels2.png" width="713" height="530" /></a></p>
<p style="text-align: left;">Dock widgets alone are not enough of course; the screenshot above also shows many further improvements. The Map View makes better use of the available space using smaller icons, showing the name and description to the right and indicating whether map themes are favorite ones using small overlays. Controls to choose the projection (sphere vs. flat map) and celestial body (planet) are condensed into a toolbar unless there is more space available to expand them. The old Navigation tab is gone in favor of a new map overlay visible in the bottom right. It&#8217;s also the first overlay to receive a modernized styling. The search results previously also shown in the navigation tab have moved to the new search dock which also integrates the search field previously found in the main toolbar. The latter is disabled again to leave more space for the map and dock widgets.</p>
<p style="text-align: left;">A big advantage of dock widgets (in combination with QMainWindow) is their configurability by drag and drop. Wide aspect ratios like 16:9 are used for many monitors now, which results in a good opportunity to create a right sidebar by dragging the dock widgets you&#8217;d like to see elsewhere to the right window border:</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-routing-panels.png"><img class="aligncenter  wp-image-552" alt="marble-routing-panels" src="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-routing-panels.png" width="696" height="431" /></a></p>
<p style="text-align: left;">On closer look you&#8217;ll find that the routing dock has received a small facelift as well. The input fields for via points now integrate the drop down button previously found to their left. Actions working on the route previously found in various push buttons are now grouped in a toolbar.</p>
<p style="text-align: left;">It&#8217;s very easy now to assemble a new layout that shows all the controls you need in a certain situation. All features shown in the screenshots here are available in the Qt version of Marble in the master branch and will become part of Marble 1.6 / KDE 4.11. Feel free to <a href="http://marble.kde.org/sources.php">give it a try</a>. Please note that only the Qt version bin/marble-qt has implemented the changes at this time; the KDE version bin/marble will follow shortly.</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-space-panels.png"><img class="aligncenter  wp-image-553" alt="marble-space-panels" src="http://nienhueser.de/blog/wp-content/uploads/2013/01/marble-space-panels.png" width="696" height="431" /></a> <a href="http://nienhueser.de/blog/?attachment_id=554" rel="attachment wp-att-554"><br />
</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=550</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cooking in the Marble Kitchen</title>
		<link>http://nienhueser.de/blog/?p=534</link>
		<comments>http://nienhueser.de/blog/?p=534#comments</comments>
		<pubDate>Fri, 28 Dec 2012 15:54:42 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=534</guid>
		<description><![CDATA[A lot of activities in the Marble community over the last weeks are shaping up now to become part of the Marble library and applications. Much is related to the ongoing Google Code-in and this blog post introduces some of the new features that were realized by GCI students. Popular star constellations &#8212; patterns in[...]]]></description>
				<content:encoded><![CDATA[<p>A lot of activities in the Marble community over the last weeks are shaping up now to become part of the Marble library and applications. Much is related to the ongoing Google Code-in and this blog post introduces some of the new features that were realized by GCI students.</p>
<p>Popular star constellations &#8212; patterns in prominent stars within apparent proximity on Earth&#8217;s night sky &#8212; are now rendered by the extended stars plugin. Realized with much love for detail, Marble&#8217;s view of Earth from outer space is now more stunning than ever. See for yourself (yellow bubbles are manual annotations):</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2012/12/marble-stars_ann.png"><img class="aligncenter  wp-image-535" alt="marble-stars_ann" src="http://nienhueser.de/blog/wp-content/uploads/2012/12/marble-stars_ann.png" width="628" height="701" /></a><br />
The screenshot also shows the new Earth at Night map theme which will replace the existing one. It features updated images with higher resolution. Further map themes have been completed or are in the works, among them Jupiter moons and historic map themes. To help you give proper attribution for derivative works, a new info box in the bottom right corner shows license information for the current map theme. Like all info boxes it can be disabled if needed.</p>
<p>Another main working area is <a href="http://en.wikipedia.org/wiki/Keyhole_Markup_Language">KML</a> support. While the most important KML elements are long supported, we are aiming for full KML 2.2 compliance in a future version. Towards this goal support for reading, writing and using more KML elements has been implemented. Among the new features is support for random color mode, reading and rendering screen overlays, reading balloon and list styles, rendering of remote images and writing of polygons, photo overlays, ground overlays and time spans. While preparing support for balloon style in placemark rendering the new webpopup plugin (annotated as map info dialog with webkit support in the screenshot below) was born. Given its nice look and generic applicability we&#8217;re currently replacing many QDialog based dialogs with it.</p>
<p style="text-align: center;"><a href="http://nienhueser.de/blog/wp-content/uploads/2012/12/marble-street_ann1.png"><img class="aligncenter  wp-image-537" alt="marble-street_ann" src="http://nienhueser.de/blog/wp-content/uploads/2012/12/marble-street_ann1.png" width="628" height="701" /></a></p>
<p>Much more has been realized in the last weeks and the above is just an incomplete high-level overview. Most of the features mentioned above are already merged into the master branch (to be part of Marble 1.6 / KDE 4.11). Some map themes will be deployed via GHNS and therefore be available in all KDE versions of Marble soon (File =&gt; Download Maps).</p>
<p>Google Code-in is still running for some weeks and we have a set of open tasks for volunteers to take. Check out <a href="http://www.google-melange.com/gci/homepage/google/gci2012">Melange</a> and search for Marble tasks (with KDE as organization) to see them. The <a href="http://marble.kde.org/contributors-welcome.php">marble.kde.org website</a> has a lot of information to get started as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=534</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Marble Tasks for Google Code-in</title>
		<link>http://nienhueser.de/blog/?p=517</link>
		<comments>http://nienhueser.de/blog/?p=517#comments</comments>
		<pubDate>Wed, 21 Nov 2012 22:47:29 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=517</guid>
		<description><![CDATA[Google Code-In is about to start on Monday. Here&#8217;s a sneak preview of some Marble tasks &#8212; please forward to any 13-17 year old teenagers who might want to become proper mappers! Do a usability overhaul for the measure tool: Improve the contrast to the various map backgrounds with the help of semi-transparent backgrounds, use[...]]]></description>
				<content:encoded><![CDATA[<p>Google Code-In is about to start on Monday. Here&#8217;s a sneak preview of some Marble tasks &#8212; please forward to any 13-17 year old teenagers who might want to become proper mappers!</p>
<p><img class="alignright" src="http://marble.kde.org/img/tasks/measure-tool.gif" alt="" width="200" height="192" />Do a usability overhaul for the measure tool: Improve the contrast to the various map backgrounds with the help of semi-transparent backgrounds, use alternating colors for neighboring line segments and show intermediate distances.<br />
The mockup animation on the right shows the current measure tool and a possible improved version. Adjusting the line segment colors and improving the contrast of the vertices will be quite straightforward. Calculating suitable positions to draw the distance labels for each line segment will is more of a challenge.</p>
<p><br clear="all" /><br />
<img class="alignleft" src="http://marble.kde.org/img/tasks/earth-constellations.gif" alt="" width="200" height="192" /><br />
Finding patterns in prominent stars within apparent proximity on Earth&#8217;s night sky is a human tradition dating back as far as the Neolithic Age. Marble already shows prominent stars — now teach it which to connect to form popular constellations!</p>
<p>To realize this, you first have to read and understand the current stars plugin. Fortunately the plugin is implemented in the brevity of 200 lines of code and Torsten is there to explain it. Afterwards you need to research common constellations, get their data, match it to the existing stars (or replace them), extend the file format and finally render the constellations. Implementing this will be awesome fun!</p>
<p><br clear="all" /><br />
<img class="alignright" src="http://marble.kde.org/img/tasks/historic-agnese.png" alt="" width="200" height="192" /><br />
Carry back your mind to Venice at the start of modern history. Battista Agnese created a worldmap in 1544 which is still available today — help adding it to Marble&#8217;s collection of historic maps to make it available to an even larger audience! Creating map themes from images of historic maps involves much image processing. Depending on the projection of the original map, different tools are used. We have a <a href="http://techbase.kde.org/Projects/Marble/HistoricalMaps">Techbase Wiki</a> page dedicated to that topic to get you started.</p>
<p>There are a lot of other tasks than those three: More  historic map themes and a couple of tasks related to quality assurance and extensions of Marble&#8217;s KML support.</p>
<p>Of course it&#8217;s also possible to contribute outside of Google Code-in: See our <a href="http://marble.kde.org/contributors-working-areas.php">working areas</a>. Those into social stuff can also follow us on <a href="https://plus.google.com/109002795119670287274/">Google+</a>. We keep a nice stream of Marble news and media there.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=517</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing marble.kde.org</title>
		<link>http://nienhueser.de/blog/?p=508</link>
		<comments>http://nienhueser.de/blog/?p=508#comments</comments>
		<pubDate>Sun, 18 Nov 2012 19:57:42 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=508</guid>
		<description><![CDATA[Last month we had the second Marble developer sprint in Prague. Among the things we discussed were necessary updates to our website &#8212; edu.kde.org/marble needed a refreshing of its content and look. We decided to change the URL as well to avoid that potential users pigeonhole Marble as an educational tool: While an important part, other[...]]]></description>
				<content:encoded><![CDATA[<p>Last month we had the second Marble developer sprint in Prague. Among the things we discussed were necessary updates to our website &#8212; edu.kde.org/marble needed a refreshing of its content and look. We decided to change the URL as well to avoid that potential users pigeonhole Marble as an educational tool: While an important part, other aspects like the OpenStreetMap integration, routing, the mobile versions as well as the whole functionality of an embeddable widget are better categorized differently and address several other user groups. The new website is now available at <a href="http://marble.kde.org">marble.kde.org</a>.</p>
<p><a href="http://marble.kde.org"><img class="aligncenter size-full wp-image-513" title="marble-kde-org" src="http://nienhueser.de/blog/wp-content/uploads/2012/11/marble-kde-org2.png" alt="" width="673" height="710" /></a></p>
<p>Besides having a modern look, the new website integrates a lot of new content, for example information on the current KML support and a nice tool to generate .kml files from OpenStreetMap data.</p>
<p><a href="http://marble.kde.org/kml-guide.php"><img class="aligncenter size-full wp-image-510" title="kml-generator" src="http://nienhueser.de/blog/wp-content/uploads/2012/11/kml-generator.png" alt="" width="681" height="546" /></a></p>
<p>Give it a try at <a href="http://marble.kde.org">marble.kde.org</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=508</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Marble and Google Maps</title>
		<link>http://nienhueser.de/blog/?p=495</link>
		<comments>http://nienhueser.de/blog/?p=495#comments</comments>
		<pubDate>Sun, 12 Aug 2012 22:49:14 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=495</guid>
		<description><![CDATA[One of the recurring questions in #marble and the Marble mailing list is Why does Marble not support Google Maps? From a technical point of view the answer is simple: Marble does support it (since a few years already). For educational purposes only some examples: If you would clone the googlesat map theme to ~/.local/share/marble/maps/earth/googlesat then a Google Satellite[...]]]></description>
				<content:encoded><![CDATA[<p>One of the recurring questions in #marble and the Marble mailing list is</p>
<blockquote><p>Why does Marble not support Google Maps?</p></blockquote>
<p>From a technical point of view the answer is simple: Marble <em>does</em> support it (since a few years already). For educational purposes only some examples: If you would clone the <a href="http://gitorious.org/marble-restricted-maps/googlesat">googlesat</a> map theme to ~/.local/share/marble/maps/earth/googlesat then a Google Satellite map theme would appear in Marble. And if you would clone the <a href="http://gitorious.org/marble-restricted-maps/googlemaps">googlemaps</a> repository to ~/.local/share/marble/maps/earth/googlemaps you&#8217;d have the vector based Google maps appear.</p>
<p>Now where&#8217;s the catch? Legal reasons prevent us from shipping them and also prevent you from using them. Here is an incomplete list of excerpts from the <a href="https://developers.google.com/maps/terms">Google Maps/Google Earth APIs Terms of Service</a> that are problematic for their use in Marble (and similarly a lot of other applications which simply seem to ignore that):</p>
<ul>
<li><em>8.5 Proprietary Rights Notices, 9.3 End User Terms and Privacy Policy </em>as well as<em> 9.4 Attribution.</em> We&#8217;d have to add a bunch of copyright notices which are not yet implemented (though we plan to add those)</li>
<li><em>10.1.1 (g) No Use of Content without a Google Map. </em>One of the killer arguments: We cannot retrieve e.g. a route and display it on the OSM map, or use a reverse geocoding result from Google in a non-Google route result.</li>
<li><em>10.1.1 (h) No Use of Static Maps API(s) outside a Web-Based Application. </em>This one is debatable. Marble is not a web-based application, yet we&#8217;re not exactly using the static maps API.</li>
<li><em>10.1.3 (b) No Pre-Fetching, Caching, or Storage of Content. </em>Sorry, that&#8217;s one of the great features of Marble which we&#8217;re not going to restrict artificially.</li>
<li><em><em>10.1.3 (c) </em>No Mass Downloads or Bulk Feeds of Content. </em>See above.</li>
<li><em>10.2 (a) No &#8220;Wrapping.&#8221; </em>The biggest part of Marble is a library intended to be used by various applications. It would wrap the Google services we would use (e.g. map display, routing, reverse geocoding)</li>
<li><em>10.2 (c) No Navigation, Autonomous Vehicle Control, or Enterprise Applications. </em>Another killer argument against using Google services. Marble does real time navigation, route guidance and turn-by-turn route guidance.</li>
</ul>
<p>Some people argue that a lot of existing applications do not comply with those terms of service without getting into any problem. But seriously&#8230; that&#8217;s not an argument.</p>
<p>Bottom line is that unless Google changes those terms of service, we&#8217;re not going to integrate them in Marble. Fortunately OpenStreetMap provides a great alternative to Google&#8217;s services and is nicely integrated in Marble already. Just like many more map themes that are not shipped by default for space or legal reasons. Many of the former ones can be installed from within Marble however: Just use File =&gt; Download Maps to install additional map themes.</p>
<p><a href="http://nienhueser.de/marble/marble-map-themes.png"><img class="alignnone" src="http://nienhueser.de/marble/marble-map-themes.png" alt="" width="676" height="728" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=495</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Creating Screencasts in Linux</title>
		<link>http://nienhueser.de/blog/?p=469</link>
		<comments>http://nienhueser.de/blog/?p=469#comments</comments>
		<pubDate>Sun, 10 Jun 2012 18:10:54 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=469</guid>
		<description><![CDATA[&#160; &#160; Recording screencasts and post-processing them for publishing on sites like YouTube or as HTML5 videos was a tedious and error-prone task for me up until some months ago: Recording software like recordMyDesktop, istanbul or xvidcap didn&#8217;t produce good results, if working at all. Video editors like avidemux, cinelerra, kdenlive or kino were lacking[...]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Recording screencasts and post-processing them for publishing on sites like YouTube or as HTML5 videos was a tedious and error-prone task for me up until some months ago: Recording software like recordMyDesktop, istanbul or xvidcap didn&#8217;t produce good results, if working at all. Video editors like avidemux, cinelerra, kdenlive or kino were lacking important features, had a cumbersome user interface or crashed in the twinkling of an eye.</p>
<p>Fortunately things changed when I discovered that ffmpeg works great for taking raw screencasts and when kdenlive 0.8.2 was released. Kdenlive had always been a promising application: A solid set of features, more than I probably ever need, arranged in a convenient user interface. Yet I was never able to accomplish even the simplest task with it in earlier versions &#8212; it almost certainly crashed somewhere in between. This behavior has changed significantly in recent versions &#8211; I&#8217;ve produced a bunch of videos with it now without a single crash. And from what you can read in the web, this seems to be a common observation. Good work, kdenlive developers!</p>
<p>In the remainder I&#8217;ll describe my workflow for producing screencasts for upload to YouTube. It can easily be adjusted for other sites like blip.tv, vimeo or HTML5 videos.</p>
<h3>Prerequisites</h3>
<p>Please install ffmpeg &#8211; any version should be fine and your distribution surely has packages for it. Also install kdenlive, but take care to get version 0.8.2.1 or later. It&#8217;s available in Ubuntu 12.04 Precise (universe) or Debian testing for example.</p>
<h3>Recording Raw Screencasts</h3>
<p>I&#8217;ll assume you&#8217;re going to record a screencast of a specific application window. Usually you&#8217;re able to resize that and it makes much sense to optimize its size for the end presentation. Best results for YouTube are achieved with an aspect ratio of 16:9. Corresponding video sizes are shown in the following table (second column):</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<th>Name</th>
<th>16:9</th>
<th>4:3</th>
<th>Bitrate</th>
</tr>
<tr>
<td>1080p (Full HD)</td>
<td>1920&#215;1080</td>
<td>1440&#215;1080</td>
<td>8000 kbps</td>
</tr>
<tr>
<td>720p (HD)</td>
<td>1280&#215;720</td>
<td>960&#215;720</td>
<td>5000 kbps</td>
</tr>
<tr>
<td>480p</td>
<td>854&#215;480</td>
<td>640&#215;480</td>
<td>2500 kbps</td>
</tr>
<tr>
<td>360p</td>
<td>640&#215;360</td>
<td>480&#215;360</td>
<td>1000 kbps</td>
</tr>
</tbody>
</table>
<p>Now change the size of the window to record to your favorite size from the table above. One good way to achieve that is to use KWin (right-click on the window title, Advanced, Special Window Settings, Size &amp; Position). You also need to know/change the position of the window. Again, KWin comes in handy:</p>
<p><img class="alignnone" src="http://nienhueser.de/misc/kwin-size-position.png" alt="" width="582" height="607" /></p>
<p>Remember (or note down) the values and apply the settings. Afterwards it&#8217;s time to start recording the screencast.</p>
<pre>ffmpeg -f x11grab -show_region 1 -y -r 25 -s 1280x720 -i :0.0+100,200 -vcodec ffv1 screencast.avi</pre>
<p>Let&#8217;s review all the parameters briefly.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<pre>-f x11grab</pre>
</td>
<td>Enables screen recording.</td>
</tr>
<tr>
<td>
<pre>-show_region 1</pre>
</td>
<td>Indicates the recording region on the screen. The indicator itself is not recorded.</td>
</tr>
<tr>
<td>
<pre>-y</pre>
</td>
<td>The video screencast.avi will be overwritten, if it exists.</td>
</tr>
<tr>
<td>
<pre>-r 25</pre>
</td>
<td>The video is recorded with a framerate of 25 (frames per second).</td>
</tr>
<tr>
<td>
<pre>-s 1280x720</pre>
</td>
<td>The size of the video. It should correspond to the size you set via kwin above, and ideally also corresponds to one of the YouTube formats in the table above.</td>
</tr>
<tr>
<td>
<pre>-i :0.0+100,200</pre>
</td>
<td>100,200 is the x,y position of the top left corner of the region to record. This should correspond to the position you set via kwin above. :0.0 tells ffmpeg which display and which screen to record. Normally you can leave it as :0.0.</td>
</tr>
<tr>
<td>
<pre>-vcodec ffv1</pre>
</td>
<td>A losless, ffmpeg-builtin video codec is used.</td>
</tr>
</tbody>
</table>
<p>Change the parameters as needed (you probably have to change 1280&#215;720 and 100,200 and can leave the rest as is) and start ffmpeg. It will start recording the screencast immediately. To stop recording, hit Ctrl+C in the shell where ffmpeg is running. The raw screencast will be called screencast.avi and can be viewed with e.g. mplayer.</p>
<p>Possibly you have to repeat this step several times to find optimal settings. If the video stutters, record to a faster drive, use a smaller video size or lower the framerate. Don&#8217;t use a framerate lower than 25 though. If the video stutters because your hard drive is too slow and you don&#8217;t have a faster one, you can also try to use a different codec than ffv1. Try</p>
<pre>ffmpeg -f x11grab -show_region 1 -y -r 25 -s 1280x720 -i :0.0+100,200 -b 8000000 screencast.webm</pre>
<h3>Post-processing for Publishing</h3>
<p>A huge topic on its own, so I don&#8217;t really want to start writing much here, but just leave a couple of recommendations:</p>
<ul>
<li>If you recorded to .webm above, you can upload the video directly to YouTube</li>
<li>If you recorded to .avi with ffv1 codec or if you want to add some background music, effects, title clip etc, I strongly recommend giving kdenlive a try.<img class="alignnone" src="http://nienhueser.de/misc/kdenlive-marble-flightgear.png" alt="" width="782" height="720" /></li>
<li>If you recorded to .avi with ffv1 codec and don&#8217;t want to use kdenlive for some reason, you can convert it using ffmpeg on the command line:
<pre>ffmpeg -i screencast.avi -b 8000000 screencast.webm</pre>
<p>The value for -b should correspond to the bitrate in the table above, here 8000000 = 8000 kbps. Now upload screencast.webm.</li>
<li>If you&#8217;re looking for some background music, <a href="http://www.jamendo.com/">jamendo.com</a> is worth a try.</li>
</ul>
<p>Wondering why this appears on planet KDE? The answer is simple: I want to see more screencasts here! (GSoC/SoK students, I&#8217;m looking at you!) <img src='http://nienhueser.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=469</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>QML Layers in Marble</title>
		<link>http://nienhueser.de/blog/?p=440</link>
		<comments>http://nienhueser.de/blog/?p=440#comments</comments>
		<pubDate>Sun, 27 May 2012 21:17:34 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Marble]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=440</guid>
		<description><![CDATA[KDE 4.9 Beta 1 is about to be tagged soon and so is Marble 1.4 Beta 1. Judging from the current bug reports and my own tests it is pretty stable already; I&#8217;m not aware of any major bugs. Still we&#8217;re not running short of things to do: There&#8217;s Marble Touch for Harmattan (Nokia N9),[...]]]></description>
				<content:encoded><![CDATA[<p>KDE 4.9 Beta 1 is about to be tagged soon and so is Marble 1.4 Beta 1. Judging from the current bug reports and my own tests it is pretty stable already; I&#8217;m not aware of any major bugs. Still we&#8217;re not running short of things to do: There&#8217;s Marble Touch for Harmattan (Nokia N9), the to-arrive Marble Touch for Plasma Active as well as the usual development work currently centered around our four students and their projects (Google Summer of Code and Season of KDE).</p>
<p>One of Marble&#8217;s strength has always been that the vast majority of all functionality is contained in its library and shared by the two (with Marble Touch now three) applications that are shipped with the project as well as all other applications that embed the library. Given that Marble Touch is based on QML/Qt Components, this implies to expose parts of the API to QML.</p>
<p>The content presented by Marble consists of several layers stacked on top of each other. Usually this is a base map (based on several texture and vector layers), intermediate layers like search results, a route, postal codes, clouds and finally information boxes. Most of them can be configured: The base map is setup by .dgml files and brings it&#8217;s own properties that can further be tweaked through e.g. Marble&#8217;s interactive legend. Search and routing have their own control fields. Additionally these layers can be managed via the C++ API (and most parts also from QML).</p>
<p>What about postal codes? They&#8217;re part of the so-called online services, plugins that download a certain type of data for the currently visible map region and display them. Besides postal codes these can be Wikipedia articles, photos (from flickr), weather status and forecast, recent earthquakes and more. Each of these services provides limited interactivity in the Desktop version, but the QML interface was missing so far. Yet it is quite interesting to access the online service data from QML for those activities that are tightly coupled to them: Weather, Friends and the currently emerging &#8220;Around Me&#8221; that provides information about nearby places and events.</p>
<p>Today I extended the existing online service framework to be able to provide a QML delegate &#8212; pretty similar to a delegate e.g. in a QML ListView. Once the delegate is set it deactivates the QWidget based rendering for the given service. Instead the provided  QDeclarativeComponent is used as a factory to build and destroy QML item instances as needed as well as updating their screen positions automatically. The C++ data model item retrieved by the online service is set as the context object in the QML context of the QML item such that it can easily access its properties by their name. This approach has several advantages: Item culling, filtering and positioning can be done in the C++ part, which is faster, easier and reuses existing code. At the same time the layout can be done in QML, which usually results in less code and easily allows to add animations. And finally QML is great to allow interaction with the content.</p>
<p>For a proof-of-concept I took the existing Weather activity and replaced its C++ rendering with a QML delegate as you can see in the short screencast below (Youtube, <a href="http://nienhueser.de/marble/plasma-active/marble-qml-layer-weather.webm">direct .webm here</a>). As expected the QML part is short, just 50 lines for the legend on the left and 60 lines for the delegate that renders the weather status icon and temperatures. Adding interactivity (showing details on selection of a weather station, marking stations as favorite) will be similarly easy.</p>
<p>Not everything works great though. The old z-value problem naturally comes up again with the QML weather items overlapping the information boxes (except for the QML rendered legend). This happens because of the different, independent rendering that does not allow to control the paint order. Unless I find a way around this I&#8217;ll probably go for replacing the remaining upper layers (information boxes mainly) with QML equivalents as well. That&#8217;d mean that the lower part of the layers was rendered by C++, the upper part by QML. On the one hand this sounds sane given that the lower layers need little interactivity, but are performance critical, while the upper ones are the reverse. On the other hand this would break the fine grained z-value control we currently have.</p>
<p>tl;dr</p>
<p>The QWidget based rendering of online service layers in Marble can now be replaced by custom QML delegates (<a href="https://projects.kde.org/projects/kde/kdeedu/marble/repository/show?rev=sok-2012-plasma-active">sok-2012-plasma-active</a> branch).</p>
<p><a href="http://www.youtube.com/watch?v=DMMEZiKZRmM"><img class="aligncenter size-full wp-image-445" title="weather-map-preview" src="http://nienhueser.de/blog/wp-content/uploads/2012/05/weather-map-preview2.png" alt="" width="680" height="452" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=440</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Approaching the World of Tablets</title>
		<link>http://nienhueser.de/blog/?p=429</link>
		<comments>http://nienhueser.de/blog/?p=429#comments</comments>
		<pubDate>Sun, 06 May 2012 18:54:55 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Marble]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=429</guid>
		<description><![CDATA[&#160; Last week I packaged Marble Touch 1.3.3 for the Nokia N9/N950 and submitted it to the Ovi store. It&#8217;ll appear there in the next days. Compared to 1.3.2 there are the usual bugfixes and smaller improvements, but also new features &#8212; most prominently support for bookmarks. In retrospect, I&#8217;m pretty satisfied with the choice to[...]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>Last week I packaged Marble Touch 1.3.3 for the Nokia N9/N950 and submitted it to the Ovi store. It&#8217;ll <a href="http://store.ovi.com/content/249807">appear</a> there in the next days. Compared to 1.3.2 there are the usual bugfixes and smaller improvements, but also new features &#8212; most prominently support for bookmarks.</p>
<p>In retrospect, I&#8217;m pretty satisfied with the choice to base its development on Qt Components. While I still have a lot of ideas for improving and extending it, the <a href="http://edu.kde.org/marble/poster/marble_worlddomination.jpg">plan for world domination</a> now wants me to shift attention towards a different, yet similar topic: Bringing Marble Touch to Plasma Active. Fortunately the Plasma guys were clever enough to develop the Plasma Components with a very similar <a href="https://bugreports.qt-project.org/browse/QTCOMPONENTS-200">API</a>, so the initial port was an easy task for this rainy weekend. Marble Touch in master now supports both Qt Components and Plasma Components. It&#8217;s not polished yet, font and icon sizes need to be adjusted and most dialogs don&#8217;t play well yet, but the core functionality is all there and works happily. I even tested it on <a href="http://cdimage.ubuntu.com/kubuntu-active/releases/precise/release/">Kubuntu Active</a> in a virtual machine.</p>
<p>One of the reasons I worked on this now is to set a solid base for Utku (you may remember him as the author of Marble&#8217;s earthquake and opendesktop plugins as well as the map creation wizard) to join me in his Season of KDE project. Great news! I&#8217;m sure we&#8217;ll have a nicely polished, end-user ready Marble Touch for Plasma Active at the end of the summer <img src='http://nienhueser.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>With the technical and organizational stuff mostly covered it&#8217;s back to brainstorming: What use cases do we want to cover on tablets? Routing and navigation are fundamental ones on smartphones. They&#8217;re also important on tablets, yet their larger screen and different usage patterns (couch mode, second screen) enable further use cases. So the second part of our motto &#8212; &#8220;find your way and explore the world&#8221; &#8212; becomes more important. I&#8217;m thinking of showing more details about places (photos, weather, user content) arranged in a convenient way. Furthermore owncloud integration would be lovely to easily share/synchronize your bookmarks, routes and photos across devices. What would you like to see?</p>
<p><img class="alignnone" src="http://nienhueser.de/marble/marble-device-zoo.png" alt="" width="626" height="539" /></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=429</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>GSoC 2012: Spread the word!</title>
		<link>http://nienhueser.de/blog/?p=416</link>
		<comments>http://nienhueser.de/blog/?p=416#comments</comments>
		<pubDate>Thu, 01 Mar 2012 18:38:17 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=416</guid>
		<description><![CDATA[Something missing in the picture? community.kde.org/GSoC is the place to go both for prospective students and mentors. Please spread the word! Don&#8217;t miss our nice Marble project ideas :-)]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter" src="http://nienhueser.de/marble/gsoc-shirts.jpg" alt="" width="695" height="402" /></p>
<p>Something missing in the picture? <a href="http://community.kde.org/GSoC">community.kde.org/GSoC</a> is the place to go both for prospective students and mentors. Please spread the word!</p>
<p>Don&#8217;t miss our nice <a href="http://community.kde.org/GSoC/2012/Ideas#Marble">Marble project ideas</a> :-)</p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=416</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marble Touch now available in the Ovi Store</title>
		<link>http://nienhueser.de/blog/?p=411</link>
		<comments>http://nienhueser.de/blog/?p=411#comments</comments>
		<pubDate>Thu, 02 Feb 2012 08:08:50 +0000</pubDate>
		<dc:creator>Dennis Nienhüser</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[Maemo]]></category>

		<guid isPermaLink="false">http://nienhueser.de/blog/?p=411</guid>
		<description><![CDATA[Just a quick note: Owners of the Nokia N9/N950 can now install Marble (Touch) from the Ovi Store. Enjoy]]></description>
				<content:encoded><![CDATA[<p>Just a quick note: Owners of the Nokia N9/N950 can now install Marble (Touch) from the Ovi Store. Enjoy <img src='http://nienhueser.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><a href="http://nienhueser.de/blog/wp-content/uploads/2012/02/marble-ovi-store.png"><img class="aligncenter size-full wp-image-412" title="marble-ovi-store" src="http://nienhueser.de/blog/wp-content/uploads/2012/02/marble-ovi-store.png" alt="" width="480" height="854" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://nienhueser.de/blog/?feed=rss2&#038;p=411</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
