<?xml version="1.0"?>
<rss version="2.0">
<channel>
	<title>planet.freedesktop.org</title>
	<link>http://planet.freedesktop.org</link>
	<language>en</language>
	<description>planet.freedesktop.org - http://planet.freedesktop.org</description>

<item>
	<title>Eric Anholt: FOSDEM 2010</title>
	<guid>urn:lj:livejournal.com:atom1:anholt:42146</guid>
	<link>http://anholt.livejournal.com/42146.html</link>
	<description>Through last minute travel approval, I got to come to FOSDEM again this year.  I gave a short talk about cairo-gl.  Openoffice presentation is &lt;a href=&quot;http://anholt.net/papers/fosdem2010-cairogl.odp&quot;&gt;here&lt;/a&gt;.  But a few more words here since reading slides is failure.&lt;br /&gt;&lt;br /&gt;I've been promising great 2D performance from open source graphics for years.  It was reaching the point where I was feeling awfully bad about being wrong so frequently.  So this summer I started playing in my free time with making a GL backend for cairo.  There was a previous sort of GL backend in the form of glitz, but it made a big mistake in trying to abstract GL through a Render-like API.  The problem with accelerating 2D is that Render is a bad match for hardware!&lt;br /&gt;&lt;br /&gt;A native GL backend turned out to be shockingly easy, now that we have support for EXT_framebuffer_objects all over, non-power-of-two textures, and GLSL.  Here's a comparison of 3 backends, normalized to the image backend.  Bigger bars means faster.&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://people.freedesktop.org/~anholt/cairogl-chart.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;This shows an accelerated backend beating the CPU rasterization backend on 3 tests.  Note that things for the image backend are a little unfair in its favor -- we can't scan out from cached system memory buffers, so if you want to actually see the results you have to do an upload at some point, which isn't reflected in the cairo-perf-trace results.  Being able to beat that with GPU rendering to something that could be scanned out is pretty awesome.  But that's only 3 tests -- for most of them image is winning.  I've got some ideas for hacks on the 965 driver that may fix up a bunch of those bars (it's hard to estimate, since it's all about cache effects, and fixing those has a tendency to improve by more than the amount of time spent according to sysprof).&lt;br /&gt;&lt;br /&gt;Since comparing to image isn't too fair, and we're not using image today, I did a comparison to xlib.  This looks awesome:&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;http://people.freedesktop.org/~anholt/cairogl-chart-2.png&quot; /&gt;&lt;br /&gt;&lt;br /&gt;By replacing Xlib usage with GL, we get a speedup on almost all the testcases, and a huge speed up on one that Xlib is pathologically slow on (I haven't figured out why for xlib yet).  We've got a good pass rate on the cairo test suite, so I think this stuff is ready for people to start experimenting with in apps.&lt;br /&gt;&lt;br /&gt;There's much more to do for performance still.  I've got a plan to work on the 965 driver to improve glyphs-heavy tests like firefox-talos-gfx (and ETQW and WoW as well).  For firefox-talos-svg, right now we're hitting aperture full because of all the spans data we're sending out before the GPU gets done with things.  If we speed up the GPU rendering just a little, for example by tuning the inefficient shaders we're using right now, we can probably avoid hitting aperture full and cut CPU further.  I think we're missing throttling for non-swapbuffers apps in DRI2, and we might actually do better and avoid aperture full if we do some appropriate throttling.  And there's a lot of room for people who'd like to experiment with GL shader and state optimizations to jump in and tear this code apart.&lt;br /&gt;&lt;br /&gt;I'd say that the Linux 2D acceleration story is starting to finally look good after all these years.</description>
	<pubDate>Tue, 09 Feb 2010 09:04:29 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: whats in drm-radeon-testing?</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:71261</guid>
	<link>http://airlied.livejournal.com/71261.html</link>
	<description>I'll try and post these regularly when I make major additions/removals.&lt;br /&gt;&lt;br /&gt;drm-radeon-testing is the cutting edge KMS radeon branch, it is going to be rebased and things will be added/removed as they are worked on by developers. So you can base patches on it but you should talk to the developer who owns the area first.&lt;br /&gt;&lt;br /&gt;git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-radeon-testing&lt;br /&gt;&lt;br /&gt;I've just pushed a rebased tree now with the following:&lt;br /&gt;&lt;br /&gt;latest i2c algo + hw i2c engine code + all fixes squashed: This adds support for hw i2c engines found on radeons and&lt;br /&gt;exposes them + sw i2c buses to userspace so i2c tools can use them. (agd5f).&lt;br /&gt;&lt;br /&gt;pll algorithm reworking + quirks: cleans up the code to allow for the selection of the old pll algorithm on some hardware. (agd5f)&lt;br /&gt;&lt;br /&gt;pm support so far: Adds all the current PM patches - just does engine reclocking so far using the power tables from the BIOS. (Zajec/agd5f)&lt;br /&gt;&lt;br /&gt;Evergreen (Radeon HD 5xxx) support: basic KMS support for the evergreen range of devices - no irqs or accel yet. (agd5f)&lt;br /&gt;&lt;br /&gt;radeon unlocked ioctl support (airlied)&lt;br /&gt;&lt;br /&gt;bad CS recording (glisse)&lt;br /&gt;&lt;br /&gt;misc cleanups/fixes - Dell/Sun server support ported from userspace hopefully.&lt;br /&gt;&lt;br /&gt;The tree did contain Jerome's r600 CS checker but I've dropped it for now at his request as he has newer patches&lt;br /&gt;in testing.</description>
	<pubDate>Tue, 09 Feb 2010 01:07:06 +0000</pubDate>
</item>
<item>
	<title>Jerome Glisse: FOSDEM</title>
	<guid>urn:lj:livejournal.com:atom1:jglisse:2349</guid>
	<link>http://jglisse.livejournal.com/2349.html</link>
	<description>You can grab my fosdem's slides here &lt;a href=&quot;http://people.freedesktop.org/~glisse/glisse-fosdem2010.pdf&quot;&gt;http://people.freedesktop.org/~glisse/glisse-fosdem2010.pdf&lt;/a&gt; hope it might highlight some of the thing i am doing :)</description>
	<pubDate>Mon, 08 Feb 2010 15:54:28 +0000</pubDate>
</item>
<item>
	<title>Zack Rusin: New features</title>
	<guid>tag:blogger.com,1999:blog-27901662.post-834357634013594910</guid>
	<link>http://zrusin.blogspot.com/2010/02/new-features.html</link>
	<description>&lt;div&gt;Lately we've been working a lot on Gallium but we haven't been publicly talking about it enough. I, personally, spent a considerable amount of time last week coming up with my strategy for the inevitable monster invasion. In general I always thought that if, sorry, &quot;when&quot; the monsters attack I'd be one of the very first ones to go on account of my &quot;there's a weird noise coming from that pitch black spot over there, I better check it out&quot; tendency. Obviously that's not ideal, especially if the need to repopulate the world arises; I just really feel like I should be present for that. In conclusion I'll quickly go over some things we've been doing with Gallium. Admittedly that wasn't one of my best transitions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are three new major APIs that we want to support in Gallium. OpenCL 1.0, DirectX 10.x and DirectX 11. DirectX 10.x was somewhat prioritized of late because it's a good stepping stone for a lot of the features that we wanted.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Two of my favorites were the geometry shaders and new blending functionality. I want to start with the latter which Roland worked on because it has immediate impact on Free Software graphics.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the things that drives people bonkers is text rendering. In particular subpixel rendering, or if you're dealing with Xrender component alpha rendering &lt;/div&gt;&lt;div&gt;Historically both GL and D3D provided fixed-function blending that provided means of combining source colors with the content of a render buffer in a number of ways. Unfortunately the inputs to the blending units were constrained to a source color, destination color or constants that could be used in their place. That was unfortunate because the component alpha math required two distinct values: the source color and the blending factor for destination colors (assuming the typical Porter&amp;amp;Duff over rendering). D3D 10 dealt with it by adding functionality called dual-source blending (OpenGL will get an extension for it sometime soon). The idea being that the fragment shader may output two distinct colors which will be treated as two independent inputs to the blending units.&lt;/div&gt;&lt;div&gt;Thanks to this we can support subpixel rendering in a single pass with a plethora of compositing operators. Whether you're a green ooze trying to conquer Earth or a boring human you have to appreciate 2x faster text rendering.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Geometry shaders introduce a new shader type, run after the vertices have been transformed (after the vertex shader), but before color clamping, flat shading and clipping.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Along the support for geometry shaders we have added two major features to TGSI (&quot;Tokenized Gallium Shader Instructions&quot;, our low level graphics language). &lt;/div&gt;&lt;div&gt;The first one was support for properties. Geometry shaders in Gallium introduced the notion of state aware compile. This is because compilation of a geometry shader is specific to, at the very least, the input and output primitive they respectively operate on and output. We deal with it by injecting PROPERTY instructions to the program as so:&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;div&gt;GEOM&lt;/div&gt;&lt;div&gt;PROPERTY GS_INPUT_PRIMITIVE TRIANGLES&lt;/div&gt;&lt;div&gt;PROPERTY GS_OUTPUT_PRIMITIVE TRIANGLE_STRIP&lt;/div&gt;&lt;/code&gt;&lt;div&gt;(rest of geometry shader follows)&lt;/div&gt;&lt;div&gt;The properties are easily extendable and are the perfect framework to support things like work-group size in OpenCL.&lt;/div&gt;&lt;div&gt;The second feature is support for multidimensional inputs in shaders. The syntax looks as follows:&lt;/div&gt;&lt;div&gt;&lt;code&gt;DCL IN[][0], POSITION&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;div&gt;&lt;code&gt;DCL IN[][1], COLOR&lt;/code&gt;&lt;/div&gt;&lt;div&gt;which declares two input arrays. Note that the size of the arrays is implicit, defined by the GS_INPUT_PRIMITIVE property.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's nice to see this framework progressing so quickly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Summing up, this is what yin yang is all about. Do you know what yin yang is? Of course you don't, you know nothing of taoism. Technically neither do I but a) it sounds cool, b) I've been busy coming up with a &quot;monster invasion&quot; contingency plan, so couldn't be bothered with some hippy concepts, c) the previous two points are excellent.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/27901662-834357634013594910?l=zrusin.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 08 Feb 2010 15:07:32 +0000</pubDate>
</item>
<item>
	<title>Nicolai Hähnle: FOSDEM slides on the R300 compiler</title>
	<guid>tag:blogger.com,1999:blog-36137506.post-767763614059655738</guid>
	<link>http://nhaehnle.blogspot.com/2010/02/fosdem-slides-on-r300-compiler.html</link>
	<description>My first &lt;a href=&quot;http://fosdem.org/2010/&quot;&gt;FOSDEM&lt;/a&gt; is almost over. I've seen a lot of interesting talks, and it's great to finally meet some of the people I only knew by email or IRC. Brussels has not been so nice to me, on the other hand, plaguing me with some bad food. Oh well...&lt;br /&gt;&lt;br /&gt;I gave a talk on the R300 shader compiler. &lt;a href=&quot;http://www.phoronix.com/&quot;&gt;Phoronix&lt;/a&gt; will probably have a video online some time tomorrow, together with videos of the other X.Org talks. In the meantime I am making &lt;a href=&quot;http://people.freedesktop.org/~nh/talks/2010-fosdem-r300glsl.odp&quot;&gt;my slides&lt;/a&gt; available. (The file contains some additional slides which I left out from the talk to save a little time.)&lt;br /&gt;&lt;br /&gt;And not to forget: a big thank you to all the people who make this amazing event possible!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/36137506-767763614059655738?l=nhaehnle.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sun, 07 Feb 2010 16:36:22 +0000</pubDate>
</item>
<item>
	<title>Chris Ball: Computers that aren't computers</title>
	<guid>urn:uuid:4d42467c-4bd9-4f93-ae44-5ce4f70c4af7</guid>
	<link>http://blog.printf.net/articles/2010/02/07/computers-that-arent-computers</link>
	<description>&lt;p&gt;&lt;i&gt;Me&lt;/i&gt;: &quot;I think I'm done buying computers that I can't run my own code on.&quot;&lt;br /&gt;
&lt;i&gt;Friend&lt;/i&gt;: &quot;Just think of the iPad as being a pile of books.  You can't run your code on those either.&quot;&lt;br /&gt;
&lt;i&gt;Me&lt;/i&gt;: &quot;Thinking of a computer as being a pile of books is like thinking of a guitar as being Abbey Road by the Beatles.&quot;&lt;/p&gt;</description>
	<pubDate>Sun, 07 Feb 2010 02:10:55 +0000</pubDate>
</item>
<item>
	<title>Alp Toker: HTML5 Theora Video Codec for Silverlight</title>
	<guid>http://www.atoker.com/blog/?p=140</guid>
	<link>http://www.atoker.com/blog/2010/02/04/html5-theora-video-codec-for-silverlight/</link>
	<description>&lt;p&gt;I&amp;#8217;m glad to announce the first release of our fully managed &lt;a href=&quot;http://www.theora.org/&quot;&gt;Theora&lt;/a&gt; audio / video decoder implementation for the Silverlight platform! The &lt;a href=&quot;http://www.nuanti.com/highgate/&quot;&gt;&lt;em&gt;Highgate media suite&lt;/em&gt;&lt;/a&gt; will bring installation-free support for HTML5 streaming video to an additional ~40% of web users overnight.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.atoker.com/blog/wp-content/uploads/2010/02/theora-fish.png&quot; alt=&quot;Theora&quot; title=&quot;theora-fish&quot; width=&quot;88&quot; height=&quot;64&quot; class=&quot;alignright size-full wp-image-165&quot; /&gt;&lt;/p&gt;
&lt;p&gt;So, &lt;em&gt;a few drinks&lt;/em&gt; will be in order to celebrate the release at the &lt;a href=&quot;http://fosdem.org/2010/&quot;&gt;FOSDEM&lt;/a&gt; beer event, Friday &amp;#8212; drop by! And of course, I&amp;#8217;d like to invite anyone excited about making open codecs a first class citizen of the Silverlight / Moonlight ecosystem to visit the &lt;a href=&quot;http://fosdem.org/2010/schedule/devrooms/mono&quot;&gt;Mono dev room&lt;/a&gt; over the weekend for source code and some frivolous demos between sessions.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.atoker.com/blog/wp-content/uploads/2010/02/highgate-theora-thumb.jpg&quot; alt=&quot;&quot; title=&quot;Silverlight Theora Player&quot; width=&quot;447&quot; height=&quot;421&quot; class=&quot;aligncenter size-full wp-image-174&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Technology&lt;/h3&gt;
&lt;p&gt;We&amp;#8217;ll be releasing a &lt;strong&gt;high-performance decoder&lt;/strong&gt; for Theora video / Ogg Vorbis audio streams that plugs into the Silverlight 3 streaming media abstraction, as well as a &lt;strong&gt;reference front-end player&lt;/strong&gt; interface and JavaScript bridge layer providing basic &lt;strong&gt;compatibility with standard HTML5 media tags&lt;/strong&gt;, adding support for the standard to Internet Explorer and extending the &lt;a href=&quot;http://www.atoker.com/blog/2007/12/08/html5-media-support-with-gstreamer/&quot;&gt;capabilities of WebKit-based browsers&lt;/a&gt; like Safari and Epiphany. A cunning plan, one might say!&lt;/p&gt;</description>
	<pubDate>Thu, 04 Feb 2010 23:02:39 +0000</pubDate>
</item>
<item>
	<title>Vincent Untz: Going to FOSDEM 2010</title>
	<guid>urn:md5:7ddbb01db91e95dee19cc8556b0b219d</guid>
	<link>http://www.vuntz.net/journal/post/2010/02/04/Going-to-FOSDEM-2010</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://www.fosdem.org/&quot;&gt;&lt;img src=&quot;http://www.vuntz.net/photoblog/20100204_going-to-fosdem.png&quot; alt=&quot;Going to FOSDEM&quot; /&gt;&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;I'm happy to go to Brussels again this year: it's been a long time since I didn't eat some really good waffles! Of course, I had to pretend I would do something useful there, so I'm participating in two &lt;q&gt;talks&lt;/q&gt;, both in the &lt;a href=&quot;http://www.fosdem.org/2010/schedule/devrooms/distributions&quot;&gt;distributions devroom&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fosdem.org/2010/schedule/events/dist_gnome&quot;&gt;Working with GNOME upstream&lt;/a&gt;: this will really be an interactive session, where upstream and downstream people for GNOME can meet, and discuss what can be improved to make the life of both upstream contributors and downstream contributors. It will probably be a good opportunity to also clarify how GNOME 3 might affect distributors, and to get a first overview of how it will be handled downstream. I hope it will be useful for everybody. I certainly hope we'll have a bunch of upstream people attending, and that we'll have representatives for various distributions there (make sure to tell the GNOME people in your distribution to come!).&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fosdem.org/2010/schedule/events/dist_pkg_desc&quot;&gt;Translations of package descriptions&lt;/a&gt;: as you can see, I don't have my name attached to this session, so I can pretend I didn't know about it ;-) But I'm supposed to help Anne there as we've discussed this a bit in the past few months. Translating package descriptions has obvious benefits for the end users, but it's a huge amount of work. And therefore we can seriously wonder if it's really worth duplicating this effort in each distribution (hint: probably not). So this session aims to look at what we can do to work together on this, and what it implies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm also eager to have some insightful discussions with the great people that will come to FOSDEM. The hallway meetings have always been productive there!&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;GNOME&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;GNOME will have some strong presence again this year. There's the &lt;a href=&quot;http://www.fosdem.org/2010/schedule/devrooms/gnome&quot;&gt;GNOME devroom&lt;/a&gt; on Saturday, that will become &lt;a href=&quot;http://www.fosdem.org/2010/schedule/devrooms/crossdesktop&quot;&gt;CrossDesktop devroom&lt;/a&gt; on Sunday, and during the whole week-end, we'll have a &lt;a href=&quot;http://live.gnome.org/Brussels2010/Stand&quot;&gt;booth&lt;/a&gt;. If you want to help, that's definitely the place where you should go: we need volunteers to &lt;a href=&quot;http://live.gnome.org/Brussels2010/Stand&quot;&gt;run the booth&lt;/a&gt; (see &lt;a href=&quot;http://mail.gnome.org/archives/foundation-list/2010-February/msg00011.html&quot;&gt;Lionel's mail&lt;/a&gt; for more details).&lt;/p&gt;


&lt;p&gt;The booth should look great again, thanks to the &lt;a href=&quot;http://live.gnome.org/GnomeEventsBox&quot;&gt;event box&lt;/a&gt;, lovely stickers (they'll be free again!) and, hopefully, t-shirts (we're unsure they'll be ready in time, but let's be optimistic ;-)). On Saturday, you'll also find there some information about what is becoming a tradition: the &lt;a href=&quot;http://live.gnome.org/Brussels2010/Attendees#beer-event&quot;&gt;GNOME Beer Event&lt;/a&gt; that will occur on Saturday evening.&lt;/p&gt;


