<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for federico</title>
    <link>http://www.advogato.org/person/federico/</link>
    <description>Advogato blog for federico</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Thu, 24 Jul 2008 13:35:39 GMT</pubDate>
    <item>
      <pubDate>Thu, 24 Jul 2008 01:08:41 GMT</pubDate>
      <title>Wed 2008/Jul/23</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=113</link>
      <guid>http://www.gnome.org/~federico/news-2008-07.html#23</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      I'm writing a little utility that generates Git
	      repositories from some unpleasantly-formatted data.  The
	      test suite for this was really simple to write:  you can
	      simply ask git, "give me the SHA-1 hash that you have
	      for the content" at the end of the test run
	      (i.e. "&lt;tt&gt;git-cat-file&amp;nbsp;-p&amp;nbsp;HEAD&lt;/tt&gt;" and
	      parse out the "tree" hash from there).  If the obtained
	      hash matches your expected hash, then you know the test
	      succeeded.  This is much easier than comparing all of the
	      expected/obtained content by hand.
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 22 Jul 2008 18:05:38 GMT</pubDate>
      <title>Tue 2008/Jul/22</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=112</link>
      <guid>http://www.gnome.org/~federico/news-2008-07.html#22</guid>
      <description>
	&lt;ul&gt;
	  &lt;li id="document-centric-gnome"&gt;
	    &lt;p&gt;
	      &lt;strong&gt;&lt;a href="http://www.gnome.org/~federico/news-2008-07.html#document-centric-gnome" &gt;Document-centric GNOME&lt;/a&gt;&lt;/strong&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      Here is my presentation from GUADEC:  &lt;a
	      href="http://www.gnome.org/~federico/docs/2008-GUADEC/html/index.html"&gt;Document-centric
	      GNOME&lt;/a&gt; (&lt;a href="http://www.gnome.org/~federico/docs/2008-GUADEC/fmq-2008-document-centric-gnome.odp" &gt;ODP&lt;/a&gt;).
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://www.gnome.org/~federico/docs/2008-GUADEC/html/index.html" &gt;&lt;img
		  src="http://www.gnome.org/~federico/docs/2008-GUADEC/html/img0-thumb.jpg" alt="Document-centric GNOME"
		  width="320" height="240" class="photo"&gt;&lt;/a&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      The code for document-centric Nautilus consists of the journal
	      view and the Nautilus extension interface for journal
	      providers.  This code is not finished yet (nothing gets
	      displayed to the screen; it's all engine code), but you
	      can take a look here:
	    &lt;/p&gt;

	    &lt;pre class="code-example"&gt;
git clone git://gitorious.org/nautilus/mainline.git nautilus-document-centric&lt;/pre&gt;

	    &lt;p&gt;
	      The master branch contains the document-centric code,
	      which is built on top of nautilus-2.22.2.  You can also
	      visit the &lt;a
	      href="http://gitorious.org/projects/nautilus/repos/mainline"&gt;Gitorious
	      repository for document-centric Nautilus&lt;/a&gt; and create
	      your forks there.
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      &lt;a href="http://blog.sontek.net/" &gt;John&amp;nbsp;Anderson&lt;/a&gt;
	      has posted a great little &lt;a
	      href="http://opensuse-tutorials.com/2008/07/nautilus-tips-and-tricks/"&gt;tutorial
	      on Nautilus tips and tricks&lt;/a&gt;.  Life-savers for me:
	      the list of keyboard shortcuts and enabling the "advanced
	      permissions" view.
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 16 Jul 2008 18:04:26 GMT</pubDate>
      <title>Wed 2008/Jul/16</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=111</link>
      <guid>http://www.gnome.org/~federico/news-2008-07.html#16</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      Hot damn, &lt;a
	      href="http://www.crisp.demon.co.uk/blog/index.html"&gt;someone
	      is porting DTrace to Linux&lt;/a&gt; (&lt;a
	      href="ftp://crisp.dynalias.com/pub/release/website/dtrace"&gt;source
	      code&lt;/a&gt;).  Maybe &lt;a
	      href="http://www.gnome.org/~federico/news-2007-07.html#05"&gt;Mortadelo&lt;/a&gt; will be useful
	      in the future again.
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      Ah, Istanbul.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-6200-waterpipe-tram.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-6200-waterpipe-tram.jpg" alt="Waterpipe and tram"
		  width="214" height="320" class="photo"&gt;&lt;/a&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-6197-tomb.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-6197-tomb.jpg" alt="Tomb"
		  width="320" height="214" class="photo"&gt;&lt;/a&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-6074-boats.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-6074-boats.jpg" alt="Boats and mosque"
		  width="320" height="214" class="photo"&gt;&lt;/a&gt;
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      The &lt;a
	      href="http://en.wikipedia.org/wiki/Sultan_Ahmed_Mosque"&gt;Blue
	      Mosque&lt;/a&gt; introduced me to painted domes and arches.
	      Now I know how to paint and decorate our &lt;a
	      href="http://www.gnome.org/~federico/news-2007-08.html#11"&gt;vaults&lt;/a&gt; on the inside,
	      which are just plain whitewashed right now.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-5938-painted-vault.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-5938-painted-vault.jpg" alt="Painted vault"
		  width="320" height="214" class="photo"&gt;&lt;/a&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-6251-blue-mosque-arches.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-6251-blue-mosque-arches.jpg" alt="Painted domes and arches"
		  width="320" height="214" class="photo"&gt;&lt;/a&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-photos/2008-07-6258-arches.jpg" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-07-6258-arches.jpg" alt="Painted arches and ceilings"
		  width="214" height="320" class="photo"&gt;&lt;/a&gt;
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 3 Jul 2008 17:05:23 GMT</pubDate>
      <title>Thu 2008/Jul/03</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=110</link>
      <guid>http://www.gnome.org/~federico/news-2008-07.html#03</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      &lt;a
	      href="http://pygi.wordpress.com/2008/07/01/broken-by-birth/"&gt;Mario&amp;nbsp;&#xD0;ani&#x107;
	      has another interesting post about distributed version
	      control systems&lt;/a&gt;.  He proposes that each developer
	      (or at least, every maintainer) could use the DVCS of
	      their choice, but then we could have a common
	      web/collaboration interface to all the DVCSs.
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      My current favorite way of developing against a stable release:
	    &lt;/p&gt;

	    &lt;pre class="code-example"&gt;
&lt;strong&gt;$ cat ~/bin/make-nautilus&lt;/strong&gt;
#!/bin/sh
module_name=nautilus
diff_name=~/suse/11.0/src/SOURCES/nautilus-&lt;a href="http://guadec.expectnation.com/guadec08/public/schedule/detail/69" &gt;document-centric&lt;/a&gt;.diff
anchor_name=OPENSUSE_11_0_PATCHES
branch_name=document-centric
cd ~/src/$module_name
git diff $anchor_name..$branch_name &amp;gt; $diff_name
cd ~/suse/11.0/src/SPECS
if rpmbuild -ba $module_name.spec
then
    cd ../RPMS/i586
    gnomesu rpm -Uvh --force *$module_name*
    notify-send -t 0 "$module_name is installed now"
else
    notify-send -t 0 "$module_name doesn't build!"
fi&lt;/pre&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 26 Jun 2008 16:09:43 GMT</pubDate>
      <title>Thu 2008/Jun/26</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=109</link>
      <guid>http://www.gnome.org/~federico/news-2008-06.html#26</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      &lt;a
	      href="http://blogs.gnome.org/johncarr/2008/06/26/the-mirror-man-says/"&gt;John says&lt;/a&gt;:
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;em&gt;The main reason&lt;/em&gt; [why git-mirror.gnome.org
	      doesn't make git.gnome.org any easier] &lt;em&gt;is of course
	      the polluted logs (filled with git-svn rev id
	      metadata). I would resist any module having a Git repo
	      with such ickyness in its history.&lt;/em&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      This is a non-issue.  &lt;a
	      href="http://www.rubyonrails.org/"&gt;Ruby on Rails&lt;/a&gt;
	      used to be hosted on Subversion, and then it switched to
	      Git.  To do the conversion, they simply used git-svn.
	      You can do
	      "&lt;tt&gt;git&amp;nbsp;clone&amp;nbsp;git://github.com/rails/rails.git&lt;/tt&gt;",
	      then "&lt;tt&gt;git&amp;nbsp;log&lt;/tt&gt;" and search for "git-svn" in
	      the output in order to find the git-svn metadata.
	    &lt;/p&gt;

	    &lt;p&gt;
	      You'll see this:
	    &lt;/p&gt;

	    &lt;pre class="code-example"&gt;
&lt;strong&gt;... git-based development goes here ...&lt;/strong&gt;

commit 67022671bfa28d5675a30925a8d1e271c576f4d2
Author: David Heinemeier Hansson &lt;david@loudthinking.com&gt;
Date:   Thu Apr 10 22:09:13 2008 -0500

    Testing commits

commit ed99dda174da439a0947cdabea3babf027c672ac
Author: Rick Olson &lt;technoweenie@gmail.com&gt;
Date:   Thu Apr 10 18:06:05 2008 +0000

    Change validates_uniqueness_of :case_sensitive option default back to true (from [9160]).  Love your database columns, do
n't LOWER them.  [rick]
    
    git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9248 5ecf4fe2-1ee6-0310-87b1-e25e094e27de

&lt;strong&gt;... svn-based development went here ...&lt;/strong&gt;
	    &lt;/pre&gt;

	    &lt;p&gt;
	      So, in the commit logs, you have everything since
	      $beginning_of_time until $switchover_date with the
	      git-svn-id strings, and everything after that without
	      any such garbage, as would be normal for "plain" git
	      repositories.
	    &lt;/p&gt;

	    &lt;p&gt;
	      Having that metadata in the log actually provides
	      valuable information.
	    &lt;/p&gt;

	    &lt;p&gt;
	      If you have to do &lt;a
	      href="http://mail.gnome.org/archives/desktop-devel-list/2007-September/msg00238.html"&gt;code
	      archaeology&lt;/a&gt; (which Eric&amp;nbsp;Sink calls "&lt;a
	      href="http://www.ericsink.com/alm/traceability.html"&gt;traceability&lt;/a&gt;"),
	      then the commit log will tell you &lt;em&gt;when&lt;/em&gt; the
	      svn-&gt;git switchover occured.  Before that point, you
	      know that any branches are dead-ends and merges are
	      funny (svn didn't handle them).
	    &lt;/p&gt;

	    &lt;p&gt;
	      You'll know that before the switchover point,
	      information about code attribution will not be 100%
	      clear, as you couldn't specify &lt;tt&gt;--author&lt;/tt&gt; in an
	      svn commit (so you'll perhaps have to look at the actual
	      ChangeLog and hope that the committer was kind enough to
	      say "original patch by $author").
	    &lt;/p&gt;

	    &lt;p&gt;
	      When you do a conversion between revision control
	      systems, you keep the old system around in read-only
	      mode for if anything goes wrong.  It's nice to know that
	      if we ever need to check something in the original SVN
	      repository, we'll have the SVN revision numbers from the
	      git-svn metadata.
	    &lt;/p&gt;

	    &lt;p&gt;
	      Finally, the git-svn strings in commit logs will
	      disappear really quickly from your everyday view.  They
	      just appear further and furter back in time, and you
	      seldom look at those commits, anyway.
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      &lt;a
	      href="http://pygi.wordpress.com/"&gt;Mario&amp;nbsp;&#xD0;ani&#x107;&lt;/a&gt;
	      has been investigating about &lt;a
	      href="http://techbase.kde.org/index.php?title=Contribute/GitoriousKDE"&gt;adapting
	      Gitorious for KDE&lt;/a&gt;.  He says he would be happy to
	      talk to people who would like to adapt Gitorious for
	      GNOME's needs as well.  Among other things, Mario is
	      working on the Summer of Code to write a &lt;a
	      href="http://blogs.gnome.org/rodrigo/2008/04/22/summer-of-code-2008/"&gt;GNOME
	      client&lt;/a&gt; for the &lt;a
	      href="https://build.opensuse.org/"&gt;openSUSE build
	      service&lt;/a&gt;.
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Wed, 25 Jun 2008 18:07:29 GMT</pubDate>
      <title>Wed 2008/Jun/25</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=108</link>
      <guid>http://www.gnome.org/~federico/news-2008-06.html#25</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      &lt;a
	      href="http://blogs.gnome.org/johncarr/2008/06/23/dvcs-mirror-updates/"&gt;Git-mirror.gnome.org
	      is AWESOME&lt;/a&gt; and John&amp;nbsp;Carr deserves large amounts
	      of beer for it.  The git-mirror has already saved my ass
	      twice this week ("Where is this patch in trunk?  Was it
	      backported to the stable branch?").  Now that we
	      actually have full Git repositories of GNOME, we could
	      easily move to using Git for everything.
	    &lt;/p&gt;

	    &lt;p&gt;
	      S&#xF8;ren, Bryce, James, and myself had a pretty productive
	      time hacking on support for RANDR&amp;nbsp;1.2 in
	      gnome-desktop, gnome-settings-daemon, and
	      gnome-control-center, all in Git repositories.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://gitorious.org/" &gt;Gitorious&lt;/a&gt; is like a
	      free version of &lt;a href="http://github.com/" &gt;Github&lt;/a&gt;:
	      you can create public Git repositories in a central
	      server, push to them, &lt;em&gt;and monitor who clones your
	      repositories&lt;/em&gt;.  Later those people can inform you,
	      "I have some cool stuff in my repo; you should fetch
	      those changes from it".  Or you can say the same to
	      them, and Gitorious/Github will notify the people in
	      question.  This is far, far more productive than
	      monitoring an svn-commits-list or similar.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a
	      href="http://gitorious.org/projects/gitorious"&gt;Gitorious
	      is hosted in a Gitorious installation itself&lt;/a&gt;, so you
	      can of course "git clone" is source code.  It would be
	      reasonably easy to use this in GNOME's infrastructure,
	      and it would automatically let module maintainers
	      communicate better with contributors (and allow
	      contributors to play with experimental branches without
	      disrupting the maintainer's work).
	    &lt;/p&gt;
	  &lt;/li&gt;

	  &lt;li&gt;
	    &lt;p&gt;
	      ... Which reminds me, if you are tired of wasting your
	      time with Subversion, be sure to attend the BoF on &lt;a
	      href="http://guadec.expectnation.com/guadec08/public/schedule/detail/81"&gt;distributed
	      version control systems&lt;/a&gt; at GUADEC, where &lt;a
	      href="http://mces.blogspot.com/"&gt;Behdad&lt;/a&gt; and yours
	      truly will delight you with our widely-acclaimed
	      acrobatic act.
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Mon, 26 May 2008 23:10:14 GMT</pubDate>
      <title>Tue 2008/May/20</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=107</link>
      <guid>http://www.gnome.org/~federico/news-2008-05.html#20</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      This year I am mentoring two students for the Summer of Code:
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a
	      href="http://asoare-gnome.blogspot.com/"&gt;Andrei&amp;nbsp;Soare&lt;/a&gt;
	      is working on &lt;a
	      href="http://live.gnome.org/SummerOfCode2008/Ideas/MemoryFragmentation"&gt;measuring
	      memory fragmentation in the GNOME libraries&lt;/a&gt;.  The
	      idea is to find the main culprits for fragmentation, and
	      see what we need to do to fix them (use more stack
	      allocations?  provide substring APIs that can take a
	      buffer and a length, instead of g_strdup()ing temporary
	      crap everywhere?  use flat buffers with pointers
	      into them for static structs rather than structs full of
	      pointers to individually-allocated sub-buffers?).  &lt;a
	      href="http://github.com/asoare/bprof/tree/master"&gt;Andrei's
	      code is available as a Git repository&lt;/a&gt;.  So far, he
	      has a modified version of of &lt;a
	      href="http://svn.gnome.org/viewvc/bprof/"&gt;Stefan&amp;nbsp;Kost's
	      &lt;em&gt;bprof&lt;/em&gt;&lt;/a&gt;, suitable for use with &lt;a
	      href="http://people.mozilla.com/~pavlov/memview.py"&gt;Stuart&amp;nbsp;Parmenter's
	      memview&lt;/a&gt;.  Andrei has found a few bugs where we do
	      things like using g_free() on a malloc()ed buffer, or
	      vice-versa.  I hope he starts &lt;a href="http://asoare-gnome.blogspot.com/" &gt;blogging&lt;/a&gt;
	      his first fragmentation plots soon.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a
	      href="http://slusnys.wordpress.com/"&gt;Stanislav&amp;nbsp;Slu&#x161;n&#xFD;&lt;/a&gt;
	      is working on &lt;a
	      href="http://live.gnome.org/SummerOfCode2008/Ideas/EvolutionDataServerCalendar"&gt;profiling
	      the calendar in evolution-data-server&lt;/a&gt;, in particular
	      the engine for live queries.  The query engine is very
	      simple; it just iterates through all the items in a
	      calendar and returns the items that match the query.  We
	      think that most queries are of the form, "give me all
	      the items in $date_range", so the query engine could use
	      a smart data structure like an interval tree to avoid
	      scanning all the items.  So far, Stanislav has added a
	      logging mechanism to evolution-data-server so that we
	      can see which queries get performed (by Evolution
	      itself, the panel's clock applet, and various things
	      across the desktop), and how long the queries remain
	      active.  This is &lt;a
	      href="http://github.com/slusnys/evolution-data-server/tree/master"&gt;available
	      in a Git repository&lt;/a&gt;.  Stanislav showed me a couple
	      of pretty sexy plots of query lifetimes; let's hope he
	      &lt;a href="http://slusnys.wordpress.com/" &gt;blogs&lt;/a&gt; about
	      them soon.
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 22 Apr 2008 16:09:26 GMT</pubDate>
      <title>Tue 2008/Apr/22</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=106</link>
      <guid>http://www.gnome.org/~federico/news-2008-04.html#22</guid>
      <description>
	&lt;ul&gt;
	  &lt;li&gt;
	    &lt;p&gt;
	      And now for a gratuitous baby picture.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://www.flickr.com/photos/federico_mena_quintero/" &gt;&lt;img
		  src="http://www.gnome.org/~federico/news-photos/thumb/2008-04-4771-ladle.jpg" alt="Luciana in the ladle"
		  width="320" height="214" class="photo"&gt;&lt;/a&gt;
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Thu, 17 Apr 2008 22:09:51 GMT</pubDate>
      <title>Thu 2008/Apr/17</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=105</link>
      <guid>http://www.gnome.org/~federico/news-2008-04.html#17</guid>
      <description>
	&lt;ul&gt;
	  &lt;li id="multiscreen-hackfest-01"&gt;
	    &lt;p&gt;
	      &lt;a href="http://www.gnome.org/~federico/news-2008-04.html#multiscreen-hackfest-01" &gt;&lt;strong&gt;Multiscreen hackfest for openSUSE&lt;/strong&gt;&lt;/a&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;img src="http://www.gnome.org/~federico/news-photos/2008-04-17-gnome-display-properties.png" alt="gnome-display-properties and RandR 1.2"
		width="558" height="533" class="photo"&gt;&lt;/a&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      Here is a belated announcement for the &lt;a href="http://en.opensuse.org/GNOME/Multiscreen" &gt;multiscreen
		hackfest&lt;/a&gt; we are having at openSUSE this week and the
	      next.
	    &lt;/p&gt;

	    &lt;p&gt;
	      Do you have multiple monitors connected to the same machine?  A
	      laptop and a projector or an external display?  Do you get a lot
	      of pain from trying to get it all to work?
	    &lt;/p&gt;

	    &lt;p&gt;
	      If so, be sure to participate in the &lt;a
		href="http://en.opensuse.org/GNOME/Multiscreen"&gt;multiscreen hackfest&lt;/a&gt;!
	    &lt;/p&gt;

	    &lt;p&gt;
	      Some work we are doing:
	    &lt;/p&gt;

	    &lt;ul&gt;
	      &lt;li&gt;
		&lt;p&gt;
		  Integrate S&#xF8;ren&amp;nbsp;Sandmann's, Bryce&amp;nbsp;Harrington's, and
		  James&amp;nbsp;Westby's &lt;a href="http://live.gnome.org/RandR1.2" &gt;work for gnome-desktop,
		  gnome-settings-daemon, and gnome-control-center&lt;/a&gt; so that the
		  Display capplet will let you configure your multiple monitors easily.
		&lt;/p&gt;
	      &lt;/li&gt;

	      &lt;li&gt;
		&lt;p&gt;
		  Pay attention to all the bugs in X drivers that we run into
		  while testing the configuration tools.  Document any quirks
		  that need to be set in xorg.conf by hand.
		&lt;/p&gt;
	      &lt;/li&gt;

	      &lt;li&gt;
		&lt;p&gt;
		  Fix all the &lt;a href="https://bugzilla.novell.com/show_bug.cgi?id=374148" &gt;bugs in applications when used in
		    multiscreen&lt;/a&gt; mode ("I clicked on a button but the dialog
		  appeared in the wrong monitor").
		&lt;/p&gt;
	      &lt;/li&gt;
	    &lt;/ul&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
    <item>
      <pubDate>Tue, 25 Mar 2008 19:10:40 GMT</pubDate>
      <title>Tue 2008/Mar/25</title>
      <link>http://www.advogato.org/person/federico/diary.html?start=104</link>
      <guid>http://www.gnome.org/~federico/news-2008-03.html#25</guid>
      <description>
	&lt;ul&gt;
	  &lt;li id="soc-2008-projects"&gt;
	    &lt;p&gt;
	      &lt;strong&gt;&lt;a href="http://www.gnome.org/~federico/news-2008-03.html#soc-2008-projects" &gt;Projects for Summer of Code 2008&lt;/a&gt;&lt;/strong&gt;
	    &lt;/p&gt;

	    &lt;p&gt;
	      This year I will mentor at most two of the following four projects:
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://live.gnome.org/SummerOfCode2008/Ideas/EvolutionDataServerCalendar" &gt;&lt;strong&gt;Making
	      evolution-data-server's calendar smaller and
	      faster&lt;/strong&gt;&lt;/a&gt; (for GNOME).  E-d-s was written in the very
	      early days of Evolution, and it needs some profiling
	      love.  In this project you will profile the calendar
	      part of e-d-s to make it use less memory, and be faster
	      as well with an optimized query engine.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a href="http://live.gnome.org/SummerOfCode2008/Ideas/MemoryFragmentation" &gt;&lt;strong&gt;Reducing
	      memory fragmentation in GNOME&lt;/strong&gt;&lt;/a&gt; (for GNOME).  The GNOME
	      platform libraries do many allocations of small objects.
	      Your task will be to do an analysis of memory
	      fragmentation, similar to what was done for
	      Firefox&amp;nbsp;3.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a
	      href="http://en.opensuse.org/Summer_of_Code_2008#Making_removable_hard_drives_Just_Work.28tm.29"&gt;&lt;strong&gt;Making
	      removable hard drives Just Work(tm)&lt;/strong&gt;&lt;/a&gt; (for
	      openSUSE).  Currently, when you plug in a blank hard
	      drive through USB, nothing happens.  The device node
	      gets created in &lt;tt&gt;/dev/sdb&lt;/tt&gt; or whatever, but you
	      don't see anything happen in your screen.  Your task
	      will be to improve things around HAL, PolicyKit, and
	      gnome-volume-manager to detect this situation, and to
	      make the right thing happen.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;a
	      href="http://en.opensuse.org/Summer_of_Code_2008#Reliable_unmounting_of_removable_media"&gt;&lt;strong&gt;Reliable
	      unmounting of removable media&lt;/strong&gt;&lt;/a&gt; (for
	      openSUSE).  When you want to unmount or eject a
	      removable volume that is being used, you get a
	      meaningless error message.  There is no way to know
	      which programs are still using the volume.  Your task
	      will be to make GNOME tell you which processes are using
	      the volume, and give you a chance of killing them.
	    &lt;/p&gt;

	    &lt;p&gt;
	      &lt;strong&gt;If you are a student&lt;/strong&gt;, please see
	      GNOME's very nice page on &lt;a
	      href="http://live.gnome.org/SummerOfCode2008/Students"&gt;information
	      for students&lt;/a&gt;.  This will be useful to you even if
	      you choose one of the projects for openSUSE.  Don't miss
	      out on this great opportunity to become a
	      well-recognized member of the free software community
	      and win USD&amp;nbsp;4500!
	    &lt;/p&gt;
	  &lt;/li&gt;
	&lt;/ul&gt;
</description>
    </item>
  </channel>
</rss>
