<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eugeni&#039;s blog &#187; writing</title>
	<atom:link href="http://dodonov.net/blog/category/writing/feed/" rel="self" type="application/rss+xml" />
	<link>http://dodonov.net/blog</link>
	<description>My view on technology, open-source, Linux and other cool things.</description>
	<lastBuildDate>Sun, 29 Jan 2012 15:11:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Intel Linux Graphics on LinuxCon Brazil</title>
		<link>http://dodonov.net/blog/2011/11/18/intel-linux-graphics-on-linuxcon-brazil/</link>
		<comments>http://dodonov.net/blog/2011/11/18/intel-linux-graphics-on-linuxcon-brazil/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:55:00 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[mesa]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[vaapi]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[x.org]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1174</guid>
		<description><![CDATA[For those of you who couldn&#8217;t attend LinuxCon Brazil &#8211; I&#8217;ve put my presentation about Intel Linux Graphics online for you all. (of course, if you have attended and want to see it again, you can do this too ). Have fun! Intel Linux Graphics]]></description>
			<content:encoded><![CDATA[<p>For those of you who couldn&#8217;t attend LinuxCon Brazil &#8211; I&#8217;ve put my presentation about Intel Linux Graphics online for you all.</p>

<p>(of course, if you have attended and want to see it again, you can do this too <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>

<p>Have fun!</p>

<p><a title="View Intel Linux Graphics on Scribd" href="http://www.scribd.com/doc/73071712/Intel-Linux-Graphics" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;" onclick="urchinTracker('/outgoing/www.scribd.com/doc/73071712/Intel-Linux-Graphics?referer=');">Intel Linux Graphics</a></p>

<iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/73071712/content?start_page=1&#038;view_mode=slideshow&#038;access_key=key-22j19xafpw8tiilt36ls" data-auto-height="true" data-aspect-ratio="1.33333333333333" scrolling="no" id="doc_97783" width="100%" height="600" frameborder="0"></iframe>

<script type="text/javascript">(function() { var scribd = document.createElement("script"); scribd.type = "text/javascript"; scribd.async = true; scribd.src = "http://www.scribd.com/javascripts/embed_code/inject.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(scribd, s); })();</script>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/11/18/intel-linux-graphics-on-linuxcon-brazil/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kernel 3.1 is out..</title>
		<link>http://dodonov.net/blog/2011/10/25/kernel-3-1-is-out/</link>
		<comments>http://dodonov.net/blog/2011/10/25/kernel-3-1-is-out/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 14:42:23 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1132</guid>
		<description><![CDATA[&#8230;but what does it means for Intel Linux Graphics? I tried to summarize all the patches and changes which went to this kernel release which somehow affected the drivers/gpu/drm/i915 directory (and, therefore, the kernel part of our driver). To give proper credit to all the authors whose code was accepted into the official kernel between <a href='http://dodonov.net/blog/2011/10/25/kernel-3-1-is-out/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>&#8230;but what does it means for Intel Linux Graphics?</p>

<p>I tried to summarize all the patches and changes which went to this kernel release which somehow affected the <strong>drivers/gpu/drm/i915</strong> directory (and, therefore, the kernel part of our driver).</p>

<p>To give proper credit to all the authors whose code was accepted into the official kernel between the <strong>3.0.0</strong> and <strong>3.1</strong> release, here is the full list:</p>

<ul>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Better hexdump of DPCD</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Don&#8217;t turn CPT DP ports on too early</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Explicitly disable symbol scrambling while training</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Explicitly request 8/10 channel coding</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Move DPCD dump to common code instead of PCH-only</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Read more DPCD registers on connection probe</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Retry DPCD fetch on G4X too</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/dp: Zero the DPCD data before connection probe</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/pch: Fix integer math bugs in panel fitting</em></li>
<li><strong>Adam Jackson</strong>: <em>drm/i915/pch: Save/restore PCH_PORT_HOTPLUG across suspend</em></li>
<li><strong>Ben Widawsky</strong>: <em>drm/i915: add module parameter compiler hints</em></li>
<li><strong>Ben Widawsky</strong>: <em>drm/i915: hangcheck disable parameter</em></li>
<li><strong>Ben Widawsky</strong>: <em>drm/i915: provide module parameter description</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Add an interface to dynamically change the cache level</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915/bios: Avoid temporary allocation whilst searching for downclock</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Cache GT fifo count for SandyBridge</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Combine pinning with setting to the display plane</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Disable FBC across page-flipping</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915/gtt: Split out i915_gem_gtt_rebind_object()</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Introduce i915_gem_object_finish_gpu()</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Introduce i915_gem_object_finish_gtt()</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Mark the cursor and the overlay as being part of the display planes</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Only export the generic intel_disable_fbc() interface</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Perform intel_enable_fbc() from a delayed task</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Remove vestigial pitch from post-gen2 FBC control routines</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Replace direct calls to vfunc.disable_fbc with intel_disable_fbc()</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Set persistent-mode for ILK/SNB framebuffer compression</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Share the common work of disabling active FBC before updating</em></li>
<li><strong>Chris Wilson</strong>: <em>drm/i915: Use of a CPU fence is mandatory to update FBC regions upon CPU writes</em></li>
<li><strong>Dave Airlie</strong>: <em>Revert &#8220;drm/i915: Try enabling RC6 by default (again)&#8221;</em></li>
<li><strong>Eric Anholt</strong>: <em>drm/i915: Use the LLC mode on gen6 for everything but display.</em></li>
<li><strong>Eric Anholt</strong>: <em>drm/i915: Use the uncached domain for the display planes</em></li>
<li><strong>Hugh Dickins</strong>: <em>drm/i915: more struct_mutex locking</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: add GPU max frequency control file</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: allow cache sharing policy control</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: apply phase pointer override on SNB+ too</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: apply timing generator bug workaround on CPT and PPT</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: check for supported depth at fb init time</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: don&#8217;t set SDVO color range on ILK+</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: don&#8217;t set transcoder bpc on CougarPoint</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: don&#8217;t use uninitialized EDID bpc values when picking pipe bpp</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915/dp: wait for previous AUX channel activity to clear</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: enable ring freq scaling, RC6 and graphics turbo on Ivy Bridge v3</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: fix CB tuning check for ILK+</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: flush plane control changes on ILK+ as well</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915/hdmi: HDMI source product description infoframe support</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915/hdmi: send AVI info frames on ILK+ as well</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915/hdmi: split infoframe setting from infoframe type code</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: load a ring frequency scaling table v3</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: load the LUT before pipe enable on ILK+</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: provide more error output when mode sets fail</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: provide more error output when mode sets fail</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: set bpc for DP transcoder</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: show interrupt info on IVB</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: split out Ironlake pipe bpp picking code</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: split out PCH refclk update code</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: split out plane update code</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: use pipe bpp in DP link bandwidth calculation</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: use pipe bpp in DP link bandwidth calculations</em></li>
<li><strong>Jesse Barnes</strong>: <em>drm/i915: use pipe bpp when setting HDMI bpc</em></li>
<li><strong>Kamal Mostafa</strong>: <em>i915: do not setup intel_backlight twice</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Call intel_enable_plane from i9xx_crtc_mode_set (again)</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Cannot set clock gating under UMS</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Can&#8217;t do accurate vblank timestamps with UMS</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: DP_PIPE_ENABLED must check transcoder on CPT</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Enable dither whenever display bpc &lt; frame buffer bpc</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Enable i915 frame buffer compression by default</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: FBC off for ironlake and older, otherwise on by default</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Fix PCH port pipe select in CPT disable paths</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Fixup for &#8216;Hold mode_config->mutex during hotplug&#8217;</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Flush other plane register writes</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Hold mode_config->mutex during hotplug processing</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: i915_gem_object_finish_gtt must always release gtt mmap</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Ignore GPU wedged errors while pinning scanout buffers</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: In intel_dp_init, replace read of DPCD with intel_dp_get_dpcd</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Initialize RCS ring status page address in intel_render_ring_init_dri</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Leave LVDS registers unlocked</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Remove unused &#8216;reg&#8217; argument to dp_pipe_enabled</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Rename i915_dp_detect_common to intel_dp_get_dpcd</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Select correct pipe during TV detect</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Set crtc DPMS mode to ON in intel_crtc_mode_set</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Skip GPU wait for scanout pin while wedged</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Try enabling RC6 by default (again)</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: TVDAC_STATE_CHG does not indicate successful load-detect</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Use dp_detect_common in hotplug helper function</em></li>
<li><strong>Keith Packard</strong>: <em>drm/i915: Wait for LVDS panel power sequence</em></li>
<li><strong>Keith Packard</strong>: <em>Revert and fix &#8220;drm/i915/dp: remove DPMS mode tracking from DP&#8221;</em></li>
<li><strong>Keith Packard</strong>: <em>Revert &#8220;drm/i915/dp: Zero the DPCD data before connection probe&#8221;</em></li>
<li><strong>Matthew Garrett</strong>: <em>i915: Fix opregion notifications</em></li>
<li><strong>Matthew Garrett</strong>: <em>Not all systems expose a firmware or platform mechanism for changing the backlight intensity on i915, so add native driver support.</em></li>
<li><strong>Michel Alexandre Salim</strong>: <em>drm/i915: Add quirk to disable SSC on Sony Vaio Y2</em></li>
<li><strong>Pieterjan Camerlynck</strong>: <em>i915: add Dell OptiPlex FX170 to intel_no_lvds</em></li>
<li><strong>Simon Farnsworth</strong>: <em>drm/i915: Enable SDVO hotplug interrupts for HDMI and DVI</em></li>
<li><strong>Thomas Jarosch</strong>: <em>drm/i915: Fix wrong initializer for &#8220;locked&#8221; variable in assert_panel_unlocked</em></li>
</ul>

<p>If we count the final number of changes between the <strong>3.0</strong> and <strong>3.1</strong> versions, we come to the following results:</p>

<pre><code>drivers/gpu/drm/i915/i915_debugfs.c     |  232 +++++++-
drivers/gpu/drm/i915/i915_dma.c         |   10 +-
drivers/gpu/drm/i915/i915_drv.c         |   69 ++-
drivers/gpu/drm/i915/i915_drv.h         |   51 +-
drivers/gpu/drm/i915/i915_gem.c         |  193 +++++-
drivers/gpu/drm/i915/i915_gem_gtt.c     |   39 +-
drivers/gpu/drm/i915/i915_irq.c         |   22 +-
drivers/gpu/drm/i915/i915_reg.h         |   59 ++-
drivers/gpu/drm/i915/i915_suspend.c     |   13 +-
drivers/gpu/drm/i915/intel_bios.c       |  140 +++--
drivers/gpu/drm/i915/intel_display.c    | 1028 +++++++++++++++++++++++--------
drivers/gpu/drm/i915/intel_dp.c         |  135 +++--
drivers/gpu/drm/i915/intel_drv.h        |   38 +-
drivers/gpu/drm/i915/intel_hdmi.c       |  166 +++++-
drivers/gpu/drm/i915/intel_lvds.c       |   90 ++--
drivers/gpu/drm/i915/intel_opregion.c   |   16 +-
drivers/gpu/drm/i915/intel_overlay.c    |    6 +-
drivers/gpu/drm/i915/intel_panel.c      |   76 +++-
drivers/gpu/drm/i915/intel_ringbuffer.c |   13 +-
drivers/gpu/drm/i915/intel_sdvo.c       |   88 +--
drivers/gpu/drm/i915/intel_tv.c         |   46 +-
21 files changed, 1879 insertions(+), 651 deletions(-)
</code></pre>

<p>So, in sum, there are changes all around the driver. Among the most interesting ones (in my humble opinion), are:</p>

<ul>
<li><strong>Frame Buffer Compression</strong> is now enabled for <strong>Gen6</strong> onwards (in other words, starting with Sandy Bridge). Of course, you can always enable it manually on your machine as well by using the <strong>i915.i915_enable_fbc=1</strong> kernel parameter.</li>
<li><strong>FBC</strong> should work better in general, thanks to patches from Chris Wilson which disable it across <strong>page-flipping</strong> and before updating, <strong>persist framebuffer compression</strong> mode for Ironlake and Sandy Bridge, and also making a proper use of <strong>fences</strong> after CPU writes.</li>
<li><strong>RC6</strong> was attempted to be enabled, but it was reverted early in the development cycle. As we had unusual time frame for this kernel release, by the time we have hit <strong>RC8</strong>, all the remaining <strong>RC6</strong>-related issues were tracked down. But as it was already too late for kernel 3.1, its enablement by default should happen in kernel <strong>3.2</strong>. The usage of <strong>RC6</strong> brings amazing power usage benefits, so you can enable it by yourself via the <strong>i915.i915_enable_rc6=1</strong> kernel parameter &#8211; and letting us know about any non-covered issues it may bring.</li>
<li><strong>DCPD</strong>, or Display Port Configuration Data handling has received lots of attention, and in general one should have a much better support for <strong>Display Port</strong> outputs.</li>
<li>configuration parameters for changing the <strong>cache level</strong>, <strong>maximum GPU frequency</strong>, <strong>cache sharing policy</strong> and GPU ring <strong>frequency scaling</strong>.</li>
<li>additional debugging output when <strong>mode setting fails</strong>, information about <strong>interrupts</strong> on Ivy bridge, <strong>hangcheck disabling</strong> support and better DPCD <strong>hexdump</strong>.</li>
<li>improvements for <strong>HDMI</strong> support, <strong>SDVO</strong> and <strong>LVDS</strong> handling, better pipe handling of <strong>EDID</strong> bpc values and proper panel fitting calculationsl</li>
<li>usage of <strong>LLC</strong> mode (usage of CPU cache for GPU instructions) for Gen6. This one-lined (excluding comments <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) change alone was responsible for about <strong>20%</strong> performance improvements for openarena in full-screen mode, and about <strong>12%</strong> improvements in nexuiz.</li>
</ul>

<p>The <strong>i915</strong> driver in kernel 3.1 received a total of <strong>95</strong> new patches when compared to <strong>3.0</strong> (excluding merges), coming from <strong>14</strong> different authors &#8211; both working at Intel and not. Now the road is open for <strong>3.2</strong>. So fasten your seat belts and prepare for the next ride <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/10/25/kernel-3-1-is-out/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>A first post about Intel Linux Graphics and their friends</title>
		<link>http://dodonov.net/blog/2011/10/03/a-first-post-about-intel-linux-graphics-and-their-friends/</link>
		<comments>http://dodonov.net/blog/2011/10/03/a-first-post-about-intel-linux-graphics-and-their-friends/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 19:50:24 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[mesa]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[writing]]></category>
		<category><![CDATA[x.org]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1067</guid>
		<description><![CDATA[A long time no post.. but then, it was also a long time without a home, internet and free time as well. As you already know, since August I am working at Intel, within the Intel Linux Graphics group. And, as many of you know as well, the news about Intel Linux graphics out there <a href='http://dodonov.net/blog/2011/10/03/a-first-post-about-intel-linux-graphics-and-their-friends/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>A long time no post.. but then, it was also a long time without a home, internet and free time as well.</p>

<p>As you already know, since August I am working at Intel, within the <a href="http://intellinuxgraphics.org/team.html" onclick="urchinTracker('/outgoing/intellinuxgraphics.org/team.html?referer=');">Intel Linux Graphics</a> group. And, as many of you know as well, the news about Intel Linux graphics out there vary a lot, but usually just between the &#8220;it just works&#8221; and &#8220;nothing works&#8221; states, with few intermediate points in between (many of which are usually covered by phoronix news).</p>

<p>So to fill those empty spots, I thought on getting back into the habit of semi periodic write-ups I got while at Mandriva &#8211; just giving out some insights, overviews and overall updates about what is going on with Intel Linux Graphics and related open-source projects from time to time.</p>

<p>But first of all, let me do a quick review about what Intel Linux Graphics is all about. Unlikely other drivers project, the Linux Graphics does not consists from a single and unique driver. By the contrary, it has a lot of ground to cover, working directly on the upstream projects which compose the graphical stack &#8211; ranging from the i915 driver in <strong>kernel</strong> to the entire <strong>MESA</strong> 3D/GL stack, passing through <strong>libdrm</strong> and <strong>vaapi</strong> and all the way up to <strong>x11-server</strong>, <strong>cairo</strong> and <strong>wayland</strong> &#8211; among others. So when you read about an Intel Linux Graphics release, it considers a snapshot version of each of those components.</p>

<p>Of course, each of those projects has a different release goals and timelines, different sets of features to cover, and so on. And, of course, there is a matrix of different generations of graphical hardware, different variations of the models and revisions, and a multitude of OEM platforms to cover.</p>

<p>So, in short, &#8220;it&#8217;s complicated&#8221; <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>In this sense, the Intel Linux Graphics project so far was doing quarterly releases of the entire stack, as one could see at <a href="http://intellinuxgraphics.org/2011Q3.html" onclick="urchinTracker('/outgoing/intellinuxgraphics.org/2011Q3.html?referer=');">2011Q3</a>, <a href="http://intellinuxgraphics.org/2011Q1.html" onclick="urchinTracker('/outgoing/intellinuxgraphics.org/2011Q1.html?referer=');">2011Q1</a>, <a href="http://intellinuxgraphics.org/2010Q4.html" onclick="urchinTracker('/outgoing/intellinuxgraphics.org/2010Q4.html?referer=');">2010Q4</a> and all the previous ones. However, one of the problems with the quarterly releases, specially over such a big and varying stack, is that they don&#8217;t fit all the situations. So starting with the next release, we&#8217;ll be changing our process to carry out more specific releases, based on pre-defined release criteria for each of them. And the next release will be focused specifically on performance and stability enhancement over our current code.</p>

<p>What do I mean by performance and stability? While most of the people out there do not experience any issues with the drivers (e.g., &#8220;they just work&#8221; category I mentioned out there), we are by no means perfect, and yes, we have bugs which affect different users, operating systems and hardware components (all the way to that &#8220;nothing works&#8221; category of people &#8211; which is thankfully quite small, and of course we hope to promote it to the &#8220;just work&#8221; category of the people ASAP). And we are trying to get better and better for each release, at the same time trying to maintain the same level of openness as one would expect from open-source projects.</p>

<p>If you look at the freedesktop bugzilla, for intel graphics-specific issues, there is a quite complete list out there. Of course, many of those bugs are old, or do not apply to the current state of the code anymore, but some of those are valid &#8211; and they don&#8217;t get the level of attention they need. Specially considering the large number of reports, it is really hard to keep track of all of them, and it is specially easy to get lost among all of them. So if your bug is not getting enough attention &#8211; just go over to it, and ping us. We do not ignore you, but sometimes we lose track of specific issues out there, and we&#8217;ll be happy to be reminded either when an issue is fixed, or whether it is still out there and needs some love <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>So, as I said previously, I&#8217;ll try to cover up the details of each part of our drivers stack, and try to keep updated the list of the current work and goals we have in mind. So I&#8217;ll start with this first post, and will try to cover a bit about the areas we&#8217;ve been focused the most for the past months &#8211; specially considering the &#8220;performance&#8221; and &#8220;stability&#8221; criteria, and the most interesting features we have out there.</p>

<p><strong>RC6</strong></p>

<p>The first feature which I&#8217;d like to mention, which is probably unknown to most of you out there, is the support for <strong>RC6</strong> technology. This is a feature which allows the GPU (in other words, the graphical adapter) to enter an extremely low power-consuming state while the graphical card is idle. This feature has drastic effects on the power usage of the system &#8211; up to 26% power usage improvements according to <a href="http://www.phoronix.com/scan.php?page=article&amp;item=intel_i915_power&amp;num=1" onclick="urchinTracker('/outgoing/www.phoronix.com/scan.php?page=article_amp_item=intel_i915_power_amp_num=1&amp;referer=');">Phoronix testing</a>. So in theory, having this feature enabled by default would allow a much better battery life for a casual system out there equipped with an Intel graphical card.</p>

<p>However, one drawback to the rc6 is that in some very rare cases, it results in different set of issues. The good part is that very few systems are affected by this bug, and none of the machines either the developers or QA team has managed to reproduce the problems, so chances are very high that it could just work for your by adding a <strong>&#8216;i915.i915_enable_rc6=1&#8242;</strong> parameter to the kernel. The bad part is.. well.. the same as the good part &#8211; we could not reproduce the issues on any of the machines we had. So by a chance, if you enable this feature and hit some unexpected behavior or issue &#8211; please, let us know! We would be really interested in fixing this for all the systems out there. But, with all the magnitude of different x86-based machines, it is virtually impossible to test them all. So we need your help to help of us fix this issue, in case it affects your machine. All the details, such as the vendor, model, installed OS, whether the issue happens with a new install from scratch, bios configuration &#8211; would help.</p>

<p><strong>FBC</strong></p>

<p>Besides <strong>RC6</strong>, one other interesting feature present in the Intel graphical drivers is the support for framebuffer compression, of <strong>fbc</strong>. This feature allows the driver to store the contents of the picture on screen in a compressed format, effectively reducing the amount of energy (and, therefore, power) required to update the screen. On some hardware revisions, however, this feature sometimes causes the GPU not to redraw the display correctly, resulting in only partial screen updates, sometimes visible only after a few suspend-resume sequences. The solution for this problem was to disable this feature by default on such machines, while having it enabled automatically on the chips which do not reproduce the problem. However, even on those chips, you can always enable it manually, by using a <strong>i915.i915_enable_fbc=1</strong> kernel parameter.</p>

<p><strong>Semaphores</strong></p>

<p>And finally, the 3rd major issue being worked on the kernel side is the usage of semaphores in the graphical driver, which allows for a big jump in performance, and also in stability in some cases. However, not everything is perfect in this world <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , so on some hardware models this feature results in performance choppiness or GPU hangs. It is within of the nature of the bug to appear only on some selected machines, most of which are out of our reach, so chances are, like with the <strong>RC6</strong> and <strong>FBC</strong> features, it should just work out of the box. But if it does not &#8211; please, let us know!</p>

<p>Apart from those 3 big items, lots of work has been carried out on different components of the stack in the past months. I&#8217;ll try to summarize the most interesting points for each component below.</p>

<p><strong>Kernel</strong></p>

<p>The Linux kernel 3.1, which is quickly approaching its release date, brings lots of stability and performance improvements over 3.0 version. The performance results are the most notable ones, as according to the initial testing, you could expect about 25% performance improvements in 3D games and performance benchmarks (and even up to 40% in some of them). I won&#8217;t enter into the details here, as I am certain that Michal Larabel from Phoronix will do his usual round of benchmarks soon enough and provide the numbers <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>Besides the performance fixes, the timing for detecting the different video outputs has also received lots of attention. Some of the fixes will appear in 3.1 kernel, and some of them are already being prepared to get into 3.2 as soon as its merge window will open.</p>

<p>And of course, there were lots of patches for stability and error recovery within GPU.</p>

<p>Out of the major distributions out there, as far as I know, only Mandriva Cooker has already updated its kernel to the latest 3.1 pre-released version, so its users already have most of those features with them. So if you are a brave soul and are willing to try this as soon as possible, you could either try Mandriva&#8217;s development version; or download and build the 3.1-git kernel yourself. Or just wait a few weeks and it will came to you as soon as your $FAVORITE_DISTRIBUTION would update it in the repository.</p>

<p>So, leaving kernel area, let&#8217;s move to another major component of the stack, which is well-known by its name..</p>

<p><strong>MESA</strong></p>

<p>(No, it is not the Black Mesa Research Facility, so you may put away your crowbar <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>

<p>Lots of work has been done on Mesa library, and some thousands of emails on the mesa-dev mailing list complement this statement.</p>

<p>Some initial patches for HiZ support from Chad Versace landed on the list, and Phoronix has also performed initial testing on them, obtaining very impressive <a href="http://www.phoronix.com/scan.php?page=article&amp;item=intel_mesa_hiz&amp;num=1" onclick="urchinTracker('/outgoing/www.phoronix.com/scan.php?page=article_amp_item=intel_mesa_hiz_amp_num=1&amp;referer=');">results</a>.</p>

<p>Also, a huge cleanup of old drivers, together with the removal of old DRI1 code and overall refactoring of the code in preparation for the GL 3.0 was done by Ian Romanick. Kenneth Graunke provided lots of patches for both performance and stability improvements for a large number of cases, together with the IvyBridge-specific optimizations. New Vertex Shader backend, lots of TextureImage development by Eric Anholt, work on gl_ClipDistance and the layout of vertex attributes by Paul Berry, lots of GLSL 1.30 development and overall bugfixing complement the picture of what happened with Mesa for the past month or so.</p>

<p>As mesa-dev list, and the git source tree, are quite busy places, there were lots of other development and updates all around which I haven&#8217;t covered here. Mesa 7.11.1 and 7.12 are really going to be amazing releases when they will come out!</p>

<p>But leaving mesa, the next stop in the Intel Linux Graphics stack overview leads us to..</p>

<p><strong>DDX, or xf86-video-intel X driver</strong></p>

<p>The video driver for Intel graphics cards has received lots of attention for the past weeks. Most of the patches came from Chris Wilson, and were related to further improvements in the SNA backend, and a fix for a non-SNA-related X crash. Besides those, we also had some IvyBridge-specific fixes from Kenneth Graunke and cleanup of some warnings from Paulo Zanoni.</p>

<p><strong>Cairo</strong></p>

<p>On Cairo side, a huge work has been made on performance, stability and testing. In some workloads, the performance improved by several orders of magnitude, and in average, one could expect better performance for Cairo on most cases when comparing with the previous release.</p>

<p><strong>Wayland</strong></p>

<p>For Wayland compositor, lots of discussions took place in the wayland-devel mailing list, covering a large collection of topics, randing from the best way to process configuration events and requests, similarities and differences between the wayland protocol and X operations, window management and overall interaction between the clients and the compositor within the Wayland world. From the technical side, there were lots of patches from Tiago Vignatti and Kristian Høgsberg on both core wayland and the wayland-demos repository. One notable change was the change of the GPLv2 headers to MIT for the remaining files where such change wasn&#8217;t applied previously.</p>

<p><strong>Intel-gpu-tools</strong></p>

<p>The package for providing tools for debugging, analyzing, tracing and profiling the Intel graphical cards on Linux/Unix has received some code cleanups from Paulo Zanoni, some news tests from Daniel Vetter, and also a small series of patches from myself which allows it to work in a non-interactive way, generating a tab-separated list of performance values for each capturing points. Those events can be further analyzed with a statistical tool, or plotted with gnuplot, or dumped into openoffice calc/excel applications &#8211; you name it.</p>

<p><strong>Libdrm</strong></p>

<p>Libdrm, which is a glue between the kernel and the userspace applications that use the kernel graphical driver, has received some fixes from Daniel Vetter last week. Besides those, there was a fix to make &#8216;make check&#8217; work correctly, and a support for using xf86drm.h from C++ applications.</p>

<p><strong>Xserver</strong></p>

<p>X.org X server has received lots of updates and merges since the 1.11.0 release in the past weeks. Among the most notable ones, there were some enhancements to the DRI2, XRANDR and DAMAGE extensions, documentation, comments and scripts fixes, besides the changes in the input framework.</p>

<p><strong>VAAPI</strong></p>

<p>And finally, as for VAAPI, not much activities happened in the git repo for the past weeks besides some refinements on the API and the vatrace tool.</p>

<p>So, as this post has already grown past the size I originally expected, I think that I&#8217;ll stop about here this time.</p>

<p>I&#8217;ll try to continue with the semi-regular blogging about the news in the graphics land of Intel world on a weekly basis.</p>

<p>See you!
Eugeni</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/10/03/a-first-post-about-intel-linux-graphics-and-their-friends/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Time for some news</title>
		<link>http://dodonov.net/blog/2011/08/03/time-for-some-news/</link>
		<comments>http://dodonov.net/blog/2011/08/03/time-for-some-news/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 03:12:38 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1061</guid>
		<description><![CDATA[As promised, August has come, so it is time for some news . As most of you who are following either my twitter or facebook has already noticed, I am working at Intel now, within the Intel Linux Graphics group. However, this does not means that I have abandoned the Mandriva/Mageia communities! The move to <a href='http://dodonov.net/blog/2011/08/03/time-for-some-news/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>As promised, August has come, so it is time for some news <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>As most of you who are following either my twitter or facebook has already noticed, I am working at Intel now, within the Intel Linux Graphics group. However, this does not means that I have abandoned the Mandriva/Mageia communities! The move to other city, job, relocation, and other boring and time-consuming things took most of my time for the past weeks, but slowly everything is getting back into shape now.</p>

<p>Quoting Andrzej Sapkowski, one of my favorite authors, &#8220;something ends, something begins&#8221;. I am at the beginning of this new journey, and really looking forward for this new experience!</p>

<p>See you around <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/08/03/time-for-some-news/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>My mdv goodbye gift for open-source communities</title>
		<link>http://dodonov.net/blog/2011/07/26/my-mdv-goodbye-gift-for-open-source-communities/</link>
		<comments>http://dodonov.net/blog/2011/07/26/my-mdv-goodbye-gift-for-open-source-communities/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 19:30:43 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1046</guid>
		<description><![CDATA[Hi folks, so, today is my last week at Mandriva/Conectiva! I think I said everything I had to say about this experience I had here in my previous posts, and I&#8217;d like to thank you a lot for all your kind words and feedback. So, as a parting gift for you, I prepared one small <a href='http://dodonov.net/blog/2011/07/26/my-mdv-goodbye-gift-for-open-source-communities/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hi folks,</p>

<p>so, today is my last week at Mandriva/Conectiva! I think I said everything I had to say about this experience I had here in my previous posts, and I&#8217;d like to thank you <strong>a lot</strong> for all your kind words and feedback. So, as a parting gift for you, I prepared one small open-source tribute to the communities, users and developers out there.</p>

<p>As you all know, Mandriva (and now, Mageia as well) has its own set of tools and applications, some of which were developed solely &#8211; or mostly &#8211; by me for the past few years. Whenever possible, I was trying since the beginning to develop such tools and applications in a distribution-agnostic way, and I think I managed to do it fairly well (well, I tried <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Nothing in any of them depends specifically on Mandriva or Mageia, and not even on <strong>rpm</strong> infrastructure itself &#8211; and when it does, it is split into a separate plugin or customizable option.</p>

<p>However, as their customization and development outside of Mandriva/Mageia distributions is a bit hard due to the subversion repository access and availability, it certainly made them a bit non-inviting to new contributions (IMHO). So I decided to update those applications a bit in the past few days, and also made them available at my <a href="https://github.com/eugeni/" onclick="urchinTracker('/outgoing/github.com/eugeni/?referer=');">github</a> site. I think that now, as we have both Mandriva and Mageia (at least) using some of the tools which share common code, it would be only fair to convert those projects into upstream ones, instead of making them incompatible forks of each other.</p>

<p>They are fully synchronized with Mandriva&#8217;s svn repository, but not with Mageia patches yet (however, this is easy to be done considering git flexibility, I just lacked time and bandwidth to do so). So yes, I&#8217;ll be still maintaining and developing them for the foreseeable future, but &#8211; as always &#8211; everyone is free to contribute, adapt and use them in the way you think the best.</p>

<p>So, without further words, those are <em>my preciousssss</em> toys:</p>

<ul>
<li><p><a href="https://github.com/eugeni/msec" onclick="urchinTracker('/outgoing/github.com/eugeni/msec?referer=');">msec</a> &#8211; Multi-Security Tool (a.k.a. Mandriva Security Tool and Mageia Security Tool), probably the one of the most hated (yet useful <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) tools in Mandriva history. It is responsible for defining security on your machine, controlling file permissions, running periodic security checks, and so on. There are plenty of posts in this blog about its evolution for the past years as well. It was fully redesigned for <strong>Mandriva 2009.1</strong> originally, and after that it gained a new UI, support for plugins, checks with customizable periodicity and arbitrary user-defined security levels. It does not depends on Mandriva/Mageia infrastructure for about 95% of its features, and the remaining 5% are controlled via plugins and configuration parameters.</p></li>
<li><p><a href="https://github.com/eugeni/netprofile" onclick="urchinTracker('/outgoing/github.com/eugeni/netprofile?referer=');">netprofile</a> &#8211; Network profile tool. It allows you to define multiple network profiles, each with its own network, proxy, urpmi, firewall and other settings, and easily switch among them. Its UI is provided by <strong>drakx-net</strong> package (available only in Mandriva/Mageia), but the core functionality is distribution-independent. And at least I use it only in console, so it does not matters much for me <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p></li>
<li><p><a href="https://github.com/eugeni/net_monitor" onclick="urchinTracker('/outgoing/github.com/eugeni/net_monitor?referer=');">net_monitor</a> &#8211; Network monitor. A simple network monitor which, besides network traffic accounting, also allows you to monitor the wireless signal level, used ports statistics, and integrates itself into network scripts via ifup/ifdown-based plugins. It also works with <strong>vnstat</strong> for nice usage statistics and reports generations. I also started to write a <strong>plasma</strong> backend for it, but never managed to finish it. Yet.</p></li>
<li><p><a href="https://github.com/eugeni/tomoyo-gui" onclick="urchinTracker('/outgoing/github.com/eugeni/tomoyo-gui?referer=');">Tomoyo GUI</a> &#8211; Graphical Tomoyo configuration tool. Probably the first (and as far as I know, still the only one out there) graphical configuration utility for Tomoyo Security framework. It should work with both <strong>ccs-tools</strong> and <strong>tomoyo-tools</strong>, and supports automatic security profile generation, application behavior learning, profiles exporting/importing, and so on.</p></li>
<li><p><a href="https://github.com/eugeni/s2u" onclick="urchinTracker('/outgoing/github.com/eugeni/s2u?referer=');">s2u</a> &#8211; Services 2 User, a small Mandriva tool used to share system messages with user desktop sessions via dbus. It is used by <strong>drakx-net</strong> infrastructure to notify user sessions when host name changes (thus assuring that the desktop continues working with new hostname), by <strong>msec</strong> to provide desktop notifications for security events, and by <strong>netprofile</strong> to provide desktop notifications on profile changes. It is a small tool, but as some of the aforementioned apps rely on it, it deserved its place on github as well.</p></li>
</ul>

<p>There are many other Mandriva/Mageia-specific utilities, such as <strong>ldetect</strong>, <strong>mandi</strong>, <strong>drakx</strong> and its friends, <strong>drakguard</strong>, among many many many others. But they are very Mandriva/Mageia specific tools, and I don&#8217;t believe that their usage could be used outside of the scope of those distributions. But as for the aforementioned ones, I think that they could be very useful for other distributions as well.</p>

<p>Of course, besides me, all of those tools has received numerous contributions from old Mandriva/Mandrake/Conectiva developers, community members, translators and users. And I could not thank them more than by making their efforts available for the next generations of open-source users and communities!</p>

<p>So have fun and may the source be with you!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/26/my-mdv-goodbye-gift-for-open-source-communities/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>On exorcisms and other fun &#8211; specially for opennet.ru :)</title>
		<link>http://dodonov.net/blog/2011/07/22/on-exorcisms-and-other-fun-specially-for-opennet-ru/</link>
		<comments>http://dodonov.net/blog/2011/07/22/on-exorcisms-and-other-fun-specially-for-opennet-ru/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 20:45:32 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mageia]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[pulseaudio]]></category>
		<category><![CDATA[systemd]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=1010</guid>
		<description><![CDATA[&#8230;or how to purge pulseaudio and systemd presence from your beloved system and start a world crusade in 3 easy steps . This topic arises frequently in all the corners of the world &#8211; how to remove even the smallest presence of pulseaudio and systemd from the system. Most Linux-aware people already know that, at <a href='http://dodonov.net/blog/2011/07/22/on-exorcisms-and-other-fun-specially-for-opennet-ru/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>&#8230;or how to purge pulseaudio and systemd presence from your beloved system and start a world crusade in 3 easy steps <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>This topic arises frequently in all the corners of the world &#8211; how to remove even the smallest presence of <strong>pulseaudio</strong> and <strong>systemd</strong> from the system. Most Linux-aware people already know that, at least in most modern Linux distribution, there is no need to remove them at all &#8211; at least on Mandriva/Mageia-based distributions, both <strong>pulseaudio</strong> and <strong>systemd</strong> can be disabled entirely with a click of a mouse (inside <code>draksound</code>, or via <code>ln -sf /etc/sound/profiles/alsa /etc/sound/profiles/current</code>), or with a package removal/replacement (<code>urpmi sysvinit</code>) &#8211; but still, I frequently have the chance to met people who are offended by mere presence of said packages and files bearing the smallest similarity to the terms &#8216;pulse&#8217;, &#8216;audio&#8217;, and &#8216;systemd&#8217; in their list of installed packages in files.</p>

<p>I have to say that I never had any problems with either <strong>pulseaudio</strong> or <strong>systemd</strong> for the past years, and I personally consider them as probably one of the most useful items in current generation of Linux distributions &#8211; they use most of computer features to provide many different multimedia aspects which otherwise are almost impossible to achieve without hard and tedious scripting and hacking (in case of pulseaudio); and they finally provide a powerful, modern and extremely efficient boot mechanism for Linux distributions (systemd). But.. each one has its own opinion, so who am I to speak for everyone?</p>

<p>So this motivated me to write this post &#8211; I&#8217;d like to specially thank the people from probably the best Russian open-source-oriented site &#8211; <a href="http://opennet.ru" onclick="urchinTracker('/outgoing/opennet.ru?referer=');">opennet.ru</a> &#8211; for asking me for doing it. I decided to write it in English however, for 2 reasons:</p>

<ol>
<li><p>Those questions arise in each and every language out there, and English is the <em>lingua franca</em> of todays world; and</p></li>
<li><p>I write much faster (and probably better <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) in English than I do in Russian, specially when it comes to technical items and descriptions <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p></li>
</ol>

<p>So let&#8217;s begin. I&#8217;ll split this tutorial in 3 big sections &#8211; how to find all the traces of <strong>pulseaudio</strong> and <strong>systemd</strong> in your system; how to exorcise all the traces of <strong>pulseaudio</strong> and <strong>systemd</strong> from all the found packages; and how to make a holy crusade to deliver those packages for the world (we all leave in open-source community after all) <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>So..</p>

<p><strong>PART I &#8211; how to find all the packages which rely on pulseaudio and systemd?</strong></p>

<p>In Mandriva/Mageia and other rpm/urpmi-based systems, a very handy command is urpmf, which allows to search in the repositories for provides, conflicts, files, and so on. In our case, let&#8217;s start with pulseaudio, which is considered by The Root Of All Evil on Linux, Unix, and in All The World Under The Sun by some people out there.</p>

<p>To locate all the packages which require pulseaudio stack, let&#8217;s search for the packages requiring &#8216;libpulse&#8217; &#8211; this will match packages which require the <code>libpulse.so</code> itself, <code>libpulse-simple.so</code>, <code>libpulse-mainloop-*</code>, and so on. This magical command would be:</p>

<pre><code># urpmf --requires libpulse
</code></pre>

<p>which will output something similar to:</p>

<pre><code>padevchooser:libpulse-browse.so.0()(64bit)
padevchooser:libpulse-mainloop-glib.so.0()(64bit)
padevchooser:libpulse.so.0()(64bit)
lib64alsa-plugins-pulseaudio:libpulse.so.0()(64bit)
lib64mediastreamer1:libpulse.so.0()(64bit)
mplayer:libpulse.so.0()(64bit)
libpulsezeroconf0:libFLAC.so.8
libpulsezeroconf0:libICE.so.6
libpulsezeroconf0:libSM.so.6
libpulsezeroconf0:libX11-xcb.so.1
libpulsezeroconf0:libX11.so.6
...
</code></pre>

<p>The output format is: <code>package:requires</code> &#8211; e.g., it says for example that <code>mplayer</code> package is requiring <code>libpulse.so.0()(64bit)</code>.  However, as you can see, it would also list pulseaudio own packages as well (namely, <strong>libpulsezeroconf0</strong>). So let&#8217;s do a different command with some filtering:</p>

<pre><code># urpmf --requires libpulse | awk -F: '/:libpulse/{print $1}' | sort -u
</code></pre>

<p>This will list all the packages available in the repositories which require <strong>libpulse</strong> pattern.</p>

<p>However, as it is usually the case, not everyone wanting to get rid of pulseaudio wants to remove it completely from the distribution. Most of the time, he just wants to have his small, cozy system to be Truely Free from Lennart&#8217;s evil applications (c). So in this case, the following command will compare the results of the previous urpmf command with the list of the installed packages, and print the names of the source rpm files of installed packages which need to be exorcised:</p>

<pre><code># rpm -q $(urpmf --requires libpulse | awk -F: '/:libpulse/{print $1}' |\
  sort -u) --qf '%{sourcerpm}\n' | grep -v 'not installed' | sort -u
</code></pre>

<p>This will pass the urpmf output to &#8216;rpm -q&#8217; command, asking it to print the names of the source rpm files for each found package, skips the packages which are not installed, and sorts the output removing duplicates. In my case, the list became fairly small, containing only:</p>

<pre><code>alsa-plugins-1.0.24-1.src.rpm
gstreamer0.10-plugins-good-0.10.30-2.src.rpm
kdebase4-runtime-4.6.5-6.src.rpm
kdemultimedia4-4.6.5-2.src.rpm
libcanberra-0.27-3.src.rpm
mplayer-1.0-1.rc4.0.r32713.6.src.rpm
paprefs-0.9.9-8.src.rpm
pavucontrol-0.9.10-8.src.rpm
phonon-4.5.0-4.src.rpm
pulseaudio-0.9.23-1.src.rpm
qemu-0.14.0-1.src.rpm
</code></pre>

<p>So, now we have the list of all packages which must be exorcised from the Pulseaudio evil influence! Let&#8217;s head for the Systemd-corrupted packages now.</p>

<p>In similar way to what we did to locate packages which need <strong>libpulse</strong>, let&#8217;s do a search for packages which have <strong>/lib/systemd</strong> files somewhere inside, with a simple:</p>

<pre><code># urpmf /lib/systemd
</code></pre>

<p>Once again, the list is quite bit &#8211; and it is a good thing, which means that most of the developers and packagers are adopting the systemd native units already! However, our goal is to remove the evil roots of systemd from such packages, so let&#8217;s find out which packages installed on our dear, sweet and comfortable system were possessed by the systemd spirit:</p>

<pre><code># rpm -q $(urpmf /lib/systemd | awk -F: '/:\/lib\/systemd\//{print $1}' \|
  | sort -u) --qf '%{sourcerpm}\n' | grep -v 'not installed' | sort -u
</code></pre>

<p>Once again, the list is quite small (for my machine):</p>

<pre><code>abrt-1.1.14-11.src.rpm
acpid-2.0.10-1.src.rpm
alsa-utils-1.0.24.2-1.src.rpm
avahi-0.6.29-1.src.rpm
consolekit-0.4.5-1.src.rpm
cups-1.4.6-5.src.rpm
dbus-1.4.6-2.src.rpm
initscripts-9.25-5.src.rpm
libcanberra-0.27-3.src.rpm
lm_sensors-3.3.0-5.src.rpm
rsyslog-5.8.2-1.src.rpm
rtkit-0.10-1.src.rpm
smartmontools-5.41-1.src.rpm
systemd-29-3.src.rpm
udev-168-1.src.rpm
</code></pre>

<p>But nonetheless, it is quite complete.</p>

<p>So, now we found packages which were tainted by the evil hands of Lennart Poettering (all credits for this phrase belong to opennet.ru), so let&#8217;s strip them of this unspeakable evil in the next part!</p>

<p><strong>PART II &#8211; exorcising evil beings from innocent packages</strong></p>

<p>Now that we have the list of packages tainted by evil spirits of pulseaudio and systemd, the next step is to remove their dependencies on such entities to make the users who are unable to tame with such unbelievable requirements became happy and in piece with their inner voices!</p>

<p>This section requires a bit of patience and rpm editing skills, so if you lack them probably it will be a bit confusing. In this case, I suggest you to read some references on how to package rpm files (<a href="http://wiki.mandriva.com/en/Development/Task/Packaging/MaintainersQuickStart" onclick="urchinTracker('/outgoing/wiki.mandriva.com/en/Development/Task/Packaging/MaintainersQuickStart?referer=');">this</a> and <a href="http://www.mageia.org/wiki/doku.php?id=packaging_for_beginners" onclick="urchinTracker('/outgoing/www.mageia.org/wiki/doku.php?id=packaging_for_beginners&amp;referer=');">this</a> are a nice place to start in case of Mandriva and Mageia distributions).</p>

<p>For the old-school hackers out there, who install src.rpm packages by hand, the initial packaging unpacking is trivial &#8211; download the said packages and run <code>rpm -ivh *.src.rpm</code>, and you are done.  For the ones who got used to Mandriva/Mageia facilities provided by <strong>repsys</strong> or <strong>mgarepo</strong>, the following commands probably would come in handy:</p>

<ol>
<li><p>First, we need to find out the name of the package repo &#8211; in case of abrt-1.1.14-11.src.rpm it is &#8216;abrt&#8217;, in case of udev-168-1.src.rpm it is &#8216;udev&#8217;, and I&#8217;ll let you figure out the remaining ones as an exercise <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p></li>
<li><p>Second, for each package, we should run <code>repsys co PACKAGE</code> (or <code>mgarepo co PACKAGE</code>).</p></li>
<li><p>After that, package with all its sources and specs will become available in <strong><em>PACKAGE</em></strong> directory. So just go there, install the package build requirements, and you are all set.</p></li>
</ol>

<p>Now, let&#8217;s go to the package exorcism itself. First at all, you have to figure out IF the pulseaudio evil could be stripped from the package during the build process. If it is not possible, well, you have no other solution besides:</p>

<ol>
<li>Writing your own clone of the package</li>
<li>Writing a patch to the package to not require pulseaudio anymore</li>
<li>Ask upstream developers to remove those functionality from their packages specially for you, out of good will and companionship spirit.</li>
</ol>

<p>(Somehow I suspect that the 3rd alternative won&#8217;t be quite easy in some cases, but one never knows&#8230;).</p>

<p>Let&#8217;s take for example <strong>mplayer</strong> package, and use it as example of <strong>pulseaudio</strong> exorcism. Looking at <strong>mplayer.spec</strong> file, we cannot find anything which looks like <em>disable this option to disable pulseaudio forever</em>, which is, without any doubts, sad. However, if we take a closer look, there is a <strong>%define build_pulse 1</strong> option which definitely looks a bit suspicious. If we change it to <strong>%define build_pulse 0</strong>, search deeper within the package for the <strong>build_pulse</strong> flag usage, and add a <code>--disable-pulse</code> option to the build, and rebuild the package with <code>bm -l</code> &#8211; then <em>voila</em>! It will build mplayer package without any reference to pulseaudio. Yes, we just had our first package liberated from pulseaudio evil!</p>

<p>In other words, simple patch the package with as follows:</p>

<pre><code>Index: SPECS/mplayer.spec
===================================================================
--- SPECS/mplayer.spec  (revision 691091)
+++ SPECS/mplayer.spec  (working copy)
@@ -56,7 +56,7 @@
 %define build_alsa 1
 %define build_jack 1
 %define build_openal   0
-%define build_pulse    1
+%define build_pulse    0
 %define build_schroedinger 1
 %define build_twolame 0
 %define build_lame 0
@@ -206,6 +206,7 @@


 Name:      %{name}
+Epoch:     9999 # to prevent future upgrades
 Version:   %{version}
 Release:   %{release}%{?extrarelsuffix}
 Summary:   %{Summary}
@@ -630,6 +631,8 @@
 %endif
 %if %build_pulse
        --enable-pulse \
+%else
+   --disable-pulse \
 %endif
 %if !%build_openal
        --disable-openal \
</code></pre>

<p>We could check it with <code>rpm -qp --requires RPMS/*/*rpm | grep pulse</code>.</p>

<p>And one important thing comes into mind &#8211; how to prevent future upgrades from the distribution to remove all your hard work and changes? One extremely evil, painful and non-rollbackable solution would be to add something like:</p>

<pre><code>Epoch: 9999
</code></pre>

<p>into each .spec file. This way, until the distribution reaches this number of package versioning resets, your own packages will take priority above anything distribution says (yes, I told that it would be an evil and extremely hackish solution) <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>Now it is only necessary to repeat the same process with all other pulse-depending packages. Of course, for some of them (for example, <strong>qemu</strong>) it is not easy, because pulseaudio support is builtin. In this case, the following options apply &#8211; you could either write a patch to remove its support, or ask upstream to build a specific qemu package specially for you without pulseaudio support <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>As for systemd, the similar strategy applies &#8211; with the difference that it would be easier to strip support for systemd in the packages. Just remove all the &#8216;/lib/systemd&#8217; entries in .spec files, or prepend them with &#8216;%exclude&#8217; tag, and the support for systemd in said packages will be gone.</p>

<p>In short, resuming this section, if you want to remove pulseaudio and systemd support from your packages, you have to exercise some coding and packaging skills. Unfortunately (for you), most of Linux distributions and environments believe that <strong>pulseaudio</strong> and <strong>systemd</strong> are cool and great technologies, so they provide them by default, and it is not very likely that you&#8217;ll have any distribution with such changes applied by default&#8230; So what could you do now?</p>

<p>The next part explains..</p>

<p><strong>PART III &#8211; carrying on a anti-pulse-and-systemd crusade in 2 simple steps</strong></p>

<p>If you want to have any distribution come out without systemd and pulseaudio, you basically have 2 choices.</p>

<ol>
<li><p>Make a fork of a distribution, maintain it yourself, and add the packages without pulseaudio/systemd support there. This is the most suitable thing to do if you want to have your own distribution and become <strike>rich and</strike> famous <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Alternatively, you have the solution 2. Yet more alternatively, there is always a <a href="http://www.linuxfromscratch.org/" onclick="urchinTracker('/outgoing/www.linuxfromscratch.org/?referer=');">way</a> to start a brand new distribution yourself.</p></li>
<li><p>Create your own repository for packages liberated from pulseaudio and systemd evil influence. This is easier because you don&#8217;t need to do the entire distribution on your own, and usually a simple directory on a web-server or ftp would suffice. To follow this path, the following steps should be done:</p>

<p>2.1. Copy all the resulting packages into a directory</p>

<p>2.2. Run <code>genhdlist2 directory</code></p>

<p>2.3. Put the resulting directory on your http/ftp/rsync server for others to grab it.</p></li>
</ol>

<p>This will prepare a Mandriva/Mageia-compatible repository, and when you put it onto a web or ftp server, just share its address with the world, and everyone will be able to add it by running:</p>

<pre><code># urpmi.addmedia diepulseandsystemd http://your.server.address/repository/$ARCH
</code></pre>

<p>This way, on the next <code>urpmi --auto-update</code> run, urpmi will discover that packages from such repo has absolutely higher priority over all possible packages provided by the distribution, and will install them automatically, replacing the currently installed and the available ones. With this, having all the packages freed from the evil pulseaudio and systemd reference, pulseaudio-related packages and libraries will be marked as <em>orphans</em>, and will be removed automatically when you run <code>urpme --auto-orphans</code>.</p>

<p>Therefore, this completes my quick tutorial on how to cleanup the evil presence of pulseaudio and systemd from the packages on a Mandriva/Mageia-based system. Of course, it is possible to improve the packaging, define custom disttags and &#8211;with flags for the build, but this text is already becoming too big so I left it out of the scope for now.</p>

<p>So to conclude, I hope you have enjoy reading it as much as I enjoyed this writing <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/22/on-exorcisms-and-other-fun-specially-for-opennet-ru/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>On Linux Distributions and Desktops</title>
		<link>http://dodonov.net/blog/2011/07/17/on-linux-distributions-and-desktops/</link>
		<comments>http://dodonov.net/blog/2011/07/17/on-linux-distributions-and-desktops/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 02:00:12 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=994</guid>
		<description><![CDATA[My last series of posts about what I think about Desktop OSes and the place of Linux distributions among them resulted in lots of very interesting and informative discussions, so I decided to write this follow-up to summarize everything, and describe the role of Mandriva in this environment as I see it. (Of course, everything <a href='http://dodonov.net/blog/2011/07/17/on-linux-distributions-and-desktops/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>My last series of posts about what I think about Desktop OSes and the place of Linux distributions among them resulted in lots of very interesting and informative discussions, so I decided to write this follow-up to summarize everything, and describe the role of Mandriva in this environment as I see it.</p>

<p><em>(Of course, everything said here is my personal opinion, and in no way I am trying to say something on behalf of Mandriva Board of directors)</em></p>

<p>First of all, what comes into mind when you think about the term &#8216;Linux Distribution&#8217;? I bet that names like Fedora, Ubuntu, Mandriva, Debian, Slackware, Arch, Gentoo &#8211; and many others come into mind.</p>

<p>However, what names come into mind when you think about Desktops? I believe that in this case, the names which feel most like it are Mac, Windows, Android, Meego, BeOS, ChromeOS, JoliCloud, and so on. Some of them are running proprietary OSes, some of them are partly open, and some of them are actually based on a Linux distribution or a Linux kernel and libraries stack.</p>

<p>And finally, what comes into mind when you think about the term &#8216;Linux Desktop&#8217;? Without holy wars and discussion which distribution is better (notice the word distribution here), I believe that it is hard to escape from the names as Ubuntu, Mandrake, Linspire, SLED, and similar solutions.</p>

<p>Some of you perhaps have already got my point. What makes a &#8220;Desktop&#8221; is not a mere combination of packages, applications, community and artwork; but it is the integration and common feeling among all of its components, and somewhat inherited desire of having a &#8216;standard&#8217; way of doing everything. And Linux Distributions, on their turn, inherently have the essence of freedom of choice, flexibility and multitude of combinations of applications and goals within, which make them much more flexible on one hand, but much less focused on another.</p>

<p>Why Linux distributions will never (in my humble opinion) beat Windows or MacOS on desktop? By a one simple reason &#8211; they are <strong>too flexible</strong>. They provide too many options and possibilities by default, without a &#8216;standard&#8217; way of doing things, and while everything works and is usually tightly integrated, this is still a combination of packages and applications, and not a Desktop. This is not a bad thing &#8211; by the contrary, I believe that this is awesome! But this opposite to what is expected from a Desktop experience.</p>

<p>On other turn, the Desktops which managed to succeed in the history of computers are the ones which started with a vision, and according to this vision, has evolved into a combination of applications, features, standardization and look-and-feel which made them unique.</p>

<p>If you think about productive and efficient desktop, Mac OS comes into mind. Even if it (with some bit of imagination) could be considered a distribution (it has lots of non-apple applications, gnu stack, unix infrastructure under it, and so on) &#8211; it is rarely seen as one. It is a desktop, it has its own unique feeling and usage.</p>

<p>It is the same feeling which we have for Android, Chrome, JoliCloud &#8211; even if they are, in fact, Linux distributions, they are not seen as such. They are products &#8211; with their own features, functionality, feeling, goals, and so on. They have a focus, they have a unique and controlled roadmap and goal, and this is what makes them more focused on that goal.</p>

<p>And this is the road where Ubuntu, and now Mandriva, are headed &#8211; running away from being &#8216;Linux distributions&#8217; in the most common sense of the word, towards becoming Desktops. Ubuntu GNU/Linux Distribution has already become just &#8216;Ubuntu&#8217;. It is still a Linux distribution, it is based on shoulders of the giants, but it is not just another distribution out there &#8211; it became a Desktop, with its own look-and-feel, functionality, goals, features and behavior.</p>

<p>This is how Android and ChromeOS evolved as well &#8211; even if they are, in fact, Linux distributions, they are not seen as such, but as separated and unique products. This is what JoliCloud did as well, and this is what Linspire did in the past.</p>

<p>In other words, when separating Linux Distributions with Desktop solutions, it is possible to imagine a simple scale, ranging from freedom of choice, flexibility and non-prioritization of specific DEs and UIs &#8211; to single and unique look-and-feel, restricted flexibility and focus on specific features and details. The further away from the &#8216;flexibility&#8217; and &#8216;freedom of choice&#8217; a solution is moving, the closer it gets to become a product with &#8216;Desktop&#8217; name in it.</p>

<p>Most Linux distributions value freedom of choice and diverse and mulch-opinionated community among everything else. They treat KDE as good as GNOME, and do not consider XFCE and LXDE as 2nd-class citizens. Every one is able to select what he wants to use, mix applications &#8211; and there are no restrictions nor enforcements on how his desktop should work.</p>

<p>In other corner, there are Desktop products &#8211; which enforce a single and common look-and-feel and mode of operation, define behaviors, and are focused on one single and unique way of doing anything.</p>

<p>And this is basically what I think on the matter <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/17/on-linux-distributions-and-desktops/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sailing for new horizons&#8230;</title>
		<link>http://dodonov.net/blog/2011/07/06/sailing-for-new-horizons/</link>
		<comments>http://dodonov.net/blog/2011/07/06/sailing-for-new-horizons/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 21:45:15 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=965</guid>
		<description><![CDATA[Hi folks, as some of you already know, this is my last month at Mandriva/Conectiva. So I am writing this blog post to summarize a bit of what the Mandriva experience was for me. When I came to work officially at Mandriva back in 2008 (I was already in close contact with many Conectiva and <a href='http://dodonov.net/blog/2011/07/06/sailing-for-new-horizons/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://dodonov.net/blog/wp-content/uploads/2011/07/mandriva-icon.png"><img src="http://dodonov.net/blog/wp-content/uploads/2011/07/mandriva-icon.png" alt="" title="mandriva-icon" width="128" height="128" class="aligncenter size-full wp-image-980" /></a></p>

<p>Hi folks,</p>

<p>as some of you already know, this is my last month at Mandriva/Conectiva.</p>

<p>So I am writing this blog post to summarize a bit of what the Mandriva experience was for me.</p>

<p>When I came to work officially at Mandriva back in 2008 (I was already in close contact with many Conectiva and Mandriva developers for some years then), I was expecting a lot from this challenge. The possibility to work in an open-source-based company, developing open-source solutions and products for everyone &#8211; it was practically my geek dream coming true. And I have to say now, after 2.5 years since that moment, that it was certainly an <strong>amazing</strong> experience.</p>

<p>While at Mandriva, I managed to work on many challenging yet amazingly interesting projects; I had the privilege to work with extremely talented people from all the corners of the world &#8211; Canada, Brazil, France, Sweden, Russia &#8211; just to name a few! And it certainly was an unforgettable experience for me.</p>

<p>During all those years, I managed to work a bit on probably each and every Mandriva product &#8211; as a developer/maintainer for Mandriva Distribution (2009.0, 2009.1, 2010.0, 2010.1, 2010.2, 2011); as member of Mandriva Security team first with Vincent Danen, and then with Oden Eriksson, providing several thousands packages via official updates for the whole range of Mandriva products (MNF2, CS3, CS4, Mandriva 2007.0 to 2010.2); working on dozens of research and development projects (msec, tomoyo-gui, mandriva cloud, mandriva edu, and many others, some of which did not came out of the door yet, so I won&#8217;t comment on them <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), developing several custom solutions for Brazilian customers, and of course countless packages..</p>

<p>For the past year, I also had the honor to be the technical leader and manager of Conectiva team in Brazil. And of course, as you all know, for past 9 months I was the responsible for Mandriva Desktop distributions development, leading the Mandriva 2010.2 and Mandriva 2011 products (which should be out in less than 2 months from now!).</p>

<p>During those years, I had the privilege to get to know and work alongside such legendary figures in the open-source world as ennael, cavassin, blino, tv, fcrozat, pterjan, rtp, teuf, neoclust, ahmad samir, götz, misc, pixel, pcpa, claudio, miura, herton, santiago, jbj, boiko, tmb, rda, colin, guillomovitch, lcapitulino, vdanen, heliocastro, bogdano, oden, aginies, anssi, adamw, &#8230; just to name a few, and of course many many others! It was a real honor, and I learned a lot with you all!</p>

<p>And of course, I had the chance to meet (and be the one responsible for bringing some of them <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) the newly-rising stars in both Mandriva and open-source world, such as gmoro, wiliam, paulob, alexandrefm, edgard, franck, jvdm, leonardoc, denis koryavov, alex burmashev, eugene sokolov, ural mullabaev, kirill monakhov &#8211; and many other talented developers from Mandriva, Conectiva and ROSA! If you are using Mandriva, or will be using its 2011 version &#8211; you&#8217;ll certainly encounter the fruits of their work!</p>

<p>So, definitely, it was an amazing and priceless experience!</p>

<p>However, times change, people change, and I realized that time has come for me to sail to new horizons and look for new challenges. Many things changed in Mandriva during those 2.5 years, and it is a completely different company from what it once was. Many people had left, and many new faces has arrived as well during this time. But nonetheless, albeit all the challenges, problems, disappointments and achievements, we managed to stay alive and kicking even in cases where nobody was believing that Mandriva would survive. But it did.</p>

<p>So I&#8217;d like to thank you all for the time we spent together trying to make a Linux distribution which would change the world &#8211; I believe that we did a not that bad job over those past years!</p>

<p>Mandriva 2011 is almost at the release bay with all of its enhancements and unique features; Mageia 1 is there and Mageia 2 is starting its sail towards its exciting new release. Future looks bright for everyone &#8211; and I am really happy about it.</p>

<p>So, I&#8217;ll be around in Mandriva (the company) until the end of this month, and I&#8217;ll certainly be around in Mandriva and Mageia communities afterwards! And, of course, in the open-source world as a whole <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>Cheers,</p>

<p>Eugeni</p>

<p><a href="http://dodonov.net/blog/wp-content/uploads/2011/07/mdv.png"><img src="http://dodonov.net/blog/wp-content/uploads/2011/07/mdv.png" alt="" title="mdv" width="232" height="98" class="aligncenter size-full wp-image-982" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/06/sailing-for-new-horizons/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Correcting the previous post</title>
		<link>http://dodonov.net/blog/2011/07/06/correcting-the-previous-post/</link>
		<comments>http://dodonov.net/blog/2011/07/06/correcting-the-previous-post/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 12:40:20 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=959</guid>
		<description><![CDATA[Hi folks, The pictures from my previous post, of AltLinux booth at FISL &#8211; the ones saying that the Russian President and Prime-Minister are users of AltLinux distribution &#8211; has caused lots of repercussion on several sites and forums. Unfortunately, from what I was told, such pictures were done for marketing purpose-only (or in some <a href='http://dodonov.net/blog/2011/07/06/correcting-the-previous-post/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Hi folks,</p>

<p>The pictures from my previous post, of AltLinux booth at FISL &#8211; the ones saying that the Russian President and Prime-Minister are users of AltLinux distribution &#8211; has caused lots of repercussion on several sites and forums.</p>

<p>Unfortunately, from what I was told, such pictures were done for marketing purpose-only (or in some sort of a joke), are purposely misleading, and were limited to Brazil only. Central AltLinux office did not knew anything about them, and it is not clear whether they were done as some sort of joke, PR or attempt to spread some of the Russian culture in South America via some &#8220;unconventional&#8221; means (according to what I learned on <a href="http://ru-foss.livejournal.com/" onclick="urchinTracker('/outgoing/ru-foss.livejournal.com/?referer=');">ru-foss livejournal community</a>).</p>

<p>So I&#8217;d like to apologize here for publishing them if it caused any sort of distress or confusion. In my personal opinion, I believe that if you put some misleading public posters on your company&#8217;s official booth, on an international and widely-known conference, just for some PR effect, it is <strong>not</strong> a correct thing to do. And if you do it, be aware that a Linux-related conference certainly will have lots of people taking and sharing what you are demonstrating.</p>

<p>So, just to clarify and answer to all the questions I am receiving:</p>

<p><strong>NO, VLADIMIR PUTIN AND DMITRY MEDVEDEV ARE NOT USING AltLinux &#8211; or any other Linux distribution at all</strong>.</p>

<p>However, I still hope that perhaps they will use Linux some day <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/06/correcting-the-previous-post/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>On Linux on desktops..</title>
		<link>http://dodonov.net/blog/2011/07/04/on-linux-on-desktops/</link>
		<comments>http://dodonov.net/blog/2011/07/04/on-linux-on-desktops/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 19:37:37 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=937</guid>
		<description><![CDATA[Edit &#8211; please look at the P.P.S. below for clarifications before commenting same thing over and over again* Even after living in Brazil for 15 years now, I am closely following up the stories about Linux and Open-Source success in Russia. This is why I could not resist sharing those pictures which were available at <a href='http://dodonov.net/blog/2011/07/04/on-linux-on-desktops/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p><strong>Edit &#8211; please look at the P.P.S. below for clarifications before commenting same thing over and over again</strong>*</p>

<p>Even after living in Brazil for 15 years now, I am closely following up the stories about Linux and Open-Source success in Russia. This is why I could not resist sharing those pictures which were available at AltLinux stand at FISL (International Free Software Forum):</p>

<div id="attachment_938" class="wp-caption aligncenter" style="width: 235px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/07/270793_10150251210214796_508419795_7327475_6074088_n.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2011/07/270793_10150251210214796_508419795_7327475_6074088_n-225x300.jpg" alt="" title="270793_10150251210214796_508419795_7327475_6074088_n" width="225" height="300" class="size-medium wp-image-938" /></a><p class="wp-caption-text">The caption says &#039;Russian Prime-Minister Vladimir Putin is using ALT Linux, and you, what are you using?&#039;</p></div>

<p>For those of you who don&#8217;t know, Dmitry Medvedev &#8211; the President of Russian Federation &#8211; is also well-known for his interest in technology, computers and Internet technologies &#8211; and it is great to know that now he is using a Linux distribution as well!</p>

<div id="attachment_939" class="wp-caption aligncenter" style="width: 310px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/07/278218_10150251204534796_508419795_7327377_2162683_o.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2011/07/278218_10150251204534796_508419795_7327377_2162683_o-300x225.jpg" alt="" title="278218_10150251204534796_508419795_7327377_2162683_o" width="300" height="225" class="size-medium wp-image-939" /></a><p class="wp-caption-text">&#039;Russian president Dmitry Medvedev is also using ALT Linux&#039;</p></div>

<p>As I always said, I believe that Linux and Open-Source being spread as far as possible only benefits the Free Software communities as the whole &#8211; so I can only say &#8216;Congratulations&#8217; to our colleagues from ALT Linux &#8211; which was also based on Mandrake Linux in its origins. It is a completely independent distribution with its own community now of course.</p>

<p>Here in Brazil, Linux usage is gaining more and more adoption for the past decade, and it is quite common to find Linux-based computers in supermarkets, computer shops, and so on. Of course, they are not that widely available as their Windows counterparts, but still, it is hard to find any computer store which wouldn&#8217;t have at least some computers running a Linux-based OS, and it is usually enough to do a web search on any Internet shop to find several compatible models which come with Linux pre-installed. Be it Mandriva, Ubuntu, or any other distribution &#8211; they all have the common open-source foundation and all the benefits of free software. And yes, they are ready for desktop and casual users to use!</p>

<p>It is great to know that the Open-Source movement is gaining more and more spread world-wide. I truly believe that it has the power to change the world, and I am really happy to know that it does it.</p>

<p>P.S.: I wasn&#8217;t at FISL this year, so all the credit for those pictures go to Bogdano and Bedi from Conectiva who attended the event.</p>

<p><strong>P.P.S.:</strong> Per official AltLinux response, those posters do not represent the truth and were done for Marketing purpose only. No, in fact, neither Dmitry Medvedev nor Vladimir Putin use AltLinux. <strong>Please</strong> talk to AltLinux representative for other comments, I am in no way related to them, nor I know anyone from AltLinux personally.</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/07/04/on-linux-on-desktops/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Macdriva experience</title>
		<link>http://dodonov.net/blog/2011/06/26/macdriva-experience/</link>
		<comments>http://dodonov.net/blog/2011/06/26/macdriva-experience/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 18:01:45 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=912</guid>
		<description><![CDATA[&#8230;or, &#8220;when you have a hammer, everything looks like a nail&#8221;. To do a more fair comparison between Mac and Linux approaches on same hardware, I took a shot and installed Mandriva 2011 beta3 (x86-64 version) alongside Mac OS X on the same Macbook air. The process is nowhere simple nor straight, but it is <a href='http://dodonov.net/blog/2011/06/26/macdriva-experience/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>&#8230;or, &#8220;when you have a hammer, everything looks like a nail&#8221;.</p>

<div id="attachment_913" class="wp-caption aligncenter" style="width: 310px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/06/mdv.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2011/06/mdv-300x168.jpg" alt="" title="mdv" width="300" height="168" class="size-medium wp-image-913" /></a><p class="wp-caption-text">Mandriva 2011 beta3 running on macbook air</p></div>

<p>To do a more fair comparison between Mac and Linux approaches on same hardware, I took a shot and installed Mandriva 2011 beta3 (x86-64 version) alongside Mac OS X on the same Macbook air. The process is nowhere simple nor straight, but it is certainly possible. So in case someone wants to repeat the feat, here is a <em>quick</em> step-by-step instruction how to do so (alternatively, for the impatient ones, you could skip till the end of this post for a simple one-step solution).</p>

<ul>
<li>Download Mandriva 2011b3 from your favorite mirror. The architecture should not matter, but to get the most from the hardware I&#8217;d recommend 64bits edition (but it is solely up to you to decide).</li>
<li>Run <strong>hdiutil convert -format UDRW -o mdv2011.img Mandriva.2011-beta3.x86_64.iso</strong> to convert the image to mac-compatible format</li>
<li>Now comes the tricky part. In order to make the system boot from this image, it is not enough to create a bootable usb disk or create a local disk partition for the installation. You actually have to create <strong>2</strong> local disk partitions &#8211; one where the Linux will be installed, and another roughly equal to the size of the installable image (1.6GB as of mdv2011 beta3), where you should put the copy of the installation image using dd. In other words, you must do the following:</li>
<li>Open <strong>disk utility</strong> from <strong>Dock->Utilities</strong>.</li>
<li>Create a new partition with roughly <strong>2GB</strong> in size.</li>
<li>Create another partition with the space you want for your Linux install (about <strong>10GB</strong> should be enough).</li>
<li>Format both partitions as MSDOS FAT.</li>
<li>Plug your pendrive which will be used for installation.</li>
<li>Open a terminal, become root and run <strong>diskutil list</strong>, it should show you the partitions you have created and the pendrive. E.g., it should show something like:</li>
</ul>

<p><code></p>

<pre><code>  sh-3.2# diskutil list
  /dev/disk0
     #:                       TYPE NAME                    SIZE       IDENTIFIER
     0:      GUID_partition_scheme                        *121.3 GB   disk0
     1:                        EFI                         209.7 MB   disk0s1
     2:                  Apple_HFS Macintosh HD            89.9 GB    disk0s2
     3:       Microsoft Basic Data                         29.2 GB    disk0s3
     4:       Microsoft Basic Data                         2.0 GB     disk0s4
  /dev/disk1
     #:                       TYPE NAME                    SIZE       IDENTIFIER
     0:     FDisk_partition_scheme                        *8.0 GB     disk1
     1:                       0x17                         1.7 GB     disk1s1
</code></pre>

<p></code></p>

<p>Here, <strong>disk0s3</strong> is the partition where the Linux system will live after the installation, <strong>disk0s4</strong> is the partition for the installer, and <strong>disk1</strong> is the disk currently located inside the pendrive.</p>

<ul>
<li>Now we have to transfer the installation image <strong>both</strong> to the pendrive and local partition. For this, first run <strong>diskutil unmountDisk /dev/disk0s4</strong> and <strong>diskutil unmountDisk /dev/disk1</strong> to unmount the partitions, and then transfer the image to them with <strong>dd if=mdv2011.img of=/dev/disk1</strong> and <strong>dd if=mdv2011.img of=/dev/disk0s4</strong>.</li>
<li>!! <strong>AS ALWAYS, make sure you know what you are doing, because dd command does not likes newcomers and non-careful people</strong> !!. If you are not careful, this is the step you have the most possibility of losing all your data for good. You&#8217;ve been warned.</li>
<li>After it is done, the installation procedure is mostly prepared, but you still need to prepare your mac for multi-booting. Luckily for you, this is easy &#8211; just install <a href="http://refit.sourceforge.net" onclick="urchinTracker('/outgoing/refit.sourceforge.net?referer=');">refit</a> and it should work without any configuration.</li>
<li>Now, with the pendrive still plugged, reboot your machine. On boot prompt, there will be a new nice refit menu, where you should choose <strong>partition tool</strong> and allow it to syncronize the GPT partition table with MBR. This is necessary because grub1 and low-level system utilities used in Mandriva 2011 do not support GPT partition tables.</li>
<li>Now you can try booting from your pendrive. If you receive a <strong>Non-system disk</strong> or <strong>Unable to find isolinux.bin</strong>, make sure that you have followed the steps of having the same image on both pendrive and local partition. What (apparently) happens in this case is that Mac gets confused about the local disks namings (e.g., it confuses the USB partitions with local disk ones), and isolinux gets lost trying to figure what to do and usually gets stuck. There is probably a more clean way to make this work, but as I am lazy sometimes, I just settled with this solution.</li>
<li>If you got to the grub splashscreen, congratulations, you have almost reached half of the procedure <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Now press <strong>TAB</strong> to edit kernel parameters, and change the <strong>root=LIVE:LABEL=&#8230;</strong> to <strong>root=LIVE:/dev/sdb</strong>. This way, you are telling kernel that the partition you are booting from is in fact the pendrive, and it won&#8217;t get lost trying to solve the puzzle of GPT+MBR+multiple disks mappings (more on this later). Just make sure you select <strong>Live system</strong> instead of <strong>Installation</strong> to prevent needless reboots and problems.</li>
<li>If everything goes OK, you should be able to boot to KDE with 800&#215;600 resolution. If you reached this point, open the <strong>konsole</strong> terminal, become root, run <strong>draklive-install</strong> and proceed with the installation until the partitioning step. At this point, the Mandriva installer gets confused by the GPT+MBR partition table as well, and gets lost about what to do. What you should do is <strong>remove</strong> the partition you dedicated for Mandriva installation (the big one, not the 2GB one), create a new one with your favorite Linux file system (I suggest ext4) and format it. Just name it as <strong>/</strong> partition and create no swap &#8211; we could always create a swap file later.</li>
<li>Now the installer will tell you that the machine must be rebooted to update partition layout and will quit. Instead of rebooting, however, just run <strong>partprobe</strong> command as root and it will re-sync in-memory partition table with the new disk content, and restart <strong>draklive-install</strong>. Now it should allow you to proceed with the installation, so just sit back and relax while Mandriva gets installed on your system. Or go make a tea or drink a beer, cause it will take a somewhat long time.</li>
<li>When the install finishes, in the bootloader installation step, <strong>make sure to install it to the root of the partition</strong> &#8211; in my case, it was <strong>/dev/sda3</strong>, but your mileage may vary.</li>
<li>The install should finish, but in case grub-install command output in the terminal gave you an error message, you must install grub manually because somehow, surprisingly, it gets confused with the GPT+MBR layout as well. So just run <strong>grub-install /dev/sda3</strong> and it should work. If it does not, try running just <strong>grub</strong> so it would recreate the device mapping, and install the bootloader manually (this is a bit technical and tedious procedure so I&#8217;ll skip it on behalf of clarity &#8211; feel free to ask in comments if you have questions about this point).</li>
<li>Finally, run <strong>fdisk /dev/sda</strong>, unmark the <strong>/dev/sda4</strong> (old installation partition) as active, and mark <strong>/dev/sda3</strong> as active. Basically, <strong>fdisk /dev/sda &#8211; press &#8211; a &#8211; press &#8211; 3 &#8211; press -a &#8211; press &#8211; 4 &#8211; w</strong> should do it (/me feels like describing Mortal Kombat fatalities with this explanation <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</li>
<li>Reboot, and a new <strong>Linux</strong> entry should appear within refit menu. However, when you try to boot it, grub will fail, saying that it is unable to locate kernel and initrd files at correct location. This, once again, is due to mismatch between GPT and MBR partition table, and a quick fix is to change <strong>(hd0,3)</strong> to <strong>(hd0,2)</strong> for both kernel and initrd lines. Once again, I am not describing the right fix, but the quickest one.</li>
<li>When the system boots, everything should work automatically, including wifi and everything else. As Mandriva 2011 comes pre-loaded with firmware for most closed cards and devices, it all should just work out of the box.</li>
<li>Just remember to edit <strong>/boot/grub/menu.lst</strong> file and make the change from <strong>(hd0,3)</strong> to <strong>(hd0,2)</strong> there to have it permanently remembered.</li>
</ul>

<p>So, that&#8217;s it, and if you have got through this quick tutorial to this point and managed to get Mandriva 2011 installed on your Mac machine, you can consider yourself a true geek. Of course, most of this tutorial applies to Macbook Air, because it does not has a <strong>CD/DVD</strong> port &#8211; if it had, most of those steps wouldn&#8217;t be necessary at all. But.. we do not seek easy routes, are we? <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>And of course, I mentioned in the beginning of this post that there is a way to install Mandriva on OSX in just 1 simple step. This step is very simple &#8211; just ask me to send you a .dd.img copy of my Mandriva partition to you, so you could simple copy it into one of your own partitions, and it will just work. Somehow it feels a more natural way of distributing and packaging anything on Mac platform (I mean, within a .dmg file) &#8211; so I am unsure if it is more a hack than the complete tutorial I described above <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p><strong>P.S.:</strong> Just to update you with some timings on the same hardware. Mac OS X 10.6.8 takes approximately <strong>10</strong> seconds from refit boot menu towards desktop. Stock Mandriva 2011 beta3 takes approximately <strong>12</strong> seconds from grub menu to kdm, and approximately another <em>12</em>* seconds from kdm to full-featured desktop. After some optimizations, I could decrease this time to <strong>7</strong> seconds from grub to kdm, and <strong>6</strong> seconds from kdm to full-featured desktop. With auto-login they are tied in this comparison, which is really amazing!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/06/26/macdriva-experience/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Mac experience</title>
		<link>http://dodonov.net/blog/2011/06/25/mac-experience/</link>
		<comments>http://dodonov.net/blog/2011/06/25/mac-experience/#comments</comments>
		<pubDate>Sat, 25 Jun 2011 13:31:20 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=897</guid>
		<description><![CDATA[At request from my friends from ROSA Labs , I was using a mac os x-based machine this week, to get a feeling on how it works, feels and looks like. As I had never used a mac before, it was certainly a nice experience, and I think I managed to extract the feeling of <a href='http://dodonov.net/blog/2011/06/25/mac-experience/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>At request from my friends from ROSA Labs <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , I was using a mac os x-based machine this week, to get a feeling on how it works, feels and looks like. As I had never used a mac before, it was certainly a nice experience, and I think I managed to extract the feeling of what is fundamentally different between a Mac and PC-based approaches (in this case, let&#8217;s consider PC as being Linux-based OS instead of Windows, which stands in between those approaches and perhaps I&#8217;ll describe my thoughts about it later).</p>

<div id="attachment_902" class="wp-caption aligncenter" style="width: 310px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/06/Screen-shot-2011-06-25-at-10.11.21-AM.png"><img src="http://dodonov.net/blog/wp-content/uploads/2011/06/Screen-shot-2011-06-25-at-10.11.21-AM-300x168.png" alt="" title="mac" width="300" height="168" class="size-medium wp-image-902" /></a><p class="wp-caption-text">Hi, I&#039;m Mac.</p></div>

<p>So, after using a Linux-based OS exclusively for my Desktop for the past 10 years or so (except the time at Microsoft where I was using a pre-released version of Vista during the work hours), I finally was able to get a hold of a MacBook Air. One thing I can say that most of the mac advertizements are true &#8211; the hardware really looks amazing and &#8220;cool&#8221;. As for the software, well, let&#8217;s go step-by-step in this evaluation.</p>

<p>The fest thesis I want to emphasize is that the fundamental change between the Mac and Linux Desktop approaches is that Mac does everything to force you to understand and bend to the system default settings and the way it works, and Linux is completely aimed at making the system easy to customize and adapt to you. In other words, Mac forces you to adapt to the system, and Linux focuses on making system easily adaptable to what you want. This ranges from each and every level of the system configuration, starting with the UI, standardization of the used applications, the standardized menu, dock, and so on. On Mac, it is done this way, and you should <strong>not</strong> even think on changing it &#8211; it just works and the only solution for you is to get used to it.</p>

<p>On Linux, the things are quite opposite on all stages. Each and every part of the system can be customized, adapted, modified; there is no single point of complete integration between applications, settings and features. It is quite common to have a Linux system with systemd+kde+pidgin+openoffice, where each application has its programming framework, UI, look-and-feel, and functionality. And by no means it makes this system a second-class citizen when comparing to a upstart+gnome+emphaty+libreoffice one. This is the biggest advantage (and, for some, disadvantage) of Linux-based approaches &#8211; the large choice without One True Way of doing things.</p>

<p>This also brings me back to the eternal flame was which says that &#8220;the Mac is the Best Desktop Experience out there&#8221;, which I personally cannot agree with. Yes, Mac has its own experience, but the largest drawback is that is the <strong>only</strong> experience you could get out of it. By the contrary, on Linux there are <strong>thousands</strong> ways of how one could create, customize and run his Desktop. Somebody feels comfortable with pure KDE experience, someone would feel much more natural with a GNOME desktop. Many productivity-oriented Linux desktops are running dwm, icewm, ratpoison, wm3, evilwm and many many other desktop environments with multitude of apparently incompatible applications and do not miss any of their larger cousins (like kde, gnome or xfce) features.</p>

<p>So to summarize it all, one big advantage of a Mac-based experience is that the entire desktop feels like an <strong>appliance</strong>. To illustrate, consider any cellphone OS, or any TV or a videogame &#8211; the things &#8220;just work&#8221;, and you have no choice nor need to modify the way they work and just go on with using them. This is certainly a huge plus for casual users who just need to use their devices to get things done &#8211; it is very hard to get confused about what to do with the system, and in most applications all keyboard shortcuts, UI, menus, appearance and so on is standardized. In other words, you don&#8217;t learn how to use a Mac or Android or Symbian, you just use it, and there is only one correct way to get something done.</p>

<p>The advantage of a Linux-based desktops is their absolute &#8211; and even exaggerated sometimes &#8211; flexibility. They are completely focused on making the desktop experience bendable towards what <strong>you</strong> need, at a cost of much higher entry level and necessary learning about all the puzzles which compose it. It is certainly not focused on casual users (and, in my personal opinion, it should not be), and it is more of an elitist system &#8211; only the ones willing to learn, customize and adapt the system will be able to get the most out of it. But the ones who manage to get through this exhaustive task will be truly rewarded with a system where you know exactly what each and every piece, process or file are responsible for.</p>

<p>In other words, Mac is an appliance, and Linux is a constructor. Mac just works (not necessarily the way you expect), and Linux gives you the possibility to make it work the way you want (at a cost of a high learning and customization curve).</p>

<p>So in my personal opinion, it is pointless comparing a Mac experience to a Linux Desktop one. If Mac should be compared to anything, it is to other appliance-like environments, like cellphones and similar devices for example; or to end-to-end solutions based on any OS which has the similar goals in mind (like meego, android, winphone, windows, symbian, ubuntu &#8211; and now mandriva, which has invested a lot of time of ROSA Labs designers and developers to introduced a new UI experience for the 2011 release). In such cases, the user does not cares &#8211; nor should he &#8211; about what the system is based upon &#8211; a darwin os, a win kernel, a linux or any other low-level operating system. What use gets is the overall default UI which just works, and he should adapt to.</p>

<div id="attachment_904" class="wp-caption aligncenter" style="width: 310px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/06/mandriva20111beta3-large_002.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2011/06/mandriva20111beta3-large_002-300x187.jpg" alt="" title="mdv2011" width="300" height="187" class="size-medium wp-image-904" /></a><p class="wp-caption-text">Hi, I am PC^WMandriva 2011 (this shot was shamelessly borrowed from softpedia because it really looks awesome!)</p></div>

<p>At the end, summarizing and concluding this long text, I can say now that it is more clear for me now where the ROSA Labs designers and developers are getting their inspiration from. Personally, for me, the Rosa Panel (included by default in Mandriva 2011) feels more natural and easy to use than its Mac equivalent and more flexible and tunable than its Windows counterpart. The same way, the ROSA Launcher application feels more powerful than Mac&#8217;s finder+dockbar combination, and much more flexible and friendly than Windows 7 start menu. This, at least for me, only complements my opinion that Linux is a constructor &#8211; you can build anything from the tools and pieces it has, take the best ideas out there and use them as inspiration, and result in something new. This is specially true to the geeks (like me) who do not like some of the design choices taken by ROSA &#8211; so we can just go ahead and make the system the way we want, taking the best from the both worlds.</p>

<div id="attachment_906" class="wp-caption aligncenter" style="width: 310px"><a href="http://dodonov.net/blog/wp-content/uploads/2011/06/timeframe1.jpg"><img src="http://dodonov.net/blog/wp-content/uploads/2011/06/timeframe1-300x168.jpg" alt="" title="timeframe" width="300" height="168" class="size-medium wp-image-906" /></a><p class="wp-caption-text">Hi, I&#039;m a bit customized Mandriva 2011 - and the limit to my customization is only your imagination <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p></div>

<p>And, of course, having the power of Linux constructor, you can certainly adapt the system towards your needs, remove or change things you don&#8217;t want, and add what you find missing.</p>

<p>That&#8217;s it <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>P.S.: Please, consider everything said here as my own personal opinion. By no means it represents the official Mandriva or ROSA view on the matter. This is what <strong>I</strong> think.</p>

<p><strong>P.P.S.: </strong>Some extremely interesting discussion and feedbacks in the comments, be sure to check them out. Thanks for all this feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2011/06/25/mac-experience/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Kwin + desktop switching &#8211; the solution</title>
		<link>http://dodonov.net/blog/2010/11/30/kwin-desktop-switching-the-solution/</link>
		<comments>http://dodonov.net/blog/2010/11/30/kwin-desktop-switching-the-solution/#comments</comments>
		<pubDate>Tue, 30 Nov 2010 23:25:08 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[devel]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Linux-Planet]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=811</guid>
		<description><![CDATA[So, after some months of evaluation, my patch to kwin to enable quick workspace switching was rejected as well. I am starting to suspect that I am the only person on the face of the Earth who actually uses this functionality. The metacity patch was rejected, the mutter patch seems to have gone to limbo <a href='http://dodonov.net/blog/2010/11/30/kwin-desktop-switching-the-solution/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>So, after some months of evaluation, my <a href="http://dodonov.net/blog/2010/09/01/kde-hacking/">patch to kwin</a> to enable quick workspace switching was <a href="http://reviewboard.kde.org/r/5214/" onclick="urchinTracker('/outgoing/reviewboard.kde.org/r/5214/?referer=');">rejected</a> as well.</p>

<p>I am starting to suspect that I am the only person on the face of the Earth who actually uses this functionality. The <a href="http://dodonov.net/blog/2010/05/06/gnome-hacking/">metacity patch</a> was rejected, the mutter patch seems to have gone to <a href="https://bugzilla.gnome.org/show_bug.cgi?id=618124" onclick="urchinTracker('/outgoing/bugzilla.gnome.org/show_bug.cgi?id=618124&amp;referer=');">limbo</a> (not a single developer bothered to reply to the feature request with patch over the last few months), and now it won&#8217;t enter kwin too. However, from the experience, the kde developer&#8217;s feedback was the best one, and it actually gave me some ideas on how to do this functionality without changing a single line of code within kwin.</p>

<p>The idea came from the fact that the kde sends and receives dbus messages for anything. So I took some time today, learned  how to develop for udev in python, and also learned how to grab a message which knotify sends when a desktop switch occurs, save the last used workspace; then how to discover that a desktop switch is attempted via a keyboard shortcut, and finally trick kwin into thinking that a different workspace switch should be done.</p>

<p>Yes, it is a hack, which actually relies on parsing strings and regexps contained within DBUS parameters, and it has a huge and enormous overhead over plain metacity/mutter/kwin patches, but it works and does not required me to manually patch metacity or mutter or kwin for each and every release <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>

<p>So this is the code. Just run this &#8220;daemon&#8221; in background and become a happy user of such functionality:</p>

<pre><code>#!/usr/bin/python

import dbus
from dbus.mainloop.glib import DBusGMainLoop
import pygtk
pygtk.require('2.0')
import gtk
import traceback
import re

# This is a very dirty hack which will probably affect the karma and maybe
# even cause a global meltdown...
regex = re.compile('The global shortcut for Switch to Desktop (.*) was issued.')

lastdesktop=None
prevdesktop=None

def match(bus, msg):
    global lastdesktop, prevdesktop, newdesktop, curdesktop, kwin
    if msg.get_path() == '/Notify':
        args = msg.get_args_list()
        if args[0] == "globalshortcutpressed":
            val = regex.findall(args[4])
            if lastdesktop == None or prevdesktop == None:
                return
            if val:
                curdesktop = "%s" % (val[0])
                if lastdesktop == curdesktop:
                    global kwin
                    kwin.setCurrentDesktop(int(prevdesktop))
        elif len(args[0]) &gt; 6:
            param = args[0][:7]
            if param == 'desktop':
                val = args[0][7:]
                newdesktop = "%s" % val
                if newdesktop == lastdesktop:
                    return
                else:
                    prevdesktop = "%s" % lastdesktop
                    lastdesktop = "%s" % val

if __name__ == "__main__":
    DBusGMainLoop(set_as_default=True)

    bus = dbus.SessionBus()
    bus2 = dbus.SessionBus()

    # ask dbus-daemon to receive all matching messages
    bus.add_match_string("member='event',interface='org.kde.KNotify'")

    # add a callback when receiving a message
    bus.add_message_filter(match)

    kwin = bus2.get_object('org.kde.kwin', '/KWin')

    try:
        gtk.main()
    except:
        traceback.print_exc()
</code></pre>

<p>A careful reader already noticed that I am using 2 message bus instances, parse strings by hand, use a regexp to extract the new workspace number for the switch, and use a gtk mainloop within a kde environment. And I am also doing a &#8220;cast&#8221; from dbus variables into a local representation.</p>

<p>Is it a hack? Yes. Is it a dirty hack? Yes. Is it an awesomely dirty and hackish and oh-my-god-I-dont-believe-it-works-kind of a hack? I certainly think so.</p>

<p>But it works <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2010/11/30/kwin-desktop-switching-the-solution/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Some rant about desktops, evolution and everything..</title>
		<link>http://dodonov.net/blog/2010/11/24/some-rant-about-desktops-evolution-and-everything/</link>
		<comments>http://dodonov.net/blog/2010/11/24/some-rant-about-desktops-evolution-and-everything/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 23:59:18 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=805</guid>
		<description><![CDATA[I have been asking myself numerous times before: what does we miss to have the best Desktop? No matter if it runs Windows, or Mac, or Linux, or anything else. And the answer I have for myself is that we are limited by the fact that we know what should one expect from his average <a href='http://dodonov.net/blog/2010/11/24/some-rant-about-desktops-evolution-and-everything/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I have been asking myself numerous times before: what does we miss to have the <em>best</em> Desktop? No matter if it runs Windows, or Mac, or Linux, or anything else.</p>

<p>And the answer I have for myself is that we are limited by the fact that we know what should one expect from his average desktop.</p>

<p>So, what do we know about it?</p>

<p>Well, the de-facto standard for the desktops includes a integrated environment, standardized appearance across all the applications, ability to quickly launch applications and switch between them, possibility of working with many documents easily&#8230; Possibility to easily work on different types of documents, graphical applications, use the resources located in some distant place over the world-wide network. And all the other small things that became so tightly integrated into our lives that we cannot imagine a
computer without that.</p>

<p>And now, most desktop environments and desktop projects have it. We have it in Windows. We have it in Mac. We have it in Ubuntu, Fedora, SuSE, Mandriva (or better &#8211; in Gnome, KDE, XFCE and other desktop environments).</p>

<p>But if we consider the other part of the medal, I think that things are not that simple.</p>

<p>The evolution of the Internet and the web &#8211; as we know it &#8211; has flown very quickly in the past decade. Just 10 years ago, we had that crappy modem connections (in the best case), the Wide World Web was still making its first steps towards the web 2.0 revolution, and a Pentium 3 with 128MB of RAM was a dream machine.</p>

<p>And at the same time, we had the desktop evolution, which was going slow and steadily. On Microsoft front, we went from Windows 2000 to XP to Vista to 7. On Mac, we went through Mac OS X versions. On the open-source front, we went from KDE 1 to 4.5; from GNOME 1 to GNOME 3; XFCE went all the way up to its latest 4.6 version&#8230;</p>

<p>And what if we consider how the mobile and portable computing has evolved in the same time as well? Thinking 10 years ago, could we imagine Android? IPhone? Meego? And at the same time, if look at our desktop environments, they are essentially still the same as a decade ago.</p>

<p>If we think how the world has changed on the web, Internet and technology side; and compare it with the evolution of the desktop, I believe that it is undeniable that a slower pace was taken on the desktop side. Beside the revolution caused by the Mac OS X launch, the biggest and major revolution &#8211; in my honest opinion &#8211; was brought to us by the KDE 4 release. Yes, we have gnome &#8211; which is my main desktop environment as of now; we have all the evolution brought by the development teams at Microsoft; but I can see those changes as evolution, and not revolution in the way we use our computers.</p>

<p>Of course, desktops of today they are much better-looking. They have much more features, integration with the world-wide network, gadgets, eye-candy utilities, and many other features. But essentially, they still work in the same way as in the last decade.</p>

<p>And with the evolution of the information we have around us, with the number of information we are working with daily, with the global network around us, mobile devices, distant friends which we talk to over cellphones, social network, instant messengers, email, and the overall quantity of the information we are dealing with daily, I believe that the way the desktop is used now is slowing us down.</p>

<p>And what it all has to do with Planet Mandriva and my blog, where I am posting all this rant?</p>

<p>Well, it is a simple answer..</p>

<p>Since I first knew about Mandrake and Conectiva (who gave birth to Mandriva), they had the Desktop innovation in mind. Mandriva came through a difficult road this year, this is true. But now we can start thinking on how to continue this innovation even further. And as it came to me to be the one in front of the Mandriva Desktop, I can only share with you what I have in mind about it all.</p>

<p>In a few words, my goal is to make Mandriva <strong>the</strong> <strong>best</strong> desktop distribution out there. Not yet another distribution, perhaps not the biggest one, but the one which will attempt to transform the way we think about and use our desktops.</p>

<p>Will it be simple? Definitely, now. But what fun is in doing simple things?</p>

<p>Will it be challenging? Heck, yes!!</p>

<p>And I will do my best to make it work.</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2010/11/24/some-rant-about-desktops-evolution-and-everything/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>2009 movies</title>
		<link>http://dodonov.net/blog/2010/01/06/2009-movies/</link>
		<comments>http://dodonov.net/blog/2010/01/06/2009-movies/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 00:13:24 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[mandriva]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=710</guid>
		<description><![CDATA[Since I first heard about the filming of the Lord of the Rings movies, my life was almost divided into two stages: before I heard about it, and after that. The Lord of the Rings was the first book I read (at age 4 or 5, I don&#8217;t remember exactly), and I read it at <a href='http://dodonov.net/blog/2010/01/06/2009-movies/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Since I first heard about the filming of the Lord of the Rings movies, my life was almost divided into two stages: before I heard about it, and after that. The Lord of the Rings was the first book I read (at age 4 or 5, I don&#8217;t remember exactly), and I read it at least 50 times since that. So the waiting that movie was really, really expected.</p>

<p>After the last of the LOTR movies, I was a bit lost. There was no more need to wait for the next movies. I felt almost like &#8216;the cinema has got to its top, and I don&#8217;t think any other movie will entertain me, and allow me to go to the other worlds as the LOTR did&#8217;. For several years, I was waiting for the next LOTR movies like a child who is waiting for the Santa&#8217;s gifts at the end of the year. And suddenly I felt like all the wishes were fulfilled.</p>

<p>However, some new movies appeared and made me feel <strong>almost</strong> as when I was waiting for the Fellowship of the Ring, The Two Towers and The Return of the King &#8211; movies like the Spiderman series, The Jason Bourne series, the last episode in the Starwars movies (well, the 3rd episode to be correct), Pirates of the Caribbean, 300, the new Batman and The Dark Knight movies, and many others. However, most of those movies appeared before 2009, so I started the year thinking &#8216;oh my.. this year will be a really boring one, with nothing interesting to watch&#8217;.</p>

<p>Well, to sum it in a few words.. <strong>I was completely wrong</strong>. The year of 2009 brought me a <strong>lot</strong> more excellent movies that I could possible hope. Just to name a few: Watchmen (until the very end of the year, I thought it would be simple the best movie in a long long time), 500 Days of Summer, Zombieland, Terminator Salvation, Inglorious Bastards, Taken, Star Trek, Pandorum (almost-the-best SciFi movie in a long long time), District 9, and many many others. I have to say that all those movies were great, and left a mark in my memories.</p>

<p>And then Avatar came and put them all into the background.</p>

<p>I already expected a lot from this movie, and also was quite afraid that it would not live up to the expectations. However, I had a lot of trust in James Cameron &#8211; the cinema magician who created Terminator, Aliens, True Lies, Abyss and Titanic.. and he made yet another cinema miracle. In my opinion, Avatar is the biggest happening in the cinema world of this decade. And it is specially true for the ones out there who happen live some part of their life in different worlds &#8211; worlds created by writers, cinema guys, or RPG games.</p>

<p>The writers manage to create great worlds, and make you believe that they are real in your mind. Role-playing games put you in those worlds, and make you part of it. But with Avatar, James Cameron was the first guy to in fact create a different world, and let us to live in it for a while. That world feels so real, that you forget about all the computer-generated graphics, effects, and a (few) plot holes, so you just lose a few hours of your real life to spend them on Pandora.</p>

<p>So, to sum it all up &#8211; if you haven&#8217;t done it yet, go watch Avatar &#8211; and, if possible, watch it in 3D. You&#8217;ll probably feel the same feeling as the people in the beginning of the past century had, by watching the first movies ever.</p>

<p>I think that resumes pretty much everything I have to say about it <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2010/01/06/2009-movies/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Tese de doutorado finalmente na net!</title>
		<link>http://dodonov.net/blog/2009/09/01/tese-de-doutorado-finalmente-na-net/</link>
		<comments>http://dodonov.net/blog/2009/09/01/tese-de-doutorado-finalmente-na-net/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 13:58:15 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=533</guid>
		<description><![CDATA[Usp finalmente colocou a minha tese na net! Uhuu! Para quem quiser mergulhar numa aventura emocionante, conhecer as teorias, mitos e lendas do Grande Caos, comparar a sua inteligência com a artificial, e participar de uma busca dinâmica afim de e averiguar a verdadeira autonomia de computação, sintam-se convidados a se escalar nessa jornada! http://www.teses.usp.br/teses/disponiveis/55/55134/tde-05082009-205709/]]></description>
			<content:encoded><![CDATA[<p>Usp finalmente colocou a minha tese na net! Uhuu!</p>

<p>Para quem quiser mergulhar numa aventura emocionante, conhecer as <strong>teorias</strong>, mitos e lendas do Grande <strong>Caos</strong>, comparar a sua <strong>inteligência</strong> com a <strong>artificial</strong>, e participar de uma busca <strong>dinâmica</strong> afim de e averiguar a verdadeira <strong>autonomia</strong> de computação, sintam-se convidados a se <strong>escalar</strong> nessa jornada!</p>

<p><a href="http://www.teses.usp.br/teses/disponiveis/55/55134/tde-05082009-205709/" onclick="urchinTracker('/outgoing/www.teses.usp.br/teses/disponiveis/55/55134/tde-05082009-205709/?referer=');">http://www.teses.usp.br/teses/disponiveis/55/55134/tde-05082009-205709/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2009/09/01/tese-de-doutorado-finalmente-na-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2008++</title>
		<link>http://dodonov.net/blog/2008/12/31/2008/</link>
		<comments>http://dodonov.net/blog/2008/12/31/2008/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 14:17:46 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/?p=228</guid>
		<description><![CDATA[Ééééé, mais um ano está se acabando.. Nesse em particular aconteceram muitas coisas comigo. E, seguindo a tradição dos últimos anos, só posso falar duas coisas: &#8211; A cada ano parece que o tempo passa mais e mais rápido &#8211; Todos os planos feitos no começo do ano acabam se transformando de forma inacreditável . <a href='http://dodonov.net/blog/2008/12/31/2008/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Ééééé, mais um ano está se acabando..</p>

<p>Nesse em particular aconteceram muitas coisas comigo. E, seguindo a tradição dos últimos anos, só posso falar duas coisas:
 &#8211; A cada ano parece que o tempo passa mais e mais rápido
 &#8211; Todos os planos feitos no começo do ano acabam se transformando de forma inacreditável <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</p>

<p>Bem, alguns dos destaques de 2008, que logo-logo vai ficar no passado:</p>

<ul>
<li>Encontrei a Vanessa (sem dúvida alguma uma das coisas mais legais de 2008 <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )!</li>
<li>Fui para Salvador no carnaval. Foi uma experiência única e inesquecível <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</li>
<li>Saí da mstech, depois de 5 anos lá. Aprendi muito lá, fiz diversos projetos interessantes, achei amigos para toda a vida e cresci muito. Mas chegou a hora de procurar novos desafios..</li>
<li>Adiantei de forma inacreditável as coisas do doutorado. Se no fim do ano passado eu não sabia nem para onde ele estava indo, e hoje posso falar que o projeto está praticamente terminado, e é um projeto <strong>BOM</strong>.</li>
<li>Entrei para Mandriva. Para mim isso é particularmente interessante &#8211; estou mexendo com Linux já faz mais de 10 anos, mas nunca trabalhei em nenhum lugar que trabalhasse diretamente com software livre.</li>
<li>Realizei diversos projetos para Intel (com ajuda do Paulo, é claro).</li>
<li>Li mais de 300 livros no meu N800. Encontrei diversos livros que realmente marcaram a minha vida e fizeram pensar nela.</li>
<li>Conheci diversas cervejas diferentes (novo hobby), e comecei a &#8220;degustar&#8221; vinhos bons. <em>Casillero Del Diablo</em>, de 2007.. hummm&#8230;</li>
<li>Consolidei o meu hobby de <a href="http://www.flickr.com/photos/eugeni_dodonov" onclick="urchinTracker('/outgoing/www.flickr.com/photos/eugeni_dodonov?referer=');">fotografia</a>. Algumas fotos receberam milhares de visitas, algumas centenas.. Mas, observando as fotos antigas e comparando com as de hoje, consigo notar o meu crescimento pessoal nitidamente.</li>
</ul>

<p>E muitas outras coisas.</p>

<p>De forma geral, 2008 foi bom. Corrido, mas bom. Vamos para 2009 agora!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/12/31/2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>orkut</title>
		<link>http://dodonov.net/blog/2008/06/26/orkut/</link>
		<comments>http://dodonov.net/blog/2008/06/26/orkut/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 14:52:58 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/06/26/orkut/</guid>
		<description><![CDATA[Finalmente dei uma limpada geral no meu orkut, removendo todas as pessoas desconhecidas ou estranhas. O interessante é a evolução dele (no caso, com o meu perfil). Em 2004, só tinha gente conhecida nele (em torno de umas 250 pessoas). Em 2005, uns 80% das pessoas no meu profile foram as que me encontraram e <a href='http://dodonov.net/blog/2008/06/26/orkut/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Finalmente dei uma limpada geral no meu orkut, removendo todas as pessoas desconhecidas ou estranhas.</p>

<p>O interessante é a evolução dele (no caso, com o meu perfil).</p>

<p>Em 2004, só tinha gente conhecida nele (em torno de umas 250 pessoas).</p>

<p>Em 2005, uns 80% das pessoas no meu profile foram as que me encontraram e adicionaram (e delas, só uns 30% mandou alguma mensagem sequer um dia) (chegou a 800 pessoas o meu perfil).</p>

<p>Em 2006, fiz uma limpeza, removendo as pessoas que nunca responderam nenhuma mensagem nem mandaram (chegou a 500).</p>

<p>Em 2007, chegou a temporada de SPAM, com bilhões de perfis falsos e propaganda.  E muita gente (desconhecida e conhecida) acabou desencanando dele e saiu (em torno de 450 pessoas).</p>

<p>Em 2008 (i.e., agora), só tem pessoas conhecidas nele (350 pessoas).</p>

<p>O que eu tiro como conclusão disso? Em 4 anos, o orkut me ajudou a achar 100 novos amigos (digo, pessoas com quais eu converso, e que são especiais para mim). Tá certo que boa parte delas eu conheci na vida real, mas&#8230; o orkut ajuda a manter amizade apesar de distância e tudo.</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/06/26/orkut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mulheres = Linux</title>
		<link>http://dodonov.net/blog/2008/05/20/mulheres-linux/</link>
		<comments>http://dodonov.net/blog/2008/05/20/mulheres-linux/#comments</comments>
		<pubDate>Tue, 20 May 2008 13:13:21 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/20/mulheres-linux/</guid>
		<description><![CDATA[Conversando hoje com J.F. e P.C. (nomes foram escondidos propositalmente ), chegamos na seguinte conclusão: MULHERES SÃO IGUAIS AO Linux E é muito fácil provar isso! Vejam só: Ambos mostram mensagens crípticas, difíceis de entender, porém essenciais. Se você não prestar atenção nestas mensagens, freqüentemente pode levar um &#8220;Oops&#8221;! Se você não prestar atenção mesmo <a href='http://dodonov.net/blog/2008/05/20/mulheres-linux/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Conversando hoje com J.F. e P.C. (nomes foram escondidos propositalmente <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), chegamos na seguinte conclusão:</p>

<p><strong>MULHERES SÃO IGUAIS AO Linux</strong></p>

<p>E é muito fácil provar isso! Vejam só:</p>

<ul>
    <li>Ambos mostram mensagens crípticas, difíceis de entender, porém essenciais.</li>
    <li>Se você não prestar atenção nestas mensagens, freqüentemente pode levar um &#8220;Oops&#8221;!</li>
    <li>Se você não prestar atenção mesmo assim, isso vai acabar dando um panic. Kernel panic, para ser mais exato. Ou seja, <strong>f***u</strong>.</li>
    <li>Embora o kernel é o mesmo, as distribuições variam bastante (cor de cabelo, gostos, cor de sapato + cor de cinto, etc).</li>
    <li>Essa variação torna-se ainda mais visível se a gente considerar os skins que elas gostam de aplicar! (&#8220;Cabelo vermelho + sapato preto hoje; cabelo loiro + sapato verde amanhã..&#8221;)</li>
    <li>Elas podem ser de mais diversas configurações e opções (tem as que gostam de cálculo (hehe, não resisti), tem as que gostam de dançar, tem as que fazem até computação&#8230;)</li>
    <li>As mensagens que elas demonstram são quase sempre indecifráveis, e você precisa de um <em>man</em> para entendê-las. Err&#8230; bem, pensando melhor, no caso do Linux é mais fácil..</li>
    <li>Geralmente elas suportam todos os dispositivos presentes no mercado, porém cada variação do seu próprio jeito.</li>
    <li>Elas tem interfaces-padrão de entrada-e-saída.. (acho que vou apanhar depois dessa)</li>
    <li>Se você der um <em>reboot</em> nelas sem dar um <em>sync</em> antes, com certeza vai ter problemas!!</li>
    <li>A facilidade para instalar novos pacotes (bolsas, sapatos, vestidos) é impressionante!! (Por outro lado, alguns pacotes dão conflitos que demoram um tempo significativo para resolver).</li>
    <li>Elas criam processos-filhos&#8230; (essa foi péssima.. hehe)</li>
    <li>A interface gráfica é facilmente customizada, <a href="http://www.goth-style-secrets.com/gothic-makeup.html" onclick="urchinTracker('/outgoing/www.goth-style-secrets.com/gothic-makeup.html?referer=');">as vezes até demais</a>&#8230;</li>
    <li>Você precisa conhecer um bilhão de comandos para fazer funcionar do jeito eficiente, e conseguir o que você quer.</li>
    <li>Elas tem tratamento padronizado para o protocolo ICMP PING (&#8220;psiu!!&#8221;)</li>
    <li>Elas suportam diversos <em>aliases</em> para os comandos mais variados. Alguns inclusive podem resultar em efeitos opostos do que você pensava.</li>
    <li>Elas geralmente estão por trás de qualquer grande projeto <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
    <li>Existem diversos bugs que precisariam ser tratados nas versões mais atualizadas&#8230;</li>
    <li>Elas conseguem conversar entre si em protocolos de mais baixo nível (as vezes eu acho que é mais fácil entender a saída binária do tcpdump de que a conversa de duas mulheres sobre a moda&#8230;)</li>
    <li>Elas tem diversas aplicações que fazem mais-ou-menos a mesma coisa (alguém pensou mozilla, firefox, epiphany, galeon, opera e konqueror para navegar na net? nada a ver, eu pensei simplesmente nos 0&#215;208308 sapatos que tem no armário..)</li>
    <li>e finalmente, para concluir:</li>
    <li><strong>VOCÊ NUNCA CONSEGUE ENTENDER O SISTEMA INTEIRO</strong>!</li>
    <li>(se você entende, é porque você é o <strong>vi</strong>.. hehe)</li>
</ul>

<p> <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/20/mulheres-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox speedup</title>
		<link>http://dodonov.net/blog/2008/05/20/firefox-speedup/</link>
		<comments>http://dodonov.net/blog/2008/05/20/firefox-speedup/#comments</comments>
		<pubDate>Tue, 20 May 2008 12:28:35 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[browser]]></category>
		<category><![CDATA[devel]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/20/firefox-speedup/</guid>
		<description><![CDATA[Continuando a temporada de lançamentos, nesse fim da semana saiu Firefox 3 RC1. Com isso, podemos dizer que nas próximas semanas (de acordo com o cronograma de Mozilla), vamos ter a versão final do Firefox 3.0. Eu estou usando ele desde o fim do ano, nas versões conhecidas como &#8220;nightly&#8221; (com codenome &#8220;minefield&#8220;) &#8211; são <a href='http://dodonov.net/blog/2008/05/20/firefox-speedup/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Continuando a temporada de lançamentos, nesse fim da semana saiu Firefox 3 RC1. Com isso, podemos dizer que nas próximas semanas (de acordo com o cronograma de Mozilla), vamos ter a versão final do Firefox 3.0.</p>

<p>Eu estou usando ele desde o fim do ano, nas versões conhecidas como &#8220;<em>nightly</em>&#8221; (com codenome &#8220;<em>minefield</em>&#8220;) &#8211; são as versões compiladas diariamente. Isso tem lados positivos e negativos &#8211; entre os positivos, o desempenho dessas versões geralmente é significativamente superior ao das mais oficiais. Entre os negativos &#8211; vire e mexe algo para de funcionar (por exemplo, gmail, acentos, teclado, etc, etc). Mas em geral eu gostei da experiência que eu tive com os <em>nightlies</em>.</p>

<p>Porém, recentemente &#8211; já faz aproximadamente 1 mês -  ele tem 2 problemas extremamente irritantes:</p>

<ol>
    <li>O acesso ao <em>chrome</em> (i.e., páginas &#8220;internas&#8221; do browser) foi desabilitado. Com isso, extensions como <em>yardvark</em> (para remover partes das páginas &#8211; tipo banners, fontes ilegiveis, etc) e <em>webdeveloper</em> (caixinha mágica dos web-developers <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) pararam de funcionar. Enquanto o <em>webdeveloper</em> &#8211; de acordo com o site do seu criador &#8211; ainda tem esperança, o outro aparentemente não vai ser atualizado no futuro previsível&#8230;</li>
    <li>Os atalhos (alt-número) para trocar de tabs pararam de funcionar de vez no Linux. Isso é mais de que irritante. Inclusive eu achei o <em>commit</em> que quebrou isso, mas, apesar da minha experiência com o código do mozilla, não estou nem um pouco animado a mexer com isso.. hehehe</li>
</ol>

<p>Mas, fora isso, o desempenho dos <em>nightlies</em> é mais de que suficiente, e qualidade de renderização também.</p>

<p>E, por falar em desempenho.. Acredito que muitos já perceberam que o Firefox para windows ganhou um speedup de até 4x na renderização de páginas, javascript, e funcionamento em geral. Tudo isso foi possível graças ao <em>PGO</em> (<a href="http://developer.mozilla.org/en/docs/Building_with_Profile-Guided_Optimization" onclick="urchinTracker('/outgoing/developer.mozilla.org/en/docs/Building_with_Profile-Guided_Optimization?referer=');"><em>profile-guided optimizations</em></a>) &#8211; técnica nova que apareceu nas últimas versões do GCC (junto com uma multidão de problemas, o gcc também trouxe coisas boas nas versões mais recentes <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ). Entretanto, só versões para windows são compiladas com esse suporte; as de Linux não.</p>

<p>Eu tentei dar uma chance a essa técnica &#8211; já que o Arch Linux, que estou usando no último ano-e-pouco, tem facilidade muito grande para criação de pacotes otimizados. E, realmente, a diferença de desempenho é MUITO grande. Não vou colocar nenhum benchmark nem nada aqui, só a minha opinião subjetiva. E ela é:</p>

<p><strong>LIGUE JÁ O PGO!</strong></p>

<p>hehehe.</p>

<p>(se você quer ver um benchmark, dê uma olhada aqui por exemplo -<a href="http://open-mania.com/2008/02/28/firefox-3-ainda-mais-veloz/" onclick="urchinTracker('/outgoing/open-mania.com/2008/02/28/firefox-3-ainda-mais-veloz/?referer=');">Firefox 3 ainda mais veloz | Open Mania</a>).</p>

<p>E é isso. De forma geral, o firefox 3 parece ser muito melhor que o 2, vamos esperar o release final!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/20/firefox-speedup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Piadinhas computacionais</title>
		<link>http://dodonov.net/blog/2008/05/09/piadinhas-computacionais/</link>
		<comments>http://dodonov.net/blog/2008/05/09/piadinhas-computacionais/#comments</comments>
		<pubDate>Fri, 09 May 2008 17:56:18 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/09/piadinhas-computacionais/</guid>
		<description><![CDATA[Todas são originais e recém-inventadas. Se quiserem divulgar, fiquem a vontade! porque um bit se perdeu na floresta? porque não levou o bitmap porque Deus criou o mundo em 7 dias? para caber num byte porque os processadores antigos não eram coloridos? porque não eram multi-core qual é a bebida favorita dos administradores de rede? <a href='http://dodonov.net/blog/2008/05/09/piadinhas-computacionais/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Todas são originais e recém-inventadas. Se quiserem divulgar, fiquem a vontade! <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<ul>
    <li>porque um bit se perdeu na floresta? porque não levou o bitmap</li>
    <li>porque Deus criou o mundo em 7 dias? para caber num byte</li>
    <li>porque os processadores antigos não eram coloridos? porque não eram multi-core</li>
    <li>qual é a bebida favorita dos administradores de rede? ping</li>
    <li>como o programador dá descarga? ele chama flush()</li>
    <li>porque o programador foi na imobiliária? alguém quebrou o pipe dele</li>
    <li>porque o programador foi na imobiliária? para alocar uma casa</li>
    <li>onde o programador fica bronzeado? no Solaris</li>
    <li>quem inventou a WWW? o Homem-Aranha</li>
    <li>onde foi criado o Java? na Bahia</li>
    <li>qual é o cúmulo da calma? jogar paciência em Java</li>
    <li>qual é o software favorito na bahia? screensaver</li>
    <li>depois dos 7 primeiros dias o Deus disse: &#8220;hello, world&#8221;</li>
    <li>qual é o nome do cachorrinho do programador? FIFO</li>
    <li>e qual é a raça? fila</li>
    <li>como programador fecha a casa? &lt;/home&gt;</li>
    <li>como o programador entra em casa? cd</li>
    <li>que que tem no guarda-roupa de um processador? 38 meia</li>
</ul>

<p>(redes neurais e algoritmos genéticos):</p>

<ul>
    <li>que que um neurônio faz no tempo livre? dorme na rede neural</li>
    <li>porque uma rede neural cresceu? porque os neurônios ficaram excitados</li>
    <li>e porque a rede não respondeu nada? porque os neurônios ficaram inibídos</li>
    <li>quais atividades físicas cromossomos exercem? fitness</li>
    <li>quem criou a TDNN? Walter Mercado</li>
    <li>e qual foi a primeira saída dela? Ligue Yá</li>
    <li>porque a MLP aprende devagar? porque ela fica pensando &#8220;\eta&#8230;. \eta&#8230;.&#8221;</li>
</ul>

<p>LaTeX:</p>

<ul>
    <li>que que um cachorrinho faz quando encontra o dono-programador? \lambda</li>
</ul>

<p>Novas:</p>

<ul>
    <li>que que o programador faz nas férias? vai surfar nas wavelets</li>
    <li>como o programador abre um livro? ele faz um unfolding</li>
    <li>como o programador se reproduz? ele faz um fork()</li>
    <li>que que um doutorando falou depois de defender? agora PhDeu!</li>
</ul>

<p>Comentários? Sugestões?</p>

<p>(Eu sei que pós-graduação deixa sérios traumas psicológicos <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/09/piadinhas-computacionais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS2008</title>
		<link>http://dodonov.net/blog/2008/05/09/os2008/</link>
		<comments>http://dodonov.net/blog/2008/05/09/os2008/#comments</comments>
		<pubDate>Fri, 09 May 2008 08:57:42 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/09/os2008/</guid>
		<description><![CDATA[Atualizei o meu n800 para o maemo os 2008. E voltei a usar ele para coisas da internet, alem de só ler livros. Last.fm ficou espetacular, e gmail com imap tambem. Agora o fbreader ficou muito mais lento e problemático&#8230; É impressionante.. Tem mais de um ano ja o bixinho (o n800, digo), mas parece <a href='http://dodonov.net/blog/2008/05/09/os2008/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Atualizei o meu n800 para o maemo os 2008. E voltei a usar ele para coisas da internet, alem de só ler livros. Last.fm ficou espetacular, e gmail com imap tambem. Agora o fbreader ficou muito mais lento e problemático&#8230;</p>

<p>É impressionante.. Tem mais de um ano ja o bixinho (o n800, digo), mas parece novo!</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/09/os2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>office.open(3)</title>
		<link>http://dodonov.net/blog/2008/05/08/officeopen3/</link>
		<comments>http://dodonov.net/blog/2008/05/08/officeopen3/#comments</comments>
		<pubDate>Thu, 08 May 2008 03:14:17 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[office]]></category>
		<category><![CDATA[portuguese]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/08/officeopen3/</guid>
		<description><![CDATA[Acabou de sair a versão beta do OpenOffice 3. Muita gente já escreveu sobre isso, com opiniões variando entre &#8220;é a salvação do universo&#8221; e &#8220;e daí??&#8221;; agora eu queria falar a minha opinião, que não é nenhuma das duas. Primeiro, vamos relembrar um pouco a situação como ela estava a alguns poucos anos atrás <a href='http://dodonov.net/blog/2008/05/08/officeopen3/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Acabou de sair a versão <a href="http://marketing.openoffice.org/3.0/featurelistbeta.html" onclick="urchinTracker('/outgoing/marketing.openoffice.org/3.0/featurelistbeta.html?referer=');">beta do OpenOffice 3</a>.</p>

<p>Muita gente já escreveu sobre isso, com opiniões variando entre &#8220;é a salvação do universo&#8221; e &#8220;e daí??&#8221;; agora eu queria falar a minha opinião, que não é nenhuma das duas.</p>

<p>Primeiro, vamos relembrar um pouco a situação como ela estava a alguns poucos anos atrás (vou comparar a evolução do OpenOffice com o Microsoft Office&#8230; porque todos os outros pacotes de Office, seja de IBM, de Corel, da SUN, ou de qualquer outra empresa perdem significativamente para o próprio OpenOffice. Temos o Google Docs, mas, obviamente, é um caso a parte!).</p>

<p>Na época que não tinha OpenOffice 1.0, e só tinha os <em>milestones</em> que &#8211; com muita sorte &#8211; até funcionavam e abriam alguns (poucos e seletos) arquivos do office. Você acha que o OpenOffice hoje em dia é lento?? Ha-ha. Instale algum dos milestones antigos &#8211; ou o 1.0 mesmo para ver a diferença. A maior vantagem dessas primeiras versões é que era <strong>possível</strong> abrir e editar uma grande parte dos arquivos de Microsoft Office. Obviamente, não todos, mas muitos. Nem isso não era possível antes (abiword? koffice? staroffice, siagoffice? prefiro não comentar).</p>

<p>A versão 1.0 foi um marco gigante &#8211; foi uma versão estável (na medida do possível), multi-plataforma, completamente livre e que abria a maior parte dos documentos existentes. Mais uma vez &#8211; não absolutamente todos, mas a <strong>grande</strong> maioria. Abrir lentamente, com interface diferente, com diversos problemas de <em>layout</em>, posicionamento e funcionamento, mas.. ela funcionava!</p>

<p>A versão 1.1 melhorou significamente o problema de desempenho, e essas melhorias continuaram com todas as versões posteriores. Versão 2 (e suas sub-versões) introduziu nova interface, suporte a ODF e desempenho muito melhor. E logo-logo vamos ter a versão 3.0.</p>

<p>O que é possível notar nessa evolução das versões?? Primeiramente, o número de reclamações caiu significativamente! Vejamos:</p>

<ul>
    <li><strong>Interface diferente:</strong> com o lançamento de Microsoft Office 2007 esta reclamação perdeu completamente o sentido. OpenOffice é muito mais parecido com as versões antigas do Office de que o próprio software de microsoft&#8230;</li>
    <li><strong>Suporte incompleto a documentos de office:</strong> por mais reclamações que é possível encontrar sobre isso, tem que aceitar que o número de problemas de compatibilidade decresceu absurdamente nos últimos anos. Antes era sorte ter um documento .doc(.ppt, .xls) que abriria corretamente no OpenOffice. Hoje, em contra-partida, é difícil achar um documento com problemas. Chega a casos curiosos, onde OpenOffice consegue abrir documentos que travam o próprio Microsoft Office <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , e a própria Microsoft assume isso (obviamente, não publicamente <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</li>
    <li><strong>Desempenho inadequado:</strong> esta afirmação também perdeu o sentido ao <a href="http://www.infoworld.com/article/08/04/14/16TC-winoffice-performance_1.html" onclick="urchinTracker('/outgoing/www.infoworld.com/article/08/04/14/16TC-winoffice-performance_1.html?referer=');">avaliarmos o Microsoft Office 2007</a>.</li>
    <li><strong>Falta de funcionalidades:</strong> o OpenOffice ainda não implementa todas as 100% das funcionalidades que o Microsoft Office oferece. Porém&#8230; você conhece alguém que usa <strong>TODOS</strong> os recursos do Word?? Pois é, as funcionalidades <strong>já</strong> presentes são mais de que adequadas&#8230;</li>
    <li>e assim por diante..</li>
</ul>

<p>Qual é a conclusão que dá para tirar, avaliando as versões atuais de OpenOffice??</p>

<p>Elas <strong>já</strong> oferecem todas as funcionalidade que a absoluta maioria dos usuários precisam. Nem sempre do jeito idéntico ao Microsoft Office; nem sempre com a mesma interface; e nem sempre com todas as variações, mas oferecem!</p>

<p>E quanto a desempenho.. Seguindo os conselhos básicos localizaveis facilmente no google (desligar java, diminuir o cache, diminuir o uso de memória; otimizar o carregamento; desativar funcionalidades avançadas, etc) é possível melhorar o tempo de execução inicial em mais de <strong>10x</strong>, e uso de memória em mais de <strong>4x</strong> (eu comprovei isso com projetos que fizemos com Intel e Ardence em 2004-2005; inclusive tem até publicações da Intel sobre isso &#8211; as de Ardence continuam sendo sob n.d.a. até onde eu sei <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). Mas, se alguém tiver curiosidade, fiquem a vontade para perguntar por aqui mesmo!</p>

<p>Bem.. passando por esta introdução pequena <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , o que vamos ver na nova versão de OpenOffice?</p>

<ul>
    <li><strong>Suporte a Mac OS X</strong> &#8211; bastante interessante, porque vai ser possível rodar o OpenOffice em cima de MAC sem precisar de servidor X.</li>
    <li><strong>Suporte a ODF 1.2 e OOXML</strong> &#8211; preciso falar alguma coisa?? <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
    <li><strong>Suporte a PDFs editáveis</strong> &#8211; conhece algum outro escritório que permite isso?</li>
    <li><strong>Suporte a macros em VBA</strong> &#8211; uma das maiores limitações atuais foi a execução de macros voltados para Microsoft Office. Não mais.</li>
    <li><strong>Suporte a extensions</strong> &#8211; <em>extensions</em> fizeram do firefox o browser tão popular o quanto ele é hoje em dia. Enquanto plugins para OpenOffice existem já faz alguns anos, nunca foi simples ou intuitivo instalar e usar eles. Acredito que agora isso vai ser resolvido definitivamente.</li>
    <li><strong>Melhor suporte a multi-midia</strong> &#8211; suporte a reprodução de sons em <em>background</em>, suporte a múltiplos monitores, melhor suporte para CSV, HTML, melhor na renderização de fontes; melhorias na edição de imagens, e assim por diante. A lista é grande.</li>
    <li><strong>Novas funcionalidades</strong> &#8211; novas possibilidades relacionadas a planilhas, formulas, gráficos, renderização de páginas WEB, etc</li>
    <li>e muitos outras melhorias menos significativas</li>
</ul>

<p>O que dá para extrair de tudo disso? É simples &#8211; o desenvolvimento do OpenOffice é feito de forma <strong>evolucionária</strong>, e não <strong>revolucionária</strong>. O que acontece é que ele fica melhor e melhor <strong>gradativamente</strong>, e não visa fazer milagres de uma hora para outra. É bom isso? Sim, porque é possível ver o que podemos esperar das próximas versões. Isso tem lados negativos? Claro, porque sempre vamos ver comentários do tipo &#8220;office não está evoluindo&#8221;, &#8220;versão 2 é parecida com 1&#8243;, &#8220;microsoft é mais diferente&#8221;&#8230;</p>

<p>O resto vamos ver logo, na versão 3.0 do OpenOffice <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/08/officeopen3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distributed Version Control</title>
		<link>http://dodonov.net/blog/2008/05/02/distributed-version-control/</link>
		<comments>http://dodonov.net/blog/2008/05/02/distributed-version-control/#comments</comments>
		<pubDate>Fri, 02 May 2008 17:08:07 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[cvs]]></category>
		<category><![CDATA[devel]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/05/02/distributed-version-control/</guid>
		<description><![CDATA[Só um pequeno resumo de vantagens e desvantagens de sistemas de controle de versões distribuídos que eu já cheguei a usar. SVN + SVK &#8211; parecido com SVN, tem os mesmos problemas que ele (cria um monte de diretórios, etc). Na minha opinião, não tem muito uso prático &#8211; é melhor usar soluções distribuídas mesmo <a href='http://dodonov.net/blog/2008/05/02/distributed-version-control/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Só um pequeno resumo de vantagens e desvantagens de sistemas de controle de versões distribuídos que eu já cheguei a usar.</p>

<ul>
    <li><strong>SVN + SVK</strong> &#8211; parecido com SVN, tem os mesmos problemas que ele (cria um monte de diretórios, etc). Na minha opinião, não tem muito uso prático &#8211; é melhor usar soluções distribuídas mesmo (bzr, git ou mercurial), porque todas elas tem gateways para SVN propriamente dito.</li>
    <li><strong>BZR</strong> &#8211; acho que é o meu favorito para a maioria das coisas. Facil de usar (o mais fácil de todos, na minha opinião), rápido &#8211; principalmente nas últimas versões, extensível. Os meus maiores problemas com ele foi o desempenho (que foi resolvido na versão 1.0), e o tratamento de arquivos binários grandes &#8211; ele fazia questão de colocar o commit inteiro na memória, em formato ASCII ainda. Ou seja, para fazer commit de 100MB ele usava 2GB de RAM. Mas aparentemente, isso foi arrumado recentemente.</li>
    <li><strong>GIT</strong> &#8211; extremamente poderoso, rápido e eficiente.Em contra-partida, ele tem milhares de comandos, sub-comandos, parâmetros e opções. Se você aprender tudo com ele, ele é o melhor. Entretanto, eu vivo me perdendo na hora de fazer coisas mais complexas (tipo, fazer um cherry-pick de um repositório remoto em um branch diferente). Por outro lado, só ele que permite fazer cherry-pick de forma fácil (para quem está por fora &#8211; cherry-pick permite você pegar um commit independente e embutir ele em outro branch. Se isso não fez sentido para você, provavelmente você não precisa dele <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). A melhor coisa do GIT para mim é o suporte dele para multiplos branches locais, no mesmo diretório. E a velocidade, é claro. Porém, a complexidade dele acaba complicando demais a vida as vezes.</li>
    <li><strong>Mercurial</strong> &#8211; parecido com o BZR e GIT. Atualmente suporta branches e cherry-picks também (de forma diferente). Ele suporta queues de patches também nativamente &#8211; mas, como nunca precisei disso, não posso falar muito detalhes. Fora isso, nunca cheguei a mexer muito com ele (mas, para quem tiver interesse, tem um tutorial interessante <a href="http://devlog.waltercruz.com/micro-tutorial-de-mercurial" onclick="urchinTracker('/outgoing/devlog.waltercruz.com/micro-tutorial-de-mercurial?referer=');">aqui</a>). A escolha entre ele, bzr e git muitas vezes é questão de religião mesmo <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
    <li><strong>DARCS</strong> &#8211; bastante interessante, e diferente de todos os outros sistemas. Basicamente, todo o mecanismo de commits e diferenças entre versões dele é baseado em filas de patches, aplicados em determinada ordem. A filosofia dele também é parecida com GIT &#8211; ele visa manter controle do conteúdo, e não da estrutura de versões. Isso tem lados bons (o mesmo conteúdo pode migrar de um lugar para outro &#8211; arquivo, diretório, etc) e ruins (se alguém fez essa migração, você não vai ter controle exato sobre o que foi feito).</li>
    <li><strong>GNU ARCH</strong> &#8211; acredito que hoje em dia ele tem mais interesse histórico de que prático. Muito mais complexo de usar (se bem que, comparando com GIT, acho que dá uma briga boa). As ideias dele são utilizadas em outros sistemas de controle de versões distribuídas, mas ele em si &#8211; pelo que eu sei &#8211; está parado. Eu cheguei a usar ele faz alguns anos, mas desisti logo devido à complexidade dele.</li>
    <li><strong>MONOTONE</strong> &#8211; também em desuso nos últimos tempos, o MONOTONE serviu como inspiração para GIT. Fora isso, nunca vi ninguém usar ele, então não tenho opinião formada sobre ele.</li>
</ul>

<p>Além disso, tem diversas outras soluções caseiras (com svn, cvs (eca..), etc) que fazem a mesma coisa que DRCS&#8217;es usando algumas gambiarras (hehehe). Mas eu fico entre BZR e GIT na maioria dos casos.</p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/05/02/distributed-version-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como entender o que o CEO fala?</title>
		<link>http://dodonov.net/blog/2008/04/24/como-entender-o-que-o-ceo-fala/</link>
		<comments>http://dodonov.net/blog/2008/04/24/como-entender-o-que-o-ceo-fala/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 23:41:24 +0000</pubDate>
		<dc:creator>eugeni</dc:creator>
				<category><![CDATA[portuguese]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://dodonov.net/blog/2008/04/24/como-entender-o-que-o-ceo-fala/</guid>
		<description><![CDATA[Para continuar a tradição antiga de &#8220;dicionários&#8221; (iniciada com o dicionário de SPAM), aí vai mais um dicionário. Desta vez, vamos ver como entender o que o CEO fala: A gente decidiu continuar como empresa grande (&#8220;por mais que a gente tentou, todos os nossos projetos de crescer falharam&#8221;) Estamos conversando com diversos patrocinadores (&#8220;nenhum <a href='http://dodonov.net/blog/2008/04/24/como-entender-o-que-o-ceo-fala/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Para continuar a tradição antiga de &#8220;dicionários&#8221; (iniciada com o <a href="http://dodonov.net/blog/2006/11/30/dicionario-de-spam/">dicionário de SPAM</a>), aí vai mais um dicionário. Desta vez, vamos ver como entender o que o CEO fala:</p>

<ul>
    <li>A gente decidiu continuar como empresa grande (&#8220;por mais que a gente tentou, todos os nossos projetos de crescer falharam&#8221;)</li>
    <li>Estamos conversando com diversos patrocinadores (&#8220;nenhum dos que a gente conversou quer dar $$$ para nós)</li>
    <li>E quando a gente se tornar o novo Google (&#8220;Os meus sonhos eróticos foram trocados por essa frase&#8221;)</li>
    <li>O ano que vem será decisivo (&#8220;Estamos falando isso faz 5 anos, uma hora tem que dar certo!&#8221;)</li>
    <li>Estamos pensando vender a empresa por 100 milhões (&#8220;Os outros conseguiram, eu li na Internet! Porque que a gente é pior? Pena é que estamos no pequeno prejuízo constante, mas..&#8221;)</li>
    <li>Nós podemos vender a empresa por 10 milhões facilmente, mas queremos crescer um pouco mais antes (&#8220;Eu li em alguma revista que alguém vendeu uma empresa parecida por 10 milhões, e tenho fé que conseguimos também! Só trabalhar um pouco mais no prejuízo sobre a grandeza do qual eu também menti na pergunta anterior..&#8221;)</li>
    <li>O mercado não estava pronto antes, mas agora temos uma oportunidade única (&#8220;Estávamos fazendo algo completamente inútil por 5 anos, e de repente apareceu algum tonto querendo comprar!&#8221;)</li>
</ul>

<p>Em poucas palavras, dá para fazer um dicionário de como conversar com um CEO:</p>

<ul>
    <li>Divide todas as palavras, promessas por 10, e depois por 10 de novo, para chegar perto da realidade.</li>
    <li>Avalie o sucesso da empresa pelo lucro e prejuízo (idealmente, avaliando o relatório financeiro completo e plano de trabalho), e não pelo que o CEO diz.</li>
    <li>Se o CEO diz &#8220;com certeza&#8221;, leia isso como &#8220;talvez&#8221;. Se ele diz &#8220;provável&#8221;, leia isso como &#8220;só por um milagre&#8221;. Se ele fala &#8220;talvez&#8221; então, nem com milagre <img src='http://dodonov.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</li>
</ul>

<p>Original aqui: <a href="http://victorronin.com/2008/04/19/molochnye-reki-i-kiselnye-berega/" onclick="urchinTracker('/outgoing/victorronin.com/2008/04/19/molochnye-reki-i-kiselnye-berega/?referer=');">http://victorronin.com/2008/04/19/molochnye-reki-i-kiselnye-berega/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dodonov.net/blog/2008/04/24/como-entender-o-que-o-ceo-fala/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: dodonov.net @ 2012-02-04 13:49:41 -->