&lt;p&gt;Oh, apparently, I was volunteered to organize the GNOME group photo on Saturday, at 15:30. So make sure to be around the devroom at that time!&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;openSUSE&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;There will also be a good number of openSUSE people, with the usual booth (looking for some openSUSE DVD or sticker? You'll find them there!). This year, there's no openSUSE devroom because there's one big distributions devroom instead; I believe it's a good thing, though: it should help get more collaboration happen, and it's also a nice opportunity to steal good ideas ;-)&lt;/p&gt;


&lt;p&gt;I'm happy that most of the &lt;a href=&quot;http://en.opensuse.org/Boosters_Team&quot;&gt;boosters team&lt;/a&gt; will also attend; I heard it's a great group of people to hang out with!&lt;/p&gt;</description>
	<pubDate>Thu, 04 Feb 2010 10:11:00 +0000</pubDate>
</item>
<item>
	<title>Luc Verhaegen: Last Preparations for Coreboot/Xorg DevRooms at FOSDEM.</title>
	<guid>urn:lj:livejournal.com:atom1:libv:21335</guid>
	<link>http://libv.livejournal.com/21335.html</link>
	<description>In about 30h I will be on the ICE to Brussels to FOSDEM, to have 2 DevRooms there.&lt;br /&gt;&lt;br /&gt;The Sportsbag with kit has been packed. The meeting at the customary restaurant tomorrow evening has been pretty much set up. Both my talks should be ready, and just need some studying. And I am now making the posters with the schedules and the fliers (used for possible status changes and directions) for the two devrooms so that they can be printed out later today.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://www.coreboot.org/FOSDEM_2010&quot;&gt;schedule for the Coreboot DevRoom (on saturday)&lt;/a&gt; is unchanged since my last post:&lt;br /&gt;&lt;br /&gt;* 13:00 : Peter Stuge - coreboot introduction.&lt;br /&gt;* 14:00 : Peter Stuge - coreboot and PC technical details.&lt;br /&gt;* 15:00 : Rudolf Marek - ACPI and Suspend/Resume under coreboot.&lt;br /&gt;* 16:00 : Rudolf Marek - coreboot board porting.&lt;br /&gt;* 17:00 : Carl-Daniel Hailfinger - Flashrom.&lt;br /&gt;* 18:00 : Luc Verhaegen - Flash Enable BIOS Reverse Engineering.&lt;br /&gt;&lt;br /&gt;All seems well, and it seems that we will have everything filmed nicely too!&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://wiki.x.org/wiki/fosdem2010&quot;&gt;schedule for the Xorg DevRoom (on sunday)&lt;/a&gt; has seen one last minute change with the addition of Nicolai Haehnle's talk:&lt;br /&gt;&lt;br /&gt;* 12.00: Nicolai Hähnle : Towards GLSL in the r300 Gallium driver&lt;br /&gt;* 13.00: Daniel Stone : Polishing X11 and making it shiny.&lt;br /&gt;* 14.00: Luc Verhaegen : The free software desktop’s graphics driver stack.&lt;br /&gt;* 15.00: Jerome Glisse : GPU Userspace - kernel interface &amp;amp; Radeon kernel modesetting status.&lt;br /&gt;* 16.00: Mikhail Gusarov : X on e-Paper.&lt;br /&gt;&lt;br /&gt;This addition was very last minute, and did not make the FOSDEM folder. Nicolai was quite lucky as the FOSDEM organisers had already &lt;a href=&quot;http://www.fosdem.org/2010/schedule/rooms/aw1.124&quot;&gt;assigned the DevRoom to the openMoko project&lt;/a&gt; in the morning, which luckily left a single slot free for Nicolai.&lt;br /&gt;&lt;br /&gt;I've finished my slides for my own talk in the X.org devRoom, and it promises to be an interesting one, albeit controversial for some.&lt;br /&gt;&lt;br /&gt;It examines some of what we can tell a few years down the road from the modular tree, and goes over the real needs. Then it explains the unification of graphics driver stacks, how to build it for the unichrome driver, and what infrastructural changes it could use.&lt;br /&gt;&lt;br /&gt;But before i go into details i will have a small in room survey (Which will probably become a more widespread survey online). One of the questions i will ask is: &lt;i&gt;&quot;For those using, or those who have used, the nvidia or ati closed source drivers: how would you like it if nvidia or ATI told you that you needed the very latest upstream kernel, X, and mesa to be able to run the latest catalyst or nvidia driver, especially when you might need this version for its new hardware support or for bugfixes?&quot;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;(and urgh... the msi fuzzy cn700t motherboard i was using as a mailserver just died on me, even the port80 card says that no bios code is being run. Now i stuck in another cn700 board, and it has one of those really noisy fans :()</description>
	<pubDate>Thu, 04 Feb 2010 09:20:13 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: video of GPU switching</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:71012</guid>
	<link>http://airlied.livejournal.com/71012.html</link>
	<description>Here's a really badly shot video of GPU switching in action ;-0 - whiteouts are mostly be logging out and in ;-)&lt;br /&gt;&lt;br /&gt;</description>
	<pubDate>Thu, 04 Feb 2010 02:16:32 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: hybrid graphics : the story continues (part 3)</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:70828</guid>
	<link>http://airlied.livejournal.com/70828.html</link>
	<description>v6 of the patch + another patch which needs some work before I can merge it are available now.&lt;br /&gt;&lt;br /&gt;This mainly cleans up the patch architecture a lot and allow for Matthew to put his nvidia code in easier hopefully. Its moves the ATPX specific code to the radeon driver.&lt;br /&gt;&lt;br /&gt;The second patch is from an experiment that I videod on a webcam but am now failing to upload, I'll probably get a better video tomorrow, the lighting was fairly bad for it today.&lt;br /&gt;&lt;br /&gt;It basically allows for a delayed gpu switch ( it changes the debugfs API ), and allows gpu drivers to block the switch.&lt;br /&gt;&lt;br /&gt;The switch file now takes ON/OFF like always, but the PCI IDs input is gone. There are 4 commands&lt;br /&gt;&lt;br /&gt;IGD - try and switch now to the integrated device - can fail if drm drivers block it (mainly if X has the device open)&lt;br /&gt;DIS - try and switch now to the discrete device - can fail if drm drivers block it (X again).&lt;br /&gt;DIGD - try a delayed switch to integrated device&lt;br /&gt;DDIS - try a delayed switch to discrete device.&lt;br /&gt;&lt;br /&gt;So with X running you can echo DDIS to the file and log off X, it'll then switch as soon as X closes the drm device, and when&lt;br /&gt;gdm restarts X it'll be running on the discrete GPU. If we had a shiny GUI on top of this it'd be as close as MacOSX can do it.&lt;br /&gt;When you select to do a delayed switch we power up the other GPU straight away so the switch is quicker. &lt;br /&gt;&lt;br /&gt;It needs more debugging, some open issues include:&lt;br /&gt;&lt;br /&gt;after a few switches it can die on its ass&lt;br /&gt;powering up the Intel glitches the display even when running the AMD&lt;br /&gt;there may be race conditions in the patch, probably need a mutex around device open + this stuff&lt;br /&gt;suspend/resume - since we D3 the card, if you do an s/r cycle it'll resume it, we need a flag in the&lt;br /&gt;driver to say its powered off by the mux and to ignore s/r cycles - I've started adding this to radeon.&lt;br /&gt;&lt;br /&gt;mjg59 has access to an nvidia laptop and is looking closely at how to make that all work.</description>
	<pubDate>Wed, 03 Feb 2010 07:07:55 +0000</pubDate>
</item>
<item>
	<title>Christian Schaller: London and Scandinavian food</title>
	<guid>http://blogs.gnome.org/uraeus/?p=1226</guid>
	<link>http://blogs.gnome.org/uraeus/2010/02/02/london-and-scandinavian-food/</link>
	<description>&lt;p&gt;Went down to London yesterday for a meeting and I used the opportunity to visit the &lt;a href=&quot;http://www.scandikitchen.co.uk/&quot;&gt;scandinavian deli and grocery store&lt;/a&gt; there. Turned out to be pretty nice, with a decent selection of food.  I stocked up on Swedish &lt;a href=&quot;http://en.wikipedia.org/wiki/Salty_liquorice&quot;&gt;liquorice&lt;/a&gt;,  Norwegian &lt;a href=&quot;http://en.wikipedia.org/wiki/Lefse&quot;&gt;lompe&lt;/a&gt;, Danish &lt;a href=&quot;http://en.wikipedia.org/wiki/P%C3%B8lser&quot;&gt;red hotdog sausages&lt;/a&gt; and a Norwegian &lt;a href=&quot;http://en.wikipedia.org/wiki/Brunost&quot;&gt;brown cheese&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;In other words I am well set for another week of scaring Abigail with Scandinavian food &lt;img src=&quot;http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/tango/face-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Tue, 02 Feb 2010 11:06:42 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: hybrid graphics on Linux (Part 2)</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:70480</guid>
	<link>http://airlied.livejournal.com/70480.html</link>
	<description>Okay v4 of the patch is available at&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://people.freedesktop.org/~airlied/vgaswitcheroo/&quot;&gt;http://people.freedesktop.org/~airlied/vgaswitcheroo/&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://people.freedesktop.org/~airlied/vgaswitcheroo/0001-vga_switcheroo-initial-implementation-v4.patch&quot;&gt;http://people.freedesktop.org/~airlied/vgaswitcheroo/0001-vga_switcheroo-initial-implementation-v4.patch&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First thing I added was power up/down methods. This calls the DRM suspend/resume methods + along with the cut power for discrete GPU. I'm not sure dynamic Windows ever does this as it seems to take a bit of work, I suspect they just run the second GPU in really low power modes. This is slow because we have to repost the ATI card after turning it back on.&lt;br /&gt;&lt;br /&gt;I then talked to mjg59 and worked over the ATPX detection. I removed all the DMI code and it should detect *any* laptop that uses ATPX (i.e. ATI/ATI and Intel/ATI) from what I can see. I've tested on Lenovo W500 and T500 now and it appears to work on both. Would be nice if someone on a ATI/ATI and/or ASUS ATI/ATI or ATI/Intel machines could give it a whirl. I think the main problem with ATI/ATI is the poweroff methods have a hardcoded Intel PCI ID. I've no idea yet how to tell on an ATI/ATI which device is the IGD and which is discrete. Its probably more than likely the IGD is the one with the ATPX method on it.&lt;br /&gt;&lt;br /&gt;It doesn't switch off at boot yet but I've added commands to let you do it.&lt;br /&gt;&lt;br /&gt;echo &quot;OFF&quot; &amp;gt; switch - turns off the not in use card, so if Intel and ATI are on at boot, it will turn off ATI&lt;br /&gt;echo &quot;ON&quot; &amp;gt; switch - turns back on not in use card&lt;br /&gt;echo &quot;PCIID&quot; &amp;gt; switch - causes a switch with full off/on cycles.&lt;br /&gt;&lt;br /&gt;nvidia combos appear to use a DSM method and in theory nouveau_acpi.c should be detecting that, so it might be possible for someone to hook that up.&lt;br /&gt;&lt;br /&gt;I've also started looking at some desktop integration via gdm or logout - but its not my usual place to code so going is a bit slower ;-)</description>
	<pubDate>Tue, 02 Feb 2010 05:50:42 +0000</pubDate>
</item>
<item>
	<title>Alex Deucher: Initial evergreen support</title>
	<guid>http://www.botchco.com/agd5f/?p=48</guid>
	<link>http://www.botchco.com/agd5f/?p=48</link>
	<description>&lt;p&gt;I&amp;#8217;ve just pushed initial evergreen (Radeon HD5xxx) modesetting support to xf86-video-ati.  There are still some issues to be sorted out with multi-head, and displayport doesn&amp;#8217;t quite work yet, but these will be worked out soon.  Initial evergreen KMS modesetting support is also just about done and will be released soon.  Acceleration is not available yet.&lt;/p&gt;
&lt;p&gt;UPDATE: KMS support for evergreen is now working.  You can grab the patches &lt;a href=&quot;http://people.freedesktop.org/~agd5f/evergreen_kms/&quot;&gt;here&lt;/a&gt;.  Dave should have them merged into the  &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=refs/heads/drm-radeon-testing&quot; class=&quot;list name&quot;&gt;drm-radeon-testing&lt;/a&gt; branch soon.&lt;/p&gt;</description>
	<pubDate>Mon, 01 Feb 2010 17:25:24 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: hybrid graphics on Linux</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:70348</guid>
	<link>http://airlied.livejournal.com/70348.html</link>
	<description>So someone thought it would be a good idea to make laptops with two graphics chips in them and switch betweem them to save power.&lt;br /&gt;&lt;br /&gt;Now other OSes support this to varying degrees, I think XP + MacOSX require a logout cycle and Vista/Win7 can dynamically switch while running, while Linux basically falls over in a heap.&lt;br /&gt;&lt;br /&gt;So I sat down today with a Lenovo W500 which has an Intel GM45 and AMD Radeon 3650 Mobility in it, and I wrote a patch to try and get closer to the XP/MacOSX level.&lt;br /&gt;&lt;br /&gt;The result of one days straight hacking is at:&lt;br /&gt;&lt;a href=&quot;http://people.freedesktop.org/~airlied/vgaswitcheroo/&quot;&gt;http://people.freedesktop.org/~airlied/vgaswitcheroo/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The patch is totally focused on the Lenovo W500, other switchers will need to add stuff to this codebase.&lt;br /&gt;&lt;br /&gt;So what works?&lt;br /&gt;Boot in switchable graphics - which boots with intel and radeon turned on&lt;br /&gt;KMS drivers load for radeon and intel, radeon BIOS stored in start of VRAM (driver hacked to read it)&lt;br /&gt;bind to both drivers + fbs for both.&lt;br /&gt;mount debugfs - cat /sys/kernel/debug/vgaswitcheroo/switch&lt;br /&gt;2&lt;br /&gt;0 :0000:01:00.0&lt;br /&gt;1+:0000:00:02.0&lt;br /&gt;shows the 02.0 (intel) device is in charge of the MUX.&lt;br /&gt;goto runlevel 5, play with X under the Intel driver, goto runlevel 3 kill X&lt;br /&gt;at fbcon echo &quot;0000:01:00.0&quot; &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;br /&gt;barely glitches console and switches&lt;br /&gt;goto runlevel 5, play with X under the ATI driver, goto runlevel 3 kill X&lt;br /&gt;echo &quot;0000:00:02.0&quot; &amp;gt; /sys/kernel/debug/vgaswitcheroo/switch&lt;br /&gt;goto runlevel 5, play with X under intel again.&lt;br /&gt;wash and repeat.&lt;br /&gt;&lt;br /&gt;What does it do?&lt;br /&gt;So far its just switching the MUX using the ACPI method and remapping all the console to the other framebuffer device,&lt;br /&gt;it also reset the bits that denotes which devices is the boot vga device which X uses to pick the primary GPU. This&lt;br /&gt;means X doesn't need an xorg.conf to switch. (I think all those patches are in upstream X server).&lt;br /&gt;&lt;br /&gt;What does it not do?&lt;br /&gt;It doesn't powerdown the radeon when its not in use yet. I know the ACPI call to power it off/on, and since I have&lt;br /&gt;the BIOS I should be able to repost it. So I'll try adding the callbacks into the KMS driver to do this soon.&lt;br /&gt;It doesn't poewrdown the intel when its not in use yet. Not sure what I can do here, since there is no ACPI method to turn&lt;br /&gt;it off. I think I can just D3 the GPU, and use the normal s/r paths to bring it back. Again requires more investigation.&lt;br /&gt;The whole what ACPI + methods map to what device, how the mux ids match etc will probably all need to be stored in the DMI table.&lt;br /&gt;Anything not a Lenovo W500 - probably not that hard to add other Intel/AMD variants to this, add DMI and mux switching method.&lt;br /&gt;nouveau isn't hooked up - this could probably be done by some interested party - the driver hooks so far aren't very hard.&lt;br /&gt;No idea about ATI/ATI or NV/NV ones either.&lt;br /&gt;&lt;br /&gt;I'm really hoping interested community people can make this actually useful to them on other hw, I won't have permanent access to the W500 to keep this all tested in the future.&lt;br /&gt;&lt;br /&gt;Can we do dynamic switch without restarting X?&lt;br /&gt;No. X needs a lot of work, a lot more than the day it took to hack the kernel.&lt;br /&gt;&lt;br /&gt;How do we go forward?&lt;br /&gt;We probably need to add gdm support to move this forward. A logout button that is &quot;Switch GPU&quot;, that gdm kills the X server,&lt;br /&gt;then hits the switch port and starts a new X server. I'll try and talk to some gdm hackers over the next few days.&lt;br /&gt;I'll try and push this into a git tree against Linus current, and we can add tested patches for other machines as they go in.&lt;br /&gt;Also the DMI section is only imaginary of what I think others might need, we might have to rip it all out. Also I've no idea&lt;br /&gt;if there are ACPI methods to query the switchable modes etc.</description>
	<pubDate>Mon, 01 Feb 2010 09:03:21 +0000</pubDate>
</item>
<item>
	<title>Philip Langdale: Tethering Monitor (or an exploration of python and dbus)</title>
	<guid>http://intr.overt.org/blog/?p=96</guid>
	<link>http://intr.overt.org/blog/?p=96</link>
	<description>&lt;p&gt;The &lt;a href=&quot;http://maemo.org/downloads/product/Maemo5/bluetooth-dun/&quot;&gt;Bluetooth DUN&lt;/a&gt; package has been well received, but was hardly a profound programming endeavour. So, I&amp;#8217;ve been trying to find suitable inspiration for a more substantial project. This morning, someone made a comment on the Bluetooth DUN page that there&amp;#8217;s no way to tell if the phone has a tethered data connection or not - and he&amp;#8217;s right: there&amp;#8217;s no visual feedback on the phone, unlike Nokia&amp;#8217;s Symbian devices or, I imagine, many other phones in the world. With that as a motivation, I decided to try and write a status indicator for tethering.&lt;/p&gt;
&lt;p&gt;My first decision was language, and I went with Python as I&amp;#8217;ve wanted to use it more and I know how laborious it would be to write this kind of utility in C. I then had to dig around to find out how to write a status area plugin in Python, and luckily there is a way, and it&amp;#8217;s&lt;a href=&quot;http://wiki.maemo.org/PyMaemo/HildonDesktop&quot;&gt;fairly well documented&lt;/a&gt;.&lt;br /&gt;
The biggest source of confusion is that the &lt;a href=&quot;http://maemo.org/api_refs/5.0/5.0-final/libhildondesktop/HDStatusPluginItem.html#hd-status-plugin-item-get-dbus-connection&quot;&gt;get_dbus_connection&lt;/a&gt; method isn&amp;#8217;t exposed in the Python bindings. So, after that took *way* too much time to work out, I had to try and achieve the same thing with direct DBus calls (get a private connection that doesn&amp;#8217;t kill the app if it dies), which I reckon I&amp;#8217;ve got right.&lt;/p&gt;
&lt;p&gt;Once you&amp;#8217;ve got the basic stuff sorted out, it becomes really easy to iterate and test - you replace the python file and move .desktop file in and out of a specific directory and Hildon will reload it. Debugging was a real pain because the phone components that I&amp;#8217;m talking too don&amp;#8217;t exist inside the scratchbox dev environment - so I had to play a trial and error game on the N900 itself, where my only feedback was the icon failing to appear - what fun.&lt;/p&gt;
&lt;p&gt;The next challenge was investigating what DBus interfaces to use to find the necessary information. The most important one is com.nokia.csd.GPRS. It&amp;#8217;s not documented anywhere, but it&amp;#8217;s fortunately introspectable and has obviously named methods and signals, so I was able to establish when a connection is made, suspended or disconnected. &lt;/p&gt;
&lt;p&gt;Unfortunately, you see the same set of signals whether the connection is made by the phone itself or a tethered client, so then I had to find a way to detect if the phone was using the connection. I eventually found a way by using com.nokia.icd and com.nokia.icd2 - the first is undocumented and unintrospectable while the second is actually &lt;a href=&quot;http://maemo.org/api_refs/5.0/beta/icd2/group__dbus__api.html&quot;&gt;documented&lt;/a&gt;. For com.nokia.icd, I was able to use dbus-monitor to find a useful status signal and the get_ipinfo() method I needed had been explored by others. So, now I can avoid false positives from phone initiated connections.&lt;/p&gt;
&lt;p&gt;There is one problem that remains, however: It&amp;#8217;s possible to tether through the phone at the same time that the phone is using the connection for itself - this is apparently not as amazing as it sounds; all my old phones could do it. In this case, there appears to be no way to notice the tethered connection, so the monitor will not report it. At the moment, I&amp;#8217;ve got no good ideas for doing this cleanly - I might be able to poke sysfs or look for pnatd processes, but neither is particularly attractive. But it&amp;#8217;s not that common a case, so I consider the program useful before this gets solved.&lt;/p&gt;
&lt;p&gt;And what does the program actually do? It shows an icon in the status area that reflects the connection state: disabled, attached, or suspended. I actually think that showing an icon when there&amp;#8217;s no connection is a bad use of real eastate, so I&amp;#8217;m going to take that out of the next release, but it&amp;#8217;s there for now and helpful for confirming that the plugin actually started.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re interested, you can grab it from &lt;a href=&quot;http://wiki.maemo.org/Extras#Extras-devel&quot;&gt;extras-devel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;</description>
	<pubDate>Mon, 01 Feb 2010 02:13:33 +0000</pubDate>
</item>
<item>
	<title>Jesse Barnes: progress</title>
	<guid>http://virtuousgeek.org/blog/51@http://virtuousgeek.org/blog/</guid>
	<link>http://virtuousgeek.org/blog/index.php/jbarnes/2010/01/29/progress</link>
	<description>&lt;h2&gt;Progress&lt;/h2&gt;

&lt;p&gt;Wow it&amp;#8217;s been awhile.  Life in the land of Linux graphics has been exciting recently, and there have been a few interesting developments on the Linux PCI front as well.&lt;/p&gt;

&lt;h3&gt;Linux Graphics Maturing&lt;/h3&gt;

&lt;p&gt;The Linux graphics stack has really been maturing recently.  The Intel and radeon KMS drivers are seeing a lot of bug fixing, and nouveau is getting into shape as well.  I think the Intel driver is in better shape than the userland driver ever was at this point (though that&amp;#8217;s not to say it&amp;#8217;s without defects; our serious bug count is still way too high for my liking).  It supports more hardware and features, including power saving, DisplayPort, new hardware, advanced rendering APIs, than ever, and has been shipping in Linux distros for quite awhile now.&lt;/p&gt;

&lt;p&gt;We recently finished off the page flipping support, and landed it upstream (it&amp;#8217;ll be part of 2.6.33).  We also landed a new, core, buffer execution interface (creatively named execbuf2), that allows for more flexibility in the way we submit our command buffers.  Specifically, it allows us to control whether a given buffer needs to be mapped with a fence register for operations performed by the commands in its parent execution buffer.  This allows our command buffers to be larger, since we won&amp;#8217;t exhaust our fence registers prematurely by mapping all objects unconditionally, and allows us to enable tiled texture rendering on pre-965 chips, which can improve performance significantly for some types of rendering.&lt;/p&gt;

&lt;p&gt;To support the page flipping work, I had to extend the DRI2 protocol a bit to include support for a SwapBuffers request.  While I was at it, I added support for the SGI_video_sync and OML_sync_control extensions, which meant adding support for a few more requests.  The SGI_video_sync addition was an important one, since its absence was a regression relative to DRI1.  All this new protocol meant new Mesa and X server code, new DRI2 interfaces between the server and DDX drivers, and a bunch of testing and reworking of the interfaces as I figured things out.&lt;/p&gt;

&lt;p&gt;All these new features are landed now, and should be a part of Linux 2.6.33, Mesa 7.8, X server 1.9 and xf86-video-intel 2.11.  See &lt;a href=&quot;http://dri.freedesktop.org/wiki/CompositeSwap&quot;&gt;CompositeSwap&lt;/a&gt; for an overview of the features and how they&amp;#8217;re implemented.  With that out of the way I&amp;#8217;ve been able to think more about how compositors and clients should interact, so I came up with &lt;a href=&quot;http://people.freedesktop.org/~jbarnes/cnp.txt&quot;&gt;CNP&lt;/a&gt;.  It&amp;#8217;s not implemented yet, since I&amp;#8217;m still gathering feedback on it, but my hope is that it will help us reduce memory consumption and partial frames in composited environments, as well as address some of the undefined behavior of current GLX calls when drawables are redirected.&lt;/p&gt;

&lt;p&gt;Finally, after some discussions with toolkit and compositor developers, I worked with Kristian and Ian to come up with the &lt;a href=&quot;http://www.opengl.org/registry/specs/INTEL/swap_event.txt&quot;&gt;INTEL_swap_event&lt;/a&gt; GLX extension (note it&amp;#8217;s definitely possible to implement this on non-Intel as well, but only Intel has support at the moment).  This extension allows GLX clients to receive X events when previously queued buffer swaps complete.  So rather than making another swap call before the previous one has completed, clients with mainloops can simply poll their X event queue and do other work if their last swap isn&amp;#8217;t done yet, rather than wasting time blocked in the server or queuing another swap and getting too far ahead of the display.&lt;/p&gt;

&lt;h3&gt;Using it all&lt;/h3&gt;

&lt;p&gt;One side effect of the new DRI2 code is that glXSwapBuffers calls are now totally asynchronous.  Previous versions of DRI1 and DRI2 would either block waiting for vblank, or only return after the blit to implement the swap had completed.  With the new code, a DRI2SwapBuffers protocol request ends up in the X server, where it&amp;#8217;s scheduled by the DDX driver to occur at some later time (though in some cases it will happen immediately, e.g. if the drawable is offscreen).  This leaves more time for clients to do other work while their swap occurs; the INTEL_swap_event extension can help clients take advantage of this extra CPU time.&lt;/p&gt;

&lt;p&gt;Some optimizations are present in the new code as well.  For instance, if the drawable is the same size as the current root window pixmap and there&amp;#8217;s no clipping to worry about, the DDX driver can queue a page flip instead.  This saves a tremendous amount of memory bandwidth, and so can really increase performance, especially on high resolution and/or bandwidth starved configurations (e.g. most integrated and embedded graphics platforms).  Similarly, if a simple back to front copy is requested for a window, if the back and front pixmaps are the same size (i.e. the window manager hasn&amp;#8217;t reparented the front window to accommodate decorations and the like), the DDX can simply exchange the backing pixmap object pointers rather than blit.  Again this is important on low memory bandwidth platforms (though note this code is currently disabled due to lack of testing; however it&amp;#8217;s trivial to enable once I have some test cases).&lt;/p&gt;

&lt;h3&gt;New hardware&lt;/h3&gt;

&lt;p&gt;With our Core i7 parts launched, I can talk about some of the hardware feature work we&amp;#8217;ve been doing.  Zhenyu has been doing most of the bringup and hardware support work for this platform, but I&amp;#8217;ve been busy with one of the more interesting hardware features in the Core i7-6xx series, called Intelligent Power Sharing (IPS).  Core i7-6xx and 7xx chips are MCP (multi-chip packages); both the CPU and GPU/MCH are in the same physical processor package, but not on the same die.  This means they share a thermal and power design domain.  In many cases, only one of the components will be very busy, and thus generating much heat or drawing much power, and it would be a waste to let any extra thermal or power headroom go unused.  IPS allows one component to use more than its share of power or thermal budget so long as the other component is idle enough to allow it.  One of the key parts of this technology is so-called &amp;#8220;graphics turbo&quot;, in other words the capability of the GPU to exceed its default frequency (and therefore thermal and power budget) when possible.  I posted support for this at around launch time (latest patch &lt;a href=&quot;http://lists.freedesktop.org/archives/intel-gfx/2010-January/005649.html&quot;&gt;here&lt;/a&gt;), and hope to be able to post the full IPS driver soon, since the potential graphics performance upside is fairly large (still collecting measurements but I&amp;#8217;m hoping for something around 15% or maybe even a little higher).  The code also allows the GPU to downclock when idle, saving power.  The CPU already has its own opportunistic turbo mode which is very effective, but there may be cases where giving it extra power will be helpful (though I&amp;#8217;ve yet to find a benchmark, again I&amp;#8217;m still testing).&lt;/p&gt;

&lt;h3&gt;PCI&lt;/h3&gt;

&lt;p&gt;A &lt;a href=&quot;http://lkml.org/lkml/2010/1/24/75&quot;&gt;recent thread&lt;/a&gt; highlighted an interesting design choice in Linux.  All platforms supporting PCI (indeed pretty much every platform, PCI or no), splits its address space into multiple regions, allowing for memory mapped I/O (MMIO) from the CPU to different devices.  Discovering which ranges belong to which devices is done in a number of different ways, from hard coded offsets (as is found on many embedded platforms), to firmware descriptor tables (as found in OpenFirmware or ACPI), to physically reading MMIO routing information from CPU host bridges down through the hierarchy.&lt;/p&gt;

&lt;p&gt;There&amp;#8217;s a drive in Linux to support the last option.  After all, Linux is the operating system driving your hardware, it should do everything itself, right?  Well, that&amp;#8217;s where we get into trouble.  Linux usually runs on platforms designed for Windows (either specifically for Windows or for Windows in addition to Linux).  Windows generally uses the second option to make it easier to port to new platforms.  For better or for worse (usually the latter) BIOS writers for new platforms generally consider their work done when Windows boots on their new platform and the Windows device manager doesn&amp;#8217;t have any dreaded &amp;#8220;yellow bang&quot;s next to devices in the device tree.  This usually means the ACPI tables used to describe MMIO layout need to be fairly accurate, or Windows may map a device into a location occupied by another or by a host bridge range with decode priority, causing hangs, corruption or the dreaded &amp;#8220;yellow bang&quot;.&lt;/p&gt;

&lt;p&gt;In October of last year, for arguably good reason, we tried to take Linux down the last path.  Yinghai Lu added support for reading root bus resource ranges directly from the host bridge on Intel systems.  The thought was that we&amp;#8217;d be insulated from firmware bugs this way, and have a more accurate view of the system in general.  Unfortunately, due to the above, bridge vendors like Intel have no reason to fully document all the decode windows of a given host bridge, which bits might enable or disable decode for a given region, or generally worry about providing the sort of info we&amp;#8217;d need to make this approach tenable.  So as of now, we&amp;#8217;ve removed the supporting code, and are placing a bet that using the same information Windows does (and hopefully in the same way) will give us the same level of portability.  We actually tried this back in 2.6.31 I believe, but had to disable it because our resource tracking code couldn&amp;#8217;t handle all the resources handed us by some ACPI firmware implementations.  We (well Bjorn hopefully) should fix that limitation for 2.6.34, and we&amp;#8217;ll try again, and hopefully fix quite a few resource mapping related bugs in the process.&lt;/p&gt;</description>
	<pubDate>Fri, 29 Jan 2010 21:37:07 +0000</pubDate>
</item>
<item>
	<title>Tiago Vignatti: Customization and true modularization of Xorg</title>
	<guid>http://vignatti.wordpress.com/?p=126</guid>
	<link>http://vignatti.wordpress.com/2010/01/23/xorg-customization-and-true-modularization/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;For the first time in life, Xorg is being used in &lt;a href=&quot;http://maemo.org/&quot;&gt;a single platform&lt;/a&gt; and for &lt;a href=&quot;http://maemo.nokia.com/n900/&quot;&gt;a given device&lt;/a&gt; only (other devices have used an X11 implementation but using other non-canonical servers, such kdrive&amp;#8217;s based &amp;#8211; Tiny-X).&lt;/p&gt;
&lt;p&gt;Previously Xorg was being packed to run in a huge amount of OSes &amp;#8211; mostly Linux and Unix-like distributions &amp;#8211; with the characteristic of be architecture portable and able to run on a huge set of video and input devices. In terms of software, this means an extensive amount of code able to cover all of this mentioned. But this is far from the needs of a small and single platform device.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;Some days ago, at #xorg-devel, &lt;a href=&quot;http://blogs.sun.com/alanc/&quot;&gt;Alan&lt;/a&gt; mentioned the following:&lt;/p&gt;
&lt;p&gt;&lt;tt&gt;&lt;br /&gt;
06:59 &amp;lt; alanc&amp;gt; vignatti: the whole point of Xorg is to drive video output - where else would you possibly sanely put that code?&lt;br /&gt;
07:00 &amp;lt; alanc&amp;gt; I think you're going overboard in the drive to remove all code from Xorg&lt;br /&gt;
&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Alan was referring about my previous comment to remove some code of &lt;em&gt;video memory mapping&lt;/em&gt; from server&amp;#8230; I understand (and respect a lot) his concerns but lemme put this right here: it&amp;#8217;s not about removal of code; I don&amp;#8217;t even care if the code is in xserver or not; what I do care is about the &lt;em&gt;customization&lt;/em&gt; &amp;#8211; or more fancy, the &lt;em&gt;true modularization&lt;/em&gt; [0] &amp;#8211; of Xorg.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;As &lt;a href=&quot;http://www.inf.ufpr.br/vignatti/talks/xdc2009-nokia.pdf&quot;&gt;discussed&lt;/a&gt; on the last X conference, we&amp;#8217;re aiming to &lt;em&gt;optionalize&lt;/em&gt; [1] lot of components inside Xorg: distros would build all components, satisfying all supported devices and drivers, whereas constrained environments (such as maemo + n900) would use a restrict set only.&lt;/p&gt;
&lt;p&gt;So recently I&amp;#8217;ve been confusing people&amp;#8217;s mind trying to in fact optionalize several components of the server. There are some straightforward modifications on the code like turn off &lt;a href=&quot;http://lists.x.org/archives/xorg-devel/2010-January/005138.html&quot;&gt;libdrm&lt;/a&gt;, &lt;a href=&quot;http://cgit.freedesktop.org/xorg/xserver/commit/?id=53d64930513fecaa417bb5a922966b45c9ff8679&quot;&gt;vgahw&lt;/a&gt; or libxdmcp, but there&amp;#8217;s also other more challenger like all the &lt;a href=&quot;http://lists.x.org/archives/xorg-devel/2010-January/004853.html&quot;&gt;old-school mechanism&lt;/a&gt; to initialise cards, to &lt;a href=&quot;http://lists.x.org/archives/xorg-devel/2009-August/001801.html&quot;&gt;remove cursor support&lt;/a&gt; or even to choose if &lt;a href=&quot;http://lists.x.org/archives/xorg-devel/2009-September/001969.html&quot;&gt;we want or not all bus subsystem&lt;/a&gt;. Sometimes we&amp;#8217;ll have to be careful to not &lt;a href=&quot;http://lists.x.org/archives/xorg-devel/2009-October/003065.html&quot;&gt;run out of the protocol&lt;/a&gt;. But the truth is: the currently the code is _very_ tied all over the server. It&amp;#8217;s not trivial to &amp;#8220;get there&amp;#8221;.&lt;/p&gt;
&lt;p&gt;IMHO the plan traced at XDC looks perfectly clear and while other display systems seems not suitable enough for us yet, I&amp;#8217;ll be keep digging on this direction.&lt;/p&gt;
&lt;p&gt;[0] the modularization that happened in the version 1.0 was related with drivers going outside the server.&lt;/p&gt;
&lt;p&gt;[1] what would be a good word here?&lt;/p&gt;
  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/vignatti.wordpress.com/126/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/vignatti.wordpress.com/126/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/vignatti.wordpress.com/126/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/vignatti.wordpress.com/126/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/vignatti.wordpress.com/126/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/vignatti.wordpress.com/126/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/vignatti.wordpress.com/126/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/vignatti.wordpress.com/126/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/vignatti.wordpress.com/126/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/vignatti.wordpress.com/126/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=vignatti.wordpress.com&amp;amp;blog=769537&amp;amp;post=126&amp;amp;subd=vignatti&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 28 Jan 2010 22:39:46 +0000</pubDate>
</item>
<item>
	<title>Bastien Nocera: Shared-mime-info patches</title>
	<guid>tag:blogger.com,1999:blog-977684764667858073.post-1196210099733620452</guid>
	<link>http://www.hadess.net/2010/01/shared-mime-info-patches.html</link>
	<description>Ooh, the strain.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you filed a bug against &lt;a href=&quot;http://www.freedesktop.org/wiki/Software/shared-mime-info&quot;&gt;shared-mime-info&lt;/a&gt; in the past and wonder why your requested mime-type still isn't in, it's just a lack of time, and the fact that most of the bug reports require too much work on my side to be integrated.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If your bug doesn't include a test case, I won't look at it.&lt;/div&gt;&lt;div&gt;If your bug is a copy/paste of a stand-alone mime definition file, I won't look at it.&lt;/div&gt;&lt;div&gt;If your bug doesn't contain any reference information, I won't look at it.&lt;/div&gt;&lt;div&gt;If your patch isn't git-formatted, I won't look at it.&lt;/div&gt;&lt;div&gt;If your patch breaks the test suite, I won't look at it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Given the requirements to compiling shared-mime-info (git, a C compiler, and glib), I don't think I'm setting the barrier too high. Furthermore, all those requirements are spelled out in the &lt;a href=&quot;http://cgit.freedesktop.org/xdg/shared-mime-info/tree/HACKING&quot;&gt;HACKING&lt;/a&gt; file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let me know if you have any questions, or want clarification on some points, so I can update the &lt;a href=&quot;http://cgit.freedesktop.org/xdg/shared-mime-info/tree/HACKING&quot;&gt;HACKING&lt;/a&gt; file with that information.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/977684764667858073-1196210099733620452?l=www.hadess.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Thu, 28 Jan 2010 17:24:00 +0000</pubDate>
</item>
<item>
	<title>Luc Verhaegen: So openSUSE needs a new community manager?</title>
	<guid>urn:lj:livejournal.com:atom1:libv:21100</guid>
	<link>http://libv.livejournal.com/21100.html</link>
	<description>Remember &lt;a href=&quot;http://www.google.com/search?q=martin+lasarsch&quot;&gt;this guy&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;He knows a thing or two about SUSE and its community. He is used to travelling a lot, to give interviews, talking to the press, and to speaking in public, and on top, he knows how to organise events for a once big linux distribution. And thanks to a really fun group event at his previous company right after FOSDEM last year, he might actually be available for a new opportunity.&lt;br /&gt;&lt;br /&gt;Plus, he lives like 200 meters away from the SUSE Nuernberg office, how lucky is that?&lt;br /&gt;&lt;br /&gt;(oh, music is the stones, track 4 of 12x5, listed here as suse planet is horribly broken with respect to livejournal.)</description>
	<pubDate>Wed, 27 Jan 2010 18:26:20 +0000</pubDate>
</item>
<item>
	<title>Nagappan Alagappan: Announce: Linux Desktop Testing Project (LDTP) 2.0.2 released</title>
	<guid>tag:blogger.com,1999:blog-9589202.post-1196042474723000019</guid>
	<link>http://nagappanal.blogspot.com/2010/01/announce-linux-desktop-testing-project_26.html</link>
	<description>Hello,&lt;br /&gt;&lt;br /&gt;About LDTP:&lt;br /&gt;&lt;br /&gt;Linux Desktop Testing Project is aimed at producing high quality test automation framework (using GNOME / Python) and cutting-edge tools that can be used to test Linux Desktop and improve it. It uses the Accessibility libraries to poke through the application's user interface. We strive to help in building a quality desktop.&lt;br /&gt;&lt;br /&gt;Changes in this release:&lt;br /&gt;&lt;br /&gt;Fixed ldtp binary name and now it spits out the version info&lt;br /&gt;Updated README and AUTHORS file&lt;br /&gt;Fixed OpenSolaris bug reported by Qinghua Cheng &lt;br /&gt;&lt;br /&gt;Acknowledgement:&lt;br /&gt;&lt;br /&gt;Ara Pulido[1] requested the above change for backward compatibility. Thanks to Ara, Conny.&lt;br /&gt;&lt;br /&gt;Download RPM from http://download.opensuse.org/repositories/home:/anagappan:/ldtp2:/rpm&lt;br /&gt;Will schedule deb build tomorrow&lt;br /&gt;&lt;br /&gt;Download source http://download.freedesktop.org/ldtp/2.x/2.0.x/ldtp-2.0.2.tar.gz&lt;br /&gt;&lt;br /&gt;Documentation references:&lt;br /&gt;&lt;br /&gt;For detailed information on LDTP framework and latest updates visit http://ldtp.freedesktop.org&lt;br /&gt;&lt;br /&gt;For information on various APIs in LDTP including those added for this release can be got from http://ldtp.freedesktop.org/user-doc/index.html&lt;br /&gt;&lt;br /&gt;Report bugs - http://ldtp.freedesktop.org/wiki/Bugs&lt;br /&gt;&lt;br /&gt;To subscribe to LDTP mailing lists, visit http://ldtp.freedesktop.org/wiki/Mailing_20list&lt;br /&gt;&lt;br /&gt;IRC Channel - #ldtp on irc.freenode.net&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Nagappan&lt;br /&gt;&lt;br /&gt;[1] - http://ubuntutesting.wordpress.com/&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9589202-1196042474723000019?l=nagappanal.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 26 Jan 2010 22:13:43 +0000</pubDate>
</item>
<item>
	<title>Christian Schaller: Norwegian Fenalår</title>
	<guid>http://blogs.gnome.org/uraeus/?p=1223</guid>
	<link>http://blogs.gnome.org/uraeus/2010/01/26/norwegian-fenalar/</link>
	<description>&lt;p&gt;I always try to bring some Norwegian food back with me when I have visited Norway. This year I brought a leg of Fenalår which is a leg of cured mutton. So it is just like the cured ham people eat all over Europe, except from being made from sheep. Anyway I brought it to the Collabora office today to let people have a taste and Marco &lt;a href=&quot;http://twitpic.com/zu2cv&quot;&gt;snapped this picture of me holding the leg&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Of course not all scandinavian food is &lt;a href=&quot;http://fc05.deviantart.net/fs70/f/2009/363/d/a/Nordics_like_Fish_by_humon.jpg&quot;&gt;equally appreciated by our southern neighbours&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Tue, 26 Jan 2010 11:31:35 +0000</pubDate>
</item>
<item>
	<title>Jerome Glisse: R600/R700 Gallium3D winsys emerging</title>
	<guid>urn:lj:livejournal.com:atom1:jglisse:2081</guid>
	<link>http://jglisse.livejournal.com/2081.html</link>
	<description>So, you likely noticed i am a crazy blogger with a new post everydays ;)&lt;br /&gt;Today amusement was finishing cleaning up the early state of the r600/r700&lt;br /&gt;winsys API i want to base the r600/r700 gallium3d driver on. There is&lt;br /&gt;still a lot of things to finish, mostly finishing the states splitup.&lt;br /&gt;Once all the states are in a nice structure i will plug this winsys&lt;br /&gt;with a r600/r700 pipe driver but don't hold your breath, first i am&lt;br /&gt;doing this during my free time, second even when we reach this state&lt;br /&gt;i don't think we will be able to walk on Mars or the on Moon.&lt;br /&gt;&lt;br /&gt;What matter here, more than the beauty of the code, is the design of the&lt;br /&gt;beast. It's a different approach from what we have been using so far and&lt;br /&gt;i believe it brings enough interesting features. For instance, the pipe&lt;br /&gt;driver won't have to worry about the cs buffer size. We can do advanced&lt;br /&gt;command/states checking so that we don't try to program the GPU into a&lt;br /&gt;stupid states. There is a bunch of others interesting things about this&lt;br /&gt;but i need to save some of my tricks for my FOSDEM talks.&lt;br /&gt;&lt;br /&gt;So if you bore and you an R7xx GPU with KMS working then you might want&lt;br /&gt;to test this beautifull software and see a neat grey square on a blue&lt;br /&gt;background, which, oddly enough, i find entertaining, well it's maybe&lt;br /&gt;not as much fun as gears but it's good enough.&lt;br /&gt;&lt;br /&gt;(It's a standalone KMS app which runs from a console without X running)&lt;br /&gt;&lt;a href=&quot;http://cgit.freedesktop.org/~glisse/r600winsys/&quot;&gt;http://cgit.freedesktop.org/~glisse/r600winsys/&lt;/a&gt;</description>
	<pubDate>Sun, 24 Jan 2010 22:08:48 +0000</pubDate>
</item>
<item>
	<title>Christian Schaller: Getting Chromium onto the GStreamer lovetrain</title>
	<guid>http://blogs.gnome.org/uraeus/?p=1220</guid>
	<link>http://blogs.gnome.org/uraeus/2010/01/22/getting-chromium-onto-the-gstreamer-lovetrain/</link>
	<description>&lt;p&gt;Bastien Nocera is known for a lot of things. Most people in Gnome probably knows him as the maintainer of the &lt;a href=&quot;http://www.gnome.org/projects/totem/&quot;&gt;Totem&lt;/a&gt; media player. In the Fedora community he is known as one who deals with a lot of the challenges around multimedia. Here in the UK he is also known as the only frenchman to ever get fully naturalized. &lt;/p&gt;
&lt;p&gt;Anyway his latest effort is to try to try and kickstart some work in Google Chromium to get it to use everyone favorite media framework &lt;a href=&quot;http://gstreamer.freedesktop.org&quot;&gt;GStreamer&lt;/a&gt;. Bastiens explains a lot of his rationale in the &lt;a href=&quot;http://code.google.com/p/chromium/issues/detail?id=32861&quot;&gt;Chromium bug report&lt;/a&gt;, but I am hoping to get others in the community to chime in too, and even if you don&amp;#8217;t have anything new to add, just let Google know you care by starring up this bug report.&lt;/p&gt;</description>
	<pubDate>Fri, 22 Jan 2010 16:46:49 +0000</pubDate>
</item>
<item>
	<title>Ian Romanick: GLU3 FTW!</title>
	<guid>http://www.paranormal-entertainment.com/idr/blog/posts/2010-01-22T15:20:09Z-GLU3_FTW/</guid>
	<link>http://www.paranormal-entertainment.com/idr/blog/posts/2010-01-22T15:20:09Z-GLU3_FTW/</link>
	<description>&lt;p&gt;I just finished pitching my fledgling GLU3 library to the ARB, and
everybody loved it.  Quite a few people said that they've hacked up
something similar, but much less complete, to get simple demo apps
running.  A few of the people had functionality not in the library,
and it sounds like I may get a few code contributions.  It also sounds
like it &lt;em&gt;may&lt;/em&gt; be included in the &lt;a href=&quot;http://www.opengl.org/sdk&quot;&gt;OpenGL
SDK&lt;/a&gt;.  Yay me!&lt;/p&gt;

&lt;p&gt;For those interested, the doxygen documentation is at:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://people.freedesktop.org/~idr/glu3&quot;&gt;http://people.freedesktop.org/~idr/glu3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The GIT tree for the code is available at:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git://anongit.freedesktop.org/~idr/glu3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;At some point the tree will probably move somewhere that can allow
direct commits by people other than me.  I'll cross that bridge when I
come to it.&lt;/p&gt;</description>
	<pubDate>Fri, 22 Jan 2010 15:20:09 +0000</pubDate>
</item>
<item>
	<title>Vincent Untz: Updated GNOME for openSUSE 11.2, and why it's good</title>
	<guid>urn:md5:f0d9ed0d862a97eeb5b4c5ecd49999b0</guid>
	<link>http://www.vuntz.net/journal/post/2010/01/22/Updated-GNOME-for-openSUSE-11.2</link>
	<description>&lt;p&gt;&lt;a href=&quot;http://lmedinas.livejournal.com/14739.html&quot;&gt;Luis&lt;/a&gt; already unleashed the word: GNOME 2.28.2 will be released as an online update for openSUSE 11.2 (for reference, openSUSE 11.2 was initially released with 2.28.1). You can currently help testing that everything is fine with the packages by adding the &lt;a href=&quot;http://download.opensuse.org/update/11.2-test/&quot;&gt;11.2-test repository&lt;/a&gt; and upgrading. Please go ahead and test it, and tell us if it breaks anything. Hopefully, it should work quite fine.&lt;/p&gt;


&lt;p&gt;What is really exciting about this is of course not that we're delivering bug fixes to our users ;-) But with 11.2, openSUSE got a new &lt;a href=&quot;http://en.opensuse.org/Maintenance&quot;&gt;maintenance team&lt;/a&gt;, with more community involvement. One of the amazing result is that it is (or at least, feels) much easier now to release online updates for packages, with a process that everybody can follow — it used to be restricted to Novell employees. Another welcome change is that we can finally release new upstream versions as updates, with some obvious restrictions: the new versions should only contain bug fixes, and should fix real important bugs for users.&lt;/p&gt;


&lt;p&gt;And this is what enabled the release of GNOME 2.28.2 as an update for openSUSE 11.2: this version bump was lead by &lt;a href=&quot;http://dominique.leuenberger.net/blog&quot;&gt;Dominique&lt;/a&gt; and &lt;a href=&quot;http://www.coolice.org/blog&quot;&gt;Magnus&lt;/a&gt;. I must admit I'm really glad that I didn't have to do anything ;-) The GNOME policy to only do bug fixes (and updated translations, which is something we also care about!) on a stable branch, and the fact that we're doing a good job at being reliable on this upstream, certainly helped too.&lt;/p&gt;


&lt;p&gt;But wait, there's more! If you're crazy about GNOME but still want a stable distribution, you can use GNOME 2.29 on openSUSE 11.2! The Build Service is really helping us here, making it easy to reuse our GNOME 2.29 packages that we have in Factory on 11.2, with nearly no work at all. We have some &lt;a href=&quot;http://en.opensuse.org/GNOME/2.30&quot;&gt;documentation&lt;/a&gt; on how to use GNOME 2.29 on openSUSE 11.2, and testers are welcome. It should work fine and not eat your computer. Testing &lt;a href=&quot;http://en.opensuse.org/Factory&quot;&gt;Factory&lt;/a&gt; is also an option, and while it used to be hardly usable in the past, the community is now doing a good job at making sure it works fine most of the time, if not all the time.&lt;/p&gt;


&lt;p&gt;Did I mention you can get the latest version of various applications on 11.2 by just adding the GNOME:Apps repository? No need to update the distribution. No need to update GNOME. This is getting insanely cool :-) And both for packagers (nearly no effort to backport packages) and users (latest versions of their preferred applications available on a stable distribution).&lt;/p&gt;</description>
	<pubDate>Fri, 22 Jan 2010 11:04:00 +0000</pubDate>
</item>
<item>
	<title>Julien Danjou: On media players: 2 years after</title>
	<guid>urn:md5:743ddbc97eb7d2799a42ad0116db82b3</guid>
	<link>http://julien.danjou.info/blog/index.php/post/2010/01/22/On-media-players%3A-2-years-after</link>
	<description>&lt;p&gt;Two years ago, &lt;a href=&quot;http://julien.danjou.info/blog/index.php/post/2007/08/10/On-media-players-xmms-anda-audacious&quot;&gt;I wrote about my switch&lt;/a&gt; from my beloved &lt;em&gt;xmms&lt;/em&gt; to &lt;a href=&quot;http://audacious-media-player.org/&quot;&gt;audacious&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;During this 2 years with Audacious, I suffered a bit. It was working quite fine, but I saw no big progress around it. Life happened, and I had to use a network system to play music. I started to use PulseAudio over TCP, but it does not work well, and does not work at all with Audacious (and even if the plugin is provided by upstream). So I decided to dump it.&lt;/p&gt;


&lt;p&gt;And some days ago I discovered &lt;a href=&quot;http://sonata.berlios.de/&quot;&gt;Sonata&lt;/a&gt;, a &lt;a href=&quot;http://www.musicpd.org/&quot;&gt;MPD&lt;/a&gt; client. I never liked MPD so far because all clients I found were lame.&lt;/p&gt;


&lt;p&gt;But I really like Sonata. It allows me to listen music the way I still want: load everything in one playlist, listen everything randomly or type a song/artist to jump to it directly in the current playlist. It even has some nice feature (lyrics, so I'll be able to song out loud, covers, tag editing…) and is written in Python and GTK+ (some days I may even hack it!).&lt;/p&gt;



&lt;p&gt;You can rest in peace x11amp :-p&lt;/p&gt;</description>
	<pubDate>Fri, 22 Jan 2010 08:17:00 +0000</pubDate>
</item>
<item>
	<title>Dave Airlie: LCA 2010 talk</title>
	<guid>urn:lj:livejournal.com:atom1:airlied:69950</guid>
	<link>http://airlied.livejournal.com/69950.html</link>
	<description>So I originally was going to attend LCA 2010 for the week, but real life interjected and I couldn't abandon family commitments for that long, so I ended up doing a crazy cross-Tasman dash. As well as the change in flights, Isabel came down with a virus and Gia also got it, I think I got a milder version of it, but they both seem alright by the time I left but I had little sleep the previous two nights.&lt;br /&gt;&lt;br /&gt;So I flew on Wednesday morning, got in Wed afternoon, met up with ppl, had a couple of beers, wrote slides, slept, finished slides, went to Thur morning, drugged myself up on Nurofen Plus to combat viral effects, gave my talk, went to see ajax talk, went to professional network dinner, went for beers with ajax + benh (listening to an American and a Frenchman speaking about wine while listening to drum n bass in a Wellington pub was a bit wierd). Decided to push on through, so got back to room at 3am or so, checked out/left for airport at 4:20am, flew at 6:20am, into BNE at 7am, home, bed, sleep for a few hours and mind Isabel for afternoon.&lt;br /&gt;&lt;br /&gt;So my talk was &quot;So you've put kernel graphics drivers in the kernel... what next? can I haz ponies?&quot;. My slide deck is off the 0-content style + lots of pictures of various ponies, which I've found, they'll be on the LCA site soon and I'll upload them when I plug that laptop in again.&lt;br /&gt;&lt;br /&gt;(a) stop people reading ahead of your bullet points so they don't doze off while you are catching up&lt;br /&gt;(b) gives them something to look at apart from me while they actually have to listen to me :-P&lt;br /&gt;&lt;br /&gt;It seemed well received, the room was pretty packed out (ppl standing/sitting - LCA schedulers you listening?) and I don't think the sickness or lack of decent preparation made a big difference. I'd like to apologise for not even mentioning SGX/poulsbo, I'm not sure how but it totally slipped my mind, but the situation hasn't really changed in terms of how screwed it is.</description>
	<pubDate>Fri, 22 Jan 2010 03:37:11 +0000</pubDate>
</item>
<item>
	<title>Luc Verhaegen: FOSDEM: Coreboot and X.org Schedules.</title>
	<guid>urn:lj:livejournal.com:atom1:libv:20873</guid>
	<link>http://libv.livejournal.com/20873.html</link>
	<description>&lt;u&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;&lt;a href=&quot;http://www.coreboot.org/FOSDEM_2010&quot;&gt;coreboot DevRoom&lt;/a&gt;&lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;This year, at FOSDEM, there is &lt;a href=&quot;http://www.coreboot.org/FOSDEM_2010&quot;&gt;a coreboot DevRoom&lt;/a&gt;, and for the hardware-lover, there are some really interesting talks there. When putting together the final schedule, I actually had to spend some time on containing people's enthusiasm and limiting their ideas to something feasible for FOSDEM. A rather good sign, and i am sure that many people will enjoy the truly interesting and juicily in-depth talks there.&lt;br /&gt;&lt;br /&gt;Here is a quick copy of &lt;a href=&quot;http://www.coreboot.org/FOSDEM_2010#Schedule&quot;&gt;the saturday afternoon schedule&lt;/a&gt;:&lt;br /&gt;    * 13:00 : Peter Stuge - coreboot introduction.&lt;br /&gt;    * 14:00 : Peter Stuge - coreboot and PC technical details.&lt;br /&gt;    * 15:00 : Rudolf Marek - ACPI and Suspend/Resume under coreboot.&lt;br /&gt;    * 16:00 : Rudolf Marek - coreboot board porting.&lt;br /&gt;    * 17:00 : Carl-Daniel Hailfinger - Flashrom.&lt;br /&gt;    * 18:00 : Luc Verhaegen - Flash Enable BIOS Reverse Engineering.&lt;br /&gt;&lt;br /&gt;So yeah, i have a talk at 18:00 which promises to be fun.&lt;br /&gt;&lt;br /&gt;Basically, for flashrom, we sometimes need to find out what write protection certain motherboards implement, so we can disable that from within flashrom. This usually means that someone (usually Michael Karcher or me) has to go and disassemble the BIOS to find out which GPIO line needs to be toggled.&lt;br /&gt;&lt;br /&gt;For a single board, this is usually not a hard task (and actually fun), but the overal amount of work in flashrom is sizable, and the two of us are not available 24/7 to do this for every user in need. So this talk is meant to alleviate that.&lt;br /&gt;&lt;br /&gt;I just wrote the slides for it, and while i might alter the notes and twiddle it a bit still in the next two weeks, it should be pretty much finished.&lt;br /&gt;&lt;br /&gt;The structure of the talk is the following:&lt;br /&gt;* quick overview of how flashes are usually wired up on motherboards.&lt;br /&gt;* quick overview of how to handle Award, ASUS, AMI and phoenix BIOSes.&lt;br /&gt;* example of disassembly of a BIOS.&lt;br /&gt;&lt;br /&gt;The BIOS that is being disassembled is &lt;a href=&quot;http://people.freedesktop.org/~libv/award_crafted.bin.bz2&quot;&gt;an especially crafted one&lt;/a&gt;, with an award style flash enable for a fictitious board. It's mostly filled with 0xFF, apart from the flash enable itself. And the talk itself is pretty accessible, you do not have to know much of assembly or hardware to be able to participate.&lt;br /&gt;&lt;br /&gt;If you are visiting the talk, and you want to join in, then you might already want to download &lt;a href=&quot;http://people.freedesktop.org/~libv/award_crafted.bin.bz2&quot;&gt;the image&lt;/a&gt;, and make sure that you have hexdump and ndisasm installed (as there are about 4000 others trying to use the wireless at FOSDEM).&lt;br /&gt;&lt;br /&gt;It promises to be a blast!&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;&lt;font size=&quot;3&quot;&gt;&lt;a href=&quot;http://wiki.x.org/wiki/fosdem2010&quot;&gt;X.org DevRoom&lt;/a&gt;&lt;/font&gt;&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;On sunday there is of course the &lt;a href=&quot;http://wiki.x.org/wiki/fosdem2010&quot;&gt;X.org DevRoom&lt;/a&gt;, for which the schedule is also online.&lt;br /&gt;&lt;br /&gt;It seems to be a tradition that I have to go and beg people to talk at truly great event like FOSDEM.&lt;br /&gt;&lt;br /&gt;Last year, we had 7 talks in the brochure, while there was room for 13, and we eventually had 9 talks. All these talks were hugely popular, with almost full capacity usage most of the time, but the actual talk coverage itself left much to be desired.&lt;br /&gt;&lt;br /&gt;This year I decided to split the usual two day X.org DevRoom into coreboot (saturday afternoon) and X.org (sunday), so that the X.org schedule could be tighter and more exciting.&lt;br /&gt;&lt;br /&gt;Here is &lt;a href=&quot;http://wiki.x.org/wiki/fosdem2010#schedule&quot;&gt;the result&lt;/a&gt;;&lt;br /&gt;* 10.00: ...&lt;br /&gt;* 11.00: ...&lt;br /&gt;* 12.00: ...&lt;br /&gt;* 13.00: Daniel Stone : Polishing X11 and making it shiny.&lt;br /&gt;* 14.00: Luc Verhaegen : The free software desktop’s graphics driver stack.&lt;br /&gt;* 15.00: Jerome Glisse : GPU Userspace - kernel interface &amp;amp; Radeon kernel modesetting status.&lt;br /&gt;* 16.00: Mikhail Gusarov : X on e-Paper.&lt;br /&gt;&lt;br /&gt;I, and a lot of fosdem visitors with me, thank Daniel, Jerome and Mikhail for their commitment. These talks seem very interesting and will no doubt draw in a lot of visitors and carry out the good name of X.org.&lt;br /&gt;&lt;br /&gt;It does make one think. There seems to be a direct and inverse relationship between the size and status of a free software project, and the willingness of its members to go and promote this project on the biggest free software event on that continent that holds the majority of its current developers and the largest potential of future contributors.&lt;br /&gt;&lt;br /&gt;In any case, I have been communicated that, as there are many very worthwhile and also very willing projects who get denied a DevRoom each year, a project with such a poor showing will not be given another DevRoom.&lt;br /&gt;&lt;br /&gt;While I start putting together the slides for my X.org talk, I can only concede.</description>
	<pubDate>Fri, 22 Jan 2010 01:22:05 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Seven</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-7</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-7.html</link>
	<description>&lt;p&gt;Here's the seventh and &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;final&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-2.html&quot;&gt;part&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-3.html&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-4.html&quot;&gt;my&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-5.html&quot;&gt;ongoing&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-6.html&quot;&gt;series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;One of the grandest sights in Delhi is &lt;a href=&quot;http://en.wikipedia.org/wiki/Humayun%27s_Tomb&quot;&gt;Humayun's tomb&lt;/a&gt;, a predecessor of the greatest mausoleum of them all, the &lt;a href=&quot;http://0pointer.de/static/tajmahal2.html&quot;&gt;Taj Mahal&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/delhi3&quot;&gt;&lt;img alt=&quot;Humayun's Tomb&quot; src=&quot;http://0pointer.de/static/delhi3-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;174&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A little bit further down a view on the garden:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/delhi4&quot;&gt;&lt;img alt=&quot;Humayun's Tomb&quot; src=&quot;http://0pointer.de/static/delhi4-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;177&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From a different corner:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/delhi2&quot;&gt;&lt;img alt=&quot;Humayun's Tomb&quot; src=&quot;http://0pointer.de/static/delhi2-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;159&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We'll finish with our last panorama that shows the courtyard the &lt;a href=&quot;http://en.wikipedia.org/wiki/Jama_Masjid,_Delhi&quot;&gt;Jama Masjid&lt;/a&gt; of Old Delhi:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/delhi5&quot;&gt;&lt;img alt=&quot;Jama Masjid&quot; src=&quot;http://0pointer.de/static/delhi5-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;183&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all panoramas from this trip. Thanks for your interest.&lt;/p&gt;</description>
	<pubDate>Tue, 19 Jan 2010 20:43:00 +0000</pubDate>
</item>
<item>
	<title>Christian Schaller: Why is it impossible to not hate Ryanair?</title>
	<guid>http://blogs.gnome.org/uraeus/?p=1218</guid>
	<link>http://blogs.gnome.org/uraeus/2010/01/19/why-is-it-impossible-to-not-hate-ryanair/</link>
	<description>&lt;p&gt;When I went to Norway this year for Christmas I had the most convenient travel route ever. I had a direct flight from Stanstead Airport to Rygge in Norway. Rygge is a tiny airport, but when you visit people on the southeast side of Oslo like I did, its perfect. &lt;/p&gt;
&lt;p&gt;The ticket was also quite reasonably priced even though it was the Christmas holiday.&lt;/p&gt;
&lt;p&gt;Yet, despite offering me this ideally set up trip between the two airports on both side which fits me the best, I struggle to dig up any kind of positive feelings for Ryanair. &lt;/p&gt;
&lt;p&gt;Was discussing it a bit with Wim and Tim and I think a big part of the reason for this is the constant feeling you get when booking a trip with them that they are trying to make you think their fares are cheaper than they actually are or the feeling that they attempt to &amp;#8217;sneak&amp;#8217; in extra options.&lt;/p&gt;
&lt;p&gt;For instance how they charge you for the use of your credit/debit card, a fee that got nothing to do with the actual cost to them and the fact that it is practically impossible to avoid it. As Tim mentioned when we discussed it, if they just included that 5£ fee in the price you wouldn&amp;#8217;t think about it and just be happy you got a cheap ticket, instead you feel they are trying to pull a fast one on you and make their prices look even better than they are by pretending mandatory expenses aren&amp;#8217;t mandatory.&lt;/p&gt;
&lt;p&gt;Maybe Ryanair doesn&amp;#8217;t care if I or anyone else actually likes them, I mean I still booked my flight to Norway with them because they where the only ones flying from Stanstead. Yet on the other side I always tend to fly with Easyjet instead of Ryanair if I can, both due to usually flying to better airports and a general feeling that if I search for a flight the price they list for that flight is the price I am actually paying.&lt;/p&gt;
&lt;p&gt;Maybe the problem is simply that Ryanair doesn&amp;#8217;t understand that even when you are travelling I don&amp;#8217;t like the feeling of being taken for a ride &lt;img src=&quot;http://blogs.gnome.org/uraeus/wp-content/mu-plugins/tango-smilies/tango/face-smile.png&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;</description>
	<pubDate>Tue, 19 Jan 2010 14:42:40 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: ioquake3 on the N900</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-3586424019371706705</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/mFZ-RpkvlOk/ioquake3-on-n900.html</link>
	<description>&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_SwNjMGn1QH0/S1QIzjsEwWI/AAAAAAAAAGk/kEFIN72IGmM/s1600-h/20100118_007.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_SwNjMGn1QH0/S1QIzjsEwWI/AAAAAAAAAGk/kEFIN72IGmM/s200/20100118_007.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;Apparently my little after work project was cool enough to make the &lt;a href=&quot;http://ioquake3.org/2010/01/17/ioquake3-on-the-nokia-n900/&quot;&gt;news page over at ioquake3.org&lt;/a&gt;. :-) I just thought I'd mention here that you can read some more about it in my earlier (first actually) blog post, and there are &lt;a href=&quot;http://picasaweb.google.com/omcfadde/OliverMcFadden#slideshow/5427959691542366642&quot;&gt;more pictures over here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks again to &lt;a href=&quot;http://www.idsoftware.com/&quot;&gt;id Software&lt;/a&gt; and &lt;a href=&quot;http://ioquake3.org/&quot;&gt;ioquake3&lt;/a&gt; for a great code base! And to the people at Nokia and Maemo Summit for support and encouragement.&lt;br /&gt;
&lt;br /&gt;
Btw, if you do own an N900 and have played with the ioquake3 port, please leave your comments and suggestions for improvements in case I feel the urge for another weekend hacking session. (I am aware there have been problems installing the package in the past, but they &lt;i&gt;should&lt;/i&gt; now be fixed.)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-3586424019371706705?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Nw6LzkYn1tyl4Rtz6kouuHjA5Qo/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Nw6LzkYn1tyl4Rtz6kouuHjA5Qo/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Nw6LzkYn1tyl4Rtz6kouuHjA5Qo/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Nw6LzkYn1tyl4Rtz6kouuHjA5Qo/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/mFZ-RpkvlOk&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 19 Jan 2010 00:03:50 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Six</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-6</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-6.html</link>
	<description>&lt;p&gt;Here's the sixth &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;part&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-2.html&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-3.html&quot;&gt;my&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-4.html&quot;&gt;ongoing&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-5.html&quot;&gt;series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Leaving Jodhpur we continued our journey to &lt;a href=&quot;http://en.wikipedia.org/wiki/Jaisalmer&quot;&gt;Jaisalmer&lt;/a&gt;, a sand castle of a town in the &lt;a href=&quot;http://en.wikipedia.org/wiki/Thar_Desert&quot;&gt;Thar desert&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/jaisalmer2&quot;&gt;&lt;img alt=&quot;Jaisalmer&quot; src=&quot;http://0pointer.de/static/jaisalmer2-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;213&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the vicinity of Jaisalmer you'll find cliche sand dunes like you'd expect from a grown-up desert:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/jaisalmer1&quot;&gt;&lt;img alt=&quot;Jaisalmer&quot; src=&quot;http://0pointer.de/static/jaisalmer1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;194&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our next station after a long, cold and dusty train ride was &lt;a href=&quot;http://en.wikipedia.org/wiki/Delhi&quot;&gt;Delhi&lt;/a&gt;. The principal mosque of Old Delhi is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Jama_Masjid,_Delhi&quot;&gt;Jama Masjid&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/delhi1&quot;&gt;&lt;img alt=&quot;Jama Masjid&quot; src=&quot;http://0pointer.de/static/delhi1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;183&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for now, tomorrow I'll post the rest of my panoramas from this trip, all from Delhi.&lt;/p&gt;</description>
	<pubDate>Mon, 18 Jan 2010 21:14:00 +0000</pubDate>
</item>
<item>
	<title>Nagappan Alagappan: Announce: Linux Desktop Testing Project (LDTP) 2.0.1 released</title>
	<guid>tag:blogger.com,1999:blog-9589202.post-5953181024002495894</guid>
	<link>http://nagappanal.blogspot.com/2010/01/announce-linux-desktop-testing-project.html</link>
	<description>Hello all,&lt;br /&gt;&lt;br /&gt;LDTPv2 a complete rewrite of LDTPv1 in Python. This release is dedicated to Eitan Isaacson[1]. Eitan wrote the LDTPv2 framework and important API's in LDTPv2 !&lt;br /&gt;&lt;br /&gt;My co-workers in VMware Ranjith Murugan, Gaurav Sharma and Anupa Kamath, did a wonderful job in verifying the compatibility of LDTPv1 and v2. Special thanks to them and my manager Greg McShea on supporting this effort.&lt;br /&gt;&lt;br /&gt;Special thanks to Ara Pulido[2] for tracking the LDTPv2 status and pushing us to make the release at the earliest, as Ara wants to include LDTPv2 in Ubuntu Lucid, before feature freeze.&lt;br /&gt;&lt;br /&gt;Following are the difference between LDTPv1 and v2:&lt;br /&gt;&lt;br /&gt;* getlabel function is deprecated - you can use getobjectproperty('winodw', 'objectname', 'label') # To verify the display text&lt;br /&gt;* Label in v2 doesn't return the accelerator key (eg: in v1 &quot;_Find&quot; will be returned on v2 just &quot;Find&quot; is returned)&lt;br /&gt;* Strict data types are checked, in v1 most of the inputs are considered as string, if not they will be converted to string, but on v2 exception will be&lt;br /&gt;thrown, if incorrect type is passed to any function * In v1 we have ldtp binary, on v2 we need to check ldtpd.sh for now, this doesn't return the version for now, it has to be implemented, if you check for &quot;ldtp --version&quot; in v1&lt;br /&gt;* In v1 each action command was given 1 second sleep time internally before execution, but on v2 there is no delay unless its set in environment variable LDTP_COMMAND_DELAY. So, the script has to use appropriate wait time&lt;br /&gt;* As Javier (from Ubuntu QA team) found, launchapp, argument name changed from 'arg' to 'args'&lt;br /&gt;&lt;br /&gt;Some of missing API in v2:&lt;br /&gt;&lt;br /&gt;* Calendar object&lt;br /&gt;* logFailures in v1 is not implemented in v2&lt;br /&gt;* LDTP logging methods&lt;br /&gt;* appundertest&lt;br /&gt;* launchapp2&lt;br /&gt;* blackoutregion&lt;br /&gt;* label object&lt;br /&gt;* panel object&lt;br /&gt;* ProcessStatistics&lt;br /&gt;&lt;br /&gt;LTFX is completely removed in LDTP v2 in favor of wnck implmentation&lt;br /&gt;&lt;br /&gt;Download LDTPv2 source from http://download.freedesktop.org/ldtp/2.x/2.0.x/ldtp2-2.0.1.tar.gz&lt;br /&gt;&lt;br /&gt;New dependency:&lt;br /&gt;&lt;br /&gt;python-twisted-web&lt;br /&gt;python-pyatspi&lt;br /&gt;python-gtk&lt;br /&gt;python-gnome&lt;br /&gt;&lt;br /&gt;Will schedule binary package building for different Linux distribution using openSUSE Build Service - http://download.opensuse.org/repositories/home:/anagappan:/ldtp2:/&lt;br /&gt;&lt;br /&gt;Documentation references:&lt;br /&gt;&lt;br /&gt;For detailed information on LDTP framework and latest updates visit http://ldtp.freedesktop.org&lt;br /&gt;&lt;br /&gt;For information on various APIs in LDTP including those added for this release can be got from http://ldtp.freedesktop.org/user-doc/index.html&lt;br /&gt;&lt;br /&gt;Report bugs - http://ldtp.freedesktop.org/wiki/Bugs&lt;br /&gt;&lt;br /&gt;To subscribe to LDTP mailing lists, visit http://ldtp.freedesktop.org/wiki/Mailing_20list&lt;br /&gt;&lt;br /&gt;IRC Channel - #ldtp on irc.freenode.net&lt;br /&gt;&lt;br /&gt;Thanks&lt;br /&gt;Nagappan&lt;br /&gt;&lt;br /&gt;[1] - http://monotonous.org/&lt;br /&gt;[2] - http://ubuntutesting.wordpress.com/&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/9589202-5953181024002495894?l=nagappanal.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 18 Jan 2010 21:04:03 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Five</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-5</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-5.html</link>
	<description>&lt;p&gt;Here's the fourth part &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;of&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-2.html&quot;&gt;my&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-3.html&quot;&gt;ongoing&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-4.html&quot;&gt;series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After Udaipur the next stop on our trip was &lt;a href=&quot;http://en.wikipedia.org/wiki/Jodhpur&quot;&gt;Jodhpur&lt;/a&gt;, the blue city. Which is called that way due of the blue colour of many of its houses:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/jodhpur2&quot;&gt;&lt;img alt=&quot;Jodhpur&quot; src=&quot;http://0pointer.de/static/jodhpur2-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;159&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On a hill next to &lt;a href=&quot;http://en.wikipedia.org/wiki/Mehrangarh_Fort&quot;&gt;Mehrangarh Fort&lt;/a&gt;, one of the biggest Forts in India (the big sand castle on the hill in the panorama above), you find the &lt;a href=&quot;http://en.wikipedia.org/wiki/Jaswant_Thada&quot;&gt;Jaswant Thada&lt;/a&gt;, a memorial of the Maharajas of Jodhpur:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/jodhpur1&quot;&gt;&lt;img alt=&quot;Jodhpur&quot; src=&quot;http://0pointer.de/static/jodhpur1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;235&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside the fort you'll find highly decorated courtyards:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/jodhpur3&quot;&gt;&lt;img alt=&quot;Jodhpur&quot; src=&quot;http://0pointer.de/static/jodhpur3-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;247&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for Jodhpur, tomorrow I'll post more panoramas, from other stops of our trip.&lt;/p&gt;</description>
	<pubDate>Sun, 17 Jan 2010 17:43:00 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Four</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-4</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-4.html</link>
	<description>&lt;p&gt;Here's the fourth part of &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;my&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-2.html&quot;&gt;ongoing&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-3.html&quot;&gt;series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After Hampi we went to Bangalore to attend &lt;a href=&quot;http://foss.in/&quot;&gt;foss.in&lt;/a&gt;. (Fantastic conference, btw. The concerts at
the venue are unparalleled.) From there we flew up to &lt;a href=&quot;http://en.wikipedia.org/wiki/Udaipur&quot;&gt;Udaipur&lt;/a&gt;, in Rajasthan. Udaipur
is (among other things) famous for being the place where the central scenes of &lt;a href=&quot;http://en.wikipedia.org/wiki/Octopussy&quot;&gt;Octopussy&lt;/a&gt; were filmed.
Octopussy's famous white palace is on Jagniwas Island in Lake Pichola:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/udaipur1&quot;&gt;&lt;img alt=&quot;Udaipur&quot; src=&quot;http://0pointer.de/static/udaipur1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;70&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This panorama was taken from another island in the lake, Jagmandir Island, which is visible in the following shot on the left:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/udaipur2&quot;&gt;&lt;img alt=&quot;Udaipur&quot; src=&quot;http://0pointer.de/static/udaipur2-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;150&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Udaipur's scenery, seen from the Maharaja's City Palace down onto Pichola Lake:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/udaipur3&quot;&gt;&lt;img alt=&quot;Udaipur&quot; src=&quot;http://0pointer.de/static/udaipur3-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;175&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for Udaipur, tomorrow I'll post more panoramas, from other stops of our trip.&lt;/p&gt;</description>
	<pubDate>Sat, 16 Jan 2010 02:10:00 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: Announcing udev-browse</title>
	<guid>http://0pointer.de/blog/projects/udev-browse</guid>
	<link>http://0pointer.de/blog/projects/udev-browse.html</link>
	<description>&lt;p&gt;It's easy to get lost in &lt;tt&gt;/sys&lt;/tt&gt; and not much fun typing long
&lt;tt&gt;udevadm info&lt;/tt&gt; command lines all the time. Today, when I had enough of
that I sat down and spent an hour to write a little UI for exploring the
udev/sysfs tree: &lt;tt&gt;udev-browse&lt;/tt&gt;. I wrote it for my own use, but I am quite sure I am not the only
one who wants a little bit simpler access to the device tree. &lt;a href=&quot;http://git.0pointer.de/?p=udev-browse.git&quot;&gt;So here you go.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And since everybody loves screenshots here you go:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/public/udev-browse&quot;&gt;&lt;img src=&quot;http://0pointer.de/public/udev-browse&quot; width=&quot;931&quot; height=&quot;728&quot; alt=&quot;udev-browse&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Two usability hints: if you run &lt;tt&gt;udev-browse&lt;/tt&gt; from a directory in
&lt;tt&gt;/sys&lt;/tt&gt; &lt;tt&gt;udev-browse&lt;/tt&gt; will automatically present the device of
that path on startup. And if you know the name of a device you can just type it
into the device listbox (which is focussed by default). The usual Gtk+ live
search will then find you the right entry right-away. It's pretty nifty.&lt;/p&gt;

&lt;p&gt;It's written in Vala with minimal dependencies.&lt;/p&gt;

&lt;p&gt;I want to keep the maintainership burden for this minimal. So no tarballs, no releases, and I won't reply to your emails regarding this tool, unless they include a good, clean, git formatted patch. Thank you for your understanding.&lt;/p&gt;

&lt;p&gt;Anyone wants to package this for Fedora? I'd be very thankful if someone would pick it up.&lt;/p&gt;

&lt;p&gt;Have fun.&lt;/p&gt;</description>
	<pubDate>Sat, 16 Jan 2010 01:19:00 +0000</pubDate>
</item>
<item>
	<title>Bastien Nocera: User accounts dialogue</title>
	<guid>tag:blogger.com,1999:blog-977684764667858073.post-3928229292088072966</guid>
	<link>http://www.hadess.net/2010/01/user-accounts-dialogue.html</link>
	<description>Over Christmas, &lt;a href=&quot;http://blogs.fedoraproject.org/wp/mclasen/&quot;&gt;Matthias&lt;/a&gt; worked on the first pass at the &lt;a href=&quot;https://fedoraproject.org/wiki/Features/UserAccountDialog&quot;&gt;lo&lt;/a&gt;&lt;a href=&quot;https://fedoraproject.org/wiki/Features/UserAccountDialog&quot;&gt;ng awaited user accounts tool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I did my bit and committed this afternoon the new icon selection popup, which allows you to capture and crop a picture from your webcam (through &lt;a href=&quot;http://mail.gnome.org/archives/gnome-announce-list/2010-January/msg00039.html&quot;&gt;my earlier cheese work&lt;/a&gt;). I also committed the ability to save your fingerprints, as was available in gnome-about-me.&lt;br /&gt;&lt;br /&gt;Screenshots below. More information on the &lt;a href=&quot;https://fedoraproject.org/wiki/Features/UserAccountDialog&quot;&gt;Fedora Features page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CXBsnc7cI/AAAAAAAAAUY/4Dnw8cvUQGE/s1600-h/icon-selection.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CXBsnc7cI/AAAAAAAAAUY/4Dnw8cvUQGE/s320/icon-selection.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5427003606393744834&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;The new icon selection popup&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CXLCrCPQI/AAAAAAAAAUg/5ndbexd3uL8/s1600-h/fingerprint-enrollment.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CXLCrCPQI/AAAAAAAAAUg/5ndbexd3uL8/s320/fingerprint-enrollment.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5427003766933175554&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;span&gt;Fingerprint enrollment&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CYAI2WnPI/AAAAAAAAAUo/ck6fv3g7vtc/s1600-h/webcam.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_2o81e3u4ZFU/S1CYAI2WnPI/AAAAAAAAAUo/ck6fv3g7vtc/s320/webcam.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5427004679124327666&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;Webcam capture and cropping&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/977684764667858073-3928229292088072966?l=www.hadess.net&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Fri, 15 Jan 2010 16:19:00 +0000</pubDate>
</item>
<item>
	<title>Luc Verhaegen: Emergency BIOS update, the easy way.</title>
	<guid>urn:lj:livejournal.com:atom1:libv:20707</guid>
	<link>http://libv.livejournal.com/20707.html</link>
	<description>Jetway sells a cute VX800 mini-itx board which comes with a choice of VIA C7 and Nano cpu's: &lt;a href=&quot;http://www.jetwaycomputer.com/NF76.html&quot;&gt;the JNF76&lt;/a&gt;. At the end of last year, i became the proud owner of one of the rare DVI modules for this board, and shortly thereafter there was an ebay auction which got me a brand new board at half the listed price. I now found the time to go and play with this board, to at least give the ebay seller the positive rating he deserves :)&lt;br /&gt;&lt;br /&gt;What I found is that this board booted a debian old-stable (etch) just fine, but that debian stable (lenny), opensuse 11.1 and 9.04 ubuntu, all locked up shortly after initialising the ide controller. Some &lt;a href=&quot;http://osdir.com/ml/linux-kernel/2009-04/msg12014.html&quot;&gt;digging around revealed&lt;/a&gt; that this was an issue with the processor power state and recent kernels, and that this is only seen with an older bios version, and that version A03 and higher would fix this. Upon reboot, it was indeed confirmed that this was an old version, namely, A02.&lt;br /&gt;&lt;br /&gt;Since sadly, the network controller on this board is not supported by the old-stable kernel, i had to use a usb stick. So I stuffed &lt;a href=&quot;http://www.jetwaycomputer.com/NF76.html&quot;&gt;the latest bios&lt;/a&gt; and &lt;a href=&quot;http://www.flashrom.org/Downloads&quot;&gt;a copy of flashrom master&lt;/a&gt; on the stick, and stuck it in the jetway board. As i already had the libpci-dev package installed, a simple run of make got me a working flashrom binary. I then used flashrom -r jnf76.old.bios to dump the current bios, as a precaution. And then i ran flashrom -w on the new image.&lt;br /&gt;&lt;br /&gt;When running flashrom, there is a relatively high probability (50% is my current estimate, but will improve to about 30% soon) that it will not work. Motherboard makers like to provide an extra bit of protection for their bios images, and often use a gpio line from either the southbridge or the superio chip to set write protection on the flash chip.&lt;br /&gt;&lt;br /&gt;In flashrom, we keep a list of special board enables, which today mostly map which io line to set, and Michael Karcher and I spend quite a bit of our time digging out bioses for users to map this. So in this case, before i had tried to write to this chip, i had already done my 5 minute magic (&lt;a href=&quot;http://www.coreboot.org/FOSDEM_2010&quot;&gt;which i will explain at the coreboot devroom at FOSDEM&lt;/a&gt;) and found out that there was no special protection present.&lt;br /&gt;&lt;br /&gt;Flashrom then erased the chip correctly, and then subsequently wrote and verified the image. And i was then able to reboot into any of the installed distributions painlessly.&lt;br /&gt;&lt;br /&gt;If there was protection present, (and we didn't handle it yet in flashrom) then this would've made the erase fail at the first byte that isn't 0xFF, and then nothing was lost. There is also another type of protection only found on LPC/FWH/Parallel chips, where the boot block can be locked, and this has the same effect, but only on the boot block part, where you just need to restore all other pages to be able to continue working. We will then happily help create the board enable with you on the flashrom mailing list, so that you still can get your bios updated correctly (now, and in future).&lt;br /&gt;&lt;br /&gt;In any case, this was one of the easiest emergency bios updates i had ever done. No messing around with dos images and what not. I had already identified a working linux kernel when trying to nail down the issue, and then just needed to run flashrom to live happily ever after :)</description>
	<pubDate>Fri, 15 Jan 2010 15:01:35 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Three</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-3</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-3.html</link>
	<description>&lt;p&gt;Here's the third part of my &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;ongoing&lt;/a&gt; &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-2.html&quot;&gt;series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Still in Hampi here's another 360 from the Hills in Hampi down to the Achyutaraya Temple:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi5&quot;&gt;&lt;img alt=&quot;Matanga Hill&quot; src=&quot;http://0pointer.de/static/hampi5-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;234&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A little further down, before dawn, here's a shot from the rocky path leading up the hill:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi6&quot;&gt;&lt;img alt=&quot;Matanga Hill&quot; src=&quot;http://0pointer.de/static/hampi6-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;250&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our last picture for today is a view down from Hemakuta Hill which is
covered with old temples and other structures. In the middle you'll see the
large &lt;a href=&quot;http://en.wikipedia.org/wiki/Virupaksha_Temple&quot;&gt;Virupaksha
Temple&lt;/a&gt; which is still in full use. In that temple you'll find an amazing &lt;a href=&quot;http://en.wikipedia.org/wiki/Camera_obscura&quot;&gt;camera obscura&lt;/a&gt;, a
physics teacher's dream that projects the temple tower onto a wall (&lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Karnataka%202009-11&amp;amp;photo=871&quot;&gt;projection&lt;/a&gt;,
&lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Karnataka%202009-11&amp;amp;photo=865&quot;&gt;subject&lt;/a&gt;, more interesting in reality. Really.)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi8&quot;&gt;&lt;img alt=&quot;Hemakuta Hill&quot; src=&quot;http://0pointer.de/static/hampi8-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;155&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all for Hampi, tomorrow I'll post more panoramas, from other stops of our trip.&lt;/p&gt;</description>
	<pubDate>Thu, 14 Jan 2010 22:47:00 +0000</pubDate>
</item>
<item>
	<title>Ian Romanick: Sony Pictures Imageworks releases OSL code and docs</title>
	<guid>http://www.paranormal-entertainment.com/idr/blog/posts/2010-01-13T19:19:55Z-Sony_Pictures_Imageworks_releases_OSL_code_and_docs/</guid>
	<link>http://www.paranormal-entertainment.com/idr/blog/posts/2010-01-13T19:19:55Z-Sony_Pictures_Imageworks_releases_OSL_code_and_docs/</link>
	<description>&lt;p&gt;As pointed out in the excellent &lt;a href=&quot;http://www.realtimerendering.com/blog/sony-pictures-imageworks-open-source-projects/&quot;&gt;Real-Time Rendering
blog&lt;/a&gt;,
Sony Pictures Imageworks has released the documentation and &lt;em&gt;source code&lt;/em&gt; for
their &lt;a href=&quot;http://code.google.com/p/openshadinglanguage/&quot;&gt;Open Shading Language
compiler&lt;/a&gt;.  It's a slightly
different take on shading languages than GLSL / HLSL / Cg.  The idea is that
instead of generating final colors, as in other SLs, shaders compute
information about how a surface / light / whatever interacts.  These shaders
are then connected into a network, and complex global illumination is then
calculated by evaluating the network.  At least, that's my understanding from
readin the
&lt;a href=&quot;http://code.google.com/p/openshadinglanguage/wiki/OSL_Introduction&quot;&gt;introduction&lt;/a&gt;
for five minutes. &lt;img src=&quot;http://www.paranormal-entertainment.com/idr/blog/./smileys/smile.png&quot; alt=&quot;:)&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pretty cool stuff.&lt;/p&gt;</description>
	<pubDate>Wed, 13 Jan 2010 19:19:55 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: Public Service Announcement: Beware of xmlCleanupParser()!</title>
	<guid>http://0pointer.de/blog/projects/beware-of-xmlCleanupParser</guid>
	<link>http://0pointer.de/blog/projects/beware-of-xmlCleanupParser.html</link>
	<description>&lt;p&gt;Everyone and his dog seem to call libxml2's xmlCleanupParser() at
inappropriate places. For example &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=532307&quot;&gt;Empathy&lt;/a&gt; does it,
and Abiword does it too. &lt;a href=&quot;http://www.google.com/codesearch?q=xmlCleanupParser&quot;&gt;Google Code Search&lt;/a&gt; seems to reveal at least Inkscape and Dia
do it as well.&lt;/p&gt;

&lt;p&gt;So, please, if your project links against libxml2 verify that it calls
xmlCleanupParser() only once, and right before exiting! And if it calls it more
often or somewhere else, then please fix that!&lt;/p&gt;

&lt;p&gt;For more information &lt;a href=&quot;http://lists.fedoraproject.org/pipermail/devel/2010-January/129117.html&quot;&gt;see
my post on fedora-devel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Thanks for your time.&lt;/p&gt;</description>
	<pubDate>Tue, 12 Jan 2010 23:29:00 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part Two</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-2</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-2.html</link>
	<description>&lt;p&gt;Here's the second part of my &lt;a href=&quot;http://0pointer.de/blog/photos/india-360-at-a-time-1.html&quot;&gt;ongoing series&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Climbing down the hills, on the banks of the Tungabhadra river you find people washing laundry and bathing, and &lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Karnataka%202009-11&amp;amp;photo=1434&quot;&gt;coracles&lt;/a&gt; waiting to be used for a trip through the river.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi2&quot;&gt;&lt;img alt=&quot;Tungabhadra River&quot; src=&quot;http://0pointer.de/static/hampi2-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;146&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The greatest of the ancient temples in Hampi is the &lt;a href=&quot;http://en.wikipedia.org/wiki/Vijayanagara#Vittala_Temple&quot;&gt;Vitthala Temple&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi3&quot;&gt;&lt;img alt=&quot;Vitthala Temple&quot; src=&quot;http://0pointer.de/static/hampi3-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;162&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Set in in lush green scenery you find the Achyutaraya Temple, which you already might have seen, from above, in &lt;a href=&quot;http://0pointer.de/static/hampi7&quot;&gt;yesterday's series&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi4&quot;&gt;&lt;img alt=&quot;Achyutaraya Temple&quot; src=&quot;http://0pointer.de/static/hampi4-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;164&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it for today, tomorrow I'll post more panoramas, both from Hampi and other stops of our trip.&lt;/p&gt;</description>
	<pubDate>Tue, 12 Jan 2010 18:05:00 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: India, 360 Degrees at a Time, Part One</title>
	<guid>http://0pointer.de/blog/photos/india-360-at-a-time-1</guid>
	<link>http://0pointer.de/blog/photos/india-360-at-a-time-1.html</link>
	<description>&lt;p&gt;Yes, I won't spare you my panorama shots from my recent trip to India. After
arriving in Goa &lt;a href=&quot;http://en.wikipedia.org/wiki/Badami&quot;&gt;Badami&lt;/a&gt; was
our next stop. It's a very pretty little town in northern Karnataka, and here's
a panorama shot from the entrance of the town's famous caves:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/badami1&quot;&gt;&lt;img alt=&quot;Badami&quot; src=&quot;http://0pointer.de/static/badami1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;324&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next step was one of the most amazing places on earth, &lt;a href=&quot;http://en.wikipedia.org/wiki/Hampi&quot;&gt;Hampi&lt;/a&gt; in central Karnataka. It
is definitely one of the greatest sights I have ever seen, and I guess I can
say I have seen quite a few in my life. A vast landscape of hills covered in
boulders, lush mango and banana plantations, rice fields, dotted with age-old
temples and impressive ruins. Locals crossing the river in &lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Karnataka%202009-11&amp;amp;photo=1434&quot;&gt;coracles&lt;/a&gt; that look
like they belong in a time centuries ago. Women washing colourful laundry in
the river, pilgrims wading across the river in their black clothes.  An India
that delivers every bit of that promise it makes to its visitors.  The ruins
rival the grand sites in Greece and the landscape sometimes looks like a
Crysis in-game scene.&lt;/p&gt;

&lt;p&gt;Taken from one of the hills in Hampi this is the sunset:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi1&quot;&gt;&lt;img alt=&quot;Hampi Sunset&quot; src=&quot;http://0pointer.de/static/hampi1-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;122&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And then, the next day at dawn make your way up the hills again and you can get an even greater view on the whole scenery:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://0pointer.de/static/hampi7&quot;&gt;&lt;img alt=&quot;Hampi Dawn&quot; src=&quot;http://0pointer.de/static/hampi7-gimped-small.jpeg&quot; width=&quot;1024&quot; height=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it for today, tomorrow I'll post more panoramas, both from Hampi and other stops of our trip.&lt;/p&gt;

&lt;p&gt;Also, if you haven't seen them yet, don't miss &lt;a href=&quot;http://0pointer.de/blog/photos/india-again.html&quot;&gt;my panoramas from my India trip the year before&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Mon, 11 Jan 2010 19:56:00 +0000</pubDate>
</item>
<item>
	<title>Keith Packard: Telemetrum v0.2</title>
	<guid>http://keithp.com/blogs/Telemetrum_v0.2/</guid>
	<link>http://keithp.com/blogs/Telemetrum_v0.2/</link>
	<description>&lt;h2&gt;Introducing TeleMetrum v0.2&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://gag.com&quot;&gt;Bdale&lt;/a&gt; and I (mostly Bdale, of course) finished the
&lt;a href=&quot;http://altusmetrum.org/TeleMetrum&quot;&gt;TeleMetrum&lt;/a&gt; v0.2 design work in
December, and this weekend we got boards made and parts ordered and
Bdale sat down with his trusty electric skillet and built 3 new
boards. The new design has an integrated GPS receiver and patch
antenna, and is otherwise fairly similar in design to v0.1.&lt;/p&gt;

&lt;h3&gt;TeleMetrum v0.2 Hardware&lt;/h3&gt;

&lt;p&gt;Here&amp;#8217;s the front side of the board:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://keithp.com/blog/../pictures/v0.2-front.jpg&quot;&gt;&lt;img src=&quot;http://keithp.com/blog/../pictures/v0.2-front.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the left, you&amp;#8217;ll see a connector for an external power switch and
the two ejection charge circuits, a battery connector for a single
3.7V lipo cell, the GPS patch antenna, a 4-pin debug connector, the
piezo buzzer and the new 8-pin companion board connector. We weren&amp;#8217;t
happy with the connectors used on the v0.1 board and finally found
these Tyco Micro-MaTch parts which take up a modest amount of board
space (more than pico-blade connectors, less than regular pin blocks),
have a locking option and crimp on to standard ribbon cable. They&amp;#8217;re
also bright red and surprisingly low in profile.&lt;/p&gt;

&lt;p&gt;And here&amp;#8217;s the back side:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://keithp.com/blog/../pictures/v0.2-back.jpg&quot;&gt;&lt;img src=&quot;http://keithp.com/blog/../pictures/v0.2-back.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Elements on this side include the new 100μF cap in the upper left
corner which sits on the 3.3V supply to try and keep the CPU alive
through minor power glitches. Below that is a new package containing a
pair of FETs for the ejection circuits. We used discrete FETs in v0.1,
but this device has better specs for our needs (lower on resistance,
etc). The USB connector was pulled in-board far enough to keep it from
hanging over the edge. Right of that is the new data logging chip, and
right of that is a U.FL connector in case you want to use an external
GPS antenna. We supply power to that connector as most external GPS
antennas include their own LNA. And, of course, to the right of that
is the Skytraq Venus 634 GPS receiver.&lt;/p&gt;

&lt;p&gt;Below and to the right of the GPS receiver is the cc1111, to the left
lies the accelerometer and then the barometric pressure sensor above
the 5V boost regulator which powers the accelerometer. We haven&amp;#8217;t
found any high-G accelerometers that run on 3.3V yet. Finally the two
tiny 5-pin chips are the USB LiPo charger and the 3.3V regulator. What
you can&amp;#8217;t see easily are a pile of 0402 passive components scattered
across the board. Even close up, they&amp;#8217;re hard to pick out by eye.&lt;/p&gt;

&lt;p&gt;The only hardware &amp;#8216;bug&amp;#8217; was in the reset logic &amp;#8212; the new board was
designed with a much larger capacitor on the reset line than the old
board. The debug code would only hold the reset line low for a brief
instant, sufficient for the old capacitor value but not the new
one. Instead of fixing the code, Bdale decided to try a smaller
capacitor value and found that it worked just fine. After that, the
board came up just fine and the updated firmware was flashed into the
CPU.&lt;/p&gt;

&lt;h3&gt;TeleMetrum v0.2 Software&lt;/h3&gt;

&lt;p&gt;The only significant software change was that the data logging part
changed from a 25LC1024 1Mbit eeprom to an AT45DB161D 16Mbit
DataFlash. This required writing a new driver, but fortunately much of
the code could be copied from the 25LC1024 driver. Because the
AT45DB161D comes from a family of similar-but-different parts ranging
from 1Mbit to 64Mbits, I decided to make the code automatically adapt
to the installed part, detecting which one was attached and adjusting
the driver.&lt;/p&gt;

&lt;p&gt;The story here is that the configuration data didn&amp;#8217;t appear to be
getting preserved across reboots &amp;#8212; we use the last block of the data
logging part to hold configuration data, including call sign, sensor
calibration values and flight parameters. A bit of testing and we
found that the code to read/write the device worked perfectly. It
turns out that a premature optimization in detecting which kind of
flash part was installed had a race condition when multiple threads
were trying to access storage at the same time, resulting in the
configuration data being left uninitialized. Oops!&lt;/p&gt;

&lt;p&gt;The TeleMetrum firmware has a clever hack for selecting between ground
mode (for fetching data from the device or altering the configuration)
and flight mode (prepared to fly the rocket). It switches between
these by detecting whether the board is upright (flight mode) or
not (idle mode). However, the accelerometer must be calibrated to tell
the difference. What never occurred to us was that if the calibration
data was broken enough, the device might always come up in flight
mode. In that mode, it isn&amp;#8217;t listing to either USB or the radio link,
so it&amp;#8217;s impossible to fix the accelerometer calibration data.&lt;/p&gt;

&lt;p&gt;A bit of brainstorming led to a fairly simple hack &amp;#8212; check to see if
one of the pins on the companion connector was shorted to ground at
power on time, if so, force the computer to enter idle
mode. Pin 1 of the companion connector is ground, and fortunately, pin
2 was the SPI clock pin, normally output-only, so we could safely use
that in this mode as any companion device shouldn&amp;#8217;t ever pull that
low.&lt;/p&gt;

&lt;h2&gt;Future Events&lt;/h2&gt;

&lt;p&gt;As of this evening, three boards are built and mostly tested; the
radios appear to work, GPS tracks satellites and the beeper makes
plenty of noise. Still to check is whether the deployment circuits
will fire an ematch (we&amp;#8217;ve tested the design before, just not this
specific implementation).&lt;/p&gt;

&lt;p&gt;Next weekend, we&amp;#8217;re off to &lt;a href=&quot;http://www.lca2010.org.nz&quot;&gt;linux.conf.au&lt;/a&gt;
in Wellington, New Zealand where we&amp;#8217;re scheduled to give a
&lt;a href=&quot;http://www.lca2010.org.nz/programme/schedule/view_talk/50182?day=wednesday&quot;&gt;presentation on the hardware and software in TeleMetrum.&lt;/a&gt;
We&amp;#8217;ll have v0.2 boards to show off, so come and see them in person.&lt;/p&gt;

&lt;p&gt;With v0.1, we used the same board design for both flight computer and
ground station, TeleDongle. For TeleDongle, we just left most of the
components off of the board and loaded alternate firmware. For v0.2,
we&amp;#8217;re planning on building a separate TeleDongle board; that design is
finished but no boards are made yet.&lt;/p&gt;

&lt;p&gt;Once we&amp;#8217;re happy with the design, we&amp;#8217;ve got big plans to get more
boards made so we can let a few friends buy them for use them in their
own rocket projects. That should happen in the next month or so. Once
we&amp;#8217;ve gotten enough testing done, and made sure that other people can
actually operate them without hand-holding from us, we&amp;#8217;ll make them
available for sale to the general rocket-flying public.&lt;/p&gt;

&lt;p&gt;Beyond that, we&amp;#8217;ve got plans to build more stuff:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;A stand-alone ground station, called TeleTerra, that would include
an LCD readout and flight data recording so you wouldn&amp;#8217;t need a
laptop during the flight.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A companion board, called TelePyro, to control 8 additional pyro
channels. These could be used for almost anything from air starts
to staging or any other whacky plans.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
	<pubDate>Mon, 11 Jan 2010 03:33:09 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: Avatar 3D worth it...</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-1783805536469049773</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/bl0Tv8z-mO0/avatar-3d-worth-it.html</link>
	<description>&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_SwNjMGn1QH0/S0KBNiLacKI/AAAAAAAAADY/LZdvscXpgK4/s1600-h/avatarreview.jpg&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/_SwNjMGn1QH0/S0KBNiLacKI/AAAAAAAAADY/LZdvscXpgK4/s200/avatarreview.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;I just got back from watching Avatar in the cinema this time, in much higher quality and in anaglyph 3D; actually I started out at the wrong cinema, Finnkino in Kaisaniemi; luckily the one in Kamppi is only a few minutes walk away.&lt;br /&gt;
&lt;br /&gt;
I've mentioned before that usually these anaglyph 3D effects don't work very well for me due to varying degrees of myopia in both of my eyes, but I thought the movie was visually cool enough to give it a try with contact lenses instead of my normal glasses. I think this helped the effect significantly, but I still get the feeling that my brain starts to adjust to the effect over time so it's most impressive at the start of the movie.&lt;br /&gt;
&lt;br /&gt;
This peaked my interest in ioquake3's anaglyph rendering mode, but unfortunately they ask for the glasses back after the movie, so no chance of trying it out (at least until I order a &lt;a href=&quot;http://www.3dstereo.com/viewmaster/gla-pvu.html&quot;&gt;pair of my own&lt;/a&gt;.)&lt;br /&gt;
&lt;br /&gt;
Anaglyph 3D on the N900 might be quite interesting, but of course I would either need to make much more efficient use of vertex buffer objects to make up for halving the FPS, or do a port of XreaL...&lt;br /&gt;
&lt;br /&gt;
I think the later option is better for several reasons, but we'll see; Python, SCons and Scratchbox is a whole bundle of pain that I really don't want to be getting into at 02:00 in the morning.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-1783805536469049773?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/imkKtg7L8SPTrAePgG2qPzBLI5I/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/imkKtg7L8SPTrAePgG2qPzBLI5I/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/imkKtg7L8SPTrAePgG2qPzBLI5I/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/imkKtg7L8SPTrAePgG2qPzBLI5I/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/bl0Tv8z-mO0&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 05 Jan 2010 02:03:16 +0000</pubDate>
</item>
<item>
	<title>Christian Schaller: Opera and GStreamer</title>
	<guid>http://blogs.gnome.org/uraeus/?p=1216</guid>
	<link>http://blogs.gnome.org/uraeus/2010/01/04/opera-and-gstreamer/</link>
	<description>&lt;p&gt;Discovered a &lt;a href=&quot;http://my.opera.com/core/blog/2009/12/31/re-introducing-video&quot;&gt;blog post today from Philip Jägenstedt at Opera&lt;/a&gt;. The post describes the new HTML5 enabled Opera (alpha)( release and how it uses our favourite media framwork GStreamer. Great to see this available for easy download now and a big thanks to Opera for their work in supporting HTML5 and the Ogg codecs.&lt;br /&gt;
Philip got a lot of interesting details in that blog post so I really recommend reading it. &lt;/p&gt;
&lt;p&gt;Opera also makes the source code of their copy GStreamer available as a git repo which should make merging any changes they do to GStreamer very easy, a big thanks for that.&lt;/p&gt;</description>
	<pubDate>Mon, 04 Jan 2010 17:51:41 +0000</pubDate>
</item>
<item>
	<title>Peter Hutterer: New configuration world order</title>
	<guid>tag:blogger.com,1999:blog-6112936277054198647.post-7980393924109900869</guid>
	<link>http://who-t.blogspot.com/2010/01/new-configuration-world-order.html</link>
	<description>In the last couple of weeks, Dan Nicholson and Julien Cristau have been working on revamping the X server configuration and hotplugging code, introducing a couple of new features. This work is now pulled into master and brings about a new way of configuring the X server.&lt;br /&gt;&lt;br /&gt;The three new features are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;udev backend support&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support for an xorg.conf.d configuration directory&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Support for matching rules in the xorg.conf&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;udev backend support&lt;/h2&gt;&lt;br /&gt;Back in 2006, support for hotplugged input devices was added and up to server 1.7, the incarnation worked with HAL as the provider of the input devices. &lt;br /&gt;HAL is now deprecated and - at least under Linux - replaced with udev. Julien wrote a new backend that queries udev instead of HAL but otherwise follows the same principle:&lt;br /&gt;Upon startup the X server queries the active backend for the list of input devices and initializes them accordingly. When a new device is added at runtime, the server is notified and adds it at runtime. HAL and udev are mutually exclusive, so enabling one disables the other. Currently, udev is disabled by default though I'd like to see it being default for 1.8.&lt;br /&gt;&lt;br /&gt;On that note, users still confuse HAL and evdev though they have &lt;a href=&quot;http://who-t.blogspot.com/2009/07/not-blaming-hal.html&quot;&gt;little to nothing to do with each other&lt;/a&gt;. The same is of course valid for the udev backend.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;xorg.conf.d support&lt;/h2&gt;&lt;br /&gt;Over recent years, the xorg.conf support has moved towards two overlapping goals - support partial xorg.conf's with the server filling in the rest and removing the need for an xorg.conf entirely.&lt;br /&gt;For most installations the server now has the right defaults and is usable without any configuration file. For the few cases where it is needed, a single section is often enough.&lt;br /&gt;&lt;br /&gt;However, one remaining problem was that the xorg.conf is a single file and not easy to programmatically edit. Dan has now added support for a directory-based configuration. Again, the principle is simple: in addition to the xorg.conf file (if it exists), the /etc/xorg.conf.d/**.conf files are read and parsed as well. It performs like expected, with a section being added just as if it was present in the xorg.conf. Hence, a  possible configuration may be:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;:: whot@barra:~&gt; ls -R /etc/xorg*&lt;br /&gt;/etc/xorg.conf&lt;br /&gt;&lt;br /&gt;/etc/xorg.conf.d:&lt;br /&gt;10-synaptics.conf 97-wacom.conf 99-evdev.conf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that the xorg.conf is parsed &lt;b&gt;before&lt;/b&gt; the xorg.conf.d, hence it always has precedence. This allows for distributions to populate the xorg.conf.d directory with various quirks, yet still have user-specific configuration in the good old xorg.conf.&lt;br /&gt;&lt;br /&gt;To better support snippet-based xorg.conf, a new tag has been introduced: &lt;i&gt;AutoServerLayout&lt;/i&gt;. Traditionally, any input device needs to be referenced from the ServerLayout section to become active. With AutoServerLayout, an input device may be present in any layout. Hence, your input configuration may look something like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Section &quot;InputDevice&quot;&lt;br /&gt;   Identifier &quot;touchpad&quot;&lt;br /&gt;   Driver &quot;synaptics&quot;&lt;br /&gt;   Option &quot;AutoServerLayout&quot; &quot;on&quot;&lt;br /&gt;EndSection&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Regardless of which layout is started, the touchpad will always be part of the input device list.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;InputClass matching&lt;/h2&gt;&lt;br /&gt;With the hotplugging support, much of the configuration wandered into the HAL fdi files. This was never the best solution but at that time the only available one. With udev, the fdi files went away and instead of requiring users to port HAL-specific configuration to udev-specific configuration, Dan has stepped in and wrote a set of patches that allow similar functionality to the fdi configuration as part of the xorg.conf (or xorg.conf.d).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;InputClasses are similar to InputDevices but can apply to multiple devices (and multiple classes may apply to one device). They work on match rules, with the following matches being available:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;MatchProduct, MatchVendor, MatchDevicePath, MatchIsKeyboard, MatchIsPointer, MatchIsJoystick, MatchIsTablet, MatchIsTouchpad, MatchIsTouchscreen&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Their meaning is what they describe, with the first three being substring matches, the others being binary matches. An input class is assigned to a device if &lt;b&gt;all&lt;/b&gt; match rules apply. As an example, the following snippet would assign the synaptics driver to all touchpads:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Section &quot;InputClass&quot;&lt;br /&gt;        Identifier &quot;synaptics-catchall&quot;&lt;br /&gt;        Driver &quot;synaptics&quot;&lt;br /&gt;        MatchIsTouchpad &quot;on&quot;&lt;br /&gt;EndSection&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or, the catchall evdev rule that applies to every device.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Section &quot;InputClass&quot;&lt;br /&gt;        Identifier &quot;evdev-catchall&quot;&lt;br /&gt;        Driver &quot;evdev&quot;&lt;br /&gt;EndSection&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or, a more complicated example to set a specific option:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Section &quot;InputClass&quot;&lt;br /&gt;        Identifier &quot;vendor-quirk&quot;&lt;br /&gt;        MatchVendor &quot;SomeVendor&quot;&lt;br /&gt;        MatchDevicePath &quot;/dev/magicdevice&quot;&lt;br /&gt;        MatchIsTouchpad &quot;on&quot;&lt;br /&gt;        Option &quot;Quirk&quot; &quot;on&quot;&lt;br /&gt;EndSection&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Input classes are cumulative and only apply if a given option hasn't been set yet. Hence, the first Driver match will apply and the evdev catchall needs to be the last file matched. This is a bit odd at first, but it again guarantees that the user-defined xorg.conf takes precedence.&lt;br /&gt;&lt;br /&gt;We may see some more match conditions before 1.8 is released, but for now the ones above seem to suffice for the general cases.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6112936277054198647-7980393924109900869?l=who-t.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 04 Jan 2010 12:20:00 +0000</pubDate>
</item>
<item>
	<title>xkeyboard-config: Level clarification needed</title>
	<guid>urn:lj:livejournal.com:atom1:xkbconfig:8404</guid>
	<link>http://community.livejournal.com/xkbconfig/8404.html</link>
	<description>Hi guys,&lt;br /&gt;&lt;br /&gt;Let me get straight to my problem. The turkmen keyboard has different letters where x, c, v and q are supposed to be. So in the turkmen keyboard layout, I used:&lt;br /&gt;&lt;br /&gt;key.type[group1]=&amp;quot;ALPHABETIC&amp;quot;;&lt;br /&gt;&lt;br /&gt;To get ctrl shortcuts (copy, paste, cut, quit) to work. However, after adding these, the altGr doesn't work, we use altGr to get x, c, v which we do need in international words, though not frequently. &lt;br /&gt;&lt;br /&gt;I looked at some other layouts they have lines such as FOUR_LEVEL, FOUR_LEVEL_ALPHABETIC. I'm guessing these are the ones to be used, though, if I substitute these, the ctrl shortcuts stop working. I frankly don't understand the mechanism, I got this far with try &amp;amp; fail. If anyone sees my problem, please share some tips :)</description>
	<pubDate>Sun, 03 Jan 2010 14:05:03 +0000</pubDate>
</item>
<item>
	<title>Lennart Poettering: Jodhpur After Dark</title>
	<guid>http://0pointer.de/blog/photos/jodhpur</guid>
	<link>http://0pointer.de/blog/photos/jodhpur.html</link>
	<description>&lt;div&gt; &lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Rajasthan%202009-12&amp;amp;photo=1536&quot;&gt;&lt;img src=&quot;http://0pointer.de/photos/galleries/India%20Rajasthan%202009-12/lq/img-1536.jpg&quot; width=&quot;320&quot; height=&quot;480&quot; alt=&quot;Jodhpur&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Rajasthan%202009-12&amp;amp;photo=1505&quot;&gt;&lt;img src=&quot;http://0pointer.de/photos/galleries/India%20Rajasthan%202009-12/lq/img-1505.jpg&quot; width=&quot;320&quot; height=&quot;480&quot; alt=&quot;Jodhpur&quot; /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href=&quot;http://0pointer.de/photos/?gallery=India%20Rajasthan%202009-12&amp;amp;photo=1526&quot;&gt;&lt;img src=&quot;http://0pointer.de/photos/galleries/India%20Rajasthan%202009-12/lq/img-1526.jpg&quot; width=&quot;320&quot; height=&quot;480&quot; alt=&quot;Jodhpur&quot; /&gt;&lt;/a&gt; &lt;/div&gt;

&lt;p&gt;India is a weird and beautiful country. And I am too lazy to retouch my photos.&lt;/p&gt;</description>
	<pubDate>Thu, 31 Dec 2009 15:33:00 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: Why everyone should be using Git...</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-4109406317021410921</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/EP8LYogSTsY/why-everyone-should-be-using-git.html</link>
	<description>&lt;div class=&quot;separator&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_SwNjMGn1QH0/SzxcS6gUsyI/AAAAAAAAACM/IUbg6RtuuUk/s1600-h/git-logo.png&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_SwNjMGn1QH0/SzxcS6gUsyI/AAAAAAAAACM/IUbg6RtuuUk/s640/git-logo.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;I'm sure this has all been said before, but people don't seem to get the message: Subversion sucks for external contributors. Occasionally I send &lt;a href=&quot;http://redmine.xreal-project.net/issues/10&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;http://redmine.xreal-project.net/issues/11&quot;&gt;patches&lt;/a&gt; for projects using Subversion...&lt;br /&gt;
&lt;br /&gt;
Subversion has no way to commit local patches so that you can test out your changes, split up commits functionally, generate patches easily so you can send them to a review list, or any of these great features. Git does not have this problem; in fact it has a very nice set of tools for working this way. I won't go into the details of that, as most readers probably know it already, other than saying that it's amazingly simple and easy.&lt;br /&gt;
&lt;br /&gt;
The pain comes when you're an outside contributor for a Subversion project: you might be testing some experimental changes that you don't want to commit to the public repository. Okay, you can edit the files and &lt;span&gt;svn diff&lt;/span&gt; locally but this pathetic compared to the power of &lt;span&gt;git commit&lt;/span&gt; and &lt;span&gt;git format-patch&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;You're stuck doing one functional change, and only one functional change. Because you have no way to create a patch series. It's either everything in one commit, or nothing at all.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Even when you have commit access, often this results in multiple functional changes being squashed into a single commit. &lt;a href=&quot;http://who-t.blogspot.com/2009/12/on-commit-messages.html&quot;&gt;This is very bad&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Subversion provides no way to add commit messages or authorship to the diff generated by &lt;span&gt;svn diff&lt;/span&gt;, so contributors are left out in the cold.&lt;/li&gt;

&lt;ul&gt;&lt;li&gt;Yes, if you have commit access you can provide this meta-data, but you're still pushing directly to the repository with no review what-so-ever.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ol&gt;I could continue, but I think my point is made: Subversion sucks for distributed development (in the across the globe sense) and it also sucks for development in the &quot;few developers distributed across the room&quot; sense. It all adds up to pain and inefficiency: especially for external contributors, but even for people working with the project with commit access.&lt;br /&gt;
&lt;br /&gt;
Thankfully Sourceforge does at least provide rsync access to the Subversion and CVS repositories so &lt;span&gt;git svn clone&lt;/span&gt; can be both fast and bandwidth efficient. Unfortunately, however, it seems that Subversion chokes on anything but patches generated by Subversion itself (including standard GNU diff format.)&lt;br /&gt;
&lt;br /&gt;
Everyone should be using Git (or at least &lt;b&gt;some&lt;/b&gt; distributed version control system with similar features.)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-4109406317021410921?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/S_Tu9dnZ9nS6dONEMf4Toc_amGg/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/S_Tu9dnZ9nS6dONEMf4Toc_amGg/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/S_Tu9dnZ9nS6dONEMf4Toc_amGg/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/S_Tu9dnZ9nS6dONEMf4Toc_amGg/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/EP8LYogSTsY&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Thu, 31 Dec 2009 11:59:39 +0000</pubDate>
</item>
<item>
	<title>Philip Langdale: N900 Bluetooth DUN package now in extras repository</title>
	<guid>http://intr.overt.org/blog/?p=94</guid>
	<link>http://intr.overt.org/blog/?p=94</link>
	<description>&lt;p&gt;Just in time for the new year, I&amp;#8217;m pleased to be able to say that the Bluetooth DUN package is now in the Maemo Extras repository. This is the primary location for community packages that have been through a community QA process that tries to ensure the packages are safe for &amp;#8216;normal&amp;#8217; users. If you don&amp;#8217;t have the extras repository turned on, you can do so by following the instructions &lt;a href=&quot;http://wiki.maemo.org/Extras&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
	<pubDate>Wed, 30 Dec 2009 19:38:56 +0000</pubDate>
</item>
<item>
	<title>Tilman Sauerbeck: Multi-scrobbling at last!</title>
	<guid>http://code-monkey.de/articles/2009/12/30/multi-scrobbling-at-last</guid>
	<link>http://code-monkey.de/articles/2009/12/30/multi-scrobbling-at-last</link>
	<description>&lt;p&gt;New &lt;a href=&quot;http://code-monkey.de/pages/xmms2-scrobbler&quot;&gt;&lt;span class=&quot;caps&quot;&gt;XMMS2&lt;/span&gt;-Scrobbler&lt;/a&gt; release. Better than ever: multi-scrobbling is supported now. libre.fm users rejoice! See &lt;span class=&quot;caps&quot;&gt;README&lt;/span&gt; for the details.&lt;/p&gt;</description>
	<pubDate>Wed, 30 Dec 2009 17:15:24 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: Alarm clock vs snow plow...</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-5618146171043269199</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/jsE7CHc7wQo/alarm-clock-vs-snow-plow.html</link>
	<description>Okay, technically it would be a backhoe scoping up snow/ice from the road and footpath, but seriously, at 09:45 and right outside my bedroom window!&lt;br /&gt;
&lt;br /&gt;
I've had the alarm on my N900 fail to wake me several times, however this is much more effective; now if only they could do it at some reasonable time, like, oh, 12:00 or 13:00... and in keeping with the day of fail, my box at Nokia seems to have lost it's IP address, so no working remotely today.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-5618146171043269199?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/k931BC7g_ewgVZ-_us3B4kljzpo/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/k931BC7g_ewgVZ-_us3B4kljzpo/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/k931BC7g_ewgVZ-_us3B4kljzpo/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/k931BC7g_ewgVZ-_us3B4kljzpo/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/jsE7CHc7wQo&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Tue, 29 Dec 2009 10:07:10 +0000</pubDate>
</item>
<item>
	<title>Tiago Vignatti: New blog interface</title>
	<guid>http://vignatti.wordpress.com/?p=104</guid>
	<link>http://vignatti.wordpress.com/2009/12/28/new-blog-ui-2/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;I like UI and I&amp;#8217;m not gay.&lt;/p&gt;
&lt;p&gt;Some time ago someone posted a &lt;a href=&quot;http://vignatti.wordpress.com/2009/01/14/cursors-update-inside-kernel-only/#comment-1614&quot;&gt;comment&lt;/a&gt;, complaining about the white fonts over the dark background in my blog, which makes the read be difficult. The guy teased me, recommending an &lt;a href=&quot;http://www.ironicsans.com/owmyeyes/&quot;&gt;ironic page&lt;/a&gt; where shows how hard is to read texts like this. He was right&amp;#8230;&lt;/p&gt;
&lt;p&gt;So now I changed wordpress to a totally opposite theme called &amp;#8220;White as Milk&amp;#8221;. Yay, total white and easy to read now! Let&amp;#8217;s see how long I&amp;#8217;ll get sick of that interface.&lt;/p&gt;
  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/vignatti.wordpress.com/104/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/vignatti.wordpress.com/104/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/vignatti.wordpress.com/104/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/vignatti.wordpress.com/104/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/vignatti.wordpress.com/104/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/vignatti.wordpress.com/104/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/vignatti.wordpress.com/104/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/vignatti.wordpress.com/104/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/vignatti.wordpress.com/104/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/vignatti.wordpress.com/104/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=vignatti.wordpress.com&amp;amp;blog=769537&amp;amp;post=104&amp;amp;subd=vignatti&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Tue, 29 Dec 2009 01:42:19 +0000</pubDate>
</item>
<item>
	<title>Peter Hutterer: On commit messages</title>
	<guid>tag:blogger.com,1999:blog-6112936277054198647.post-8977054387341837146</guid>
	<link>http://who-t.blogspot.com/2009/12/on-commit-messages.html</link>
	<description>In the last few weeks, I've had a surprising number of discussions about &lt;a href=&quot;http://en.wikipedia.org/wiki/Commit_%28data_management%29#Version_Control&quot;&gt;commit&lt;/a&gt; messages. Many of them were with developers new to a project, trying to get them started. So here's a list of things you should do when committing, and why you should do it. Hint: the &lt;a href=&quot;http://lkml.org/&quot;&gt;linux kernel mailing list&lt;/a&gt; gets it right, go there to learn.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Any software project is a collaborative project.&lt;/b&gt; It has at least two developers, the original developer and the original developer a few weeks or months later when the train of thought has long left the station. This later self needs to reestablish the context of a particular piece of code each time a new bug occurs or a new feature needs to be implemented. &lt;br /&gt;&lt;br /&gt;Re-establishing the context of a piece of code is wasteful. We can't avoid it completely, so our efforts should go to &lt;a href=&quot;http://www.osnews.com/story/19266/WTFs_m&quot;&gt;reducing it&lt;/a&gt; to as small as possible. Commit messages can do exactly that and as a result, &lt;i&gt;a commit message shows whether a developer is a good collaborator&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;A good commit message should answer three questions about a patch:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Why is it necessary?&lt;/b&gt; It may fix a bug, it may add a feature, it may improve performance, reliabilty, stability, or just be a change for the sake of correctness.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;How does it address the issue?&lt;/b&gt; For short obvious patches this part can be omitted, but it should be a high level description of what the approach was.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;What effects does the patch have?&lt;/b&gt; (In addition to the obvious ones, this may include benchmarks, side effects, etc.)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;These three questions establish the context for the actual code changes, put reviewers and others into the frame of mind to look at the diff and check if the approach chosen was correct. A good commit message also helps maintainers to decide if a given patch is suitable for stable branches or inclusion in a distribution.&lt;br /&gt;&lt;br /&gt;A patch without these questions answered is mostly useless. The burden for such a patch is on each and every reviewer to find out what the patch does and how it fixes a given issue. Given a large number of reviewers and a sufficiently complex patch, this means many man-hours get wasted just because the original developer did not write a good commit message. Worse, if the maintainers of the project enforce SCM discipline, they will reject the patch and the developer needs to spend time again to rewrite the patch, reviewers spend time reviewing it again, etc. The time wasted quickly multiplies and given that a commit message only takes a few minutes to write, it is simply not economically viable to omit them or do them badly. &lt;br /&gt;&lt;br /&gt;Consider this is a hint for proprietary software companies too - not having decent SCM discipline costs money!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;How to do it better&lt;/h2&gt;&lt;br /&gt;There's no strict definition of the ideal commit message, but some general rules have emerged.&lt;br /&gt;A commit should contain exactly one &lt;i&gt;logical change&lt;/i&gt;. A logical change includes adding a new feature, fixing a specific bug, etc. If it's not possible to describe the high level change in a few words, it is most likely too complex for a single commit. The diff itself should be as concise as reasonably possibly and it's almost always better to err on the side of too many patches than too few. As a rule of thumb, given only the commit message, another developer should be able to implement the same patch in a reasonable amount of time.&lt;br /&gt;&lt;br /&gt;If you're using git, get familiar with &quot;git add -p&quot; (or -i) to split up changes into logical commits. &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The git commit format&lt;/h3&gt;&lt;br /&gt;If you're submitting patches for git, the format is mostly standardised. A short one-line summary of the change (the maximum length of the line differs between projects, it's usually somewhere between 50 and 78 characters). This is the line that'll be seen most often, make it count. Many git tools are in one way or another optimised for this format. After that one-line summary, an empty line, then multiple paragraphs explaining the patch in detail (if needed). Don't describe the code, describe the intent and the approach. And keep the log in a present tense.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Learn to love the log&lt;/h3&gt;&lt;br /&gt;I have used CVS (and SVN to a lesser extent) in the past and log was a tool that was hardly ever used. Mostly because it was pretty useless, both the tool and the information available. These days I look at git logs more often than at code. The git log tool is vastly superior to CVS log and the commit discipline in the projects I'm working on now is a lot better. I grep git logs more often than code files and I use git blame all the time to figure out why a particular piece of code looks the way it does. It's certainly saving me a lot of time and effort. It's come to the point where the most annoying X server bugs are the ones where the git history stops at the original import from XFree86. If you're not using your SCM's log tool yet, I recommend to get more familiar with it.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;How not to do it&lt;/h2&gt;&lt;br /&gt;There's a bunch of common sins that are committed (yay, a pun!) regularly.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;SCM is not a backup system&lt;/b&gt;! My personal pet hate. Developers who use it as such tend to do end-of-day commits, checking in everything at the end of the day. The result is useless, a random diff across the code with changes that are impossible to understand by anyone including the original author once a few months have passed. (On this note: universities, please stop teaching this crap).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Per-file commit. More often than not a logical change affects more than one file and it should not be split up into two commits.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Lazy commit messages, any commit labelled as &quot;misc fixes and cleanups&quot; or similar. I've seen my fair share of those on non-FOSS projects and they always come back to bite you. Impossible to find when a bug was introduced, hard to bisect and makes it harder for anyone else to keep track of what's happening in the project.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Two changes in one patch. Something like &quot;Fixed bug 2345 and renamed all foo to bar&quot;. Unless bug 2345 required the renaming, fixes whould be split it up into multiple patches. Others may have to take one of those bug fixes and apply it to a stable branch but not the other one. Picking bad patches apart into useful chunks is one of the most time-consuming and frustrating things I've done since it doesn't actually add any value to the project.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Whitespace changes together with code changes. Needle in a haystack is a fun game, but not when you're looking at patches. It's a great way to introduce bugs, though because almost no-one will spot the bug hidden in hundreds of lines that got reindented for fun and profit.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The ever-so-lovely code drops. Patches with hundreds of lines of code to dump a new feature into the code while at the same time rewriting half the existing infrastructure to support this feature. As a result, those hundreds of lines of code need to be reviewed every time a bug is discovered that is somehow related to that area of code.&lt;br /&gt;It's easier and less time consuming to first rework the infrastructure one piece at a time, then plug the new feature on top. As a side-effect, if a project relies on code dumps too often it's discouraging outside developers. Would you like to contribute to a project where the time spent filtering the signal from the noise outweighs the actual contribution to the code?&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unrelated whitespace changes in patches. A reviewer needs to get the big picture of a patch into their brains. Whitespace-only hunks just confuse, a reviewer has to look extra hard to check if there's a real change or whether it can be ignored. That's not so bad for empty lines added or removed,it's really bad for indentation changes.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;There's plenty of excuses for the above, with the favourite one being &quot;but it works!&quot;. It may work, but code is not a static thing. In a few weeks time, that code may have moved, been rewritten, may be called in a different manner or may have a bug in it. At the same time, the original developer may have moved on and no-one knows why the code is that way. In the worst case, everyone is afraid of touching it because nobody knows how it actually works.&lt;br /&gt;&lt;br /&gt;Another common excuse is the &quot;but I'm the only one working on it&quot;. Not true, any software project is a collaborative project (see above). Assuming that there's no-one else is simply short-sighted. In FOSS projects specifically we rely on outside contributors, be it testers, developers, triagers, users, etc. The harder it becomes for them to join, the more likely the project will fail.&lt;br /&gt;&lt;br /&gt;Another, less common excuse these days is that the SCM used is too slow. Distributed SCMs avoid this issue, saving time and by inference money.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6112936277054198647-8977054387341837146?l=who-t.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Mon, 28 Dec 2009 14:00:01 +0000</pubDate>
</item>
<item>
	<title>Sergey V. Udaltsov: gnome-keyboard-applet: as good as gone</title>
	<guid>http://blogs.gnome.org/sudaltsov/2009/12/27/gnome-keyboard-applet-as-good-as-gone/</guid>
	<link>http://blogs.gnome.org/sudaltsov/2009/12/27/gnome-keyboard-applet-as-good-as-gone/</link>
	<description>&lt;p&gt;Today, the applet code is dropped from gnome-applets. Since gnome-settings-daemon now includes the notification icon (automatically appearing/disappearing), the applet is no longer needed.&lt;/p&gt;
&lt;p&gt;Back in 1999 (Nov 29) it was the gswitchit applet that was committed to SourceForge. After GUADEC in Dublin it got merged into GNOME, some bits and pieces went to gnome-control-center. The rest is history&amp;#8230;&lt;/p&gt;
&lt;p&gt;The technology goes on. The functionality stays and improves. The initial point, the applet is gone.&lt;/p&gt;</description>
	<pubDate>Sun, 27 Dec 2009 18:10:48 +0000</pubDate>
</item>
<item>
	<title>Tiago Vignatti: Xorg: What is it, and what does it mean?</title>
	<guid>http://vignatti.wordpress.com/?p=113</guid>
	<link>http://vignatti.wordpress.com/2009/12/26/xorg-what-is-it-and-what-does-it-mean/</link>
	<description>&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;&lt;a href=&quot;http://talk.maemo.org/showthread.php?p=440448#post440448&quot;&gt; Just a thought is this something that should be deleted? This seems to be using about 7% of my RAM&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t have words for it.&lt;/p&gt;
  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/vignatti.wordpress.com/113/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/vignatti.wordpress.com/113/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/vignatti.wordpress.com/113/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/vignatti.wordpress.com/113/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/vignatti.wordpress.com/113/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/vignatti.wordpress.com/113/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/vignatti.wordpress.com/113/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/vignatti.wordpress.com/113/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/vignatti.wordpress.com/113/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/vignatti.wordpress.com/113/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=vignatti.wordpress.com&amp;amp;blog=769537&amp;amp;post=113&amp;amp;subd=vignatti&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</description>
	<pubDate>Sat, 26 Dec 2009 18:38:06 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: Holiday boredom...</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-7538380344564608427</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/7JsKXybizKY/holiday-boredom.html</link>
	<description>I don't have any plans for the Christmas holidays, and Helsinki is at just the right temperature to make doing anything outside really difficult. Some of the snow has melted and frozen into ice, making it feel a lot like walking on broken glass: physically and emotionally; I stopped counting the number of unintentional acrobatics after about the 5th or 6th time sliding in some way.&lt;br /&gt;&lt;br /&gt;I might implement &lt;a href=&quot;http://www.zlib.net/&quot;&gt;zlib compression&lt;/a&gt; for network traffic in my engine, which should only be a few dozen lines... or something a bit more interesting; stencil shadow volumes could still use more optimization, or some SIMD stuff...&lt;br /&gt;&lt;br /&gt;There are at least a few dozen minor X server issues discovered by Coverity, but that's getting dangerously close to Nokia work over the holidays. The majority of the issues are error paths anyway, nothing really critical.&lt;br /&gt;&lt;br /&gt;In the more being lazy and doing nothing area, &lt;a href=&quot;http://www.imdb.com/title/tt0499549/&quot;&gt;Avatar&lt;/a&gt; looks like it could be an interesting movie...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-7538380344564608427?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/IThiZ3VW5_BC7snoZuUbKVdfV-8/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/IThiZ3VW5_BC7snoZuUbKVdfV-8/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/IThiZ3VW5_BC7snoZuUbKVdfV-8/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/IThiZ3VW5_BC7snoZuUbKVdfV-8/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/7JsKXybizKY&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Sat, 26 Dec 2009 00:07:20 +0000</pubDate>
</item>
<item>
	<title>Oliver McFadden: Building a better flashlight...</title>
	<guid>tag:blogger.com,1999:blog-5203830418461309921.post-2192200637845150057</guid>
	<link>http://feedproxy.google.com/~r/OliverMcfadden/~3/c0Q4KIPfV_I/building-better-flashlight.html</link>
	<description>&lt;a href=&quot;http://3.bp.blogspot.com/_SwNjMGn1QH0/Sy3eW06o2eI/AAAAAAAAAA4/lJvY88I6Ws8/s1600-h/shot0000.jpg&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/_SwNjMGn1QH0/Sy3eW06o2eI/AAAAAAAAAA4/lJvY88I6Ws8/s320/shot0000.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5417230410539653602&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;I started looking into the projective light issues in XreaL and my forked engine again. It turned out the problem was setting up the light rotation via both the quaternion and light projection vectors.&lt;br /&gt;&lt;br /&gt;The flashlight was working, but would point in the opposite direction you were looking. Right was left and left was right. Of course, it seems simple in hindsight, but these kind of bugs always annoy me until I find out what was going wrong.&lt;br /&gt;&lt;br /&gt;Boring screenshot included for the fun of it...&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5203830418461309921-2192200637845150057?l=omcfadde.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/-mp1Zqy82vX7GzVd2LFynscqK4k/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/-mp1Zqy82vX7GzVd2LFynscqK4k/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/-mp1Zqy82vX7GzVd2LFynscqK4k/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/-mp1Zqy82vX7GzVd2LFynscqK4k/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OliverMcfadden/~4/c0Q4KIPfV_I&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
	<pubDate>Fri, 25 Dec 2009 12:10:58 +0000</pubDate>
</item>

</channel>
</rss>
